Skip to main content

Outgoing webhooks in Release Management

Outgoing Webhooks are automated messages sent from Bitrise to a specified URL when a particular event occurs. For Release Management, these webhooks allow you to integrate Bitrise with external services and tools, enabling seamless communication and automation across your development pipeline.

Adding an outgoing webhook to a release

You can add outgoing webhooks to a release in two ways:

  • Add the webhook to an individual release.

  • Add the webhook to a release preset template. All releases using that template will use the configured webhook.

Individual release

Release preset

  1. Make sure your external service is ready to receive and process the webhook requests. This typically involves:

    • Creating a publicly accessible URL to receive the HTTP POST requests from Bitrise.

    • Handling the JSON payload: parse the JSON data and extract the relevant information.

    • Defining the actions your service should take based on the received event.

  2. Create an outgoing webhook on Bitrise.

  3. Open Release Management.

  4. Select your app.

  5. Select a release that hasn't finished.

    2025-10-29-releases.png
  6. Go to Configuration.

  7. Find the Outgoing webhooks card and click Show details.

    2025-10-29-outgoing-webhooks-rm.png
  8. Click Add webhook.

  9. Select a webhook from the Webhook configuration menu.

    2025-10-29-rm-add-outgoing-webhook.png
  10. Select the events that will trigger the webhook.

    See the full list of events and their payload information: Webhook events.

  1. Make sure your external service is ready to receive and process the webhook requests. This typically involves:

    • Creating a publicly accessible URL to receive the HTTP POST requests from Bitrise.

    • Handling the JSON payload: parse the JSON data and extract the relevant information.

    • Defining the actions your service should take based on the received event.

  2. Create an outgoing webhook on Bitrise.

  3. Open Release Management.

  4. Select your app.

  5. Go to Release presets.

    2025-10-29-release-presets.png
  6. Create a new template or modify an existing one.

  7. On the template page, find the Outgoing webhooks card and click Show details.

  8. Click Add webhook.

  9. Select a webhook from the Webhook configuration menu.

    2025-10-29-rm-add-outgoing-webhook.png
  10. Select the events that will trigger the webhook.

    See the full list of events and their payload information: Webhook events.

Removing an outgoing webhook from a release

You can remove an outgoing webhook from an individual release or from a release preset template.

Individual release

Release preset

  1. Open Release Management.

  2. Select your app.

  3. Select a release that hasn't finished.

    2025-10-29-releases.png
  4. Go to Configuration.

  5. Find the Outgoing webhooks card and click Show details.

  6. Click the remove configuration icon.

    2025-10-29-remove-webhooks-rm.png
  1. Open Release Management.

  2. Select your app.

  3. Select Release presets on the left.

    2025-10-29-release-presets.png
  4. Find the release preset template you need and click 3_dots.png then select Change.

  5. Find the Outgoing webhooks card and click Show details.

  6. Click the remove configuration icon.

Webhook events

Multiple release automation events can trigger a webhook. All webhooks contain the following fields:

  • app_id

  • project_id

  • release_candidate_artifact_id

  • release_id

  • sent_at | Format: nanosecond precision UNIX timestamp

  • store_app_id

  • triggered_at | Format: nanosecond precision UNIX timestamp

  • triggered_by | Format: either a user slug or one of: 'Automation', 'Apple App Store', 'Google Play Store'

  • trigger_event

  • webhook_config_id

  • webhook_connection_id

  • webhook_event_unique_id | Format: WEBHOOK_ID@TRIGGER_TIMESTAMP_NANO

  • workspace_id

The following webhook events are available. The Fields column contains the additional fields that the triggering event adds to the webhook payload.

Table 1. Webhooks and their fields

Webhook name

Fields

Release candidate source changed

  • from_source (ci/api/empty string)

  • to_source (ci/api)

  • from_branch |only in case of 'ci' in from_source

  • from_workflow | only in case of 'ci' in from_source

  • to_branch |only in case of 'ci' in to_source

  • to_workflow | only in case of 'ci' in to_source

Release candidate auto select latest build disabled

Release candidate auto select latest build enabled

Release candidate build selected

  • file_name

  • version

  • version_code

Upload and processing finished

  • processing_state

Google Play upload started

  • file_name

  • version

  • version_code

Google Play upload completed

  • file_name

  • version

  • version_code

Google Play upload failed

  • file_name

  • version

  • version_code

Approved by TestFlight App Review

Rejected by TestFlight App Review

Released to TestFlight/App Store testing group

  • group_id

  • is_successful

  • release_method

Release on testing track

  • is_successful

  • release_method

  • track name

  • track type

Release approved

  • approval_task_ids

Approval task added

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task changed

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task completed

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task deleted

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task reopened

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Release sent for review

Review cancelled

Status of review submission changed

Review status changed

  • review_state

Release started

  • is_phased_release

  • release_method

Rollout percentage changed

  • percentage_from

  • percentage_to

  • release_method

Release finished

  • is_phased_release

  • release_method