- Home
- Resources
- Integrations
- SendGrid
SendGrid n8n integrationAutomate SendGrid with n8n.
The SendGrid n8n integration puts email, contacts and lists behind a single key. One node, 10 operations, 3 resources. No SendGrid trigger exists, so the workflow starts on a Schedule Trigger or a Webhook node. For teams whose emails should follow the data, not a copy and paste.
Verified Trustpilot reviews · AI, automation & growth agency
What does the SendGrid n8n integration actually do?
It gives a workflow one node, n8n-nodes-base.sendGrid, that talks to a SendGrid account with an API key. Three resources sit behind it: Contact, List and Mail. The 10 operations cover the full round trip, from creating a contact to sending the email that contact receives. Nothing to install either, since the node ships inside n8n on Cloud and on a self-hosted instance alike.
Take a signup form that already writes to a spreadsheet. A Schedule Trigger reads the new rows from Google Sheets every morning, and each row runs through contact.upsert: the address goes in Email, the destination list goes in List IDs. An address already known to SendGrid gets updated instead of duplicated, which is the whole point of an upsert.
Second case, the email that has to leave at a chosen hour. mail.send with Dynamic Template switched on picks a template in Template Name or ID and fills it from the workflow data, while Send At holds the delivery until the right moment. One ceiling to keep in mind: SendGrid refuses anything scheduled more than 72 hours ahead.
Third case, list hygiene. list.getAll brings back every list with its ID, list.get with Contact Sample shows what sits inside one of them, and contact.getAll with an SGQL Query, the SendGrid search syntax, isolates the addresses that no longer belong. contact.delete takes those IDs, and a one line recap lands in Slack so the cleanup leaves a trace.
The node stops at 10 operations. When a job needs an endpoint it does not expose, the HTTP Request node calls the SendGrid API directly and reuses the same credential, the key stored once in n8n, through its predefined authentication. Worth knowing before the build starts: n8n has no SendGrid trigger, no node that starts a workflow when something happens in the tool. The run begins elsewhere, on a Schedule Trigger at a fixed interval or on a Webhook node, a URL n8n exposes so an outside service can call it.
The catalog files SendGrid under Marketing and Communication. If the real need is campaign management rather than transactional sending, the Mailchimp page deserves a look first. On the platform question, Make bills per operation and runs only on its own servers, while n8n runs on Cloud or on a machine you keep: the long version sits in the n8n review, the hands-on version in the n8n training.
How do you connect SendGrid to n8n?
- 01
Create the API key in SendGrid
In the Twilio SendGrid app, open Settings, then API Keys, and select Create API Key. Give it a Name that says where it will be used,
n8n integrationin SendGrid's own example, select Full Access, then Create & View. Copy the key on that screen: it is the only thing n8n asks for. - 02
Store it once as an n8n credential
In n8n, open the Credentials menu and create a SendGrid credential, the container where n8n keeps that key and signs its calls with it. Paste the key in the API Key field, then save. From that moment the credential belongs to the whole instance: every SendGrid node in every workflow picks it from a dropdown, with no second copy to keep in sync.
- 03
Pick a resource, then an operation
Drop the SendGrid node into the workflow and choose a Resource, Contact, List or Mail, then the operation you need among the 10 available. A field marked required stops the execution when it stays empty, so wire it to the incoming item with an expression, the n8n syntax that reads a value coming from the previous node:
{{ $json.email }}pulls the address the workflow just received.
What can the SendGrid node do?
The SendGrid node exposes 10 operations across 3 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Send | Create or Update |
|---|---|---|---|---|---|---|---|
| Contact | ✓ | ✓ | ✓ | ✓ | |||
| List | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| ✓ |
Operations index
Contact
4 operationsCreate or update a contact
contact.upsertWhat you see in n8n
Notes & use cases
Sends one contact to SendGrid and lets the address decide the outcome: an unknown email creates the contact, a known email updates the record already stored.
Key parameters
- Email: the primary email of the contact (
name@email.com), most often{{ $json.email }}when the address arrives from a form. - List IDs: in Additional Fields, the lists the contact joins right away, which saves a second call later.
- First Name, Last Name, Country: optional identity fields a template can print back into the email.
Delete a contact
contact.deleteWhat you see in n8n
Notes & use cases
Removes contacts from the SendGrid account. Two ways in: a list of identifiers, or the switch that clears everything at once.
Key parameters
- Contact IDs: the ID of the contact to remove, and several IDs separated by a comma when a cleanup batch arrives in a single item.
- Delete All: turned on, every contact goes. Leave it off unless erasing the whole audience really is the goal.
Get a contact
contact.getWhat you see in n8n
Notes & use cases
Pulls a single contact back, by identifier or by address, and hands the stored record to the next node.
Key parameters
- By: the lookup mode,
idoremail. It decides which of the next two fields the node reads. - Contact ID: the ID of the contact, used by the
idmode. - Email: the email of the contact (
name@email.com), used by theemailmode, often{{ $json.email }}.
Get many contacts
contact.getAllWhat you see in n8n
Notes & use cases
Reads contacts in bulk, with or without a search filter, and pushes one item per contact into the rest of the workflow.
Key parameters
- Return All: on, n8n walks through the pages of the SendGrid API until the last contact. Off, it stops at Limit.
- Limit: the maximum number of contacts to return while Return All stays off, which keeps a test run short.
- Query: in Filters, an SGQL expression, the SendGrid query language for searching a contact.
List
5 operationsCreate a list
list.createWhat you see in n8n
Notes & use cases
Creates an empty list in SendGrid and returns its identifier, which the following nodes use as a destination.
Key parameters
- Name: the name of the list, required, and the only field this operation asks for.
Delete a list
list.deleteWhat you see in n8n
Notes & use cases
Drops a list from the account. A second switch decides what happens to the contacts sitting on it.
Key parameters
- List ID: the ID of the list, required, usually read from
list.getAllrather than typed by hand. - Delete Contacts: on, the contacts on that list are deleted too. Off, only the list goes.
Get a list
list.getWhat you see in n8n
Notes & use cases
Returns one list and its details, with the option of bringing back a sample of the contacts it holds.
Key parameters
- List ID: the ID of the list to read, required.
- Contact Sample: on, the response carries the contact sample, which is enough to eyeball what actually landed in the list.
Get many lists
list.getAllWhat you see in n8n
Notes & use cases
Brings back the lists of the account, which is how a workflow finds an ID without anyone copying it out of the SendGrid interface.
Key parameters
- Return All: on, n8n pages through the API until every list has come back. Off, it stops at Limit.
- Limit: the maximum number of lists returned, handy while the workflow is still being built.
contact.upsert.Update a list
list.updateWhat you see in n8n
Notes & use cases
Renames an existing list. Both fields are required, so the node never sends an empty label to SendGrid.
Key parameters
- List ID: the ID of the list to rename, required.
- Name: the new name of the list, also required.
list.getAll just before.Send an email
mail.sendWhat you see in n8n
Notes & use cases
Sends the email itself, either with content written in the node or through a SendGrid dynamic template filled with workflow data.
Key parameters
- Dynamic Template: required. On, the email uses a template and its fields. Off, it uses the content written below.
- Message Body: required, the body of the email to send.
- Recipient Email, Sender Email, Subject: the comma-separated recipients, the sending address, the subject line.
- MIME Type:
text/plainortext/html. - Send At: the delivery moment, never more than 72 hours ahead.
Need help automating SendGrid with n8n?
A person reads every message.