Zapier
Connect Leezy to Zapier to push leads, tickets, meetings, conversations, and feedback events into CRM, helpdesk, calendar, and notification workflows.
Requirements
- A paid Leezy workspace plan. Workspace owners and admins can authorize the connection.
- During the closed beta, the Integrations beta feature flag must be enabled on the workspace. Workspaces without the flag do not see the deploy channel grid.
Connect Leezy
- Open the Zap editor in Zapier and select Leezy as the trigger or action app.
- Choose a trigger event (see the table below).
- Click Sign in to Leezy. Zapier opens the Leezy authorization page.
- Sign in to Leezy if prompted, then approve the requested workspace and permissions.
- Select a trigger and use Test trigger to load sample data.
The Leezy authorization screen lists the workspace and the requested scopes for review before granting access.
Available Triggers
Each trigger uses the REST Hook pattern. Zapier subscribes via /api/v1/webhooks/subscribe, Leezy POSTs the event payload to Zapier when the matching backend event fires.
| Trigger label | Trigger key | Event | Typical use |
|---|---|---|---|
| New Lead | lead_created | lead.created | Add a CRM contact, notify sales. |
| Lead Qualified | lead_qualified | lead.qualified | Route high-fit leads to priority follow-up. |
| Lead Converted | lead_converted | lead.converted | Push to CRM as a won opportunity. |
| New Ticket | ticket_created | ticket.created | Create a ticket in a helpdesk. |
| Ticket Resolved | ticket_resolved | ticket.resolved | Send CSAT survey, close loop. |
| Meeting Scheduled | meeting_scheduled | meeting.scheduled | Add a calendar event, send reminder. |
| Meeting Cancelled | meeting_cancelled | meeting.cancelled | Calendar cleanup, re-engagement. |
| Negative Sentiment Detected | conversation_sentiment_negative | conversation.sentiment_negative | Escalate to Slack or PagerDuty. |
| Negative Feedback Received | message_feedback_negative | message.feedback_negative | Quality monitoring dashboard. |
Sample Payloads
Every webhook delivery from Leezy follows the envelope below. The data object contains the resource fields specific to the event type.
{
"id": "f0e1d2c3-...",
"type": "lead.created",
"created_at": "2026-04-26T10:00:00.000Z",
"organization_id": "692779fb-...",
"chatbot_id": "5d444b36-...",
"data": {
"id": "7f5d23a8-...",
"lead_id": "7f5d23a8-...",
"chatbot_id": "5d444b36-...",
"name": "John Smith",
"email": "john.smith@acme-corp.com",
"phone": "+1-555-123-4567",
"company": "Acme Corporation",
"qualification_score": 8,
"status": "qualified",
"created_at": "2026-04-26T10:00:00.000Z",
"updated_at": "2026-04-26T10:00:00.000Z"
}
}
Field shapes per event family:
- Lead events (
lead.*):lead_id,chatbot_id,name,email,phone,company,qualification_score,status,created_at,updated_at. - Ticket events (
ticket.*):ticket_id,chatbot_id,title,description,priority,status,created_at,resolved_at. - Meeting events (
meeting.*):meeting_id,chatbot_id,title,start_time,end_time,attendee_email,attendee_name,status,meeting_url,created_at. - Conversation events (
conversation.*):conversation_id,chatbot_id,visitor_id,status,message_count,created_at,ended_at.
Common Zaps
| Leezy trigger | Zapier action |
|---|---|
| New Lead | Create HubSpot contact |
| Lead Qualified | Send Slack channel message |
| Lead Converted | Create Salesforce opportunity |
| New Ticket | Create Zendesk ticket |
| Ticket Resolved | Send CSAT survey via Typeform |
| Meeting Scheduled | Create Google Calendar event |
| Meeting Cancelled | Send re-engagement email |
| Negative Sentiment Detected | Page on-call via PagerDuty |
| Negative Feedback Received | Append row to a "Quality review" Google Sheet |
Filtering by Chatbot
When subscribing, Zapier may pass an optional chatbot_id filter. Leezy's webhook dispatcher only delivers events whose chatbot_id matches. Events emitted without a chatbot_id (e.g. workspace-wide events) do not match a chatbot_id-filtered subscription.
Manage the Connection
Open Dashboard → Chatbots → [chatbot] → Deploy → Zapier to view the connected Zapier app, the active webhook subscriptions for that chatbot, and to disconnect Zapier from the workspace.
Disconnecting from this page revokes the OAuth tokens and deletes all webhook subscriptions tied to the connection. Zaps stop firing immediately.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| "Test trigger" returns no sample data | The chatbot has no recent records of that resource type. | Create one lead, ticket, or meeting via the chatbot, then retry. |
| Zap stops firing after rotating Zapier secret | The stored OAuth client secret hash on Leezy no longer matches. | Reconnect the integration from the Zap editor. |
| Subscribe returns 402 Payment Required | Workspace was downgraded to the free plan. | Upgrade to Starter or higher and reconnect. |
| Subscribe returns 403 Insufficient Scope | The Zap requested a trigger that needs a scope the user did not grant. | Reconnect and grant the requested scopes. |
Security and Verification
Each delivery includes:
X-Leezy-Signature: sha256=<hex>— HMAC of the raw body using the subscription secret.X-Leezy-Timestamp— Unix timestamp for replay protection.X-Leezy-Event— Event type, e.g.lead.created.X-Leezy-Delivery— Per-delivery log ID for support traceability.
Verify signatures against the secret returned (only once) when the subscription is created. See API → Webhooks for full reference.