Skip to main content

Webhooks

Webhooks let you receive real-time HTTP notifications when events happen in your organization - like a new build being uploaded, a build being downloaded, or a new iOS device being registered.

info

Only Account Owners and Org Admins can manage webhooks. Go to Profile menu → Integrations → Webhooks.

Supported Events​

EventDescription
uploadA new build is uploaded to an app.
downloadA build is downloaded by a tester or team member.
new-udidA device UDID was registered, either through the enrollment profile or added by an admin. This event ignores the Apps filter.

Creating a Webhook​

Step 1: Click the Profile icon in the top-right corner and select Integrations from the user menu.

Webhooks

Step 2: On the Integrations page, click Webhooks (or Connect, if you don't have any webhooks yet).

Webhooks

Step 3: On the Webhooks page, click New Webhook. Configure the webhook using the fields below.

Sr. No.FieldDescription
1NameEnter a name to identify the webhook.
2URLEnter the destination URL where webhook notifications should be sent. Click Test to verify the URL.
3EventsSelect the events that should trigger the webhook: New build uploaded, Build downloaded, or New iOS device registered.
4AppsSelect the apps for which the webhook should send notifications. Leave empty to trigger the webhook for all apps.
Webhooks

Step 4: Click Create Webhook to save the webhook.

Webhooks

Testing​

Use the Test button next to the URL field to send a sample payload to your endpoint. This lets you verify connectivity before saving.

The test payload looks like this:

{
"event": "test",
"message": "This is a test webhook from Mobile App Distribution",
"appName": "My App",
"version": "1.2.3",
"build": "42"
}
Webhooks

Payload Format​

Webhooks are sent as POST requests with a JSON body. The payload includes event-specific fields:

upload event​

{
"event": "upload",
"timestamp": "2026-03-26 14:30:00",
"appName": "My App",
"version": "1.2.3",
"build": "42",
"platform": "ios",
"buildId": 123,
"filesize": 15728640,
"buildUrl": "https://your-org.testfairy.com/projects/61545",
"landingPageUrl": "https://your-org.testfairy.com/install/8f3c2a1b9d4e3b2c",
"landingPageBuildUrl": "https://your-org.testfairy.com/install/9d4e3b2c8f3c2a1b",
"appUrl": "https://your-org.testfairy.com/install/9d4e3b2c8f3c2a1b/download",
"changeLog": "Fixed login crash on startup."
}

download event​

{
"event": "download",
"timestamp": "2026-03-26 14:30:00",
"appName": "My App",
"version": "1.2.3",
"build": "42",
"platform": "android",
"buildId": 123,
"testerEmail": "tester@example.com",
"ipAddress": "1.2.3.4"
}

testerEmail is null for anonymous downloads.

new-udid event​

{
"event": "new-udid",
"timestamp": "2026-03-26 14:30:00",
"udid": "00008030-00123456789ABCDE",
"device": "iPhone16,1",
"email": "tester@example.com",
"platform": "ios"
}

device is the model identifier, for example iPhone16,1.

Slack & MS Teams​

Webhook URLs are automatically detected and formatted for:

  • Slack - URLs containing hooks.slack.com receive a Slack-formatted message with a text field.
  • Microsoft Teams - URLs containing outlook.office.com or webhook.office.com receive a MessageCard-formatted payload.
  • Other URLs - Receive the raw JSON payload with Content-Type: application/json.

Setting Up Slack Notifications​

To receive Mobile App Distribution notifications in a Slack channel:

  1. Go to api.slack.com/apps and click Create New App → From scratch.
  2. Name the app (e.g. Mobile App Distribution Notifications) and select your Slack workspace.
  3. Go to Incoming Webhooks in the left sidebar and toggle it On.
  4. Click Add New Webhook to Workspace, pick the channel you want notifications in, and click Allow.
  5. Copy the Webhook URL (starts with https://hooks.slack.com/services/...).
  6. In Mobile App Distribution, go to Webhooks → New Webhook, paste the URL, select your events, and save.
  7. Click Test to verify - you should see a test message in your Slack channel.

App Filtering​

By default, a webhook fires for events across all apps in your organization. You can restrict it to specific apps by selecting them during webhook creation or editing. The new-udid event ignores this filter and always fires.

Delivery​

Requests are sent once, with no retries and a 10-second timeout. There is no signature header on the request.

Webhooks can also be managed with the REST API at /api/v3/webhooks. See the API Reference.

Enabling / Disabling​

Use the toggle switch on the webhooks list to temporarily suspend a webhook without deleting it. Suspended webhooks will not fire for any events.

Webhooks