circle-exclamation
This documentation is currently under development. Certain sections are not yet complete and will be added shortly.

Bloomreach

Wallet Crew × Bloomreach Integration Documentation

What this integration does

Sync Wallet passes (Apple Wallet + Google Wallet) with Bloomreach Engagement.

You get three things:

  1. Bloomreach actions that update passes in real time.

  2. Wallet Crew events sent to Bloomreach, so scenarios react to wallet behavior.

  3. Wallet Crew components that read/write Bloomreach customer data.

Wallet Crew components

Bloomreach activities

Use these activities in Bloomreach scenarios. They update wallet passes.

Most common

  • Notify: send a wallet notification (optionally refresh the pass too).

  • Apply privilege: attach an offer/benefit to the pass and update visuals and content.

Advanced

  • Update pass: refresh pass content (tier, points, expiry, etc.).

  • Add privilege movement: increment/decrement a trackable privilege value.

  • Create pass: create a new pass and return a download link.

Notify

Notify

Send a push-style message that appears on the lock screen. Use it for time-sensitive moments. Keep it rare.

circle-info

If you want the pass to show new content (coupon code, new instruction, new tier), combine Notify with Apply privilege or Update pass.

chevron-rightReal-world exampleshashtag
  • Retail: Birthday message: “Happy birthday! Enjoy 20% off today.” Then the customer opens the pass to see the offer.

  • Events: “Your event starts in 2 hours. Gate opens at 7 PM.” Use it to reduce no-shows.

  • Fitness: Re-engagement: “You haven’t visited in 2 weeks. We miss you.” Pair it with a perk for better conversion.

Apply privilege

Apply privilege

Add a benefit to the pass (offer, perk, access, voucher). It can also change pass visuals, so customers notice.

circle-check
chevron-rightReal-world exampleshashtag
  • Retail: “VIP Weekend” privilege. Pass turns gold. Text says “2× points this weekend”. Optional notify: “You’ve been upgraded.”

  • Fitness: “Bring a friend” privilege. Pass shows a guest entry that expires in 7 days.

  • Events: “Fast lane entry” or “VIP lounge access” privilege for a subset of ticket holders.

Update pass

Update pass

Refresh the pass so it reflects the latest data (from Bloomreach and your other systems).

circle-check
chevron-rightReal-world exampleshashtag
  • Retail loyalty: After a purchase, update the pass so points, tier, and next-reward progress are correct.

  • Events: Seat change, schedule update, venue change, updated entry instructions.

  • Membership: Membership renewal, expiry date change, status changes (active/paused).

Add privilege movement

circle-info

This is an advanced feature. Most teams don't use it.

Track a changing balance on an existing privilege (earn / spend / progress). Most marketers won’t need this unless you run punch cards, counters, or “progress to reward”.

chevron-rightReal-world exampleshashtag
  • Coffee stamps: Customer buys a drink → +1 stamp. At 10 stamps, the reward becomes redeemable.

  • Multi-entry packs: Gym has “10 entries”. Each check-in consumes 1 entry.

  • Birthday gift: Add +1 “free entry” to a guest-pass privilege. When redeemed, it goes back down.

circle-exclamation

Create pass

circle-info

This is an advanced feature. Most teams don't use it.

Create a new pass for a customer and get an “add to wallet” link you can distribute. Use it when the customer doesn’t have a pass yet.

chevron-rightReal-world exampleshashtag
  • Retail: After signup, create a loyalty card pass. Send the add-to-wallet link by email/SMS. Once installed, apply a “Welcome offer” privilege.

  • Events: After ticket purchase, create a ticket pass. Send the link in the confirmation email. Then notify reminders before the event.

  • Membership: New member joins a club. Create the membership card pass. Show tier/status and expiry on the pass.

Wallet Crew components

Configuration screen

Configure the Bloomreach connection in the Wallet Crew back-office.

Set your API Key & Secret (project access), your Project Token (environment), and the Base URL (API endpoint).

Events

These events are sent from Wallet Crew to Bloomreach.

Event Name
When It Fires
Key Data Included

Pass:Created

When a new wallet pass is generated

Pass type, customer identifiers, creation timestamp, metadata

Pass:Installed

When customer adds pass to their wallet (Apple/Google)

Device type, installation source, registration count, campaign tracking data

Pass:Uninstalled

When customer removes pass from wallet

Device type, total registration count, active registration count

Pass:Scanned

When pass barcode/QR code is scanned

Scanned data, scan type, location information

Event Data Structure

Each event includes:

  • Pass Information: Pass type, pass ID, serial number

  • Customer Identifiers: Email, member ID, external IDs

  • Metadata: Custom data fields associated with the pass

  • Device Context (where applicable): Apple Wallet vs Google Wallet

  • Tracking Data (where applicable): Campaign source, UTM parameters, registration tags

Event Data Properties

All events are sent as flat key/value properties to Bloomreach.

Two property names are patterns:

  • identifier_xxx: one property per pass identifier (email, memberId, etc.).

  • metadata_xxx: one property per metadata key stored on the pass.

When a source key contains ., it is normalized to _ in the property name. Example: identifier key y2.customerId becomes identifier_y2_customerId.

chevron-rightPass:Createdhashtag

Fires when Wallet Crew generates a new pass. This is mainly useful for debugging, auditing, or “pass created but not installed yet” technical flows.

Event Name : wallet_created

Properties :

Property name
Description

passId

Wallet Crew pass identifier. Use it to reference the pass in Wallet Crew APIs and logs.

passKind

High-level pass category: customerCard, eventTicket, giftCard, offer, or generic.

passType

Pass template name used to create the pass (your Wallet Crew template identifier).

identifier_xxx

External identifiers attached to the pass (one property per identifier).

If an identifier key contains ., it is replaced by _ in the property name.

Example: identifier_y2_customerId.

All identifiers present on the pass are sent.

metadata_xxx

Custom pass metadata (one property per metadata key).

chevron-rightPass:Installedhashtag

Fires when a customer adds the pass to Apple Wallet or Google Wallet. It can fire multiple times for the same pass (re-install, multiple devices).

Event Name : wallet_installed

Properties :

Property name
Description

passId

Wallet Crew pass identifier. Use it to reference the pass in Wallet Crew APIs and logs.

passKind

High-level pass category: customerCard, eventTicket, giftCard, offer, or generic.

passType

Pass template name used to create the pass (your Wallet Crew template identifier).

identifier_xxx

External identifiers attached to the pass (one property per identifier).

If an identifier key contains ., it is replaced by _ in the property name.

Example: identifier_y2_customerId.

All identifiers present on the pass are sent.

metadata_xxx

Custom pass metadata (one property per metadata key).

device

Wallet platform where the pass was installed: apple or google.

registrationInformation_totalRegistrationCount

Total number of installs recorded for this pass (lifetime), after this install.

registrationInformation_activeRegistrationCount

Number of active installations currently recorded for this pass, after this install.

registrationSource_medium

Tracking medium captured during installation (e.g., email, sms, qr, in_app). Provided by your add-to-wallet link tracking.

registrationSource_tags

Tracking tags captured during installation (values you attach to the add-to-wallet link or install flow).

registrationSource_userAgent

User agent string of the device/browser that initiated the installation.

registrationSource_origin

Origin URL where the installation started (landing page or referrer captured by Wallet Crew).

chevron-rightPass:Uninstalledhashtag

Fires when a customer removes the pass from their wallet app. Use it for churn signals and win-back automation.

Event Name : wallet_uninstalled

Properties :

Property name
Description

passId

Wallet Crew pass identifier. Use it to reference the pass in Wallet Crew APIs and logs.

passKind

High-level pass category: customerCard, eventTicket, giftCard, offer, or generic.

passType

Pass template name used to create the pass (your Wallet Crew template identifier).

identifier_xxx

External identifiers attached to the pass (one property per identifier).

If an identifier key contains ., it is replaced by _ in the property name.

Example: identifier_y2_customerId.

All identifiers present on the pass are sent.

metadata_xxx

Custom pass metadata (one property per metadata key).

device

Wallet platform that reported the uninstall: apple or google.

registrationInformation_totalRegistrationCount

Total number of installs recorded for this pass (lifetime), after this uninstall.

registrationInformation_activeRegistrationCount

Number of active installations currently recorded for this pass, after this uninstall.

chevron-rightPass:Scannedhashtag

Fires when the pass barcode / QR code is scanned. This is your best “in-store / at-venue” behavioral signal.

circle-info

For this event to be triggered, the Scan APIarrow-up-right needs to be invoked.

Event Name : wallet_scanned

Properties :

Property name
Description

passId

Wallet Crew pass identifier. Use it to reference the pass in Wallet Crew APIs and logs.

passKind

High-level pass category: customerCard, eventTicket, giftCard, offer, or generic.

passType

Pass template name used to create the pass (your Wallet Crew template identifier).

identifier_xxx

External identifiers attached to the pass (one property per identifier).

If an identifier key contains ., it is replaced by _ in the property name.

Example: identifier_y2_customerId.

All identifiers present on the pass are sent.

metadata_xxx

Custom pass metadata (one property per metadata key).

scannedData

Raw value decoded from the barcode/QR code at scan time (what your scanner captured).

scannedType

Barcode/QR format used for the scan (symbology). Exact values depend on the scanner integration.

How to Use These Events in Bloomreach

Engagement & re-engagement: Use Pass:Installed to trigger a welcome series for new members. Use Pass:Uninstalled for win-back campaigns. Use the absence of Pass:Installed for follow-ups reminding customers to add their pass.

Behavioral triggers: Send a post-visit survey after Pass:Scanned. Combine Pass:Scanned with purchase data for recommendations. Reward loyal visitors who scan often.

Privilege-based campaigns: Notify on Privilege:Created to surface new offers. Use Privilege:MovementApplied to show progress toward rewards. Re-engage when privileges expire or are removed via Privilege:Deleted.

Lifecycle marketing: Combine Pass:Created and Pass:Installed. Remind after 48 hours if the pass isn't installed. Re-engage when a pass hasn't been scanned in 30 days. Detect VIPs from repeated Pass:Scanned events.

PassDataProvider

Retrieve and display customer information from Bloomreach directly on wallet passes. You can display customer tier levels (Gold, Silver, Bronze) on loyalty cards, show membership expiry dates, display accumulated points or rewards balances, and showcase personalized offers based on Bloomreach customer data.

The Pass Data Provider supports scripting. You can control which Bloomreach attributes appear on the pass, and how they are formatted.

Example: show tier and points from Bloomreach. Refresh when the customer opens the pass.

CustomerFlowElement

Automatically create or update customer profiles in Bloomreach when customers register through your wallet pass forms. When a customer submits a registration form (e.g., signing up for a new loyalty card), this component searches for existing customers in Bloomreach, creates a new profile if the customer doesn't exist, or updates the existing profile if found. It includes scripting extensibility to customize how customers are matched by email, phone number, member ID, or other identifiers.

In retail scenarios, a customer signing up for a loyalty card creates a profile in Bloomreach and immediately receives welcome email campaigns. For fitness centers, new gym members register, their profile syncs to Bloomreach, and they're enrolled in onboarding email series. In the events space, ticket purchasers register, profiles are created, and they receive pre-event communications.

Setup

The Wallet crew configuration

1

Enable connector

Ask the Wallet Crew team to enable the Bloomreach connector for your tenant.

2

Configure general settings

Open the Bloomreach connector settings in the Wallet Crew back-office.

chevrons-rightOpen General settings page

Bloomreach Wallet integration - General settings page

Fill in Project Token, API Base Url, API Key Id, and API Secret.

Get these values in Bloomreach Engagement under Project settingsAccess ManagementAPI.

Make sure Project Token matches the environment you want to target (e.g., prod vs test).

Bloomreach API Key configuration
3

Extensibility - Advanced configuration

You can override default connector behavior with scripts. Open the advanced settings page to customize each script.

chevrons-rightOpen Advanced settings page

Bloomreach wallet integration - advanced settings configuration page
chevron-rightContact Finderhashtag

A pass is linked to external identifiers (for example: email, phone, member ID). When an event happens on a pass, the connector attaches it to a Bloomreach contact.

Use this extensibility point to change how Wallet Crew resolves the Bloomreach contact for a pass.

chevron-rightEvent Interceptorhashtag

Intercept and change eventName and properties before sending the event to Bloomreach.

You can also drop an event by returning null.

chevron-rightCustomer Mapperhashtag

Customize mapping between Wallet Crew enrollment form fields and Bloomreach fields (and vice versa).

circle-info

This extensibility point is used only when data is sent to / retrieved from Bloomreach using PassDataProvider and CustomerFlowElement.

Bloomreach configuration

1

Set up the connection

Bloomreach calls Wallet Crew APIs using an API key. You configure this once as an HTTP authentication schema in Bloomreach.

  1. In Bloomreach, go to Data & Assets > Integrations, then click + Add new integration

Set up the connection
  1. Select Http Authentication Schemas

Set up the connection (2)
  1. Configure the HTTP authentication schema

Generate a new API key in the Wallet Crew back-office. Grant it the tenant.pass:write permission.

chevrons-rightOpen API Keys Configuration

Fill the schema form with the following values:

Endpoint

https://app.neostore.cloud/api or https://app-qa.neostore.cloud/api for the staging environment

Type

Customer headers

Key

X-API-KEY

Value

{twc_api_key}

2

Add Webhook preset Activity

Create one Bloomreach integration per activity.

circle-info

Import only the activities you need.

  1. In Bloomreach, go to Data & Assets > Integrations, then click + Add new integration

Add Webhook preset Activity
  1. Select WebHook preset.

WebHook preset
  1. Configure the WebHook preset.

Paste the endpoint URL from the activity you want to install. Then set the request body to match the payload examples below.

circle-info

Import and configure only the activities you need.

Icons can be found here :

file-archive
6KB
chevron-rightPush Updatehashtag

Updates an existing pass. When triggered, Wallet Crew rebuilds the pass and pushes the update to devices.

Endpoint URL:

triangle-exclamation

Minimum payload (options only):

Payload example to update additionalData:

Payload example to change the pass template (passType):

You can combine these fields in a single call. See Update Pass API for more information.

chevron-rightNotifyhashtag

Sends a wallet notification to a pass.

Endpoint URL:

triangle-exclamation

Payload example (single language):

Payload example (localized):

See notify API for more information.

chevron-rightApply Privilegehashtag

Adds a privilege to a specific pass. See Privilege concept for details.

Endpoint URL:

triangle-exclamation

Payload for unlocalized privilege:

Payload for localized privilege :

See notify API for more information.

chevron-rightAdd Privilege Movementhashtag
circle-info

Documentation will be available soon

See Apply Privilege API for more information

chevron-rightCreate Passhashtag
circle-info

Documentation will be available soon

See Create pass API for more information

Best practices

Update vs notify

  • Use Update when pass data must change (points, tier, expiry, ...).

  • Use Notify when you need attention (deadline, reminder, urgent offer, ...).

  • Use Apply Privilege when want to enhance the pass with additional information (promotion, benefit available, new message, ...)

Make notifications conditional on customer consent. Wallet notifications feel system-level. Overuse hurts trust.

circle-info

More recommendations on consent capture and frequency limits will be available soon.

Last updated