> For the complete documentation index, see [llms.txt](https://rudderlabs.gitbook.io/rudderlabs-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rudderlabs.gitbook.io/rudderlabs-1/docs/stream-sources/appcenter.md).

# App Center

Step-by-step guide to ingest your event data from App Center into RudderStack.

[**App Center**](https://appcenter.ms/) is Microsoft's cross-platform build automation and management platform that lets you manage your app's lifecycle seamlessly. With App Center, you can automate your builds, test your apps in the cloud effectively, and monitor their real-time usage with the help of crash data and analytics.

You can send your App Center events to RudderStack by adding a webhook that points to RudderStack. These events include activities related to a build success or failure, release of new version of an app, or an app crash. You can also configure what events to send as per your requirement on their dashboard.

This guide will help you set up App Center as a source in RudderStack.

## Getting started

Follow these steps to set up your App Center source in the RudderStack dashboard:

* Go to your [**RudderStack dashboard**](https://app.rudderstack.com/) and click on **Add Source**. From the list of **Event Stream** sources, select **App Center**, as shown:

![App Center source in RudderStack dashboard](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-3b512c100707f1b2821636c094b57e3ea8807b6a%2Fappcenter-1.png?alt=media)

* Assign a name to your source and click on **Next**.
* Your App Center source is now configured. Note the source **Write key** - this will be required to configure the webhook URL in the following steps.

![App Center source write key](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-b4d755a3c790e982bb1ec61904faba4a60e5795e%2Fappcenter-4.png?alt=media)

* Then, head over to your App Center account and select the application you want to configure. Here, navigate to the **Webhooks** section under **Settings** from the sidebar, and then create a new webhook, as shown:

![App Center source configuration](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-15adfe5dc2e96e73d2fc83e1dc5dcc0985127c63%2Fappcenter-2.png?alt=media)

* In the **URL** text box, add a URL pointing to RudderStack in the following format:

`<DATA_PLANE_URL>/v1/webhook?writeKey=<WRITE_KEY>`

For more information on the data plane URL, refer to [this](https://rudderstack.com/docs/rudderstack-open-source/installing-and-setting-up-rudderstack/#what-is-a-data-plane-url-where-do-i-get-it) section.

Make sure you add the source write key as a query parameter to the URL. This is required to prevent the webhook from failing for the lack of a valid write key.

A sample URL is as shown:

```http
https://hosted.rudderlabs.com/v1/webhook?writeKey=1bCenS7ynqHh8ETX8s5Crjh22J
```

We highly recommend validating the endpoint using the **Send Test** button.

![Endpoint configuration](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-ed2557e431147f616be14a3f55df265e54992487%2Fappcenter-3.png?alt=media)

* Finally, save the endpoint.

## Event transformation

The App Center events are ingested into a RudderStack `track` call with the designated name and properties as the entire event received from App Center. For example, the `app_name` set by App Center is set as `context.app.name`.

The following table highlights the mapping of various App Center events from App to RudderStack's `track` calls:

| App Center Event              | RudderStack Track Event Name |
| ----------------------------- | ---------------------------- |
| `On Success of a Build`       | `Build Succeeded`            |
| `On Failure of a Build`       | `Build Failed`               |
| `On Release of a new version` | `Released Version <X.YY>`    |
| `On an App Crash`             | `App Crashed`                |

Also, RudderStack populates the following properties from the App Center event payload to the RudderStack event:

| App Center Property            | RudderStack Property                     |
| ------------------------------ | ---------------------------------------- |
| `app_name`, `app_display_name` | `context.app.name`                       |
| `build_id`                     | `context.app.build`                      |
| `os`, `platform`               | `context.device.type`, `context.os.name` |
| `start_time`                   | `originalTimeStamp`                      |
| `sent_at`                      | `sentAt`                                 |
| `short_version`, `app_version` | `context.app.version`                    |
| `bundle_identifier`            | `context.app.namespace`                  |

## Contact us

For queries on any of the sections covered in this guide, you can [**contact us**](mailto:%20docs@rudderstack.com) or start a conversation in our [**Slack**](https://rudderstack.com/join-rudderstack-slack-community) community.
