Files
upstream-mirror 64898b2c79
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
2026-09-15 15:05:30 +05:00

4.0 KiB

Zulip Freshdesk integration

See customer support interactions in Zulip with our Freshdesk integration!

Create Zulip bot for Freshdesk notifications

{start_tabs}

  1. {!create-an-incoming-webhook.md!}

  2. {!generate-webhook-url-basic.md!}

{end_tabs}

Add notifications for new Freshdesk tickets

{start_tabs}

  1. Go to your Freshdesk Admin page.

  2. Under Helpdesk Productivity, select Dispatch'r, and then select New rule.

  3. Set Rule Name to a name of your choice, such as Zulip.

  4. There isn't a shortcut to "always generate a notification on ticket creation", so we'll have to fake it by picking two complementary conditions: when the source is email, and when the source is not email. Set up the Conditions for the new rule, like so:

  5. Under Actions, set the Select Action dropdown to Trigger Webhook.

  6. Set Request Type to POST, and set Callback URL to the URL generated above.

  7. Toggle the Requires Authentication checkbox.

  8. Set Username to the email of the bot created above, and set Password to the bot's API key.

  9. Set Encoding to JSON, and select the Advanced option. Copy and paste the following JSON into the Content box:

    {% raw %}
    {"freshdesk_webhook":
        {
            "triggered_event":"{{triggered_event}}",
            "ticket_id":"{{ticket.id}}",
            "ticket_url":"{{ticket.url}}",
            "ticket_type":"{{ticket.ticket_type}}",
            "ticket_subject":"{{ticket.subject}}",
            "ticket_description":"{{ticket.description}}",
            "ticket_status":"{{ticket.status}}",
            "ticket_priority":"{{ticket.priority}}",
            "requester_name":"{{ticket.requester.name}}",
            "requester_email":"{{ticket.requester.email}}"
        }
    }
    {% endraw %}
    
  10. Click Save.

{end_tabs}

Get notifications for changes to existing Freshdesk tickets

{start_tabs}

  1. Go to your Freshdesk Admin page.

  2. Under Helpdesk Productivity, select Observer, and then select New rule.

  3. Set Rule Name to a name of your choice, such as Zulip.

  4. Under involves any of these events, create new events as shown below:

  5. Unfortunately, there isn't a shortcut for specifying "all tickets", so we'll have to fake it by picking two complementary conditions: when the source is email, and when the source is not email. Under on tickets with these properties, create new conditions, like so:

  6. Under perform these actions, set the Select Action dropdown to Trigger Webhook.

  7. Set Request Type to POST, and set Callback URL to the URL generated above.

  8. Toggle the Requires Authentication checkbox.

  9. Set Username to the email of the bot created above, and set Password to the bot's API key.

  10. Set Encoding to JSON and select the Advanced option. Copy and paste the following JSON into the Content box:

    {% raw %}
    {"freshdesk_webhook":
        {
            "triggered_event":"{{triggered_event}}",
            "ticket_id":"{{ticket.id}}",
            "ticket_url":"{{ticket.url}}",
            "ticket_type":"{{ticket.ticket_type}}",
            "ticket_subject":"{{ticket.subject}}",
            "ticket_description":"{{ticket.description}}",
            "ticket_status":"{{ticket.status}}",
            "ticket_priority":"{{ticket.priority}}",
            "requester_name":"{{ticket.requester.name}}",
            "requester_email":"{{ticket.requester.email}}"
        }
    }
    {% endraw %}
    
  11. Select Save.

{end_tabs}

{!congrats.md!}

{!webhooks-url-specification.md!}