Destination type

SendGrid Email Destination

Use SendGrid Email destinations when routed events should become transactional or operational emails sent through a dedicated SendGrid account instead of a personal Gmail mailbox.

SENDGRID_EMAILSendGrid Mail Send APIPOSTCommunication
SendGrid Email destination delivery flowFastHook routes accepted events through a connection to a SendGrid Email destination and stores delivery attempt evidence.AcceptedRequestsource verifiedConnectionRoute branchfilters and transformsretry policySENDGRID_EMAILSendGrid EmailSendGrid Mail Send APIPOSTAttemptEvidencestatus + bodyDestination config owns target, auth, method, rate limit, disabled state, and delivery attempt evidence.
For SendGrid Email destinations, FastHook renders email templates, sends through SendGrid Mail Send API, and stores the SendGrid acceptance response as delivery attempt evidence.

When to use this destination type

Choose SENDGRID_EMAIL when the receiver target is SendGrid Mail Send API. Destinations are outbound delivery targets: they do not decide whether a source request should be accepted, and they do not own connection filters or transformations. They own where the final delivery goes and how FastHook should authenticate, pace, disable, and inspect that delivery.

A destination can be reused by multiple connections when several source branches should feed the same receiver. Reuse keeps receiver capacity, credentials, and attempt evidence attached to one destination id.

FastHook dashboard fields

In the dashboard, create a destination, set Destination Type to SENDGRID_EMAIL, then fill the fields below.

From email

Verified sender identity or domain email. fasthook.io addresses are admin-only.

From name

Optional display name shown by email clients.

To, Cc, and Bcc

Recipient templates separated by line, comma, or semicolon. Total recipients are limited to 10 per message.

Subject

Message subject with FastHook template tokens.

Text body

Plain-text message body. Defaults to the event payload.

HTML body

Optional HTML body. Use this only when the rendered output is intended for email clients.

Reply-To

Optional reply target.

API region

US global SendGrid API or EU SendGrid API.

API key

SendGrid API key with Mail Send permission. Treat it as a secret and rotate it if exposed.

Max delivery rate

Built-in one email per second pacing.

API config fields

The REST API stores destination-specific behavior under config. Use PATCH for focused edits and PUT only when your request contains the full config you want to keep.

config.from

Required verified sender email address. FastHook blocks fasthook.io and subdomains for normal users; FastHook admins can use them for system messages.

config.from_name

Optional display name for the From address.

config.to

Required recipient template or list of recipient templates. Supports FastHook template tokens.

config.cc

Optional cc recipient template or list.

config.bcc

Optional bcc recipient template or list.

config.reply_to

Optional Reply-To address.

config.subject

Subject template. Defaults to FastHook event {{event_id}}.

config.text_template

Plain-text body template. Defaults to {{payload}}.

config.html_template

Optional HTML body template.

config.api_base_url

Optional SendGrid API origin: https://api.sendgrid.com or https://api.eu.sendgrid.com.

config.auth_type

SENDGRID_API_KEY.

config.auth.api_key

Required SendGrid API key starting with SG.

config.rate_limit

Built-in delivery pacing for SendGrid email messages.

config.rate_limit_period

Rate-limit period. SendGrid Email destinations use second.

SendGrid Email destination config
{
  "name": "ops-sendgrid-alerts",
  "type": "SENDGRID_EMAIL",
  "config": {
    "from": "alerts@example.com",
    "from_name": "FastHook Alerts",
    "to": [
      "ops@example.com",
      "{{payload.owner.email}}"
    ],
    "cc": [
      "support@example.com"
    ],
    "subject": "FastHook event {{event_id}}",
    "text_template": "A webhook event needs review.\n\n{{payload}}",
    "html_template": "<pre>{{payload}}</pre>",
    "reply_to": "support@example.com",
    "api_base_url": "https://api.sendgrid.com",
    "auth_type": "SENDGRID_API_KEY",
    "auth": {
      "api_key": "SG.your-sendgrid-api-key"
    },
    "rate_limit": 1,
    "rate_limit_period": "second"
  }
}
Create SendGrid Email destination with cURL
curl -X POST "https://api.fasthook.io/v1/destinations" \
  -H "Authorization: Bearer $FASTHOOK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "ops-sendgrid-alerts",
  "type": "SENDGRID_EMAIL",
  "config": {
    "from": "alerts@example.com",
    "from_name": "FastHook Alerts",
    "to": [
      "ops@example.com",
      "{{payload.owner.email}}"
    ],
    "cc": [
      "support@example.com"
    ],
    "subject": "FastHook event {{event_id}}",
    "text_template": "A webhook event needs review.\n\n{{payload}}",
    "html_template": "<pre>{{payload}}</pre>",
    "reply_to": "support@example.com",
    "api_base_url": "https://api.sendgrid.com",
    "auth_type": "SENDGRID_API_KEY",
    "auth": {
      "api_key": "SG.your-sendgrid-api-key"
    },
    "rate_limit": 1,
    "rate_limit_period": "second"
  }
}'

Authentication

Destination authentication is outbound. It helps the receiver trust or accept FastHook delivery, and it is separate from source authentication that verifies the original webhook producer.

  • SendGrid API key with Mail Send access
  • Verified SendGrid sender identity or authenticated sending domain

HTTP methods and rate limit

This destination type uses the methods below for delivery attempts. Rate limits apply at the destination boundary, so every connection that targets the same destination shares that capacity.

POST

Rate limit: Locked to 1 request per second.

Delivery behavior

  • FastHook renders recipient, subject, text, and HTML templates per delivery, then sends through SendGrid's Mail Send API.
  • SendGrid returns HTTP 202 when the message is accepted for processing. Final delivery, bounce, block, or spam placement is tracked in SendGrid activity and events.
  • The From address must be a SendGrid verified sender identity or belong to an authenticated sending domain.
  • FastHook blocks fasthook.io and subdomains for normal users so customer accounts cannot send as FastHook; FastHook admins can use them for system messages.
  • A single rendered delivery can include up to 10 total To, Cc, and Bcc recipients.
  • SendGrid Email destinations are locked to 1 request per second to reduce accidental email bursts.

Setup checklist

  1. Open SendGrid and verify a Single Sender identity or authenticate a sending domain.
  2. Create a SendGrid API key with Mail Send permission.
  3. Create a FastHook destination and choose SENDGRID_EMAIL as the destination type.
  4. Set From email to the verified sender or authenticated domain address. Use fasthook.io only for FastHook admin-owned system destinations.
  5. Set To recipients, subject, text body, and optional HTML body. Use template tokens only where the rendered values are valid email content.
  6. Choose the US or EU SendGrid API region that matches the SendGrid account.
  7. Paste the SendGrid API key, then connect only email-worthy events through filters.

Troubleshooting

Saving fails because From email uses fasthook.io.

Use a sender identity or authenticated domain controlled by the team. FastHook-owned domains are admin-only.

Attempts fail with 401 or 403.

Check that the API key starts with SG., has Mail Send permission, belongs to the selected SendGrid region, and has not been revoked.

Attempts fail because the sender is not verified.

Verify a Single Sender identity or complete domain authentication in SendGrid before using that From address.

SendGrid returns 202 but the recipient does not see the email.

Open SendGrid activity or Event Webhook logs to check processing, bounce, block, deferral, spam, or suppression status.

Too many emails are sent.

Put filters on the connection before the SendGrid destination and keep the built-in 1 request per second pacing.

Related docs