Editing fields

- Label: the small heading (for example “POINTS”). Optional.
- Value: the text shown. Type static text, insert placeholders with the placeholder picker, or mix both:
Points: {{loyaltyState.pointsBalance}}. - Change message: an optional notification text shown when this field’s value changes, like “Points changed to %@”. This is how customers get a lock-screen ping when their balance updates.
Placeholders
Placeholders are{{…}} tokens replaced per customer when the pass is rendered. The most useful ones:
The placeholder picker in the field editor shows the full catalog, organized by category. A placeholder with no value for a given customer simply renders as empty.
Placeholders insert values; they don’t calculate.
{{loyaltyState.pointsBalance}} works; {{loyaltyState.pointsBalance}} + 10 shows literally that text.Dates
Also in the Content tab:- Expiration date: when the pass should stop being valid.
- Relevant dates: moments when the pass should surface on the customer’s lock screen, useful for events.
A sensible field layout
For a typical loyalty card:- Header: points balance, visible even when the pass is stacked in the wallet.
- Primary: the customer’s name, large on the strip.
- Secondary: tier and member-since.
- Back: terms, support contact, and links.