Integration reference
Resend Trigger and Action reference
Send and retrieve emails, work with attachments, and start Workflows from signed Resend events.
Authentication
Connect a Full access Resend API key. Sending access cannot manage webhooks. FastHook stores the key encrypted and identifies this connection by the validated key, because Resend does not return an account email for API keys.
- Trigger account type:
oauth2; reconnect byoauth. - Action connection type:
oauth2; available modes: Connected account.
Create or reuse the account from a Trigger or Action dialog, or manage it under Settings → Connected accounts. See Authentication and permissions for scopes and access diagnostics, or Connected accounts for reuse, reconnect, revocation, and credential rotation.
Scopes and permissions
Base Trigger authorization requests: full_access.
View 1 OAuth scopes used by current Actions
full_access
Operation-specific requirements appear in the tables below. Custom event selections can add scopes dynamically, so the current Trigger or Action dialog remains authoritative for the exact consent request.
Use Resend as a Trigger
The current provider manifest contains 37 available Trigger definitions. Representative definitions include:
- Email delivered
- Email bounced
- Email received
- Contact created
View all 37 available Trigger definitions
| Trigger | Manifest key | Delivery | Additional scopes |
|---|---|---|---|
| Email sent | resend.email_sent.instant | instant | full_access |
| Email delivered | resend.email_delivered.instant | instant | full_access |
| Email delivery delayed | resend.email_delivery_delayed.instant | instant | full_access |
| Email bounced | resend.email_bounced.instant | instant | full_access |
| Email complained | resend.email_complained.instant | instant | full_access |
| Email opened | resend.email_opened.instant | instant | full_access |
| Email clicked | resend.email_clicked.instant | instant | full_access |
| Email failed | resend.email_failed.instant | instant | full_access |
| Email scheduled | resend.email_scheduled.instant | instant | full_access |
| Email suppressed | resend.email_suppressed.instant | instant | full_access |
| Email received | resend.email_received.instant | instant | full_access |
| Contact created | resend.contact_created.instant | instant | full_access |
| Contact updated | resend.contact_updated.instant | instant | full_access |
| Contact deleted | resend.contact_deleted.instant | instant | full_access |
| Contact topics updated | resend.contact_topics_updated.instant | instant | full_access |
| Domain created | resend.domain_created.instant | instant | full_access |
| Domain updated | resend.domain_updated.instant | instant | full_access |
| Domain deleted | resend.domain_deleted.instant | instant | full_access |
| Suppression added | resend.suppression_added.instant | instant | full_access |
| Suppression removed | resend.suppression_removed.instant | instant | full_access |
| Topic created | resend.topic_created.instant | instant | full_access |
| Topic updated | resend.topic_updated.instant | instant | full_access |
| Topic deleted | resend.topic_deleted.instant | instant | full_access |
| Inbox created | resend.inbox_created.instant | instant | full_access |
| Inbox updated | resend.inbox_updated.instant | instant | full_access |
| Inbox deleted | resend.inbox_deleted.instant | instant | full_access |
| Inbox thread created | resend.inbox_thread_created.instant | instant | full_access |
| Inbox email received | resend.inbox_email_received.instant | instant | full_access |
| Inbox email sent | resend.inbox_email_sent.instant | instant | full_access |
| Inbox thread folder updated | resend.inbox_thread_folder_updated.instant | instant | full_access |
| Inbox thread assigned | resend.inbox_thread_assigned.instant | instant | full_access |
| Inbox thread unassigned | resend.inbox_thread_unassigned.instant | instant | full_access |
| Inbox thread labels updated | resend.inbox_thread_labels_updated.instant | instant | full_access |
| Inbox draft created | resend.inbox_draft_created.instant | instant | full_access |
| Inbox draft updated | resend.inbox_draft_updated.instant | instant | full_access |
| Inbox draft sent | resend.inbox_draft_sent.instant | instant | full_access |
| Inbox draft deleted | resend.inbox_draft_deleted.instant | instant | full_access |
Choose the narrowest event definition that fits the Workflow. Configure provider-specific resource and event filters in the Source dialog before adding broader Workflow Filters.
Use Resend Actions
The current Action manifest contains 15 operations. Representative Actions include:
- Send Email
- Get Sent Email
- List Received Emails
- Get Usage
View all 15 available Action definitions
| Action | Manifest key | Access and auth | Manifest rate limit |
|---|---|---|---|
| Send Email | resend.send_email | full_accessFastHook-managed account | 10/second |
| List Sent Emails | resend.list_emails | full_accessFastHook-managed account | 10/second |
| Get Sent Email | resend.get_email | full_accessFastHook-managed account | 10/second |
| Update Scheduled Email | resend.update_email | full_accessFastHook-managed account | 10/second |
| Cancel Scheduled Email | resend.cancel_email | full_accessFastHook-managed account | 10/second |
| Send Batch Emails | resend.send_batch_emails | full_accessFastHook-managed account | 10/second |
| List Sent Email Attachments | resend.list_sent_attachments | full_accessFastHook-managed account | 10/second |
| Get Sent Email Attachment | resend.get_sent_attachment | full_accessFastHook-managed account | 10/second |
| List Received Emails | resend.list_received_emails | full_accessFastHook-managed account | 10/second |
| Get Received Email | resend.get_received_email | full_accessFastHook-managed account | 10/second |
| List Received Email Attachments | resend.list_received_attachments | full_accessFastHook-managed account | 10/second |
| Get Received Email Attachment | resend.get_received_attachment | full_accessFastHook-managed account | 10/second |
| List Domains | resend.list_domains | full_accessFastHook-managed account | 10/second |
| Get Domain | resend.get_domain | full_accessFastHook-managed account | 10/second |
| Get Usage | resend.get_usage | full_accessFastHook-managed account | 10/second |
The Action editor reads its required permissions, fields, remote resource pickers, output schema, and rate limit from the provider manifest. Available fields can change with the selected operation and authentication mode.
Build a Workflow
- Create a Source using a Resend Trigger definition.
- Create a Workflow with that Source as its Trigger.
- Add the required Resend Action and select the connected account.
- Map Trigger or earlier-Step data into the Action fields with the field picker.
- Add a Filter, Paths, Delay, or Transformation when the route needs it.
- Activate the Workflow, produce a controlled event, and verify the run in Audit and in Resend.
Troubleshooting Resend
- The account is missing or cannot be selected
- Confirm the active FastHook team, provider, account status, and authentication mode. A disabled or revoked account cannot execute an Action.
- A resource picker is empty
- Verify that the connected provider identity can access the resource itself. OAuth consent does not add workspace, repository, channel, drive, project, base, or record permissions.
- The editor asks for additional scopes
- Reconnect the same account from the affected Trigger or Action so FastHook can request its current manifest scopes. Then reopen the editor and select the resource again.
- An active Workflow returns 401, 403, or a permission error
- Compare the selected operation’s access requirements below with the account recorded in Audit. Check provider-side membership and object access before repeating the Action.
- The provider returns 429 or a temporary 5xx
- Inspect the Step attempt and retryability in Audit. FastHook can retry temporary failures, but provider quotas and idempotency rules still apply.
Provider-specific checks
- Email Delivered means acceptance by the recipient mail server, not inbox placement or reading. Open and click events depend on tracking settings.
- FastHook creates an owned webhook and verifies its signing secret. Each delivery is checked against the exact body, message ID and timestamp, with a five-minute freshness window and delivery deduplication.
- The onboarding sender can send to the account owner's email for testing. Sending to other recipients requires an eligible verified domain and available account quota.
- Attachment fields accept the API's URL or base64 format. Automatic FastHook File conversion and OAuth are not included. Explicitly re-testing a Send Email action can send another email.
- Disconnect removes owned webhooks and FastHook credentials. Revoke the API key separately in Resend when it should no longer work elsewhere. Other Resend API endpoints remain outside this initial email release.