Zendesk

Send new Zendesk tickets in as feedback.

What you will need

  • Webhook signing secret

Steps

In FeedbackFlow, open your project, go to Integrations, and select Zendesk. Then:

  1. 1

    In Admin Center → Apps and integrations → Webhooks, create a webhook (method POST) pointing to:

    https://www.usefeedbackflow.com/api/ingest/zendesk/YOUR_PROJECT_ID
  2. 2

    Set the webhook JSON body to:

    { "external_id": "{{ticket.id}}", "message": "{{ticket.description}}", "requester_email": "{{ticket.requester.email}}", "requester_name": "{{ticket.requester.name}}" }
  3. 3

    Copy the webhook's Signing Secret into FeedbackFlow.

  4. 4

    In Admin Center → Objects and rules → Triggers, add a trigger that runs the webhook when a ticket is created.

Replace YOUR_PROJECT_ID with the ID of your project, shown on the integration setup screen.

What gets captured from Zendesk

Whatever your webhook body template sends, which must include an external_id and a non-empty message. requester_email and requester_name are optional and become the item’s identity. A payload missing either required field returns 200 and is ignored rather than rejected.

Check that it worked

  1. Use "Test webhook" in Zendesk with the body template from the setup screen. It should return 200.
  2. Create or update a ticket that fires the trigger you attached the webhook to.
  3. The ticket text appears in the inbox, with the requester attached if you templated their email.

If it is not working

Deliveries return 401
The secret must be the signing secret Zendesk generated for that specific webhook, and the signed timestamp has to be inside five minutes. Rotating the secret in Zendesk invalidates the stored one.
Zendesk reports 200 but nothing appears
The body template is missing external_id or message, or message is empty. An unrecognized payload is acknowledged rather than refused, which is why Zendesk shows success.
The same ticket arrives repeatedly
The trigger is firing on every update rather than on creation. Ingestion deduplicates on external_id so the repeats are dropped, but narrowing the trigger saves the round trip.

Still stuck? Widget and integration troubleshooting covers the problems that are not specific to Zendesk.

Open the Zendesk docs