Creating Zendesk webhooks and triggers for Inquiru
Updated June 14, 2026
Step 5 — Create a webhook in Zendesk
Go to Admin Centre → Apps and Integrations → Webhooks and click Create webhook. Set it to connect to a Trigger or Automation, then fill in:
- Endpoint URL — paste the Webhook URL from your Inquiru integration
- Request method — POST
- Request format — JSON
- Authentication — None
Optional HMAC signing: For added security, enable Webhook signing and copy the signing secret. Paste it into the Webhook Secret field of your Inquiru integration. Inquiru then verifies the signature on every request, rejecting anything not sent by Zendesk.
Step 6 — Create triggers in Zendesk
Triggers tell Zendesk when to fire the webhook. You need exactly two triggers. Delete any older broad triggers (e.g. one that fires on any comment with no channel filter) — they cause duplicate conversations.
The JSON body template (used by both triggers)
All string fields must use the | json_escape filter and all values must be quoted — otherwise multi-line descriptions break the JSON and Inquiru rejects the request with a 400 error.
{ "ticket": { "id": "{{ticket.id}}", "subject": "{{ticket.title | json_escape}}", "description": "{{ticket.description | json_escape}}", "status": "{{ticket.status}}", "requester_id": "{{ticket.requester.id}}", "requester": { "email": "{{ticket.requester.email}}", "name": "{{ticket.requester.name | json_escape}}" }, "latest_comment": { "body": "{{ticket.latest_comment.value | json_escape}}", "author_id": "{{ticket.latest_comment.author_id}}" } } }
Trigger 1 — Customer reply
Name it Inquiru — Customer reply. Conditions (Meet ALL):
- Ticket → Is → Updated
- Comment → Is → Public
- Current user → Role → Is → End user
- Ticket → Channel → Is none of the following → Chat, Web Widget, Messaging, X Corp, Facebook Messenger, Instagram Direct
Action: Notify active webhook → your Inquiru webhook → JSON body above.
The Current user → Role → Is → End user condition ensures the webhook fires only when a customer comments, preventing infinite loops. The channel exclusions prevent double-processing — Messaging and Chat sessions are handled by the Sunshine Conversations webhook.
Trigger 2 — Ticket assigned to AI agent
Name it Inquiru — Ticket assigned to AI agent. Conditions (Meet ALL):
- Ticket → Is → Updated
- Ticket → Assignee → Changed to → [your AI agent Zendesk account]
Action: Notify active webhook → your Inquiru webhook → JSON body above.
This catches tickets manually routed to the AI agent — e.g. an unassigned web form submission that is later assigned to the AI agent. Inquiru uses the ticket's description as the customer's message when there is no latest comment.
Testing with a specific email address first
While validating, add to both triggers: Requester → Email address → Is → your-test-email@example.com. This prevents the AI from responding to real customers during setup. Remove the condition when ready to go live.
