Webhooks are an Enterprise feature. Upgrade your plan to access webhooks.
Quick Start
For most integrations (Zapier, Make.com, n8n, etc.), simply:- Go to Webhooks in your dashboard
- Click Create Webhook
- Enter the URL from your integration service
- Select the events you want to receive
- Save - you’re done!
Event Types
TicketCord supports 23 webhook events:Ticket Events
Message Events
Priority & SLA Events
Approval Events
Ticket Notes
Access Control Events
Payload Structure
All webhooks are delivered asPOST requests with JSON payloads.
Base Structure
Every webhook follows this structure:Payload Examples
ticket.created
ticket.created
ticket.closed
ticket.closed
ticket.claimed
ticket.claimed
message.created
message.created
priority.changed
priority.changed
Headers
Every webhook request includes these headers:Retry Policy
Failed webhook deliveries are automatically retried:- Maximum retries: 3 attempts
- Backoff: Exponential (1s, 2s, 4s)
- Success codes: Any 2xx response is considered successful
- Timeout: 30 seconds per request
Building a Custom Webhook Receiver
This section is for developers building custom integrations. Most users can skip this and use services like Zapier or Make.com.
Basic Receiver
A minimal webhook receiver that accepts events and responds quickly:server.ts
Signature Verification
For production systems, always verify that webhook requests actually come from TicketCord. This prevents attackers from sending fake events to your endpoint.How Signatures Work
Each webhook request is signed using your webhook’s secret key:- TicketCord creates a signature string:
v0:{timestamp}:{payload} - Generates HMAC-SHA256 hash using your secret
- Sends the hash in the
X-TicketCord-Signatureheader
Verification Steps
- Extract the timestamp from
X-TicketCord-Timestampheader - Get the raw JSON payload body (before parsing)
- Compute:
HMAC-SHA256("v0:{timestamp}:{payload}", your_secret) - Compare your computed signature with
X-TicketCord-Signature - Verify timestamp is within 5 minutes (replay attack protection)
Complete Examples with Signature Verification
server.ts
Security Best Practices
- Always verify signatures - Don’t trust requests without valid signatures
- Check timestamps - Reject requests older than 5 minutes to prevent replay attacks
- Use HTTPS - Your webhook endpoint should only accept HTTPS connections
- Use constant-time comparison - Prevents timing attacks when comparing signatures
- Keep secrets secure - Store your webhook secret in environment variables, never in code
- Handle retries gracefully - Your endpoint may receive the same event multiple times (use idempotency keys)
- Respond quickly - Return a 2xx response within 30 seconds to avoid timeouts
Testing Your Receiver
Use the Test button in the TicketCord dashboard to send a test webhook to your endpoint. This sends atest.ping event:
Debugging
Check the View Logs option in the dashboard to see:- Request/response details for each delivery
- HTTP status codes returned by your endpoint
- Error messages for failed deliveries
- Retry attempts and timing
Need Help?
Get instant support via private DM