Skip to content

Create Wallet Pass Campaigns

A Wallet Pass Campaign lets you design a single Apple Wallet or Google Wallet pass template, issue it to multiple users, and centrally manage updates.

You choose which fields are Shared (syncing changes to all user devices simultaneously) and which are Personal (preserving unique values like names, barcodes, or balances for each user).

What you can do with Wallet Pass Campaigns

Anchor link to
  • Design one pass in a campaign, instead of setting up each pass by hand in the Apple Wallet or Google Wallet pass builder.
  • Choose which fields update everywhere (shared) and which stay per pass (personal).
  • See how many issued passes a field edit affects before you save it.
  • Override a shared field on one pass, then hand control back to the campaign later.
  • Attach passes issued outside a campaign so they start following its shared fields.
  • Track campaign revisions and the delivery status of each update.
  • Automatically refresh a pass whenever the tag behind one of its fields changes, without editing the campaign.

Prerequisites

Anchor link to

A campaign uses the same one-time setup as a standalone pass:

Apple Wallet:

Google Wallet:

Create a campaign

Anchor link to

To start creating a campaign, go to Campaigns → Wallet Passes → Campaigns and click Create campaign.

Empty Campaigns list in Wallet Passes with the Create campaign button highlighted

Set campaign details and platform

Anchor link to
  • Platform: select Apple Wallet or Google Wallet at the top of the page. This choice is permanent for the campaign.
  • Campaign: enter a Name and an optional Description for your internal reference. Neither appears on the pass.
  • Pass format: under Pass Style (Apple) or Pass Type (Google), choose the layout for your pass:
    • Apple Wallet: Boarding Pass, Coupon, Event Ticket, Store Card, Generic. See Choose a pass style.
    • Google Wallet: Generic, Offer, Loyalty card, Event ticket, Gift card, Flight, Transit. This cannot be changed after creation. See Choose a pass type.
New campaign creation form showing Name and Description fields, and a Pass Style picker

Configure pass design and branding

Anchor link to

Configure the standard sections of the pass:

Set shared and personal fields

Anchor link to

In the Shared and personal fields section, configure which fields update globally across all passes and which keep unique values per user. This controls what happens when you edit the campaign later: shared fields update on every issued pass, while personal fields remain unchanged.

Turn on the Personal toggle for any field that should hold unique values per user.

Shared and personal fields configuration section with Personal toggles next to each field
Field type
Behavior
Examples
SharedDriven by the campaign. Updating this field syncs the new value to every pass on users’ devices.Event date, Gate number, Store address, Discount percentage
PersonalUnique per user. The campaign does not overwrite these values when updated.User name, Seat number, Membership ID, Points balance

A personal field’s value can include a tag placeholder, {tag} or {tag|format|fallback} (for example, {Seat}). Pushwoosh fills it in from the recipient’s tag when it serves the pass. If the recipient has no value for that tag, Pushwoosh uses the fallback from the placeholder, or leaves the field blank when the placeholder has none.

  • Just the tag, nothing else, like {Seat}: the field doesn’t appear in the Issue pass dialog.
  • The tag mixed with other text, like Seat {Seat}, or no tag at all: the field appears as an editable input in the Issue pass dialog, prefilled with that value. Any tag inside it still resolves per recipient when Pushwoosh serves the pass.

Turn on tag sync

Anchor link to

In the Tag sync section, turn on Update pass fields from tags to have Pushwoosh periodically re-check the tag placeholders used in the campaign’s fields and push a fresh value to any pass whose tag changed.

  • Interval (minutes): how often Pushwoosh re-reads the tags. Defaults to 60 and can’t go below 5. A pass gets at most one refresh per interval, no matter how many times its tag changes in between.
  • Notification (Google Wallet only): choose how the holder learns about the refresh: Silently, Own message (fill Message text, sent with the update), or Google field notification (Google’s own field-update alert). Google caps them at 3 per pass per 24 hours. Past that, the new values still reach the pass, just without a notification.
Tag sync section in four states: off, Google with a silent refresh, Google with a custom message, and Apple showing the Change message note instead of a notification picker

Upload campaign images

Anchor link to
  1. In the Campaign images section, click Choose an image next to an image slot.
  2. Select an existing image from your Media store or drag and drop a new file to upload.
  3. Repeat for each available image slot:
    • Apple Wallet: Icon, Logo, Background, Footer, Strip, and Thumbnail (see Apple Wallet images).
    • Google Wallet: Logo and Hero image.
Campaign images section with upload slots for icons, logos, and custom pass imagery

Preview and create the campaign

Anchor link to
  1. Check the Preview as user panel on the right to see how the card looks. You can enter a test User ID to preview personalized fields.
Live pass preview panel with Preview as user field and the rendered digital pass card
  1. Click Create campaign at the bottom of the page.

Pushwoosh creates the campaign in Draft status and opens its workspace, with Design, Passes, and History tabs.

Issue passes to users

Anchor link to

Issue a pass from the campaign

Anchor link to
  1. On the Passes tab, click Issue pass.
  2. Enter the recipient’s Pushwoosh User ID.
Issue a pass modal dialog with Pushwoosh User ID field and Issue pass confirmation button
  1. Click Issue pass to confirm.

Depending on how you configured Personal fields, the modal handles them as follows:

  • Editable fields: appear with default values that you can change for this user.
  • Tag placeholders (like {Seat}): do not appear in the dialog. Pushwoosh automatically populates them from the user’s tags.

You can also edit any personal field on an individual pass at any time after issuance.

Pushwoosh generates the pass from the campaign’s current design and lists it on the Passes tab and in the application’s All passes table (Apple Wallet or Google Wallet).

Attach an existing pass to a campaign

Anchor link to

You can attach standalone passes (created outside any campaign) to a campaign so they start receiving shared updates.

  1. On the Passes tab, click Attach passes.
  2. Search for passes by User ID, serial number, or barcode.
  3. Select the passes and confirm.

Once attached:

  • Shared fields start following the campaign and update whenever you change the pass template.
  • Personal values already on the pass (such as user details or unique balances) are preserved.

Manage an existing campaign

Anchor link to

Opening a created campaign from Campaigns → Wallet Passes → Campaigns displays its status, revision counter, live pass preview, and three main tabs: Design, Passes, and History.

Campaign header with Design, Passes, and History tabs, a revision counter, and a Status dropdown set to Draft

Change the campaign status

Anchor link to

Use status to track where each campaign stands: still being designed, actively issuing passes, or done and archived.

To change the status, select an option from the Status dropdown in the campaign header. The change saves immediately without a separate confirmation step:

  • Draft or Active: allows you to issue new passes, attach existing ones, and push design updates.
  • Archived: pauses new pass issuance. You cannot issue or attach passes while the campaign is archived, but previously issued passes continue working and receiving shared updates.

Design tab

Anchor link to

On the Design tab, you can update the pass template, change colors, modify shared and personal fields, upload new campaign images, or change tag sync settings.

Update design and push changes to passes

Anchor link to
  1. On the Design tab, edit basic information, colors, barcode type, expiration, locations, a shared field, or a campaign image.
  2. Click Save changes.
  3. In the Apply the campaign edit dialog, confirm the update:
    • No pass overrides the changed field: click Update N, keep hand edits to push the edit to all N passes.
    • Some passes override the changed field: the dialog names the field and how many passes override it. Click Update N, keep hand edits to push the edit to every pass except those, or Overwrite all N to push it to all N passes, including the overridden ones. Overwriting erases the override.
Apply the campaign edit dialog listing the venue field overridden on 1 pass, with Update 3, keep hand edits and Overwrite all 4 buttons

Whichever button you click, the update saves as a new revision (for example, Revision 2), so you can check what changed and when on the History tab.

History tab with the revision 2 row highlighted, showing its changed field keys and creation timestamp

Override a shared field on an individual pass

Anchor link to

If you need to customize a shared field for a specific user, edit that field directly on their individual pass (from the Passes tab or All passes):

  • Create an override: saving a custom value on an individual pass detaches that field from campaign-wide updates. Future updates to the campaign, including a scheduled tag sync refresh, will skip this pass for that specific field.
  • Remove an override: to restore campaign control, edit the pass and click Use the campaign value next to the overridden field.
Edit pass screen showing a From campaign field with Use the campaign value button highlighted

You can track which passes have customized values on the Passes tab under the Pinned fields column.

Passes tab

Anchor link to

The Passes tab lists every pass issued by the campaign, including its serial number, recipient User ID, active pinned fields, current revision, and last update date.

Passes tab showing issued passes table with User ID, pinned fields, revision, and action buttons

If tag sync is on, the tab also shows a Tags synced line above the table with the date and time of the last scheduled run, or not yet before the first one.

Use table filters to find specific passes:

  • With pinned fields: shows passes that have at least one custom-edited field.
  • Behind the revision: shows passes that have not yet received the latest campaign update.

To issue new passes or attach existing ones, see Issue passes to users.

Open a row’s actions menu (⋮) to manage that pass:

  • Edit: open the pass on its platform’s edit page to change personal fields or override a shared one.
  • Download: on Apple Wallet campaigns, download the signed .pkpass file. Google Wallet campaigns don’t show this option, since Google Wallet has no downloadable file equivalent.
  • Send message: open the one-time push composer to message the pass’s recipient by User ID. See Message Wallet pass holders for all the ways to reach them.
  • QR code: show an install QR code users can scan to add the pass and register their device for updates.
  • Copy install link: copy the install URL to share the pass in your messaging channels.
  • Delete: remove the pass. This can’t be undone. On Apple Wallet, already-installed copies stop receiving updates and become invalid on their next refresh. On Google Wallet, Google doesn’t allow force-removing a pass already saved on a device, so it becomes invalid and moves to the user’s Expired passes while Pushwoosh removes its record. Deleting a pass here doesn’t delete the campaign or any other issued pass.

History tab

Anchor link to

The History tab lists all revisions of the campaign in chronological order, showing which fields were modified in each version.

History tab showing the chronological list of campaign revisions and changed field keys

The delivery status of the most recent update appears below the tabs:

  • Cancel: stops sending the update to passes it has not reached yet. These passes remain on their previous revision.
  • Retry failed: re-attempts delivery for passes that failed to update (marked as failed after 5 attempts).

Once a new revision is saved, older updates can no longer be retried or canceled.

Delete a campaign

Anchor link to

Open the campaign and click Delete campaign at the top right of the page.

Campaign workspace header with the Delete campaign button highlighted at the top right

Deleting a campaign does not delete or invalidate already issued passes. Issued passes retain their current content and images, but stop receiving shared updates. Any future changes must be made on each pass individually.