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:

Table 83. Shared webhook event fields

Field name

Format

app_id

project_id

release_candidate_artifact_id

release_id

sent_at

Nanosecond precision UNIX timestamp

store_app_id

triggered_at

Nanosecond precision UNIX timestamp

triggered_by

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

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 84. Specific webhook event fields

Webhook name

Trigger event

Fields

App version added

app_version_added

  • description

  • preset_template_id

Release description changed

release_description_changed

  • description

Auto-upload enabled

auto-upload_enabled

Auto-upload disabled

auto-upload_disabled

Slack connection changed

slack_connection_changed

Microsoft Teams connection changed

microsoft_teams_connection_changed

Automation added

automation_added

  • event_name

  • pipeline_name

  • workflow_name

Automation removed

automation_removed

  • event_name

  • pipeline_name

  • workflow_name

Outgoing webhook added

outgoing_webhook_added

  • all_events

    Available values: true/false

  • events: Listed only if all_events are false.

  • workspace_webhook_id

Outgoing webhook updated

outgoing_webhook_updated

  • all_events true/false

  • events: Listed only if all_events are false

  • workspace_webhook_id

Outgoing webhook deleted

outgoing_webhook_deleted

  • all_events

    Available values: true/false

  • events Listed only if all_events are false

  • workspace_webhook_id

Stopped managing release

stopped_managing_release

  • reason_for_stopping

    Available values: abandoned/completed externally

Release candidate source changed

release_candidate_source_changed

  • from_source

    Available values: ci/api/empty string

  • to_source

    Available values: ci/api

  • from_branch: Only if the value of from_source is ci

  • from_workflow: Only if the value of from_source is ci.

  • to_branch: Only if the value of to_source is ci.

  • to_workflow: Only if the value of to_source is ci.

Release candidate auto select latest build disabled

release_candidate_auto_select_latest_build_disabled

Release candidate auto select latest build enabled

release_candidate_auto_select_latest_build_enabled

Release candidate build selected

release_candidate_build_selected

  • file_name

  • version

  • version_code

TestFlight upload started

testflight_upload_started

  • file_name

  • version

  • version_code

TestFlight upload failed

testflight_upload_failed

  • file_name

  • version

  • version_code

TestFlight upload completed

testflight_upload_completed

  • file_name

  • version

  • version_code

TestFlight processing failed

testflight_processing_failed

  • file_name

  • version

  • version_code

TestFlight processing completed

testflight_processing_completed

  • file_name

  • version

  • version_code

TestFlight what to test added

testflight_what_to_test_added

  • language

  • what_to_test

TestFlight what to test changed

testflight_what_to_test_changed

  • language

  • what_to_test

TestFlight what to test deleted

testflight_what_to_test_deleted

  • language

TestFlight app review submitted

testflight_app_review_submitted

  • testflight_beta_build_id

TestFlight app review approved

testflight_app_review_approved

  • testflight_beta_build_id

TestFlight app review rejected

testflight_app_review_rejected

  • testflight_beta_build_id

TestFlight distribution started

testflight_distribution_started

  • group_id

  • testflight_beta_build_id

TestFlight distribution start failed

testflight_distribution_start_failed

  • group_id

  • testflight_beta_build_id

TestFlight distribution stopped

testflight_distribution_stopped

  • group_id

  • testflight_beta_build_id

Google Play upload started

google_play_upload_started

  • file_name

  • version

  • version_code

Google Play upload completed

google_play_upload_completed

  • file_name

  • version

  • version_code

Google Play upload failed

google_play_upload_failed

  • file_name

  • version

  • version_code

Google Play testing track release completed

google_play_testing_track_release_completed

  • file_name

  • track_name

  • version

  • version_code

Google Play testing track release failed

google_play_testing_track_release_failed

  • file_name

  • track_name

  • version

  • version_code

Approval tasks completed

approval_tasks_completed

  • approval_task_ids

Approval task added

approval_task_added

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task changed

approval_task_changed

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task completed

approval_task_completed

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task deleted

approval_task_deleted

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

Approval task reopened

approval_task_reopened

  • approval_id

  • assigned_to

  • created_by

  • description

  • due_date

  • title

App store version created

app_store_version_created

  • version

App store version updated

app_store_version_updated

  • version

Metadata localization added

metadata_localization_added

  • language

  • added_values

Metadata localization changed

metadata_localization_changed

  • language

  • changed_values

Metadata localization removed

metadata_localization_removed

  • language

Release settings changed

release_settings_changed

  • earliest_release_date

  • phased_release

  • release_type

  • version_string

Phased release enabled

phased_release_enabled

Phased release disabled

phased_release_disabled

App store review submitted

app_store_review_submitted

  • file_name

  • version

  • version_code

App store review cancelled

app_store_review_cancelled

  • file_name

  • version

  • version_code

App store review rejected

app_store_review_rejected

  • file_name

  • reason

  • version

  • version_code

App store review approved

app_store_review_approved

  • file_name

  • version

  • version_code

Phased release paused

phased_release_paused

  • percentage_of_users

Phased release resumed

phased_release_resumed

  • percentage_of_users

App store release started

app_store_release_started

App store release completed

app_store_release_completed

Google Play release notes localization added

google_play_release_notes_localization_added

  • language

  • release_notes

Google Play release notes localization changed

google_play_release_notes_localization_changed

  • language

  • release_notes

Google Play release notes localization removed

google_play_release_notes_localization_removed

  • language

  • release_notes

Google Play release started

google_play_release_started

  • release_method

  • staged_release

Google Play rollout percentage changed

google_play_rollout_percentage_changed

  • release_method

  • rollout_percentage_from

  • rollout_percentage_to

Google Play automated rollout configured

google_play_automated_rollout_configured

  • rollout_start_time

Google Play automated rollout paused

google_play_automated_rollout_paused

  • rollout_percentage

Google Play automated rollout resumed

google_play_automated_rollout_resumed

  • rollout_percentage

Google Play automated rollout cancelled

google_play_automated_rollout_cancelled

Google Play release completed

google_play_release_completed