Skip to content

improvement(integrations): tighten resend, azure_devops icon, loops trim#4772

Merged
waleedlatif1 merged 2 commits into
stagingfrom
waleedlatif1/validate-resend-integration
May 28, 2026
Merged

improvement(integrations): tighten resend, azure_devops icon, loops trim#4772
waleedlatif1 merged 2 commits into
stagingfrom
waleedlatif1/validate-resend-integration

Conversation

@waleedlatif1
Copy link
Copy Markdown
Collaborator

Summary

  • audit Resend integration against live API docs: propagate send errors, type list/get_email/list_domains outputs with items shape, make unsubscribed dropdown default to "Don't Change" so updates don't silently reset subscription state
  • azure_devops: use AzureIcon (AzureDevOpsIcon no longer exported)
  • loops: trim eventName on send

Type of Change

  • Improvement

Testing

Tested manually. TypeScript compiles clean across all touched files.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped May 28, 2026 7:50pm

Request Review

@cursor
Copy link
Copy Markdown

cursor Bot commented May 28, 2026

PR Summary

Medium Risk
Resend contact updates and send success reporting change runtime behavior for workflows; send may report success without reflecting API body flags if errors are only in JSON.

Overview
Tightens Resend, Loops, and Azure DevOps integration behavior and typing.

The Resend block’s Unsubscribed control now defaults to Use Default (empty) instead of No, and block param mapping omits unsubscribed when unset so create/update contact calls no longer force false on every update. Several Resend tools replace opaque json outputs with structured array schemas (get_email, list_contacts, list_domains) for clearer downstream wiring. resend_send always sets output.success to true on a successful HTTP response rather than mirroring result.success from the API body.

Loops send_event trims eventName (alongside existing trims for email/userId). Azure DevOps block icon import switches from AzureDevOpsIcon to AzureIcon.

Reviewed by Cursor Bugbot for commit 0fb0844. Configure here.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 28, 2026

Greptile Summary

This PR tightens three Resend/Loops/Azure DevOps integration touchpoints: fixes the unsubscribed dropdown default to avoid silent subscription-state resets, upgrades opaque json output types to fully-typed array schemas, and applies minor defensive improvements (eventName.trim(), success: true hard-code on the send success path).

  • Resend block: The unsubscribed dropdown now defaults to "Use Default" (id: ''), and the params transformer strips empty-string values to undefined before forwarding to sub-tools, preventing the API from receiving an unintended false on every contact operation.
  • Output schemas: get_email, list_contacts, and list_domains tools replace type: 'json' with structured array + items descriptors, giving downstream consumers accurate type metadata.
  • Azure DevOps: Icon import updated from removed AzureDevOpsIcon export to AzureIcon; Loops send_event now trims eventName for consistency.

Confidence Score: 5/5

All changes are targeted fixes with no new logic paths that could introduce regressions; the subscription-state default fix is the highest-impact change and is handled correctly.

The unsubscribed dropdown change correctly maps an empty string to undefined before the API call, so the 'Use Default' option cleanly omits the field rather than silently sending false. The output-schema upgrades are metadata-only. The icon swap, trim() addition, and success: true hardcode are all mechanical, low-risk corrections.

No files require special attention.

Important Files Changed

Filename Overview
apps/sim/blocks/blocks/azure_devops.ts Swaps AzureDevOpsIcon for AzureIcon after the previous export was removed; one-line mechanical change.
apps/sim/blocks/blocks/resend.ts Adds "Use Default" (id: '') as the first option and new default for the unsubscribed dropdown; updates params transformer to treat '' as undefined (omit from request), preventing silent subscription-state resets.
apps/sim/tools/loops/send_event.ts Adds .trim() to eventName on send, consistent with the existing trim on email and userId.
apps/sim/tools/resend/send.ts Hardcodes success: true in transformResponse; correct since this callback only runs on 2xx responses, and the previous result.success reference was redundant.
apps/sim/tools/resend/get_email.ts Promotes to, cc, bcc, replyTo, and tags output descriptors from opaque json to typed array with item schemas, improving downstream type information.
apps/sim/tools/resend/list_contacts.ts Replaces generic json output type for contacts with a typed array schema enumerating all contact fields.
apps/sim/tools/resend/list_domains.ts Replaces generic json output type for domains with a typed array schema enumerating id, name, status, region, and createdAt.

Reviews (2): Last reviewed commit: "fix(resend): drop unreachable send error..." | Re-trigger Greptile

Comment thread apps/sim/blocks/blocks/resend.ts Outdated
@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

Re: send.ts L104-119 error branch unreachable — agreed, the contract enforces success: z.literal(true) on 2xx and non-2xx is short-circuited by the executor before transformResponse runs. Removed the dead branch and reverted to trusting the contract guarantee in 0fb0844.

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@cursor review

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 0fb0844. Configure here.

@waleedlatif1 waleedlatif1 merged commit e78ac0f into staging May 28, 2026
13 checks passed
@waleedlatif1 waleedlatif1 deleted the waleedlatif1/validate-resend-integration branch May 28, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant