Send SendGrid email from Notifly workflows, on your own account.
Notifly does not resell email. You connect your SendGrid account with your own API key, and the email steps of your Notifly workflows go out through it: your sender identity, your SendGrid reports, your SendGrid plan.
What Notifly adds is everything around the send. One trigger can reach email, in-app, SMS, push and chat; digest, delay and throttle steps shape when it lands; subscriber preferences decide whether it goes at all; and the activity feed shows what SendGrid answered.
What you need from SendGrid
These are the fields the dashboard asks for when you connect SendGrid, quoted from the create form itself.
| Field | Required | Stored | Notes |
|---|---|---|---|
| API Key | Required | Encrypted at rest | |
| Region | Optional | As entered | Select EU if your SendGrid account is hosted in the EU data center Global (US) or EU; Global (US) is preselected. |
| IP Pool Name | Optional | As entered | |
| From email address | Required | As entered | Use the same email address you used to authenticate your delivery provider |
| Sender name | Required | As entered |
- Region. EU switches the SendGrid client to EU data residency before every send; Global (US) leaves it on SendGrid's default.
- IP Pool Name. Applied to every email from this integration when set. A trigger can override it for a single notification.
- From email address and Sender name. Sent as the From address and display name of every email this integration sends.
Connect SendGrid in the dashboard
- Sign in at app.notifly.io, open Integration Store in the sidebar and choose Connect Provider.
- In the Connect Integration sheet, open the E-Mail tab (or search across channels), find SendGrid and choose Connect.
- Pick the environment the integration belongs to. Development and Production keep separate integrations, so you can point each at a different SendGrid account or key.
- Fill in Delivery Provider Credentials with the fields in the table above, then choose Create Integration.
- A new integration starts switched on as both Active Integration and Primary Integration, so email steps in that environment send through SendGrid by default. If the environment already has a primary email integration, the dashboard asks before replacing it.
Trigger a SendGrid email from your code
Your backend triggers a workflow; Notifly renders the email step and hands it to SendGrid. The subscriber is created or updated from to, so the first trigger for a new user needs no separate call.
// npm install @notiflyio/api@0.1.26
import { Notifly } from "@notiflyio/api";
const notifly = new Notifly({ security: { secretKey: process.env.NOTIFLY_SECRET_KEY } });
await notifly.trigger({
workflowId: "password-reset",
to: { subscriberId: "user_123", email: "ada@example.com" },
payload: { resetUrl: "https://example.com/reset?token=abc" },
overrides: {
// Merged into this send's SendGrid request; it beats the integration's IP Pool Name.
providers: { sendgrid: { ipPoolName: "transactional" } },
},
});Prefer plain HTTP? The same trigger is POST https://api.notifly.io/v1/events/trigger with an Authorization: ApiKey header and a body of { "name", "to", "payload" }.
What reaches SendGrid
- A category per workflow. The workflow identifier is set as the SendGrid category, so SendGrid's stats and event data split by workflow without extra work.
- Ids you can join on. Custom arguments carry Notifly's message, transaction, workflow and subscriber ids, and any
customDataa trigger passes. - The full message. Cc and bcc recipients, reply-to, custom headers and attachments are carried onto the SendGrid message; attachments with a content id are sent inline.
- Your parameters, per trigger. Anything under
overrides.providers.sendgridis merged into the request for every SendGrid step of the workflow;overrides.steps.<stepId>.providers.sendgridtargets one step and wins over it.
What Notifly adds on top of SendGrid
Workflows around the send
One trigger runs a workflow: this provider’s step can sit beside in-app, email, SMS, push and chat steps, behind digest, delay and throttle steps.
Subscriber preferences, enforced at send
Before each step runs, the subscriber’s workflow and channel preferences are checked; an opted-out step is skipped and the reason is recorded.
An in-app Inbox next to it
The same workflow can write to the Notifly Inbox, a real-time in-app feed you embed with the React component or the JavaScript SDK.
Per-trigger provider parameters
Anything the trigger passes under overrides.providers.<provider id> is merged into the request Notifly sends to the provider, per workflow or per step.
Activity you can debug
Every message gets execution details in the activity feed, including the response or error the provider returned.
Secrets encrypted at rest
API keys, tokens and service accounts are stored encrypted with AES-256; new and re-saved credentials use authenticated AES-256-GCM. The table above marks which of this provider’s fields that covers.
Several accounts, one primary
Connect more than one account on this channel. The primary integration is the default; another active integration takes the send when its conditions match the subscriber or the tenant in the trigger’s context.
Go deeper in the docs
Frequently asked questions
Which SendGrid API key does Notifly need?
An API key from your own SendGrid account, pasted into the API Key field. Notifly sends each email step through SendGrid's v3 Mail Send endpoint with the official @sendgrid/mail client, so the key needs permission to send mail. It is stored encrypted at rest.
Does Notifly support SendGrid's EU data residency?
Yes. Set Region to EU and Notifly switches the SendGrid client to EU data residency before it sends anything. The default is Global (US), which suits accounts hosted in SendGrid's US data center.
Can I send some notifications from a dedicated IP pool?
Yes, at two levels. The IP Pool Name field applies a pool to every email this integration sends. A trigger can pick a different pool for one notification with overrides.providers.sendgrid.ipPoolName, and the trigger's value wins over the field.
How do I find Notifly emails in SendGrid's activity and event data?
Every email Notifly sends through SendGrid carries the workflow identifier as its SendGrid category, plus custom arguments holding Notifly's message, transaction, workflow and subscriber ids. You can filter SendGrid's reports by workflow, and match an event back to the exact Notifly message.
Does Notifly resell SendGrid or mark up email?
No. The emails leave from your SendGrid account with your key, count against your SendGrid plan, and SendGrid bills you directly. Notifly's own plans meter workflow trigger events, not emails, so one trigger that also reaches in-app and push is still one event.
Bring your provider account. Keep your sender reputation.
One POST /v1/events/trigger — email, SMS, push, in-app, and chat. 10,000 events a month, free.