PO Box 55056 RPO Windermere, Edmonton, AB T6W 5B4, Canada

How to Issue Apple Wallet and Google Wallet Loyalty Cards From Salesforce

A barista scanning a loyalty card on a customer's phone

Most of what a loyalty program needs is already in your CRM: who your customers are, what they buy and who keeps coming back. A wallet pass turns that into a card the customer carries. Issued from a Salesforce record, it sits in Apple Wallet or Google Wallet and shows the points balance and tier the record holds. This guide covers what goes on the card, what Salesforce needs first, and the Flow that issues it.

What a loyalty card shows

A loyalty card is built from fields, and each field reads from a Salesforce record. You choose which field goes in which slot when you build the template. Three of them carry the loyalty data:

  • Points balance. A number field on the Contact or on a loyalty member record. The card shows whatever that field holds now.
  • Tier. A value such as Silver or Gold, read from the record rather than typed onto the card.
  • Member ID. The value encoded in the QR code or barcode, which staff use to look the member up.

A card can also carry the program name, the member's name, a join date, an expiry date and your branding. Longer text, such as program terms, belongs on the back of the card (loyalty card template guide).

If you run Salesforce Loyalty Management, it keeps the program itself: the tiers and the accrual and redemption rules. The wallet card displays what Loyalty Management has already worked out (Kemicard with Loyalty Management).

What Salesforce needs before the first card

Where your loyalty data lives

For most programs the member is a Contact, because the name, email and mobile number are already there. Points and tier are custom fields on the Contact, or on a separate loyalty member record linked back to it. Loyalty Management has its own objects for this, with a loyalty program member record per customer. The purchase history behind the balance comes from Opportunities, Orders or whichever object your team posts transactions to.

Card fields mapped to Salesforce fields

Card fieldSalesforce source
Member nameContact first name and last name
Points balanceA number field on the member record, such as Loyalty_Points__c
TierA picklist on the member record, such as Tier__c
Member IDA unique text field, or the record ID
Join dateAn enrolment date field, or the Contact's created date
Expiry dateA renewal date field on the member record
Barcode valueThe same member ID the counter staff look up

The one-time setup with Apple and Google

Apple and Google each expect a pass issuer to hold credentials: a pass type identifier and signing certificate from an Apple Developer account (Apple's pass-building guide), and a Google Wallet issuer account (issuer onboarding). With Kemicard, the Apple and Google signing certificates are managed by Kemicard, and passes are signed by the Kemicard Server, which stores no customer data. Building the signing yourself puts the certificates and their renewals on your own team, as set out in build vs buy.

How to issue loyalty cards from Salesforce

There are two situations. A new customer signs up and needs a card straight away. An existing member already has a balance and needs a card for the first time.

New members: an enrolment Flow

Enrolment runs on a record-triggered Flow on the Contact. The entry condition is whatever marks a customer as a member in your org: a joining checkbox, a filled-in loyalty program lookup, or a first transaction posted against the member record.

  • The Flow calls Kemicard's Generate Pass action with two inputs: the Configuration for the loyalty template, and the record the card is generated from.
  • It returns the Pass record ID. Store it on the Contact so your team can see who holds a card, and later updates find the right pass (Flow guide).
  • The add-to-wallet link goes out by email or SMS from the same Flow.

The same pattern issues event tickets, with a registration as the trigger instead of a sign-up (how to create digital event tickets from Salesforce).

Existing members: a bulk issue

A program that has been running for years already has its members and balances in Salesforce. Issue their cards in one run with Kemicard Connect (an Invite), from a report of active members filtered on the points field or the tier. Start with a one-record report, then run the full list.

Members moving off plastic can keep the number printed on their old card. Put the same number in the member ID field and counter lookups keep working. Balances carry over automatically, because the card shows the points field as it stands.

What happens after the card is issued

  • The card follows the record. When a purchase moves the points balance or a tier change is written, the card already on the phone updates. There's no reissue and no new link to send.
  • Redemptions are scanned against the live record. The Kemicard Scanner checks the record and writes each scan back. Single-use redemption is built in and switched on per template in the Flow, so a used reward fails on a second scan.
  • Reporting stays in Salesforce. Installs, scans and redemptions are Salesforce records, so they appear in reports and dashboards.

Final take

Issuing loyalty cards from Salesforce takes a few pieces. The member record needs a points field and a tier field, the card template needs those fields in its slots, and a record-triggered Flow issues the card at enrolment and sends the link. New members get a card the moment they join, and existing members get theirs in a bulk run, with their old card number and current balance carried over.

Kemicard issues loyalty cards from Salesforce as an AppExchange app. The card template and field mapping live in your org, and the signing is handled for you. Comparing options first? See the best Apple and Google Wallet loyalty platforms for Salesforce.

Frequently asked questions

Does Salesforce issue wallet loyalty cards on its own?

Loyalty Management includes an integration for Google Wallet loyalty cards. For Apple Wallet, or without Loyalty Management, you need an AppExchange package or custom code, because the pass has to be signed with Apple's and Google's issuer credentials (Salesforce's Google Wallet integration compared).

Can Marketing Cloud send an Apple Wallet loyalty card?

Marketing Cloud can deliver the add-to-wallet link by email or SMS, since the link is a field on the record. Creating and signing the pass stays with the wallet pass app in your Salesforce org.

Does a member need a new card after a tier change?

No. A tier change on the Salesforce record updates the tier shown on the card already in the wallet, with no reissue and no new link.

Does a loyalty card need an app?

No. Apple Wallet is built into the iPhone and Google Wallet is available on Android, so the member taps the link and saves the card without downloading anything or logging in.

Sources: Apple's Creating a Store Card Pass; Google's Loyalty cards documentation; Salesforce Help: Triggered Flows and Integrate Loyalty Management With Google Wallet.

Explore Kemicard

Product & solutions

See a Loyalty Card Built From Your Own Records

Book a demo, test drive Kemicard, or start a free 30-day trial.