Skip to main content
Configure incident Webhook. When specific operations occur on incidents (such as trigger or close), the system makes an HTTP callback to your configured address. The callback content includes the incident’s latest key information, allowing integration with your custom tools.

1. Event Types

The following event types are currently supported; more may be added in the future.

2. Push Description

Request Method

POST, Content-Type:“application/json”

Request Payload:

Person:Responder:Incident:

Request Response

HTTP status code 200 indicates successful push.

Request Example

3. Configuration Guide

Go to Integration CenterWebhook → Add or edit an Incident Webhook integration.

Basic Settings

Enter the integration name and description for easy management.

Webhook Settings

Disabling TLS certificate verification may expose you to man-in-the-middle attacks. Only disable it in test environments or when using self-signed certificates.

Custom request body

By default, the system pushes the complete JSON data following the Payload structure described above. If your receiver requires a specific data format, you can use a custom request body to reorganize the push content. Use {{field.path}} syntax to reference any field from the default Payload. The system replaces variables with actual values at push time. Variable syntax:
  • Use . to separate path levels, e.g. {{incident.title}} references the incident title
  • Array index access is supported, e.g. {{incident.responders.0.email}} references the first responder’s email
  • When the entire value is a single variable (e.g. "{{incident.labels}}"), the original data type is preserved (object, array, number, etc.)
  • When a variable is mixed with other text (e.g. "Incident: {{incident.title}}"), the variable is converted to a string for concatenation
Example: Transform the default Payload into a custom format for an internal system:
If a variable path does not exist in the default Payload, the system keeps the original {{...}} text without replacement. It is recommended to first check the actual default Payload via invocation history to confirm available field paths.

Value mapping (value_mapping)

In the custom request body, you may need to convert Flashduty field values to the format expected by the receiving system. Value mapping automatically transforms values during variable resolution. Value mapping is configured per field path, with each path containing a source value → target value mapping table. Example: Convert severity and progress to custom values for the receiving system:
Used with the following custom request body:
When the incident severity is Critical, the severity field in the push result will be P0. Values that do not match any mapping are sent as-is.

4. Invocation History

Incident Webhook provides a complete invocation history, helping you troubleshoot push delivery and debug callback interfaces.

View Invocation History

Go to the Incident Webhook integration detail page and switch to the Invocation History tab.

History Record Fields

View Invocation Details

Click View Details on a record to see the complete request and response information:
  • Request: Includes Endpoint, Request Headers, and Request Payload
  • Response: On success, shows Response Headers and Response Body; on failure, shows Error Message

5. FAQ

  1. Is there a response timeout?
    • Service needs to return response within 2 seconds; exceeding 2 seconds is considered a failure
  2. Will pushes continue after failure?
Retries for specific network errors, max 1 retries:
  • context deadline exceeded (excluding awaiting headers)
  • i/o timeout
  • eof
  1. How to ensure push order?
    • Theoretically, events for the same incident are pushed in chronological order, but retries may cause out-of-order delivery
    • Services can filter based on event_time; if a later event has been received, earlier events can be filtered out. Each push carries the latest complete information, so occasional event loss is tolerable
  2. Trusted IP whitelist for push source?
    • May be updated in the future, please check regularly