Postmark
Deliver transactional emails on quotations.sent and sales-invoices.paid via Postmark.
The snag
Zivvy's built-in SMTP is fine for daily notifications, but transactional deliverability (quotes, receipts) belongs on a proper ESP.
How Zivvy helps
Forward quotations.sent and sales-invoices.paid events to a Postmark server; templates render with the event payload verbatim.
Before Zivvy
Handoffs go missing, owners are unclear, audits get painful.
What you get
- Postmark templates for quote, invoice, and receipt emails
- Automatic reply-tracking piped back into /v1/contacts
- Bounce + spam events open a task on the account owner
Workflow stream
Common uses
01
Send quote via Postmark on quotations.sent
02
Send receipt via Postmark on sales-invoices.paid
03
Send dunning reminder on sales-invoices.overdue
Integration code
Open API referenceSubscribe Postmark consumer
curl -X POST https://integrate.zivvy.xyz/v1/webhook-subscriptions \
-H "Authorization: Bearer $ZIVVY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://api.your-app.com/hooks/postmark",
"events": ["quotations.sent", "sales-invoices.paid"]
}'Send with Postmark template
import { ServerClient } from "postmark";
const pm = new ServerClient(process.env.POSTMARK_TOKEN);
export async function POST(req) {
const evt = await req.json();
if (evt.event === "sales-invoices.paid") {
await pm.sendEmailWithTemplate({
From: "billing@zivvy.xyz",
To: evt.data.customer_email,
TemplateAlias: "receipt",
TemplateModel: { invoice: evt.data }
});
}
return new Response("ok");
}API endpoints
Events emitted
HMAC-SHA256 signed webhooks, retried for 24 hours.
- quotations.sent
- sales-invoices.paid
- sales-invoices.overdue
0
free seats forever
0
card required to start
1
workspace for the workflow
Questions
Ready to try it?
Free plan. Two seats. No card.