Integrations

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.

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

Send quote via Postmark on quotations.sent

Common uses

  1. 01

    Send quote via Postmark on quotations.sent

  2. 02

    Send receipt via Postmark on sales-invoices.paid

  3. 03

    Send dunning reminder on sales-invoices.overdue

Integration code

Open API reference

Subscribe 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

POST /v1/webhook-subscriptionsGET /v1/quotations/{name}GET /v1/sales-invoices/{name}

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.