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.
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 emailVerified sender identity or domain email. fasthook.io addresses are admin-only.
From nameOptional display name shown by email clients.
To, Cc, and BccRecipient templates separated by line, comma, or semicolon. Total recipients are limited to 10 per message.
SubjectMessage subject with FastHook template tokens.
Text bodyPlain-text message body. Defaults to the event payload.
HTML bodyOptional HTML body. Use this only when the rendered output is intended for email clients.
Reply-ToOptional reply target.
API regionUS global SendGrid API or EU SendGrid API.
API keySendGrid API key with Mail Send permission. Treat it as a secret and rotate it if exposed.
Max delivery rateBuilt-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.fromRequired verified sender email address. FastHook blocks fasthook.io and subdomains for normal users; FastHook admins can use them for system messages.
config.from_nameOptional display name for the From address.
config.toRequired recipient template or list of recipient templates. Supports FastHook template tokens.
config.ccOptional cc recipient template or list.
config.bccOptional bcc recipient template or list.
config.reply_toOptional Reply-To address.
config.subjectSubject template. Defaults to FastHook event {{event_id}}.
config.text_templatePlain-text body template. Defaults to {{payload}}.
config.html_templateOptional HTML body template.
config.api_base_urlOptional SendGrid API origin: https://api.sendgrid.com or https://api.eu.sendgrid.com.
config.auth_typeSENDGRID_API_KEY.
config.auth.api_keyRequired SendGrid API key starting with SG.
config.rate_limitBuilt-in delivery pacing for SendGrid email messages.
config.rate_limit_periodRate-limit period. SendGrid Email destinations use second.
{
"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"
}
}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.
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
- Open SendGrid and verify a Single Sender identity or authenticate a sending domain.
- Create a SendGrid API key with Mail Send permission.
- Create a FastHook destination and choose SENDGRID_EMAIL as the destination type.
- Set From email to the verified sender or authenticated domain address. Use fasthook.io only for FastHook admin-owned system destinations.
- Set To recipients, subject, text body, and optional HTML body. Use template tokens only where the rendered values are valid email content.
- Choose the US or EU SendGrid API region that matches the SendGrid account.
- 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.