Zapier
Send chat events to a Zap, with what each event contains.
Open in dashboardConnect Zapier to send chat events to any app, like a Google Sheet, Slack or your CRM. Go to Integrations > Zapier. On Growth and Pro, for Shopify and custom website stores. Each store has its own Zap.
Connect#
In Zapier, create a Zap with the trigger Webhooks by Zapier > Catch Hook. Copy the hook URL.
In Any Store AI, go to Integrations > Zapier and paste it. It starts with https://hooks.zapier.com/hooks/catch/.
Pick the events to send and select Connect. We send a test event straight away.
Back in Zapier, select Test trigger
The test event's fields are there to map in your next step.
Select Send test event any time to send the sample shown in the window. Test events have test set to true, so a Zap can filter them out.
Events#
| Event | Sent when |
|---|---|
| Chat started (conversation.started) | A shopper sends their first message |
| Email captured (contact.captured) | A shopper gives their email in the chat |
| Person requested (conversation.handoff_requested) | A shopper asks to talk to a person |
| Chat rated (conversation.rated) | A shopper rates the chat |
| Order from chat (order.attributed) | A paid order comes from a chat. Shopify stores only |
Each event is sent once. If your Zap doesn't answer, we try again after 1, 5 and 30 minutes and 2 hours. Test chats from the dashboard send nothing.
What an event looks like#
Every event has the same outer fields. data depends on the event.
{
"id": "8d7f0c9a-51b2-4e3c-a6d4-0f1e2b3c4d5e",
"type": "contact.captured",
"created_at": "2026-01-15T10:30:00+00:00",
"store": { "id": "…", "name": "Your store", "url": "https://yourstore.com" },
"data": {
"conversation_id": "3f2b6c1e-8a4d-4e0b-9c57-2d1a7e5b9f10",
"email": "[email protected]",
"name": "Sam Carter",
"source": "contact_form",
"url": "https://app.anystoreai.com/conversations/3f2b6c1e-8a4d-4e0b-9c57-2d1a7e5b9f10"
}
}| Event | Fields in data |
|---|---|
| conversation.started | conversation_id, message, customer (name, email), url |
| contact.captured | conversation_id, email, name, source (chat, contact_form or newsletter), url |
| conversation.handoff_requested | conversation_id, customer (name, email), requested_at, url |
| conversation.rated | conversation_id, rated (assistant or team), customer (name, email), url. For the assistant: rating (helpful or not_helpful) and comment. For your team: score (1 to 5) and team_member |
| order.attributed | conversation_id, order_id, order_number, total, currency, placed_at, match (chat_cart or after_chat) |
url opens the conversation in your dashboard. Names and emails are empty when the shopper hasn't given them.
If something goes wrong#
- The card shows Needs attention when events stop reaching your Zap, and the account owner gets an email. Check the Zap is on and the hook URL hasn't changed.
- Turn off Send events to pause without losing the setup.
- Events still waiting after 3 days are dropped.
Still stuck? Contact support and we'll reply by email.