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.

Standard plan only

You can add outgoing Webhooks to a Workspace, but connecting them in a Release Management project is only possible for projects with standard license.

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

App version added

  • description

  • preset_template_id

Release description changed

  • description

Auto-upload enabled

Auto-upload disabled

Slack connection changed

Microsoft Teams connection changed

Automation added

  • event_name

  • pipeline_name

  • workflow_name

Automation removed

  • event_name

  • pipeline_name

  • workflow_name

Outgoing webhook added

  • all_events (true/false)

  • events (only listed if 'all_events' are false)

  • workspace_webhook_id

Outgoing webhook updated

  • all_events (true/false)

  • events (only listed if 'all_events' are false)

  • workspace_webhook_id

Outgoing webhook removed

  • all_events (true/false)

  • events (only listed if 'all_events' are false)

  • workspace_webhook_id

Stopped managing release

  • reason_for_stopping (abandoned/completed externally)

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

TestFlight upload started

  • file_name

  • version

  • version_code

TestFlight upload failed

  • file_name

  • version

  • version_code

TestFlight upload completed

  • file_name

  • version

  • version_code

TestFlight processing failed

  • file_name

  • version

  • version_code

TestFlight processing completed

  • file_name

  • version

  • version_code

TestFlight what to test added

  • language

  • what_to_test

TestFlight what to test changed

  • language

  • what_to_test

TestFlight what to test deleted

  • language

TestFlight app review submitted

  • testflight_beta_build_id

TestFlight app review approved

  • testflight_beta_build_id

TestFlight app review rejected

  • testflight_beta_build_id

TestFlight distribution started

  • group_id

  • testflight_beta_build_id

TestFlight distribution start failed

  • group_id

  • testflight_beta_build_id

TestFlight distribution stopped

  • group_id

  • testflight_beta_build_id

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

Google Play testing track release completed

  • file_name

  • track_name

  • version

  • version_code

Google Play testing track release failed

  • file_name

  • track_name

  • version

  • version_code

Approval tasks completed

  • 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

App store version created

  • version

App store version updated

  • version

Metadata localization added

  • language

  • added_values

Metadata localization changed

  • language

  • changed_values

Metadata localization removed

  • language

Release settings changed

  • earliest_release_date

  • phased_release

  • release_type

  • version_string

Phased release enabled

Phased release disabled

App store review submitted

  • file_name

  • version

  • version_code

App store review cancelled

  • file_name

  • version

  • version_code

App store review rejected

  • file_name

  • reason

  • version

  • version_code

App store review approved

  • file_name

  • version

  • version_code

Phased release paused

  • percentage_of_users

Phased release resumed

  • percentage_of_users

App store release started

App store release completed

Google Play release notes localization added

  • language

  • release_notes

Google Play release notes localization changed

  • language

  • release_notes

Google Play release notes localization removed

  • language

  • release_notes

Google Play release started

  • release_method

  • staged_release

Google Play rollout percentage changed

  • release_method

  • rollout_percentage_from

  • rollout_percentage_to

Google Play automated rollout configured

  • rollout_start_time

Google Play automated rollout paused

  • rollout_percentage

Google Play automated rollout resumed

  • rollout_percentage

Google Play automated rollout cancelled

Google Play release completed