Integrations
Twilio
Send SMS on invoice.submitted, order shipments, and delivery reminders using Twilio.
The snag
Customers pay faster when they get an SMS with the invoice link, but wiring one up per template is tedious.
How Zivvy helps
Subscribe to sales-invoices.submitted (and other events) and let a Twilio-backed webhook consumer send the SMS.
Before Zivvy
Handoffs go missing, owners are unclear, audits get painful.
What you get
- Send SMS on sales-invoices.submitted with pay link
- Delivery updates on delivery-notes.submitted
- OTP for high-value payment reconciliation
Workflow stream
SMS pay-link when sales-invoices.submitted fires
Common uses
01
SMS pay-link when sales-invoices.submitted fires
02
SMS shipment ETA on delivery-notes.submitted
03
Two-factor OTP for /v1/payment-entries above threshold
Integration code
Open API referenceRegister Twilio webhook
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/zivvy-twilio",
"events": ["sales-invoices.submitted"]
}'Twilio consumer
import twilio from "twilio";
const sms = twilio(process.env.TWILIO_SID, process.env.TWILIO_TOKEN);
export async function POST(req) {
const evt = await req.json();
if (evt.event !== "sales-invoices.submitted") return new Response("skip");
await sms.messages.create({
from: process.env.TWILIO_FROM,
to: evt.data.contact_phone,
body: `Invoice ${evt.data.name} is ready: ${evt.data.portal_url}`
});
return new Response("ok");
}API endpoints
POST /v1/webhook-subscriptionsGET /v1/sales-invoices/{name}GET /v1/delivery-notes/{name}
Events emitted
HMAC-SHA256 signed webhooks, retried for 24 hours.
- sales-invoices.submitted
- delivery-notes.submitted
- payment-entries.paid
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.