Recipe: Send email from Pipedream
Call Notify from a Pipedream workflow — HTTP request or Node step with NOTIFY_API_KEY.
Use Pipedream when a workflow should send transactional email after an event — webhook, cron, SaaS trigger. Still transactional, not newsletters.
No Notify Pipedream app is required. Use an HTTP request step or a short Node/fetch step.
Prerequisites
- API key (prefer a domain-locked sending_access key)
- Verified domain for production custom
from - A Pipedream workflow with a trigger that already has the recipient address
Store the key
Add an environment variable / secret named NOTIFY_API_KEY in the Pipedream project or step. Never commit the key into shared workflow source.
Option A — HTTP request step
- Add an HTTP Request (or equivalent) step after your trigger.
- Method:
POST - URL:
https://notify.cx/api/email/send - Headers:
Content-Type→application/jsonx-api-key→{{process.env.NOTIFY_API_KEY}}(or your project’s secret reference)
- Body (JSON):
{
"to": "user@example.com",
"from": "noreply@your-verified-domain.com",
"subject": "Your order confirmation",
"html": "<p>Thanks — we got your order.</p>"
}
Wire to / HTML from previous step exports (steps.trigger.event.email, etc.).
Option B — Node step
const res = await fetch('https://notify.cx/api/email/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.NOTIFY_API_KEY
},
body: JSON.stringify({
to: steps.trigger.event.email,
from: 'noreply@your-verified-domain.com',
subject: 'Your order confirmation',
html: '<p>Thanks — we got your order.</p>'
})
});
const data = await res.json();
if (!res.ok) throw new Error(JSON.stringify(data));
return data;
Adjust steps.trigger.event… to match your trigger. html is preferred; message and text also work.
Sandbox vs production
Until the domain is verified, production custom from stays locked. Use sandbox vs production or POST /api/email/send/test for API rehearsal.
After you send
Check Email Logs or the logs API. Delivery events can go to a webhook on Pro+.