Documentation Index
Fetch the complete documentation index at: https://docs.clarky.ai/llms.txt
Use this file to discover all available pages before exploring further.
Plan availability: Pro or higher. See Plans & Billing.
What Are Webhooks?
Webhooks let Clarky push real-time notifications to your own systems whenever something interesting happens — a new conversation starts, a contact is created, a booking is confirmed, or sentiment turns negative. Instead of polling for updates, your services receive an HTTP request the moment an event occurs. Common use cases:- Notify a Slack channel when a user asks to speak with a human
- Sync new contacts into your data warehouse
- Trigger an automation in Zapier, Make, or n8n
- Update a custom CRM when a booking is confirmed
- Alert on-call staff when a conversation is flagged with negative sentiment
Adding a Webhook
Name and describe it
Give the webhook a clear name (for example, “Notify Slack on Escalation”) and an optional description so teammates know what it does.
Enter the destination URL
Paste the URL of the endpoint that should receive the event. This is usually provided by the service you’re integrating with — a Slack incoming webhook, a Zapier catch hook, or your own server endpoint.
Choose an HTTP method
Most destinations expect POST, which is the default. PUT, PATCH, GET, and DELETE are also supported for special cases.
Select the events to trigger it
Pick one or more events from the list (see Available Events below). The webhook will only fire when one of these events occurs.
Scope to specific agents (optional)
By default, a webhook applies to all agents in the workspace. You can narrow it to one or more specific agents if you only want notifications for a subset.
Available Events
Clarky can send a webhook for any of the following events:Contact events
Contact events
- Contact Created — When a new contact is created
- Contact Updated — When a contact is updated
- Contact Deleted — When a contact is deleted
Conversation events
Conversation events
- Conversation Started — When a new conversation starts
- Conversation Updated — When a conversation is updated
- Conversation Bad Sentiment — When a conversation is flagged with negative sentiment
- Escalation Requested — When a user asks to speak with a human
Message events
Message events
- Message Sent (Outbound) — When the agent sends a message
- Message Received (Inbound) — When a user sends a message
Booking events
Booking events
- Booking Created — When a new booking is made
- Booking Confirmed — When a booking is confirmed
- Booking Cancelled — When a booking is cancelled
- Booking Rescheduled — When a booking is rescheduled
- Booking Completed — When a booking is marked as completed
- Booking No Show — When an attendee doesn’t show up
- Booking Reminder Sent — When a booking reminder is sent
Authentication
If your destination requires authentication, add a Bearer Token when creating or editing the webhook. Clarky will include it as anAuthorization header on every request to that endpoint.
Customizing the Payload
By default, Clarky sends a structured JSON payload that includes the event name, a timestamp, and details about the conversation, contact, and agent. You can override this with your own template if the receiving service expects a specific shape (for example, Slack’stext field).
The payload editor supports inserting variables that are replaced at delivery time. Click any variable to drop it at your cursor:
| Variable | Description |
|---|---|
{{event}} | Event name (for example, conversation.started) |
{{timestamp}} | ISO 8601 timestamp of the event |
{{botId}} | The agent’s unique ID |
{{botName}} | The agent’s display name |
{{conversationId}} | Unique conversation ID |
{{conversationUrl}} | Direct link to the conversation in your inbox |
{{firstMessage}} | The user’s first message |
{{type}} | Conversation type — chat, text, voice, or email |
{{phoneNumber}} | Phone number (for voice and text conversations) |
{{firstName}} | Contact’s first name |
{{lastName}} | Contact’s last name |
{{email}} | Contact’s email |
{{sentimentScore}} | Sentiment score from 0 to 100 |
{{sentimentSummary}} | Short summary of the conversation sentiment |
Enabling and Disabling Webhooks
Each webhook has a toggle switch on its card. Turn a webhook off temporarily — for example, while you’re debugging a downstream system — without deleting it. Disabled webhooks don’t fire and don’t count toward delivery activity.Testing a Webhook
The simplest way to verify a webhook is to trigger one of its events in a sandbox conversation:Open your widget or send a message
Start a test conversation with the agent the webhook is scoped to.
Managing Existing Webhooks
From the Webhooks list you can:- Toggle a webhook on or off without deleting it
- Edit the URL, events, agent scope, or payload template
- Delete a webhook you no longer need
Back to Settings
Return to Settings overview

