> For the complete documentation index, see [llms.txt](https://docs.thewalletcrew.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thewalletcrew.io/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-notify.md).

# Journey Builder notify

The Notify activity sends a wallet notification from Salesforce Marketing Cloud through The Wallet Crew. It does not update pass data and it does not change the pass template.

Use [Journey Builder push update](/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-push-update.md) when the journey must update pass data with `additionalData`.

Complete [Setup](/connectors/marketing-automation/salesforce-marketing-cloud/setup.md) before using this activity.

<details>

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

* A birthday journey sends a wallet notification without changing the pass content.
* A campaign reminds customers that an offer is about to expire.
* A store event journey sends a local reminder to contacts who already installed the pass.

</details>

## What the activity does

Journey Builder sends a payload to The Wallet Crew notify listener.

The payload contains:

* `identifiers` to resolve the target customer or pass
* `content` for a single notification message
* `localizedContent` when the message must vary by language

## Endpoint URL

Use this endpoint when registering the custom activity:

`https://app.thewalletcrew.io/api/<tenantId>/webhooks/listeners/sfmc/actions/notify`

`<tenantId>` is the The Wallet Crew tenant identifier.

## Add the activity to a journey

{% stepper %}
{% step %}

### Open Journey Builder

Create a new journey or open an existing multi-step journey.
{% endstep %}

{% step %}

### Add The Wallet Crew Notify activity

Drag the The Wallet Crew Notify activity into the journey where the wallet notification should be sent.
{% endstep %}

{% step %}

### Configure the payload

Define the identifier mapping first. Then define either `content` or `localizedContent`.
{% endstep %}
{% endstepper %}

## Configure `identifiers`

`identifiers` works the same way as in [Journey Builder push update](/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-push-update.md).

A common Salesforce Marketing Cloud example uses a customer identifier stored on the contact.

{% code title="Identifiers example" %}

```json
{
  "id.sfmc.customerId": "{{Contact.Attribute.Identifier}}"
}
```

{% endcode %}

## Identifier mapping and default reuse

Select the identifier mapping explicitly for each Notify activity.

The activity does not infer an identifier from the Data Extension schema. The connector supports different identifier models, including customer IDs, loyalty IDs, and brand-specific external IDs.

After an identifier is configured, the activity can reuse the most recently configured identifier in the same browser context. Confirm the selected mapping before saving each activity.

## Configure `content`

Use `content` when one message is enough for every recipient.

{% code title="Notify payload with content" %}

```json
{
  "identifiers": {
    "id.sfmc.customerId": "{{Contact.Attribute.Identifier}}"
  },
  "content": "Your pass has been updated. Open Wallet to see the latest information."
}
```

{% endcode %}

## Configure `localizedContent`

Use `localizedContent` when the message must vary by language.

{% code title="Notify payload with localizedContent" %}

```json
{
  "identifiers": {
    "id.sfmc.customerId": "{{Contact.Attribute.Identifier}}"
  },
  "localizedContent": {
    "en": "Your pass has been updated.",
    "fr": "Votre pass a été mis à jour."
  }
}
```

{% endcode %}

## Choose between `content` and `localizedContent`

Use `content` for one message shared by every recipient.

Use `localizedContent` when the notification text must be localized.

Do not use Notify to update pass fields or template variables. That belongs to [Journey Builder push update](/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-push-update.md).

## Test and activate

Validation should start with a small internal audience.

{% stepper %}
{% step %}

### Test with one contact

Use a contact with a known identifier and an installed pass.
{% endstep %}

{% step %}

### Check the message payload

Confirm the journey sends either `content` or `localizedContent`.
{% endstep %}

{% step %}

### Verify the notification on a device

Confirm the notification appears on a real device with the pass installed.
{% endstep %}
{% endstepper %}

## Troubleshooting

### No notification is sent

Check the identifier mapping first.

Then confirm the target pass is installed on a real device.

### The expected identifier is not selected

Identifier mappings are not inferred from the Data Extension schema. Select the identifier that matches The Wallet Crew data.

The last configured identifier is only reused in the same browser context. Reuse does not occur when:

* Journey Builder opens in a new browser, private window, or browser profile.
* Browser storage has been cleared.
* The activity is configured on another machine.

Select and confirm the identifier mapping again before saving the activity.

### The wrong language is used

Check the keys used in `localizedContent` and confirm the pass language context matches an available entry.

### The pass content does not change

This is expected.

Notify only sends a wallet notification. It does not update pass data.

## FAQ

<details>

<summary><strong>Does Notify update pass fields?</strong></summary>

No. Notify only sends a wallet notification.

Use [Journey Builder push update](/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-push-update.md) to update pass data with `additionalData`.

</details>

<details>

<summary><strong>Can both <code>content</code> and <code>localizedContent</code> be used together?</strong></summary>

One source of notification text should be used per activity configuration.

Use `content` for one message, or `localizedContent` for language-specific messages.

</details>

<details>

<summary><strong>Should Notify be used to change template?</strong></summary>

No. Notify does not change template and does not use `passType`.

Template changes belong to [Journey Builder push update](/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-push-update.md).

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.thewalletcrew.io/connectors/marketing-automation/salesforce-marketing-cloud/journey-builder-notify.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
