Segment
Emit Zivvy events into Segment as canonical track() calls (invoice.paid, order.submitted).
The snag
Product analytics teams have to hand-wire every finance event into Segment, and the naming drifts within a quarter.
How Zivvy helps
A webhook consumer forwards Zivvy events into Segment's track() with the canonical name (Invoice Paid, Sales Order Submitted, …).
Before Zivvy
Handoffs go missing, owners are unclear, audits get painful.
What you get
- One canonical event catalog for CDP + ERP
- Track properties carry the /v1/... external_id
- Segment destinations propagate to every downstream analytics tool
Workflow stream
Common uses
01
sales-invoices.paid → track('Invoice Paid') in Segment
02
sales-orders.submitted → track('Sales Order Submitted')
03
customers.created → identify() with Zivvy customer id
Integration code
Open API referenceSubscribe Segment 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/segment",
"events": ["sales-invoices.paid", "sales-orders.submitted"]
}'Consumer -> Segment
import { Analytics } from "@segment/analytics-node";
const seg = new Analytics({ writeKey: process.env.SEGMENT_WRITE_KEY });
export async function POST(req) {
const evt = await req.json();
if (evt.event === "sales-invoices.paid") {
seg.track({
messageId: evt.id,
userId: evt.data.customer,
event: "Invoice Paid",
properties: {
invoice: evt.data.name,
amount: evt.data.grand_total
}
});
}
return new Response("ok");
}API endpoints
Events emitted
HMAC-SHA256 signed webhooks, retried for 24 hours.
- sales-invoices.paid
- sales-orders.submitted
- customers.created
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.