Webhooks

Get notified in real time when events happen in your Supp account.

Setup

Create a webhook integration via the Integrations API. Use the events array to subscribe to specific events, or omit it to receive all events:

bash
curl -X POST https://api.supp.support/api/integrations \
  -H "Content-Type: application/json" \
  -H "Cookie: <session-cookie>" \
  -d '{
    "provider": "custom",
    "name": "My Webhook",
    "config": {
      "webhook_url": "https://your-app.com/webhooks/supp",
      "events": ["conversation.created", "conversation.resolved"]
    }
  }'

Automatic Events

These fire automatically when things happen in your account:

EventDescription
conversation.createdNew conversation started (includes intent, confidence, channel, priority)
conversation.resolvedConversation marked as resolved
conversation.escalatedConversation escalated to human agent
intent.classifiedMessage classified with an intent (includes intent, confidence, priority)

Routing-Rule Action Events

These fire when a routing rule triggers a webhook action:

EventDescription
supp.actionA routing rule action was executed (includes action, intent, message)
supp.testConnection test event (sent when you verify the webhook)

Payload Examples

Automatic event payload:

json
{
  "event": "conversation.created",
  "timestamp": "2026-02-12T10:30:00Z",
  "data": {
    "conversation_id": "550e8400-e29b-41d4-a716-446655440000",
    "intent": "password_reset",
    "confidence": 0.94,
    "channel": "chat",
    "status": "open",
    "priority": "high"
  }
}

Routing-rule action payload:

json
{
  "event": "supp.action",
  "action": "mcp_action",
  "intent": "billing_inquiry",
  "conversation_id": "session_abc123",
  "message": "I need help with my invoice",
  "timestamp": "2026-02-12T10:30:00Z"
}

Security

All webhook URLs must use HTTPS. Private IP addresses, localhost, cloud metadata endpoints, and internal domains are blocked to prevent SSRF attacks. URLs are validated both at configuration time and before each delivery.