Resources · n8n integration

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

Why automate

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.

Connect

How do you connect SendGrid to n8n?

  1. 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 integration in SendGrid's own example, select Full Access, then Create & View. Copy the key on that screen: it is the only thing n8n asks for.

  2. 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.

  3. 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.

Actions

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.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateDeleteSendCreate or Update
Contact✓✓✓✓
List✓✓✓✓✓
Mail✓

Contact

4 operations
01

Create or update a contact

contact.upsert

What 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.
Use cases
a webinar form receives the same address twice in one week, and SendGrid still holds one contact, refreshed with the latest list membership.
02

Delete a contact

contact.delete

What 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.
Use cases
an unsubscribe table read once a day hands its IDs to this operation, so the audience shrinks on its own and nobody opens the SendGrid interface to click through names.
03

Get a contact

contact.get

What 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, id or email. It decides which of the next two fields the node reads.
  • Contact ID: the ID of the contact, used by the id mode.
  • Email: the email of the contact (name@email.com), used by the email mode, often {{ $json.email }}.
Use cases
before a support reply goes out, the workflow checks that the address exists in SendGrid and reuses the first name stored there to open the message properly.
04

Get many contacts

contact.getAll

What 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.
Use cases
a weekly export of every contact matching a query feeds a spreadsheet, with Return All on so no page of the audience goes missing.

List

5 operations
05

Create a list

list.create

What 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.
Use cases
each campaign opens with a list named after the campaign itself, created by the workflow rather than by hand, so the naming convention holds from the first send to the last.
06

Delete a list

list.delete

What 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.getAll rather than typed by hand.
  • Delete Contacts: on, the contacts on that list are deleted too. Off, only the list goes.
Use cases
a seasonal list closes after the final send of the year, and Delete Contacts stays off so the same audience remains available for the next season.
07

Get a list

list.get

What 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.
Use cases
right after an import, a read on the list with the sample on shows whether the addresses look like the ones expected, before the first send goes anywhere.
08

Get many lists

list.getAll

What 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.
Use cases
a first node reads the lists, a filter keeps the one whose name matches the campaign, and its ID travels on to contact.upsert.
09

Update a list

list.update

What 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.
Use cases
a quarterly pass aligns every list on the same convention, driven by a table of old and new names, with the IDs collected by list.getAll just before.

Mail

1 operation
10

Send an email

mail.send

What 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/plain or text/html.
  • Send At: the delivery moment, never more than 72 hours ahead.
Use cases
an order confirmation leaves with the customer first name in the template and a copy to the shop through BCC Email.
Need help

Need help automating SendGrid with n8n?

A person reads every message.

FAQ

SendGrid and n8n: the questions that come up next

01Is the SendGrid n8n integration free?
Yes on the n8n side. The SendGrid node ships with n8n, so there is nothing to install and no extra cost to plan for, on n8n Cloud as well as on an instance you host yourself with Docker or npm under the Community Edition and its Sustainable Use license. The same workflow behaves the same way in both places. What gets created once is the credential, the stored API key n8n uses to sign its calls, and every workflow in the instance reuses it from the node dropdown instead of holding its own copy.
02Which credentials do you need to connect SendGrid to n8n?
One API key, and it is the only authentication method the node supports. In the Twilio SendGrid app, open Settings, then API Keys, select Create API Key, give it a name such as n8n integration, pick Full Access, then Create & View and copy the key. Back in n8n, the Credentials menu stores it once as a SendGrid credential, and every SendGrid node in every workflow picks that credential from a dropdown. There is no second screen, no separate account email to enter, and no per-workflow setup to repeat.
03What are the limits of the SendGrid node in n8n?
The node stops at 10 operations spread over 3 resources: contacts, lists and mail. Anything else in the SendGrid API goes through the HTTP Request node, which reuses the same SendGrid credential through its predefined authentication. Reads are paginated: with Return All off, Limit caps how many contacts or lists come back, so a full export needs Return All on. Scheduling has a ceiling too, since SendGrid refuses a Send At value set more than 72 hours ahead. And a category name in Categories cannot exceed 255 characters.
04Does the SendGrid node react in real time?
No, and the reason is simple: n8n has no SendGrid trigger node, so nothing listens to events happening inside SendGrid. A workflow around SendGrid starts somewhere else. A Schedule Trigger fires at a fixed interval and covers most contact and list jobs, a Webhook node starts the run the moment an outside service calls its URL, and the trigger of another tool already in the workflow does the job too. In practice, sending an email sits at the end of a flow that began for another reason.
05n8n or Make for SendGrid?
It depends on four criteria. Hosting: Make runs only on its own platform, while n8n runs on n8n Cloud or on a server you keep, with Docker or npm. Data control follows from that, since a self-hosted instance keeps contact addresses inside your own infrastructure. Cost model: Make bills per operation, so a loop over a long contact export is charged item by item. Visual logic: both draw the flow on a canvas, and the choice usually comes down to how comfortable the team feels reading branches and expressions. Neither platform changes what the SendGrid API accepts.