Recipe: Send email from n8n
Call Notify from an n8n HTTP Request node — transactional send without SMTP.
Use n8n when an event outside your app should fire a transactional email — form submit → receipt, Stripe/webhook → notice, CRM update → confirmation. Still transactional, not newsletters.
No Notify plugin required. One HTTP Request node is enough.
Prerequisites
- API key (prefer a domain-locked sending_access key)
- Verified domain for production custom
from - An n8n workflow with a trigger that already has the recipient address (and any fields you want in the HTML)
HTTP Request node
- Add an HTTP Request node after your trigger.
- Method:
POST - URL:
https://notify.cx/api/email/send - Authentication: none in the node URL — put the key in a header (n8n credential or expression from env).
- Headers:
Content-Type→application/jsonx-api-key→ your Notify API key (from a credential / env var — never hardcode in the workflow JSON you share)
- Body content type: JSON. Send:
{
"to": "user@example.com",
"from": "noreply@your-verified-domain.com",
"subject": "Your order confirmation",
"html": "<p>Thanks — we got your order.</p>"
}
html is preferred; message and text also work as body aliases.
Wire fields from the trigger
If the previous node outputs something like { "email": "ada@example.com", "name": "Ada" }, use n8n expressions:
{
"to": "{{ $json.email }}",
"from": "noreply@your-verified-domain.com",
"subject": "Welcome, {{ $json.name }}",
"html": "<p>Hi {{ $json.name }}, your account is ready.</p>"
}
Exact expression syntax depends on n8n version and whether you use the expression editor vs raw JSON — the field names above are what Notify expects.
Sandbox vs production
Until the domain is verified, production custom from stays locked. Use the sandbox vs production path (dashboard guided test or POST /api/email/send/test for API rehearsal). For live sends to real inboxes, verify the domain first, then call /api/email/send.
After you send
Check Email Logs in the dashboard, or call the logs API. Delivery events can also go to a webhook if you’re on Pro+.
Where to next?
- Agents & automation chooser
- Zapier → send email
- Make → send email
- Pipedream → send email
- Send from a REST API
- Cron / GitHub Actions
- Official MCP (if you’re also wiring this from an IDE agent)