Zapier
Send transactional email, sync contacts, and react to delivery events from any Zap using the official Sendry Zapier app.
sendry-zapier is the official Zapier integration
for Sendry. It ships as a single private app maintained from
packages/sendry-zapier
and is built on Zapier Platform CLI v15+.
- Source:
packages/sendry-zapier. - License: Apache-2.0.
- Auth: API key in the
Authorization: Bearerheader. - Runtime:
zapier-platform-core@^15.
Install
Once published to the Zapier marketplace, connect from any Zap with + Add an action → search for Sendry.
During the private beta, follow the invite link emailed to your team or
have an admin run zapier invite against the developer portal.
Authenticate
Create a key at
Settings → API keys and paste
it into the Zapier connection screen. Use a sending_access or
full_access key for write actions; read_only keys work for the
search and trigger sample fetches but cannot send.
Self-hosted Sendry users can change the API base URL field from the
default https://api.sendry.online to point at their own deployment.
Triggers
REST hooks register a webhook on POST /v1/webhooks when the Zap turns
on and delete it via DELETE /v1/webhooks/:id when the Zap is paused or
deleted.
| Trigger | Event | Sample fields |
|---|---|---|
Email Sent (email_sent) | email.delivered | id, to, from, subject, status, delivered_at |
Email Bounced (email_bounced) | email.bounced | id, bounce_type, bounce_reason, bounced_at |
Contact Unsubscribed (contact_unsubscribed) | contact.unsubscribed | id, email, topic_id, unsubscribed_at |
Each trigger also exposes a polling fallback so the Zap editor can show sample data before the hook is live.
Actions
| Action | Endpoint | Notes |
|---|---|---|
Send Email (send_email) | POST /v1/emails | Auto-generated Idempotency-Key per Zap run. to/cc/bcc/reply_to accept comma-separated lists. Tags accept name=value pairs. Supports template_id and scheduled_at. |
Create or Update Contact (upsert_contact) | PUT /v1/contacts/by-email | Idempotent by email. Optional audience_id and JSON properties. |
Create Domain (create_domain) | POST /v1/domains | Returns the DNS records to publish before verification. |
Search
| Search | Endpoint |
|---|---|
Find Contact by Email (find_contact_by_email) | GET /v1/contacts/by-email?email= |
Returns an empty array on 404 so Zapier's Find or Create flow upserts the contact correctly when missing.
Example Zap
When a Stripe customer is created, upsert the contact in Sendry and send a welcome email.
- Trigger — Stripe → New Customer.
- Action — Sendry → Create or Update Contact
- Email:
{{customer__email}} - First name:
{{customer__name}} - Audience ID:
aud_signups
- Email:
- Action — Sendry → Send Email
- From:
hello@example.com - To:
{{customer__email}} - Subject:
Welcome to Acme! - Template ID:
tmpl_welcome
- From:
Development
cd packages/sendry-zapier
bun install
bun run test # Jest via zapier-platform-core appTester
zapier validate # requires `npm i -g zapier-platform-cli`
License
Apache-2.0. See the LICENSE in the repository.