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

# Bloomreach

> Bloomreach helps companies personalize customer experiences by targeting the right customers with the right experience at the right time.

> [!NOTE]
>
> Bloomreach is a [premium destination](https://docs.hightouch.com/pricing/ss-pricing.md#premium-destinations) and is only available on [Business tier plans](https://hightouch.com/pricing).

## Supported syncing

| Sync Type | Description | Supported Sync Modes |
| - | - | - |
| **Events** | Sync data from any source to any events | Insert |
| **Customers** | Sync data from any source to the customer objects | Upsert |
| **Catalogs** | Sync data from any source to catalog items | Upsert |

## Connect to Bloomreach

To use the Bloomreach destination in Hightouch, you need to provide a Bloomreach API Key, API Secret, API URL, and Project Token. Follow these steps to retrieve your credentials:

1. In Bloomreach, click the wheel icon in the top right corner. Select **Project Settings** from the dropdown.
2. Click on **Access management** in the side navigation. Select **API** from the options.
3. Your **Project token** and **API Base URL** are here. You can either use an existing **API Key ID** and **API Secret**, or you can click **+ Add key** to create another one.

## Syncing data

### Events

When syncing events, Hightouch treats any records added to [your source](https://docs.hightouch.com/getting-started/concepts.md) as new events and sends them to Bloomreach when your sync runs.

> [!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.

You need to select the type of event and one or more hard and/or soft customer IDs to make the API call to Bloomreach.
The most common customer IDs are `registered`.

![Selecting columns to send as events to Bloomreach](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-bloomreach-events-mappings.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=3f2fe4c55f49d9d44ffc279f26f4db52)

#### Field mapping

One or more of the event properties, also known as attributes, are required. The event properties show up as custom mappings and attach custom data relevant to your event.

![Mapping event properties in the Hightouch UI](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-bloomreach-events-custom-mappings.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=d35875ab97372db79d32a50088895a41)

> [!NOTE]
>
> Custom mappings are included as the [`properties`](https://documentation.bloomreach.com/engagement/reference/add-event-2#body-parameters)
> parameter of the API request payload.

For more information about event properties, refer to [Bloomreach's documentation](https://documentation.bloomreach.com/engagement/reference/add-event-2).

### Customers

You can also sync to the **Customers** object. This integration supports **Upsert** mode, meaning you can insert new customers and update existing ones in Bloomreach.

#### Record matching

You can match rows in your model with customers in Bloomreach on one or more of the following hard and/or soft customer IDs:

* Cookie
* Email
* Registered

> [!NOTE]
>
> ID mappings are included as the [`customer_ids`](https://documentation.bloomreach.com/engagement/reference/update-customer-properties-2)
> parameter of the API request payload.

#### Field mapping

You need to include at least customer property you wish to update. The customer properties show up as custom mappings and attach custom data relevant to your customer.

![Mapping customer properties in the Hightouch UI](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-bloomreach-objects-custom-mappings.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=63fad8e4e9c8221ddc51fadee4a5328d)

> [!NOTE]
>
> Custom mappings are included as the [`properties`](https://documentation.bloomreach.com/engagement/reference/update-customer-properties-2)
> parameter of the API request payload.

For more information about customer properties, refer to [Bloomreach's documentation](https://documentation.bloomreach.com/engagement/reference/update-customer-properties-2).

### Catalogs

You can sync data to Bloomreach **Catalogs** to manage product or item data. This integration supports **Upsert** mode, allowing you to insert new catalog items and update existing ones.

#### Catalog selection

You can either create a new catalog or sync to an existing catalog in Bloomreach. When creating a new catalog, Hightouch automatically creates the catalog with fields based on your mappings.

#### Record matching

You must match rows in your model with catalog items using the **Item ID** field. This uniquely identifies each item in the catalog.

#### Field mapping

Map columns from your source to catalog item properties. These properties contain the data for each item in your catalog, such as product name, price, or description.

For more information about catalogs, refer to [Bloomreach's documentation](https://documentation.bloomreach.com/engagement/reference/catalog-api-overview-2).

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