Outgoing Webhook Events and Payload Reference

Send real-time ticket and user events to external systems via HTTP POST. This guide covers all available events, their payload formats, and configuration details. This is a Pro feature.

Overview

Outgoing webhooks automatically send data to an external URL whenever specific events occur in Support Genix. Use them to integrate with CRMs, project management tools, Slack (custom), Zapier, Make (Integromat), or any system that accepts HTTP POST requests.

Creating an Outgoing Webhook

Go to Support Genix > Settings > Webhooks > Outgoing.

  1. Click Add New.
  2. Fill in:
FieldDescription
TitleA name for this webhook (e.g., “CRM Sync”, “Zapier Trigger”)
Remote URLThe HTTPS endpoint that will receive the POST requests
EventsSelect which events trigger this webhook (see below)
StatusActive or Inactive
  1. Click Save.

You can create multiple webhooks with different URLs and different event selections.

Available Events

EventCodeFires When
Ticket Createdon_tckt_createA new ticket is created (from portal, email, chatbot, or webhook)
Ticket Repliedon_tckt_repliedAn agent or customer adds a reply to a ticket
Ticket Closedon_tckt_closedA ticket’s status changes to Closed
Client Createdon_client_createA new customer account is created

Select one or more events per webhook. A single webhook can listen to all 4 events.

Payload Reference

All payloads are sent as HTTP POST with form-encoded body. The event field identifies which event triggered the webhook.

Ticket Created

Sent when a new ticket is created.

{
  "event": "ticket.created",
  "id": 123,
  "ticket_track_id": "TKT-00042",
  "category_id": 5,
  "category_title": "Billing",
  "ticket_user_id": 45,
  "ticket_user_email": "[email protected]",
  "ticket_user_title": "John Doe",
  "title": "Cannot access my account",
  "ticket_body": "<p>I am unable to log in since this morning...</p>",
  "opened_time": "2026-02-17T10:30:00+00:00",
  "status": "Open",
  "ticket_link": "https://yoursite.com/wp-admin/admin.php?page=support-genix#/tickets/123",
  "assigned_on": "Jane Agent",
  "assigned_date": "2026-02-17T10:31:00+00:00",
  "related_url": "",
  "custom_fields": {
    "order_number_8": "ORD-12345",
    "product_name_12": "Widget Pro"
  }
}
FieldTypeDescription
eventstringAlways "ticket.created"
idintegerInternal ticket ID
ticket_track_idstringPublic ticket reference number
category_idintegerCategory ID
category_titlestringCategory name
ticket_user_idintegerCustomer’s user ID
ticket_user_emailstringCustomer’s email
ticket_user_titlestringCustomer’s display name
titlestringTicket subject
ticket_bodystringTicket description (HTML)
opened_timestringCreation timestamp (ISO 8601)
statusstringTicket status text
ticket_linkstringDirect admin URL to the ticket
assigned_onstringAssigned agent’s name
assigned_datestringAssignment timestamp
related_urlstringRelated external URL (if any)
custom_fieldsobjectCustom field values (see below)

Ticket Replied

Sent when a reply is added to a ticket.

{
  "event": "ticket.replied",
  "id": 123,
  "ticket_track_id": "TKT-00042",
  "ticket_user_id": 45,
  "ticket_user_email": "[email protected]",
  "ticket_user_title": "John Doe",
  "title": "Cannot access my account",
  "status": "Active",
  "ticket_link": "https://yoursite.com/wp-admin/admin.php?page=support-genix#/tickets/123",
  "ticket_replied_user_id": 12,
  "ticket_replied_user": "Jane Agent",
  "replied_text": "<p>Hi John, I've reset your password. Please try logging in again.</p>"
}
FieldTypeDescription
eventstringAlways "ticket.replied"
ticket_replied_user_idintegerUser ID of the person who replied
ticket_replied_userstringName of the person who replied
replied_textstringReply content (HTML)
(other fields)Same as Ticket Created

Ticket Closed

Sent when a ticket is closed.

{
  "event": "ticket.closed",
  "id": 123,
  "ticket_track_id": "TKT-00042",
  "category_id": 5,
  "category_title": "Billing",
  "ticket_user_id": 45,
  "ticket_user_email": "[email protected]",
  "ticket_user_title": "John Doe",
  "title": "Cannot access my account",
  "opened_time": "2026-02-17T10:30:00+00:00",
  "closed_time": "2026-02-17T14:45:00+00:00",
  "status": "Closed",
  "ticket_link": "https://yoursite.com/wp-admin/admin.php?page=support-genix#/tickets/123",
  "custom_fields": {
    "order_number_8": "ORD-12345"
  }
}
FieldTypeDescription
eventstringAlways "ticket.closed"
closed_timestringClosure timestamp (ISO 8601)
(other fields)Same as Ticket Created

Client Created

Sent when a new customer account is created.

{
  "event": "user.created",
  "id": 45,
  "first_name": "John",
  "last_name": "Doe",
  "email": "[email protected]",
  "custom_fields": {
    "company_name_3": "Acme Inc",
    "phone_number_7": "+1-555-0100"
  }
}
FieldTypeDescription
eventstringAlways "user.created"
idintegerWordPress user ID
first_namestringCustomer’s first name
last_namestringCustomer’s last name
emailstringCustomer’s email address
custom_fieldsobjectCustom user field values

Custom Fields in Payloads

Custom fields are included as a flat object with normalized keys:

  • Format: {field_label}_{field_id} (lowercase, spaces replaced with underscores)
  • Example: A field labeled “Order Number” with ID 8 becomes order_number_8

Only fields that have values are included. Empty fields are omitted.

HTTP Delivery Details

SettingValue
MethodPOST
Content-Typeapplication/x-www-form-urlencoded
Timeout120 seconds
Max Redirects5
RetryNo automatic retry
SSL VerificationStandard WordPress HTTP API behavior

Integration Examples

Zapier

  1. Create a Zap with the trigger “Webhooks by Zapier” > “Catch Hook”.
  2. Zapier gives you a webhook URL (e.g., https://hooks.zapier.com/hooks/catch/...).
  3. Paste that URL as the Remote URL in Support Genix.
  4. Select the events you want.
  5. Test by creating a ticket — Zapier should receive the payload.
  6. Map the fields in Zapier to your desired action (create CRM contact, send Slack message, etc.).

Make (Integromat)

  1. Create a scenario with a “Custom Webhook” trigger module.
  2. Copy the generated webhook URL.
  3. Paste it in Support Genix as the Remote URL.
  4. Select events and save.
  5. Trigger a test event to establish the data structure in Make.

Custom Application

Receive webhooks in any backend:

# Python / Flask example
from flask import Flask, request

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def handle_webhook():
    event = request.form.get('event')

    if event == 'ticket.created':
        ticket_id = request.form.get('ticket_track_id')
        customer = request.form.get('ticket_user_email')
        subject = request.form.get('title')
        # Process the new ticket...

    elif event == 'ticket.closed':
        # Process ticket closure...

    return 'OK', 200
// Node.js / Express example
app.post('/webhook', (req, res) => {
  const { event, ticket_track_id, ticket_user_email, title } = req.body;

  if (event === 'ticket.created') {
    // Process new ticket
  }

  res.sendStatus(200);
});

Managing Webhooks

Bulk Actions

Select multiple webhooks and:

  • Activate — Enable selected webhooks.
  • Deactivate — Disable selected webhooks.
  • Delete — Permanently remove selected webhooks.

Testing

  1. Use a service like webhook.site to get a temporary URL.
  2. Create a webhook with that URL and select all events.
  3. Trigger each event (create a ticket, reply, close, create a user).
  4. Inspect the payloads on webhook.site to verify the data.

Important Notes

  • No retry logic. If the remote server is down, the webhook is not retried. Ensure your receiving endpoint has high availability.
  • Timeout. Requests that take longer than 120 seconds are aborted. Keep your endpoint response time under 30 seconds.
  • HTTPS recommended. Always use HTTPS URLs to protect data in transit.
  • Multiple webhooks. You can send the same event to multiple URLs by creating multiple webhooks.
  • Performance. Webhook delivery happens synchronously during the event. If the remote endpoint is slow, it may slightly delay the ticket operation. Keep response times fast.

Related Docs

Last updated on March 15, 2026

Was this article helpful?

PREVIOUS

WhatsApp Integration for Support Genix

NEXT

BetterDocs Integration

Powered by Support Genix