Skip to content

Issue wallet pass

Use the Issue wallet pass element to give users a pass for Apple Wallet or Google Wallet, such as a loyalty card, a ticket, or a coupon. The element creates a personal pass for each user from a Wallet Pass Campaign.

  • Boarding pass after check-in: when a user checks in, issue a boarding pass with their seat and gate, and send it by push before departure.
  • Loyalty card on signup: when someone joins your rewards program, issue a card with their starting points balance and add it to the welcome email. See How to issue a wallet pass on signup for the full walkthrough.
  • Event ticket after purchase: after a purchase, issue a ticket with the seat and row, and include it in the order confirmation.
  • Pass on store geozone entry: when a shopper enters a store’s geozone, issue a pass and push the pass link right away. See How to issue a wallet pass on geozone entry for the full walkthrough.

Prerequisites

Anchor link to

Before you add this element:

Add the element

Anchor link to

You’ll find Issue wallet pass under Channels in the journey builder. To design the pass itself, see Wallet Pass Campaigns.

  1. Drag Issue wallet pass onto the canvas at the point where users should get the pass.
  2. Double-click the element to open its settings.
  3. Enter a recognizable name in Step Name, for example Loyalty card. You’ll use this name later when you insert the pass link into a Push or Email element.
  4. In Apple Wallet campaign and Google Wallet campaign, select a campaign for either platform, or both. Leave a dropdown empty to skip that platform.
Apple Wallet campaign set to Coffee discount and Google Wallet campaign left empty

Each dropdown accepts one campaign and shows only this application’s campaigns for that platform, including Drafts. Archived campaigns aren’t listed. A Draft campaign issues passes just like an Active one, so you don’t need to activate it first.

Fill in personal fields

Anchor link to

Personal fields are the parts of the pass that can differ from one user to another. Here you choose where each field gets its value.

Under Personal fields on the pass, you see the fields that need a value for the campaign you selected. These are the same fields you fill in the campaign’s Issue pass dialog. If you select another campaign, the list changes to match.

Fields that fill in automatically aren’t listed:

  • Tag placeholder: a field like {Seat} is filled from the user’s tag with the same name.
  • Shared fields: the same value on every pass, set once in the campaign itself.

For each field, choose where its value comes from:

  • Static value: the same value on every pass this element issues. For example, SUMMER2026 in the OFFER field.
Personal fields on the pass with OFFER set to Static value and VALUE typed as SUMMER2026
  • An event from the journey: a value from an event earlier in the journey, so each user gets their own value. The dropdown lists the events of the journey: an entry or wait step shows as the step name and the event name, and an API-based entry, Webhook, or Issue wallet pass step shows as its step name only. Choose the event, then the Attribute, for example offer_code from the entry event.
Personal fields on the pass with OFFER set to a Trigger entry event and Attribute set to offer_code

With campaigns selected for both platforms, the list shows fields from both. A field that exists in only one campaign is filled only on that platform’s pass.

When you’re done, click Apply to save the element settings.

What happens at this step

Anchor link to
SituationWhat happens
The pass is issuedThe user moves on to the next element.
The user already has a pass from this campaign, for example after a loop in the journeyThe element reuses that pass instead of creating a new one, and the user moves on. Each user has at most one pass per campaign.
The user has no User IDThe user drops out of the journey. By default, the SDK uses the device HWID as the User ID, so this mostly happens when a user enters through the API or with an event that has no User ID.
The pass can’t be issued, for example because the campaign was deleted or archived after you added the elementThe user drops out of the journey.
The wallet service doesn’t respond in timeThe user drops out of the journey with the Internal error reason.

A dropped user isn’t retried automatically. If both platforms are configured, Apple is attempted first. If Apple fails, the user drops before Google is attempted. If Apple succeeds and Google fails, the user still drops, and the Apple pass stays issued.

Anchor link to

After Issue wallet pass, add a push or email with a link the user taps to add the pass to their wallet. The link is available only for the platforms you selected in the element. Use apple_install_link for Apple Wallet and google_save_link for Google Wallet.

  1. Add a Push or Email element after Issue wallet pass.

  2. In the message, type the placeholder with vertical bars, for example {apple_install_link|regular|}. Don’t use a plain {apple_install_link}. regular is a required format modifier that inserts the value unmodified, so leave it as is. See Dynamic Content or Liquid Templates for the full syntax. In Email, you can use the placeholder in the subject line too, not just the message body.

  3. Turn on Personalise message with event attributes.

  4. In the table, check Overwrite placeholder next to your placeholder. This unlocks the Source event and Dynamic attribute dropdowns.

  5. In Source event, choose your Issue wallet pass step by the Step Name you gave it, for example Loyalty card.

  6. In Dynamic attribute, choose apple_install_link or google_save_link to match the placeholder you used.

Personalise message with event attributes table mapping apple_install_link to the Loyalty card step

Track results

Anchor link to

The element’s panel shows entries and drop-offs. For a user who was dropped, it also shows the reason:

Users who pass through the element without a drop have a pass issued or reused.

To check that the link reached users, see the statistics of the next Push or Email element.

Serial numbers

Anchor link to

Each issued pass has a serial number: apple_serial_number or google_serial_number. Use it to: