# Bloomreach activities

Bloomreach activities are scenario steps that call The Wallet Crew APIs. They turn a CRM decision (who/when/what) into a wallet action (create, update, notify).

<details>

<summary><strong>Real-world examples</strong></summary>

* **Loyalty**: a tier change in Bloomreach updates the pass design and fields.
* **Offers**: a segment entry grants a “VIP Weekend” privilege visible on the pass.
* **Events**: a day‑of reminder triggers a wallet notification.

</details>

## Activity catalog

These activities are typically created in Bloomreach as **Webhook preset** integrations. Each activity calls one The Wallet Crew endpoint.

Activity installation and HTTP authentication setup are covered in [Setup](/connect/marketing-automation/bloomreach/setup.md).

### Notify

<figure><img src="/files/Dzyt9Y1SRiP9sWCUeQMs" alt="Bloomreach activity icon: Notify" width="188"><figcaption></figcaption></figure>

Notify sends a wallet message to a pass. On Apple Wallet, the message is delivered as a lock‑screen notification. On Google Wallet, the message appears on the pass.

{% hint style="warning" %}
Wallet notifications feel system-level. Overuse can hurt trust and opt-in rates.
{% endhint %}

<details>

<summary><strong>Real-world examples</strong></summary>

* **Retail**: Birthday message: “Happy birthday! Enjoy 20% off today.” The offer is shown on the pass.
* **Events**: “Your event starts in 2 hours. Gate opens at 7 PM.” This helps reduce no-shows.
* **Fitness**: Re-engagement: “You haven’t visited in 2 weeks.” This pairs well with a perk.

</details>

### Apply privilege

<figure><img src="/files/KDp5gpIRsYy9N3Z0svI7" alt="Bloomreach activity icon: Apply privilege" width="188"><figcaption></figcaption></figure>

Apply privilege attaches a benefit to a pass. That benefit can be a coupon, an access right, or a perk.

Privileges are first-class objects in The Wallet Crew. They can be displayed on the pass and tracked over time.

A privilege can also include images, such as a main visual for the benefit. When the privilege is applied from Bloomreach, that image is configured in the Bloomreach activity payload.

Apply privilege fits benefits with a lifecycle (availability, expiry, redemption). For the full privilege concept, see [Privilege](/engage-and-animate/privilege-and-activation/privilege.md).

<details>

<summary><strong>Real-world examples</strong></summary>

* **Retail**: “VIP Weekend” privilege. Pass turns gold. Text says “2× points this weekend”. Optional notify: “You’ve been upgraded.”
* **Retail campaign**: “Private Sale” privilege. The pass updates with a campaign hero image configured in Bloomreach, plus a title and validity dates.
* **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.

</details>

### Update pass

<figure><img src="/files/e65r4Jovu1RcQPz8KpRT" alt="Bloomreach activity icon: Update pass" width="188"><figcaption></figcaption></figure>

Update pass refreshes a pass so it reflects the latest data. This is the primary activity used to keep the pass accurate.

Typical updates include points, tier, balance, expiry, seat, venue, and instructions.

<details>

<summary><strong>Real-world examples</strong></summary>

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

</details>

### Add privilege movement (advanced)

Privilege movement updates a counter on an existing privilege. This is mainly used for punch cards, “progress to reward”, or multi-entry packs.

{% hint style="warning" %}
This activity is advanced. It usually requires a POS, scanner, or app to emit earn/spend signals.
{% endhint %}

<details>

<summary><strong>Real-world examples</strong></summary>

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

</details>

### Create pass (advanced)

Create pass generates a new pass and returns an “Add to Wallet” link. This is useful when Bloomreach is the orchestration layer and a pass does not exist yet.

<details>

<summary><strong>Real-world examples</strong></summary>

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

</details>

## FAQ

<details>

<summary><strong>What’s the difference between Update pass and Notify?</strong></summary>

Update pass changes what is displayed on the pass. Notify is a delivery mechanism meant to bring attention.

In most time-sensitive flows, Update pass runs first, then Notify.

</details>

<details>

<summary><strong>When is Apply privilege better than Update pass?</strong></summary>

Apply privilege fits benefits with a lifecycle. Examples include vouchers, access rights, and offers that expire.

Update pass fits state values. Examples include points, tier, and balance.

</details>

<details>

<summary><strong>Where does the pass identifier (passId) come from in Bloomreach?</strong></summary>

The pass identifier can be stored as a Bloomreach customer property. It can also be captured from The Wallet Crew events sent to Bloomreach.

</details>

<details>

<summary><strong>What’s the expected delay for Update pass vs Notify?</strong></summary>

Both actions are usually delivered in seconds. Actual timing depends on device connectivity and on Apple Wallet vs Google Wallet behavior.

Update pass triggers a wallet refresh, then the device fetches the updated pass. Notify triggers a wallet message delivery, and it can optionally be paired with an update.

For time-sensitive flows, a common pattern updates first, then notifies.

</details>

<details>

<summary><strong>What happens if the pass is not installed?</strong></summary>

The activity still targets a pass record. If the pass exists but is not installed on any device, Update pass has nothing to push to. Notify also cannot be delivered without an active installation.

A typical pattern uses install status as a guard. If the pass is not installed, a fallback channel (email or SMS) distributes an “Add to Wallet” link instead.

</details>

<details>

<summary><strong>How to test an activity safely in staging?</strong></summary>

Staging tests are safer when staging and production are isolated at both Bloomreach and The Wallet Crew levels. This typically means a staging Bloomreach Project Token and a staging The Wallet Crew environment.

A minimal test run usually covers:

* a test pass that can be installed on a device
* one Update pass action that changes a visible field
* one Notify action with a short message
* one Apply privilege action that appears on the pass

After each run, validate on-device behavior and Bloomreach logs, then iterate on payload and targeting.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thewalletcrew.io/connect/marketing-automation/bloomreach/bloomreach-activities.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
