Send email with Zapier

A Webhooks by Zapier action: POST with a JSON body and one header.

You need a verified sending domain and an API key from Settings › API Keys. If neither exists yet, the quickstart covers both in a couple of minutes.

Send

Method:  POST
URL:     https://sending.dev/api/v1/emails
Headers: Authorization: Bearer sk_your_api_key
         Content-Type: application/json
 
Data:
{
  "from": "Acme <[email protected]>",
  "to": "{{email}}",
  "subject": "Welcome",
  "html": "<p>You are in.</p>",
  "idempotencyKey": "welcome-{{record_id}}"
}

A successful call answers 202 with the message id: accepted and queued, not yet delivered. Delivery, opens, bounces and complaints arrive later, on webhooks or in the dashboard.

What changes in Zapier

Use Custom Request rather than POST: the plain POST action form-encodes the fields, and this API reads JSON.

The thing that catches people

Zapier replays a task when you use Replay, and an autoreplay runs after certain errors. Map the idempotency key to a stable id from the trigger, not to the Zap run id.

Next

  • All the fields: cc and bcc, reply-to, attachments, templates, scheduling.
  • Webhooks: delivery, bounce and complaint events, signed with HMAC.
  • Domains: SPF, DKIM and MAIL FROM, and why sending is refused until they are in place.
  • MCP: the same operations as tools, when the one writing the code is an agent.

Nearby: No-code automation

All 30 stacks