Skip to main content
sendgrid icon

SendGrid Connector

SourceAPI DocsAPI ChangelogConnector Changelog

Description​

SendGrid is a cloud-based email delivery platform owned by Twilio. This component allows sending transactional and marketing emails, managing contacts, and tracking email analytics.

API Documentation​

This component was built using the SendGrid API v3.

Connections​

API Key​

key: apiKey

To authenticate with SendGrid, an API key is required.

Prerequisites​

  • A SendGrid account

Setup Steps​

To generate an API key:

  1. Log in to the SendGrid Console
  2. Navigate to Settings > API Keys
  3. Click Create API Key
  4. Enter a name for the API key
  5. Select the appropriate access level:
    • Full Access - Grants all permissions (recommended for integration use)
    • Restricted Access - Grants specific permissions based on requirements
  6. Click Create & View
  7. Copy the API key value (it will only be displayed once)

For more information about creating API keys, refer to the SendGrid API Keys documentation.

Configure the Connection​

  • Enter the API key into the API Key field in the connection configuration
API Key Security

The API key is only displayed once upon creation. Store it securely. If the key is lost, a new one must be generated.

InputNotesExample
API Key

The SendGrid API key used for authentication. Generate one in Settings > API Keys. Learn more

SG.1a2b3c4d5e6f7g8h.9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z

Triggers​

Managed Webhook Events​

Receive event webhook notifications from SendGrid. Automatically creates and manages a webhook subscription when the instance is deployed, and removes the subscription when the instance is deleted. | key: eventWebhook

InputNotesExample
Events

The email event types to subscribe to. Selected events trigger webhook notifications when they occur.

delivered
Friendly Name

A friendly name to help differentiate between multiple webhooks.

My Event Webhook
Connection

The SendGrid connection to use.

The Event Webhook trigger can manage SendGrid event webhook subscriptions for an instance. Unlike traditional webhook setups that require manual configuration in the SendGrid dashboard, this trigger handles the entire webhook lifecycle.

How It Works​

  • On Instance Deploy: The trigger automatically creates a webhook endpoint in the SendGrid account pointing to the instance's unique webhook URL. If a webhook with the same ID already exists in the stored state, it updates the existing webhook instead of creating a duplicate. The trigger also automatically enables signature verification and stores the public key for validating incoming requests.
  • On Instance Deletion: The trigger automatically removes the webhook endpoint from the SendGrid account.

Event Types​

Configure the trigger to receive notifications for the following email events:

Event Types (11)
EventDescription
DeliveredMessage has been successfully delivered to the receiving server
BounceReceiving server could not or would not accept the message
DeferredReceiving server temporarily rejected the message
ProcessedMessage has been received and is ready to be delivered
DroppedMessage has been dropped (e.g., invalid header, spam content)
OpenRecipient has opened the HTML message
ClickRecipient clicked on a link within the message
Spam ReportRecipient marked the message as spam
UnsubscribeRecipient clicked the unsubscribe link
Group UnsubscribeRecipient unsubscribed from a specific group
Group ResubscribeRecipient resubscribed to a specific group

Enable the specific events to monitor by configuring the corresponding inputs when setting up the trigger.

Signature Verification​

The trigger automatically verifies the authenticity of incoming webhook requests using SendGrid's ECDSA signature verification. When the webhook is created during instance deployment, signature verification is enabled and the public key is stored in the instance state.

For each incoming request, the trigger:

  1. Extracts the signature and timestamp from the X-Twilio-Email-Event-Webhook-Signature and X-Twilio-Email-Event-Webhook-Timestamp headers
  2. Converts the stored public key to ECDSA format
  3. Verifies the signature against the raw request body
  4. Rejects requests with invalid signatures to prevent spoofing

This ensures that only genuine requests from SendGrid are processed by the flow.

Configuration​

When configuring the Event Webhook trigger, specify:

  • SendGrid Connection: The authenticated SendGrid API connection
  • Friendly Name: A descriptive name to help differentiate between multiple webhooks
  • Event Type Toggles: Enable the specific events to monitor (Delivered, Bounce, Open, Click, etc.)

Returned Data​

The trigger returns the webhook payload containing an array of email events:

Example Payload
{
"payload": {
"headers": {
"Content-Type": "application/json;charset=utf-8",
"X-Twilio-Email-Event-Webhook-Signature": "MEQCIExampleSignatureBase64...",
"X-Twilio-Email-Event-Webhook-Timestamp": "1700000000"
},
"body": {
"data": [
{
"email": "user@example.com",
"event": "delivered",
"timestamp": 1700000000,
"sg_event_id": "ZGVsaXZlcmVkLTAtMTIzNDU2NzgtRXhhbXBsZQ==",
"sg_message_id": "ExampleMessageId123.recvd-abc123",
"response": "250 2.0.0 OK DMARC:Pass",
"category": ["Marketing", "Newsletter"],
"tls": 1
}
]
}
}
}

For complete event payload schemas, see the SendGrid Event Webhook Reference.

Example Payload for Managed Webhook Events⤓
Loading…

New and Updated Messages​

Retrieves existing and ongoing messages from the SendGrid Email Activity Feed. Load history once, check for changes on a schedule, or both. | key: pollChangesTrigger

InputNotesExample
Look-back Date

The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. SendGrid retains activity for 30 days, so dates older than 30 days are clamped to the retention floor. Leave empty to sync the full 30-day retention window.

2026-01-01
Connection

The SendGrid connection to use.

Show New Records

SendGrid surfaces a single last_event_time per message with no per-event timeline, so newly created messages cannot be distinguished from updated ones. Every matching record is reported on the updated branch, so this input has no effect.

true
Show Updated Records

When true, records whose last_event_time falls within the polling window are included on the updated branch.

true

The New and Updated Messages trigger polls SendGrid's Email Activity Feed (GET /v3/messages) on a configured schedule and emits messages whose last_event_time falls within the polling window.

When To Use This Trigger vs The Event Webhook Trigger​

Webhooks are the recommended primary mechanism for receiving SendGrid email events. The Managed Webhook Events trigger (eventWebhook) handles subscription lifecycle and signature verification automatically.

This polling trigger is a fallback for historical or backfill ingestion scenarios:

  • When a flow needs to catch up on events that occurred before a webhook subscription existed.
  • When integrating with environments where outbound webhooks from SendGrid cannot reach the flow (firewalled, on-premise, etc.).
  • When verifying or reconciling webhook-delivered events against the authoritative Email Activity Feed.

For new event-driven flows, prefer the Event Webhook trigger.

Requirements​

  • An API key with the Email Activity permission.
  • The paid Email Activity History add-on enabled on the SendGrid account. Without it, the endpoint returns a 403/401 and the trigger surfaces a clear runtime error.

How It Works​

The trigger maintains a single ISO 8601 cursor (lastPolledAt) in polling state. Each run sends a SQL-like query:

last_event_time BETWEEN TIMESTAMP "<fromIso>" AND TIMESTAMP "<toIso>"

The window is constructed using three safeguards:

  • 30-day retention clamp: SendGrid retains Email Activity for 30 days. On bootstrap (no prior cursor) the lower bound is Look-back Date if one is set and now - 30d otherwise; a persisted cursor or a look-back date older than 30 days is clamped forward to now - 30d. Older events are not available from the feed.
  • 60-second eventual-consistency overlap: events surface in the feed a few minutes after the underlying send. The upper bound is set to now - 60s to avoid tail-cutting events that are still propagating. The next recurrence resumes from that bound, and because BETWEEN is inclusive at both ends, a message landing exactly on it is delivered twice.
  • 6-hour window-walking step on truncation: the feed caps responses at 1000 records per request and the SendGrid query DSL does not expose ORDER BY. When a response is truncated (1000 records returned), the cursor advances by a fixed 6-hour step instead of jumping to now. This deterministically drains a backlog without dropping records in the un-fetched tail of the window.

Initial Sync

An initial sync seeds a complete starting state rather than a change feed, so inputs that narrow which changes are reported would leave gaps in it. This trigger suppresses none of them during the sync. The sync begins on the first recurrence, when the trigger has no stored position, and seeds each record once as its window walks forward. It covers the full 30-day Email Activity retention window unless Look-back Date (YYYY-MM-DD) starts it later. Leaving that input empty does not skip the sync; the window still starts at the retention floor, and a date older than 30 days is clamped forward to it.

The sync's end is not fixed when it starts. Each recurrence recomputes its ceiling from the current time, so a message whose activity lands mid-drain is swept into the sync rather than held for the schedule. The trigger stores the upper bound it queried as its position, or advances a fixed six hours when the response was truncated, never a timestamp taken from the records received, and the first scheduled recurrence resumes from exactly there so nothing is lost. No field in the payload marks that handoff. Batching does not change the drain: the six-hour step is unconditional, so a full 30-day window takes roughly 120 recurrences either way.

Show Updated Records applies during the sync exactly as it does afterward. The trigger has no page-size or field-selection input, so nothing else behaves differently between the sync and the schedule.

Batching

Batching is enabled per flow on this trigger: each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and batch concurrency can both be overridden per instance. Raising concurrency increases the request volume sent to SendGrid.

To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default or choose Custom batch size. Batch Concurrency is optional; leave it blank for no batch-level limit.

With batching off, a downstream step reads body.data.created and body.data.updated. With batching on those fields do not exist: each execution receives one changeType/record item, or an array of them when the batch size is greater than 1, always tagged "changeType": "updated" because created is empty. Any step reading the older shape must be updated before batching is enabled. Because batching is enabled per flow, that change is scoped to that flow rather than to the component or to other flows using the same trigger.

Returned Data​

The trigger returns separate arrays for created and updated records. Because of the feed limitation described above, created is always empty and all matching records are placed in updated. Fields shown are representative. The full response object includes additional properties.

Example Response (Polling)
{
"payload": {
"body": {
"data": {
"created": [],
"updated": [
{
"msg_id": "abc12345.recvd-67890-XYZ-1-1234567-1.0",
"from_email": "sender@example.com",
"to_email": "user@example.com",
"subject": "Hello from Acme!",
"status": "delivered",
"last_event_time": "2026-05-27T14:30:00Z",
"opens_count": 0,
"clicks_count": 0,
"api_key_id": "abc12345defg67890hijkXYZ",
"template_id": "d-exampletemplateid1234567890abcdef"
}
]
}
}
}
}

With batching on, each execution receives one record tagged with how it changed, or an array of such items when the batch size is greater than 1. The created and updated arrays are not part of this shape.

Example Response (Batched Item)
{
"changeType": "updated",
"record": {
"msg_id": "abc12345.recvd-67890-XYZ-1-1234567-1.0",
"from_email": "sender@example.com",
"to_email": "user@example.com",
"subject": "Hello from Acme!",
"status": "delivered",
"last_event_time": "2026-05-27T14:30:00Z"
}
}

For the full message schema, see the SendGrid Email Activity Feed reference.

Example Payload for New and Updated Messages⤓
Loading…

Webhook​

Receives webhook requests from SendGrid for manually configured webhook subscriptions. | key: webhook

A SendGrid event webhook can be configured to send information to a flow's webhook URL when an email is received.

Example Payload for Webhook⤓
Loading…

Data Sources​

Select Contact Lists​

Fetches a list of contact lists from SendGrid. | key: sendGridListsDataSource | type: picklist

InputNotesExample
Connection

The SendGrid connection to use.

Example Payload for Select Contact Lists⤓
Loading…

Select Webhook​

Selects an event webhook from a SendGrid account. | key: selectWebhook | type: picklist

InputNotesExample
Connection

The SendGrid connection to use.

Example Payload for Select Webhook⤓
Loading…

Actions​

Add or Update Contact​

Adds or updates a contact. Can also be used to add contacts to a list. | key: addOrUpdateContact

InputNotesExample
Contacts

An array of contact objects to add or update. See SendGrid docs for contact object structure.

[
  {
    "email": "ryan.testing@example.com",
    "custom_fields": {
      "w2": "George"
    }
  },
  {
    "email": "cassie.testing@example.com",
    "first_name": "Cassie",
    "last_name": "Testing",
    "custom_fields": {
      "w1": "Human"
    }
  }
]
List IDs

Comma-separated IDs of the lists to add the contact to. These lists must already exist.

ca3f4b4f-13a5-4321-9876-a1b2c3d4e5f6,d7e8f9a0-b1c2-d3e4-f5a6-b7c8d9e0f1a2
Connection

The SendGrid connection to use.

Example Payload for Add or Update Contact⤓
Loading…

Create List​

Creates a new contact list. | key: createList

InputNotesExample
List Name

The display name for the new contact list.

My New Contact List
Connection

The SendGrid connection to use.

Example Payload for Create List⤓
Loading…

Create Webhook​

Creates a new Event Webhook configuration to receive email event data. | key: createWebhook

InputNotesExample
Enabled

When true, enables the Event Webhook.

true
Events

The email event types to subscribe to. Selected events trigger webhook notifications when they occur.

delivered
Friendly Name

A friendly name to help differentiate between multiple webhooks.

My Event Webhook
Connection

The SendGrid connection to use.

Webhook URL

The URL where SendGrid will send event data.

https://example.com/webhook
Example Payload for Create Webhook⤓
Loading…

Delete Webhook​

Deletes an Event Webhook configuration. | key: deleteWebhook

InputNotesExample
Connection

The SendGrid connection to use.

Webhook ID

The unique identifier for the Event Webhook configuration.

77d4a5da-7015-11ed-a1eb-0242ac120002
Example Payload for Delete Webhook⤓
Loading…

Get All Field Definitions​

Retrieves all custom field definitions with pagination support. | key: getAllFieldDefinitions

InputNotesExample
Fetch All

When true, fetches all pages of results using pagination.

false
Pagination

Page size and page token controls for paging through results.

Connection

The SendGrid connection to use.

Example Payload for Get All Field Definitions⤓
Loading…

Get All Lists​

Retrieves all contact lists with pagination support. | key: getAllLists

InputNotesExample
Fetch All

When true, fetches all pages of results using pagination.

false
Pagination

Page size and page token controls for paging through results.

Connection

The SendGrid connection to use.

Example Payload for Get All Lists⤓
Loading…

Get Contacts by Emails​

Retrieves contacts by their email addresses. | key: getContactsByEmails

InputNotesExample
Emails

Comma-separated email addresses to search for.

john.doe@example.com,jane.smith@example.com
Connection

The SendGrid connection to use.

Example Payload for Get Contacts by Emails⤓
Loading…

Get Import Status​

Checks the status of a contact import job. | key: getImportStatus

InputNotesExample
Job ID

The job ID returned from Import Contacts, Add/Update Contact, or Delete Contacts operations.

f8a7b6c5-d4e3-f2a1-b0c9-d8e7f6a5b4c3
Connection

The SendGrid connection to use.

Example Payload for Get Import Status⤓
Loading…

Get List by ID​

Retrieves a specific contact list by its ID. | key: getListById

InputNotesExample
Include Sample Contacts

When true, includes a sample of contacts in the response.

false
List ID

The unique identifier for the contact list to retrieve.

ca3f4b4f-13a5-4321-9876-a1b2c3d4e5f6
Connection

The SendGrid connection to use.

Example Payload for Get List by ID⤓
Loading…

Get Webhook​

Retrieves an Event Webhook configuration by ID. | key: getWebhook

InputNotesExample
Connection

The SendGrid connection to use.

Webhook ID

The unique identifier for the Event Webhook configuration.

77d4a5da-7015-11ed-a1eb-0242ac120002
Example Payload for Get Webhook⤓
Loading…

Initiate Contacts Import​

Initiates a CSV contact import. Returns a URL and headers for uploading the CSV file. | key: initiateContactsImport

InputNotesExample
Field Mappings

An array of field definition IDs to map the uploaded CSV columns. Use null to skip a column. Get IDs from 'Get All Field Definitions' action.

[
  null,
  "w1",
  "_rf1"
]
Is Compressed

When true, indicates that the CSV file will be gzip-compressed.

false
List IDs

Comma-separated IDs of the lists to add the contact to. These lists must already exist.

ca3f4b4f-13a5-4321-9876-a1b2c3d4e5f6,d7e8f9a0-b1c2-d3e4-f5a6-b7c8d9e0f1a2
Connection

The SendGrid connection to use.

Example Payload for Initiate Contacts Import⤓
Loading…

List Webhooks​

Lists all Event Webhook configurations. | key: listWebhooks

InputNotesExample
Connection

The SendGrid connection to use.

Example Payload for List Webhooks⤓
Loading…

Raw Request​

Sends a raw HTTP request to SendGrid. | key: rawRequest

InputNotesExample
Connection

The SendGrid connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/templates), The base URL is already included (https://api.sendgrid.com/v3). For example, to connect to https://api.sendgrid.com/v3/templates, only /templates is entered in this field.

/templates
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

Send Email​

Sends a single email to one or more recipients. | key: sendEmail

InputNotesExample
Attachment Details

Configure a single file attachment including its display mode, MIME type, and content ID.

BCC

The recipient's email address, or a comma-separated list of recipient email addresses to BCC.

john.doe@example.com,jane.smith@example.com
CC

The recipient's email address, or a comma-separated list of recipient email addresses to CC.

john.doe@example.com,jane.smith@example.com
Attachment Content

Provide attachment data to send with the email. The 'File Name' field is required when using this input and should reference the data output from a previous action.

File Name

Provide a name for the file to attach. The 'Attachment Content' field is required when using this input.

reports.csv
From Email

The verified sender email address that appears in the 'From' field. Must be a verified sender in SendGrid.

sender@example.com
From Name

The display name that appears alongside the sender email address in the recipient's inbox.

John Doe
HTML

The HTML-formatted content of the email. When provided, takes priority over the plain-text body in clients that support HTML rendering.

Hello from <b>Acme!</b>
Multiple Attachments

Provide an array of attachments to send with the email. See SendGrid API documentation for more information.

{"content":"<base64 encoded content>","disposition":"inline","filename":"reports.csv","type":"text/csv","content_id":"12345"}
Personalizations

Allows overwriting multiple properties of the email such as recipients, subject, and send time per recipient. See SendGrid personalizations docs for examples.

[
  {
    "to": [
      {
        "email": "john@example.com"
      }
    ],
    "send_at": 1600188812
  },
  {
    "to": [
      {
        "email": "jane@example.com"
      }
    ],
    "send_at": 1600275471
  }
]
Reply To Email

The email address recipients see when they reply. Only used when different from the sender address.

support@example.com
Reply To Name

The display name used for replies. Required when Reply To Email is provided.

John Doe
Connection

The SendGrid connection to use.

Subject

The subject line displayed in the recipient's inbox. Supports UTF-8 encoding.

Hello from Acme!
Subscription Tracking

When true, inserts a subscription management link at the bottom of the text and HTML bodies of the email.

false
Text

The plain-text content of the email, used as a fallback when HTML is not supported by the recipient's email client.

Here's the body of a notification.
To

The recipient's email address, or a comma-separated list of recipient email addresses.

john.doe@example.com,jane.smith@example.com
Example Payload for Send Email⤓
Loading…

Send Email with Dynamic Template​

Sends an email using a SendGrid dynamic template with complex nested JSON data. | key: sendEmailWithDynamicTemplate

InputNotesExample
BCC

The recipient's email address, or a comma-separated list of recipient email addresses to BCC. Will be ignored if 'Personalizations' is provided.

john.doe@example.com,jane.smith@example.com
CC

The recipient's email address, or a comma-separated list of recipient email addresses to CC. Will be ignored if 'Personalizations' is provided.

john.doe@example.com,jane.smith@example.com
Dynamic Template Data

The data to be used for the dynamic template. Supports complex nested JSON structures including arrays and objects for order confirmations, customer data, and more.

{
  "store": {
    "name": "Acme Store",
    "code": "ACME01",
    "url": "https://store.example.com",
    "supportEmail": "support@acmestore.com"
  },
  "customer": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "phoneNumber": "+1-555-123-4567",
    "customerId": "CUST-12345"
  }
}
From Email

The verified sender email address that appears in the 'From' field. Must be a verified sender in SendGrid.

sender@example.com
From Name

The display name that appears alongside the sender email address in the recipient's inbox.

John Doe
Personalizations

Advanced: Provide a personalizations array to send different variations to different recipients. When provided, this will override 'To', 'CC', and 'BCC' inputs. Each personalization will automatically include the dynamic template data.

[
  {
    "to": [
      {
        "email": "john@example.com"
      }
    ],
    "send_at": 1600188812
  },
  {
    "to": [
      {
        "email": "jane@example.com"
      }
    ],
    "send_at": 1600275471
  }
]
Reply To Email

The email address recipients see when they reply. Only used when different from the sender address.

support@example.com
Reply To Name

The display name used for replies. Required when Reply To Email is provided.

John Doe
Connection

The SendGrid connection to use.

Template ID

The unique identifier for the dynamic template. Found in the SendGrid dashboard under Email API > Dynamic Templates.

1234567890
To

The recipient's email address, or a comma-separated list of recipient email addresses. Required if 'Personalizations' is not provided. Will be ignored if 'Personalizations' is provided.

john.doe@example.com,jane.smith@example.com
Example Payload for Send Email with Dynamic Template⤓
Loading…

Send Multiple Emails​

Sends a separate email to each recipient. | key: sendMultipleEmails

InputNotesExample
Attachment Details

Configure a single file attachment including its display mode, MIME type, and content ID.

BCC

The recipient's email address, or a comma-separated list of recipient email addresses to BCC.

john.doe@example.com,jane.smith@example.com
CC

The recipient's email address, or a comma-separated list of recipient email addresses to CC.

john.doe@example.com,jane.smith@example.com
Attachment Content

Provide attachment data to send with the email. The 'File Name' field is required when using this input and should reference the data output from a previous action.

File Name

Provide a name for the file to attach. The 'Attachment Content' field is required when using this input.

reports.csv
From Email

The verified sender email address that appears in the 'From' field. Must be a verified sender in SendGrid.

sender@example.com
From Name

The display name that appears alongside the sender email address in the recipient's inbox.

John Doe
HTML

The HTML-formatted content of the email. When provided, takes priority over the plain-text body in clients that support HTML rendering.

Hello from <b>Acme!</b>
Multiple Attachments

Provide an array of attachments to send with the email. See SendGrid API documentation for more information.

{"content":"<base64 encoded content>","disposition":"inline","filename":"reports.csv","type":"text/csv","content_id":"12345"}
Personalizations

Allows overwriting multiple properties of the email such as recipients, subject, and send time per recipient. See SendGrid personalizations docs for examples.

[
  {
    "to": [
      {
        "email": "john@example.com"
      }
    ],
    "send_at": 1600188812
  },
  {
    "to": [
      {
        "email": "jane@example.com"
      }
    ],
    "send_at": 1600275471
  }
]
Reply To Email

The email address recipients see when they reply. Only used when different from the sender address.

support@example.com
Reply To Name

The display name used for replies. Required when Reply To Email is provided.

John Doe
Connection

The SendGrid connection to use.

Subject

The subject line displayed in the recipient's inbox. Supports UTF-8 encoding.

Hello from Acme!
Text

The plain-text content of the email, used as a fallback when HTML is not supported by the recipient's email client.

Here's the body of a notification.
To

The recipient's email address, or a comma-separated list of recipient email addresses.

john.doe@example.com,jane.smith@example.com
Example Payload for Send Multiple Emails⤓
Loading…

Test Webhook​

Tests an Event Webhook by sending a fake event notification. | key: testWebhook

InputNotesExample
Connection

The SendGrid connection to use.

Test URL

The URL where the test event will be sent.

https://example.com/test-webhook
Example Payload for Test Webhook⤓
Loading…

Toggle Signature Verification​

Enables or disables signature verification for an Event Webhook. | key: toggleSignatureVerification

InputNotesExample
Enable Signature Verification

When true, enables signature verification for webhook requests.

true
Connection

The SendGrid connection to use.

Webhook ID

The unique identifier for the Event Webhook configuration.

77d4a5da-7015-11ed-a1eb-0242ac120002
Example Payload for Toggle Signature Verification⤓
Loading…

Update Webhook​

Updates an existing Event Webhook configuration. | key: updateWebhook

InputNotesExample
Enabled

When true, enables the Event Webhook.

true
Events

The email event types to subscribe to. Selected events trigger webhook notifications when they occur.

delivered
Friendly Name

A friendly name to help differentiate between multiple webhooks.

My Event Webhook
Connection

The SendGrid connection to use.

Webhook URL

The URL where SendGrid will send event data.

https://example.com/webhook
Webhook ID

The unique identifier for the Event Webhook configuration.

77d4a5da-7015-11ed-a1eb-0242ac120002
Example Payload for Update Webhook⤓
Loading…

Changelog​

2026-09-17​

Restructured action inputs, improved the designer configuration experience, and expanded the polling trigger for large data syncs:

  • Get All Lists and Get All Field Definitions group their page size and page token inputs into Pagination; Fetch All stays a top-level toggle
  • Send Email and Send Multiple Emails group their disposition, file type, and content ID inputs into Attachment Details
  • Added an output schema to the Get List by ID action for improved field mapping during configuration
  • Added inline action calling support to 18 actions for improved example output during configuration
  • Added opt-in batching to the New and Updated Messages trigger, dispatching each changed record individually or in configured batches so a large result set is not held in a single execution; enabling it changes the shape a downstream step receives
  • Added an optional Look-back Date input for performing an initial sync of records on the New and Updated Messages trigger. The initial sync backfills every record modified on or after the specified date, beginning on the first recurrence and seeding each record once; later recurrences are unaffected. SendGrid retains email activity for 30 days, so the sync starts no earlier than that, which is also where it starts when the input is left empty
  • Added Account Status Change to the Events input on the Create Webhook and Update Webhook actions and the Managed Webhook Events trigger
  • Fixed the Managed Webhook Events trigger failing signature validation when testing a flow in the designer
  • Fixed the Managed Webhook Events trigger failing on every incoming event after an instance was redeployed, which persisted until the instance was recreated
  • Updated the Webhook trigger description to remove an inaccurate claim that it validates incoming requests; the trigger passes requests through without verifying them

2026-07-23​

Added output schemas to 14 actions to improve the low-code designer reference picker experience, and aligned the Get Import Status example payload to the documented response shape

2026-07-15​

Resolved Send Email and Send Multiple Emails action issue related to sending a message without attachments.

2026-06-04​

Added the New and Updated Messages polling trigger that retrieves email activity events from the SendGrid Email Activity Feed

2026-04-30​

Updated spectral version

2026-03-31​

Various modernizations and documentation updates

2026-03-16​

Improved input field documentation with formatted URL links for better readability

2026-02-26​

Added inline data source for webhooks to enable dynamic dropdown selection

2026-01-27​

Added the Managed Webhook Events trigger to receive event webhook notifications from SendGrid. It will automatically create and manage a webhook subscription when an instance is deployed, and removes the subscription when the instance is deleted.

2025-06-18​

Added an inline data source for Contacts and Lists to enhance list selection capabilities

2025-05-27​

Added list management and contact import support for improved email campaign management