Webhook Documentation
Events are sent as HTTP POST requests to your configured endpoint with a structured JSON payload. Each event contains comprehensive information about the action that occurred in your workspace.Event Types & Categories
Below are all possible event types you can subscribe to:| Event Type | Category | Description |
|---|---|---|
agent_created | Agent Events | Agent was created |
agent_updated | Agent Events | Agent was updated |
agent_deleted | Agent Events | Agent was deleted |
message_received | Message Events | Message received on any channel |
organisation_created | Organisation Events | Organisation was created |
organisation_updated | Organisation Events | Organisation was updated |
organisation_deleted | Organisation Events | Organisation was deleted |
client_created | Client Events | Client was created |
client_updated | Client Events | Client was updated |
client_deleted | Client Events | Client was deleted |
lead_captured | Lead Events | Lead was captured by an agent |
form_submitted | Form Events | Form was submitted |
chat_delegated | Chat Events | Chat was delegated to a team member |
bug_reported | Bug Events | Bug or issue was reported |
webhook_test | Test Event | Used for testing your webhook endpoint |
Request Format
| Property | Value |
|---|---|
| HTTP Method | POST |
| Content Type | application/json |
Event Categories & Payloads
Agent Events
Types:agent_created, agent_updated, agent_deleted
Payload fields:
agentId(string): The ID of the agentagentName(string, optional): The name of the agentagentPlatform(“vg” | “vf”, optional): The platform of the agentoperation(“created” | “updated” | “deleted”): The operation performedcreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
Agent Created Event
Message Events
Types:message_received
Payload fields:
agentId(string): The ID of the agentagentName(string, optional): The name of the agentconvoId(string): The ID of the conversationmessageContent(string): The content of the messagechannel(“whatsapp” | “instagram” | “facebook” | “telegram” | “webchat”): The channelmessageType(string, optional): The type of the messagefrom(string, optional): The sendercreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
Message Received Event
Organisation Events
Types:organisation_created, organisation_updated, organisation_deleted
Payload fields:
organisationId(string): The ID of the organisationorganisationName(string, optional): The name of the organisationoperation(“created” | “updated” | “deleted”): The operation performedcreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
Organisation Created Event
Client Events
Types:client_created, client_updated, client_deleted
Payload fields:
organisationId(string): The ID of the organisationorganisationName(string, optional): The name of the organisationclientId(string): The ID of the clientclientName(string, optional): The name of the clientclientEmail(string, optional): The email of the clientoperation(“created” | “updated” | “deleted”): The operation performedcreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
Client Created Event
Lead Events
Types:lead_captured
Payload fields:
agentId(string): The ID of the agentagentName(string, optional): The name of the agentleadName(string, optional): The name of the leadleadEmail(string, optional): The email of the leadleadPhone(string, optional): The phone of the leadchannel(see below): The channel where the lead was capturedoperation(“captured”): The operation performedcreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
voice,vapi,web-chat,whatsapp,instagram,telegram,discord,gb-chat,messenger,telephony,webchat
Lead Captured Event
Bug Events
Type:bug_reported
Payload fields:
agentId(string): The ID of the agentagentName(string, optional): The name of the agentconvoId(string): The ID of the conversationbugDescription(string): The description of the bug or issueimageUrl(string, optional): The CDN URL of the screenshot (automatically uploaded if provided)reportedByUserId(string, optional): The ID of the user who reported the bugreportedByUserName(string, optional): The name of the user who reported the bugreportedByUserEmail(string, optional): The email of the user who reported the bugchannel(see below): The channel where the bug occurredoperation(“reported”): The operation performedcreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
voice,vapi,web-chat,whatsapp,instagram,telegram,discord,gb-chat,messenger,telephony,webchat
Bug Reported Event
Webhook Test Event
Type:webhook_test
Payload fields:
message(string): Test messagecreatedAt(number): Timestamp (ms)workspaceSecret(string): Workspace secret for verification
Webhook Test Event
Implementation Guidelines
- Response Requirements:
- Return HTTP 200 status for successful receipt
- Response within 30 seconds timeout
- Empty response body is acceptable
- Delivery Behavior:
- Events delivered in real-time
- No automatic retry mechanism
- Order of delivery not guaranteed
- Data Format:
- Timestamps in milliseconds (Unix epoch)
- UTF-8 encoded JSON payload
- All fields are consistent across events
- Security & Performance:
- Use workspace secret for verification
- Ensure endpoint can handle event volume
- Implement proper error handling
Best Practices
- Validate the workspace secret on every incoming webhook to ensure authenticity
- Implement idempotency handling using the event timestamp and payload data
- Use asynchronous processing for webhook handling to avoid timeout issues
- Log all incoming webhooks for debugging and monitoring purposes
Testing Your Webhook
You can test your webhook endpoint using thewebhook_test event. This event is sent with a simple payload and can be used to verify your endpoint is reachable and correctly configured.
Sample:
Webhook Test Event
