Forward events to Bloomreach
Send Snowplow events to Bloomreach Engagement for real-time customer analytics, segmentation, and personalization using the Batch Commands API.
Prerequisites
Before setting up the forwarder in Console, you'll need to configure an API key with 'Get' and 'Set' permission on all of the properties events that you intend to send to bloomreach. We recommend also permitting 'Get' and 'Set' permission on 'New Properties' and 'New Events', do avoid problems when new tracking is added.
You can configure this in the Access Management section of Project settings.
You'll also need the following from your Bloomreach Engagement account:
- API Endpoint Host: the base URL for your Bloomreach API instance (e.g.,
api.exponea.com) - Project Token: a unique identifier for your Bloomreach project
- API Key ID: the identifier for your API key
- API Secret: the secret associated with your API key. Save the secret in a secure location, as you can only view it once after creation.
You can find all of these values in Bloomreach under Project settings > Access management > API.
To avoid introducing test data in your production Bloomreach project, we recommend using a test or development project to test your transformations first. Then, create a new connection in Console with your production credentials, and a new forwarder that imports the configuration from your development forwarder.
Getting started
Configure the destination
To create the connection and forwarder, follow the steps in Creating forwarders.
When configuring the connection, select Bloomreach for the connection type and enter your API endpoint host, project token, API key ID, and API secret.
Validate the integration
You can confirm events are reaching Bloomreach by checking the customer profiles in your Bloomreach Engagement project:
- In Bloomreach, navigate to Data & Assets > Customers
- Search for a customer whose events you have forwarded
- Open the customer profile and check the Events tab to verify that your Snowplow events appear
Identity management
Bloomreach uses a combination of hard and soft customer IDs to identify and merge customer profiles. The Snowplow integration defaults to using user_id as the hard ID (registered) and domain_userid as the soft ID (cookie).
When a user is anonymous, Bloomreach tracks their activity using the soft ID. When the user logs in and your event contains a user_id value, Bloomreach merges the anonymous profile with the identified profile, linking prior anonymous activity to the known customer.
The ID type names (registered, cookie) must match the customer ID types configured in your Bloomreach project. You can customize these mappings in the forwarder configuration if your project uses different ID type names.
Sending custom properties
You can send custom event properties beyond the standard fields defined in the schema reference below. Custom properties are nested under the properties object. When configuring your forwarder, add field mappings formatted as properties.your_custom_field (e.g., properties.plan_type, properties.feature_flag).
For property names containing spaces, use bracket notation (e.g., properties["referred by"]).
See Bloomreach's Batch Commands API documentation for details on supported data types and property requirements. See Creating forwarders for details on configuring field mappings.
Schema reference
This section contains information on the fields you can send to Bloomreach, including field names, data types, required fields, and default Snowplow mapping expressions.
| Field | Details |
|---|---|
customer_idsobject | Required. Object identifying the customer. Must contain at least one ID. Keys are ID type names configured in the Bloomreach project. Properties:
|
event_typestring | Required. The name of the event type in Bloomreach. Default mapping:event.event_name |
timestampinteger | Optional. When the event occurred, as UNIX epoch seconds. Defaults to current time if omitted. Default mapping:Math.floor(spTstampToJSDate(event.derived_tstamp).getTime() / 1000) |
propertiesobject | Optional. Arbitrary key-value pairs for the event. Values can be strings, numbers, booleans, or nested objects. Properties:
|