Campaign Rewards: Push, Pass, and Staff Messages | Passtastic Help
Passtastic
No account yet? Sign up free

Campaign Rewards: Push, Pass, and Staff Messages

On the Review & turn on screen of the campaign editor, you'll see three different message fields. Each one shows up in a different place. Understanding the difference is the single biggest thing that will make your campaigns effective.

New to campaigns? Start with Messages and Campaigns.

The three fields at a glance

Field (as labeled in the editor)Where the customer sees itWhere your staff sees it
📱 The message on their phoneOn the phone's lock screen—
💳 What appears on their cardInline on the wallet pass—
🧑‍💼 What your staff sees at the counter—On the scanner app, next to an Apply button

📱 The message on their phone (push notification)

The short text that pops up on your customer's phone when the campaign fires. A live lock-screen preview updates as you type, right next to the field.

  • Required for every campaign and message.
  • Delivered through Apple Wallet and Google Wallet (not SMS or email).
  • Keep it under 160 characters for best delivery — go longer and the editor's counter turns amber, with a note that longer messages get trimmed on the lock screen (the full text still shows on the card).
  • Plain text only — no links, images, or formatting.

Good examples:

  • "Happy birthday! Enjoy a free coffee on us today 🎂"
  • "We miss you! Come back for 20% off your next visit this week"
  • "Happy hour starts now — 2-for-1 until 7pm"

Why it matters: This is the hook. If the push is boring, customers won't open the card. Be specific about the offer and when it's valid.

Greet each customer by name

Want each customer to see their own name? Under 📱 The message on their phone, click + First name. It adds `[name]` where your cursor is. When the message goes out, `[name]` becomes that customer's first name — "Hi [name]!" arrives as "Hi Ana!". Each customer sees their own first name.

The lock-screen preview shows a sample name so you can see how it will look. If a customer has no name on file, the message goes out with the name left out: "Hi [name]!" arrives as "Hi!".

💳 What appears on their card (pass message)

Optional text that shows up inside the customer's wallet pass — on the front of the card, in a dedicated offer area.

  • Optional. Leave blank for push-only campaigns (these render as `MESSAGE` in your Campaigns tab).
  • Stays visible until the offer expires or is claimed, so it's a reminder the customer can come back to.
  • Good for rewards that customers need to redeem in person.
  • It is also the offer's title in your customers' portal. Left blank, the portal shows the staff message as the title, so write that one so a customer can read it too.

Good examples:

  • "Show this at the counter for 15% off"
  • "Bonus: +2 stamps on your next visit"
  • "Your free birthday drink is ready — valid through Sunday"

Why it matters: Pushes disappear from the lock screen in minutes. The pass message stays on the wallet pass, so if a customer checks their phone an hour later, they can still see what the offer is.

🧑‍💼 What your staff sees at the counter (scanner message)

The text your cashier sees on the scanner app when they scan this customer's card and the campaign is active.

  • Required once you've filled in the card message — the editor shows an inline reminder if you try to turn it on or save it without one.
  • Not shown to the customer.
  • Should be written for the cashier — direct and instructional.

Good examples:

  • "15% off — birthday treat"
  • "Free coffee — week 1 of win-back"
  • "Priority seating — Gold member perk"

Why it matters: When three people walk in at rush hour, your cashier needs to know what to do in under two seconds. Keep the scanner message short, specific, and action-oriented.

In your customers’ portal

Every campaign with an offer also shows on your customer portal, in the row of offers on the member's page. The section In your customers’ portal in the campaign editor adds what the wallet card has no room for:

  • Picture — optional. Without one, the offer shows its title on your brand colour.
  • What they get — a sentence or two, up to 280 characters.
  • Small print — conditions, up to 400 characters.

A preview next to the fields shows the offer as customers will see it, with and without a picture. Offers made before these fields existed show their card message only.

For an offer every member should see for a set time, rather than one that waits for a trigger, use the Always in the app goal: see Always in the App: Offers Every Member Can See.

How they work together

For a birthday campaign with a 15% discount at the counter, you might write:

  • Push: "Happy birthday! Tap for a 15% treat today 🎂"
  • Pass: "Show this at the counter for 15% off"
  • Staff: "15% off — birthday"

When a scanner later scans the customer's card: 1. The cashier sees "Active offers" with "15% off — birthday" and an Apply button. 2. They tap Apply; the customer sees "Offer applied" on the scanner. 3. The offer is marked claimed in your analytics.

See What Your Staff Sees When a Campaign Is Active for the scanner-side walkthrough.

Common questions

Can I leave the pass message and staff message blank?
Yes. If you only fill in the message on their phone, your campaign is a `MESSAGE` (push-only) — good for greetings and announcements. Fill in the card and staff messages too and it becomes a `CAMPAIGN` with a reward your cashier can apply.
What's the character limit?
Push notifications: keep under 160 characters. Pass and staff messages don't have a hard character limit but short is better — cashiers will skim.
Can I use emoji?
Yes — emojis work in all three fields. Use them sparingly for emphasis (🎂 for birthday, 🎁 for gift, etc.), not as decoration.
Can I test what each message looks like?
Yes. Save the campaign as a draft, install the card on your own phone using Test Card, then trigger the campaign (scan yourself, or use a birthday campaign on your test account). You'll see the push and pass message as a customer would, and the scanner message when you scan your own card.