> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartnerStack

> Empower your partnership programs using Partnerstack with Hightouch

## Supported syncing

| Type | Description | Supported Sync Modes | API Reference |
| - | - | - | - |
| **Customers** | Sync data from any source to PartnerStack customers | Upsert | [Customers docs](https://docs.partnerstack.com/reference/post_v2-customers-1) |
| **Transactions** | Sync data from any source to PartnerStack transactions | Insert | [Transactions docs](https://docs.partnerstack.com/reference/post_v2-transactions) |
| **Events** | Sync data from any source to PartnerStack S2S conversion events | Insert | [Events docs](https://docs.partnerstack.com/docs/server-to-server-s2s-tracking) |

For more information about sync modes, refer to the [sync modes](https://docs.hightouch.com/syncs/types-and-modes.md#sync-modes) docs.

## Connect to PartnerStack

Go to the [**Destinations** overview page](https://app.hightouch.com/destinations?from=docs) and click the **Add destination** button. Select **PartnerStack** and click **Continue**. You can then authenticate Hightouch to **PartnerStack**.

Enter the following fields into Hightouch:

If you want to use the PartnerStack public API, the following keys are required:

* **Public key**
* **Secret key**

If you want to send PartnerStack S2S conversion events, the following key is required:

* **S2S tracking token**

To find the above keys, navigate to your [PartnerStack Integration Settings](https://app.partnerstack.com/settings/integrations).

## Sync configuration

Once you've set up your PartnerStack destination and have a [model](https://docs.hightouch.com/getting-started/concepts.md#models) to pull data from, you can set up your sync configuration to begin syncing data. Go to the [**Syncs** overview page](https://app.hightouch.com/syncs?from=docs) and click the **Add sync** button to begin. Then, select the relevant model and the PartnerStack destination you want to sync to.

### Syncing customers

Sync data from any source to PartnerStack customers.

#### Record matching

You can match rows from your model to customers in PartnerStack on any column in your model and any field in PartnerStack. Ensure the data types of the model column and PartnerStack field you select match.
Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.

#### Field mapping

Hightouch lets you sync customer fields via [field mapping](https://docs.hightouch.com/syncs/mapping-data.md).
You can map data from any of your model columns to default and custom customer fields.
PartnerStack requires the following fields, so you must map them to complete your configuration:

* **Email**
* **Partner Key**
* **Customer Key**

If you send data for a custom field that doesn't exist, Hightouch adds the field.
Ensure your model's columns have the same data types as the fields you want to sync to.

### Syncing transactions

Sync data from any source to PartnerStack transactions.

#### Record matching

You can match rows from your model to transactions in PartnerStack on any column in your model and any field in PartnerStack. Ensure the data types of the model column and PartnerStack field you select match.
Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.

> [!NOTE]
>
> In **Insert** mode, PartnerStack automatically generates an identifier for every new record synced, so there is no need to match an existing record.

#### Field mapping

Hightouch lets you sync transaction fields via [field mapping](https://docs.hightouch.com/syncs/mapping-data.md).
You can map data from any of your model columns to the default transaction fields.
PartnerStack requires the following fields, so you must map them to complete your configuration:

* **Customer Key**
* **Transaction Key**
  Ensure your model's columns have the same data types as the fields you want to sync to.

### Syncing events

Sync data from any source to PartnerStack S2S conversion events.

> [!WARNING]
>
> To ensure syncs send each event, your event model must use a truly unique [primary key](https://docs.hightouch.com/getting-started/concepts.md#unique-primary-key-requirement). See the [events syncs](https://docs.hightouch.com/syncs/types-and-modes.md#event-syncs) documentation for more information.

#### Record matching

You can match rows from your model to events in PartnerStack on any column in your model and any field in PartnerStack. Ensure the data types of the model column and PartnerStack field you select match.
Refer to the [record matching docs](https://docs.hightouch.com/syncs/record-matching.md) for more information.

#### Field mapping

Hightouch lets you sync event properties via field mapping.

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).
