Skip to main content

Zendesk Webhook Integration Guide

Moshi Delgo avatar
Written by Moshi Delgo
Updated yesterday

Beehive AI supports secure and scalable webhook ingestion for Zendesk outbound webhooks using a robust, custom authentication scheme based on Google Cloud KMS-signed JSON Web Tokens (JWTs). This integration allows Private Key Isolation (KMS), Instant Revocation, Multi-Client Isolation, and Transport Security enforced over HTTPS with TLS 1.3+.

Getting Started

To begin automatically sending new ticket data to Beehive AI for analysis, you'll need to request credentials, configure the Zendesk webhook, and create a trigger.

1. Request Long-Lived JWT Credential

  • Contact Beehive AI Support to begin the onboarding process.

  • We will provide a dedicated Cloud KMS Asymmetric Signing Key for your Zendesk instance.

  • Once configured, we will securely share a long-lived JWT. This token is cryptographically signed using your dedicated KMS key.

Note: Your JWT grants access to the Zendesk Webhook API and includes an Issuer (iss) and Subject (sub) claim unique to your organization.

2. Configure the Zendesk Webhook (Step 1)

  • In your Zendesk Admin Center, create a new Webhook that points to our API and includes a custom authorization header

  • Path: Apps and integrations -> Webhooks -> Webhooks -> Create webhook

Configuration Field

Required Value

Notes

Connection Method

Trigger or automation

To connect the webhook using a business rule.

Endpoint URL

The endpoint you want to pass data to.

Request Method

POST

Request Format

JSON

Authentication

API Key

Sample:

3. Add Custom Authorization Header

Store the long-lived JWT as a custom header under the Headers section.

Header Key

Header Value

Notes

Header Name (Key)

X-Webhook-Token

Value

YOUR_LONG_LIVED_KMS_SIGNED_JWT

Replace this placeholder with the unique token provided by Beehive AI Support. This token is static and will not expire for a very long period

Content-Type

application/json

4. Create a Trigger (Step 2: Call the Webhook API)

Once the webhook is configured, create a Zendesk Trigger to execute the webhook for new tickets.

  • Set the trigger condition to fire when a Ticket is Created.

Verification Process

Upon receiving the request, our backend handler performs the following checks:

  1. Extracts the JWT from the X-Webhook-Token header.

  2. Fetches the corresponding key from Google Cloud KMS.

  3. Verifies the cryptographic signature of the JWT using the public key.

  4. Validates all standard claims and your custom claims (iss, sub) to ensure the token is authentic, unexpired, and belongs to your client.

If all checks pass, the webhook payload is ingested for processing.

Security Considerations

Beehive AI uses a multi-tenant security model where each client (Zendesk instance) has a dedicated asymmetric signing key managed within Google Cloud KMS.

Since Zendesk cannot refresh tokens, we use a static, long-lived JWT stored in a custom header for authentication.

Key Security Benefits

  • Private Key Isolation (KMS): The critical private key used to sign the JWT never leaves Google Cloud KMS. Verification requires only the publicly exposed key.

  • Instant Revocation: The long-lived JWT can be instantly revoked by Beehive AI by simply disabling the specific KMS Key Version that signed the token. Any subsequent webhook requests using that JWT will immediately fail signature verification.

  • Multi-Client Isolation: Each customer is provisioned with a dedicated KMS key, guaranteeing cryptographic isolation between clients.

  • Transport Security: Webhook traffic is strictly enforced over HTTPS with TLS 1.3+.

Did this answer your question?