Skip to main content
Plan requirement: This feature requires an On-call Standard or higher subscription. Learn more
Use a GrowthBook Event Webhook to sync feature revisions to Flashduty On-call. Every edit to a feature in GrowthBook becomes a revision, and one revision is one Flashduty change: its review request, approval, publish, revert or discard are all recorded on that change.

In Flashduty On-call


  1. In the Flashduty console, go to Integration Center → Change Events
  2. Select GrowthBook and enter an integration name
  3. To send changes to a specific channel, add rules in the integration’s Route on labels such as feature_id
  4. Click Save and copy the generated push URL

Configure in GrowthBook


1

Create an Event Webhook

  1. Log in to GrowthBook as an admin and go to Settings → Webhooks
  2. Click New Event Webhook and enter a Webhook Name (required)
2

Enter the push URL

  1. Payload Type: choose JSON. Raw (Legacy) is the old format and does not send revision events
  2. Method: keep POST
  3. Endpoint URL: paste the full push URL of the Flashduty integration
  4. Headers: leave empty. Flashduty authenticates with the integration_key in the push URL. GrowthBook adds a signature in the X-GrowthBook-Signature header; Flashduty does not verify it
3

Select events and scope

  1. Events: select the events below; other events are ignored
    • feature.revision.reviewRequested, feature.revision.changesRequested, feature.revision.approved
    • feature.revision.published, feature.revision.reverted
    • feature.revision.discarded, feature.revision.publishFailed
  2. Environments, Projects, Tags: leave empty for all, or limit to the scope you care about, such as production
  3. Click Create
Select the events one by one and do not use the feature.revision.* wildcard: revision events that GrowthBook adds later are rejected by Flashduty (see the FAQ below). Feature-level events such as feature.updated are ignored even when subscribed.
Your GrowthBook version must support feature.revision.* events. Before saving, you can click Test Connection in the create dialog: it sends a body without an event field, and Flashduty returns 200 and records no change. A saved webhook has no Test button in current versions. Then publish a revision on any feature to see it in the Flashduty change list.

What one change is


A feature ID cannot be changed after creation, and revision versions increase within a feature. If you delete a feature and re-create one with the same ID, versions start over and a new revision is merged into the change with the same version number from the old feature.

Status mapping


When a feature has no approval flow, publishing sends only published, so the change is Done from the start. These deliveries return success and record no change:
  • Revision events that do not move the revision forward: created, updated, rebased, commented, reopened, recalled, reviewRetracted, publishScheduleChanged
  • Feature-level events such as feature.created, feature.updated and feature.deleted, and events of other resources such as safe rollouts, ramp schedules, experiments and saved groups
  • The test request sent by Test Connection, and any delivery without an event
A feature.revision.* event that GrowthBook adds later returns InvalidParameter until it is added to the table above, and no change is recorded.

Change content


Labels can be used for routing and for filtering the change list: state, actor and event_type are updated by every event, so do not route on them; use feature_id, which every event carries. Project and environment scope differs between events, so Flashduty does not record it.

FAQ


No. GrowthBook tries a delivery up to 3 times when the endpoint does not return 200. Flashduty uses the event’s own time (created) as the change time, so a repeated delivery is recorded once, and a late older state cannot overwrite a finished change.
Only features with an approval flow produce reviewRequested and approved. A revision published directly has a single published event.
  • data.object.featureId is missing, data.object.version is missing: the payload is incomplete. Make sure Payload Type is JSON
  • created is missing or invalid: the payload has no event time
  • unknown revision event: GrowthBook sent a revision event that is not supported yet; select only the events listed above
  • The body is not JSON: make sure Payload Type is JSON