---
description: Step-by-step guide to ingest your event data from Extole into RudderStack.
---

# Extole

[**Extole**](https://www.extole.com/) is a popular referral marketing tool that lets you offer an integrated, optimized, and effective customer experience for your audience. It allows you to create personalized marketing campaigns aimed at boosting your customer acquisition and conversion rates.

You can now send your Extole events to RudderStack by simply adding a webhook that points to RudderStack. These events include the reward-specific events such as `reward_earned`,`reward_fulfilled`,`reward_sent`, etc. along with other custom events from Extole.

This guide will help you in setting up Extole as a source in RudderStack.

## Getting started

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

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

![Extole source in RudderStack](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-88b4abcae8281a8799900bdcf866f67a9605a658%2Fextole-1.png?alt=media)

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

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

* Next, head over to your Extole account and select the **program** you want to use for RudderStack to ingest your data.
* Then, navigate to the **Tech Center** section from the sidebar and then select [**Rewards WebHooks**](https://my.extole.com/tech-center/rewards-webhooks).
* Then, click on the **New Reward Webhook** option as seen in the following image:

![Extole new webhook](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-4cac0ef1289f0783db786055177dac0e81385db6%2Fextole-3.png?alt=media)

* In the **URL** text box, add the webhook URL as shown on the source settings page in your RudderStack dashboard:

![Extole webhook URL](https://876606571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lq5Ea6fHVg3dSxMCgyQ%2Fuploads%2Fgit-blob-01aff7f17922a8b0f2906ea51db2854a83ac1aca%2Fauth0-4.png?alt=media)

The webhook URL is of the following format:

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

A sample webhook URL is shown below:

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

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 query parameter to the URL. This is required to prevent the webhook from failing because of an invalid write key.

* Finally, save the endpoint.

## Event transformation

RudderStack ingests the Extole events after converting them into the RudderStack event format. For example, Extole's `event_id` is converted and set to `properties.eventId`.

The Extole events are converted into a RudderStack `track` call with the designated event name and associated properties received from Extole.

RudderStack retains the Extole event name during the mapping.

RudderStack populates the following properties from the Extole event payload to the RudderStack event:

| **Extole Property**          | **RudderStack Property**                                      |
| ---------------------------- | ------------------------------------------------------------- |
| `event_id`,                  | `properties.eventId`                                          |
| `event_time`                 | `originalTimestamp`                                           |
| `reward_id`                  | `properties.rewardId`                                         |
| `reward_supplier_name`       | `properties.rewardSupplierName`                               |
| `reward_supplier_id`         | `properties.rewardSupplierId`                                 |
| `partner_reward_supplier_id` | `properties.partnerRewardSupplierId`                          |
| `reward_supplier_type`       | `properties.partnerRewardSupplierType`                        |
| `person_id`                  | `properties.personId`                                         |
| `partner_user_id`            | `properties.partnerUserId`, `userId`, `context.traits.userId` |
| `face_value`                 | `properties.faceValue`                                        |
| `face_value_type`            | `properties.faceValueType`                                    |
| `message`                    | `properties.message`                                          |
| `partner_reward_id`          | `properties.partnerRewardId`                                  |
| `email`                      | `properties.email`                                            |
| `data`                       | `properties.data`                                             |
| `schema_version`             | `properties.schemaVersion`                                    |

All the Extole event properties other than `reward_earned`, `reward_fulfilled`, and `reward_sent` sent to Rudderstack will be directly mapped to the Rudderstack event properties.

## 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.
