ZapyFlow/API documentationopenapi.json

Event catalog

28 events. Each one drives both outgoing webhooks and native integration triggers — they are the same list, because they answer the same question.

Every event here has a verified emitter in the server, checked by a test that scans the source. That test exists because of a real defect: bot.createdwas offered in the dashboard and never fired for months, because the code had renamed the concept and the catalog stayed still. Subscribers waited for deliveries that could not arrive, with no error anywhere.

Conversations

Inbound and outbound messages, delivery status, and the lifecycle of a conversation.

EventNote
message.received
message.sent
message.status
conversation.created
conversation.status.changed
conversation.resolved
conversation.escalated

Commerce

Everything the AI agent captures or books on your behalf.

EventNote
lead.captured
order.created
order.updated
order.deleted
appointment.created
appointment.updated
appointment.deleted
crm.card.created
crm.card.moved
crm.card.updated
crm.card.deleted

Platform

Agents, WhatsApp channels and catalog synchronisation.

EventNote
bot.createdEmitted internally as ai-agent.created. The public name is the contract and does not change when we rename things.
bot.deletedEmitted internally as ai-agent.deleted. The public name is the contract and does not change when we rename things.
channel.connected
catalog.synced

Billing & quota

Usage thresholds and subscription events.

EventNote
quota.warning
quota.exceeded
trial.started
trial.locked
payment.succeeded
payment.failed

Payload shape

Every delivery has the same envelope: id (the stable event id, also in the X-ZapyFlow-Event-Id header), event (the name from this table) and data (the event-specific object). Treat data as open — we add fields without notice.

What is deliberately absent

Realtime UI signals — typing indicators, presence, profile-picture updates — are on the internal bus and are not offered here. They fire constantly, carry no business meaning, and subscribing to them would cost you a delivery per keystroke.