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

How to Send Wallet Passes From Salesforce (In Five Steps)

Team working at laptops — issuing wallet passes from Salesforce

If your members, customers or attendees are already Salesforce records, you are five steps from putting a live pass on their phones. This is the Salesforce to wallet pass process end to end: what to prepare, what each step involves, and what keeps working after the pass is issued.

Before you start

Three things save time on the day:

  • Your Org IDs, production and sandbox. They are used to provision the org for Apple Wallet and Google Wallet. A sandbox refresh changes the Org ID, so provisioning has to be updated after one.
  • An integration user, with a monitored, branded mailbox. Enrollment emails send from this identity, so a shared admin address beats a personal one.
  • One record type to start with, usually the Contact or a membership object. Prove one pass end to end before you design ten.

The five steps

1. Install and authorize

Start from the Kemicard listing on the AppExchange. Choose the product and plan, then install the managed package into the org. After that, authorize the Kemicard Digital Pass Connected App, which uses OAuth 2.0.

The installation guide takes about 45 minutes, plus provisioning turnaround. Two tips:

  • Choose the Sample Data option. You get a reference membership template and five example flows, so your first pass needs no design work.
  • Assign Kemicard's permission sets by role. There are seven, and no profile changes are needed.

2. Design the card once

Build the template in Kemicard Studio: colours, logo and strip images, the barcode, and the front and back fields. The live preview shows the Apple and Google versions as you work.

One template renders for both wallets. Apple's pass styles and Google's object model differ underneath, but you design against Salesforce fields, not against either format.

3. Map the card to your data

Point the template at the object that holds the person. That can be a standard object such as Contact, or a custom one such as a membership object.

Each field on the card is either static (the same for everyone) or dynamic (read from the record). The Configuration record ties it together. It holds the field bindings and the email settings, and it controls which wallet platforms are enabled for that object. Nothing is copied out of Salesforce to build the card. The pass is a view of the record.

4. Issue: one, automatically, or in bulk

  • One record. Send from a button on the record page. It's the fastest way to test.
  • Automatically. Add the Generate Pass action to a record-triggered Flow, so a pass is issued when a membership starts or a registration is confirmed.
    • The action needs only two inputs: the Configuration and the record the pass is generated from.
    • It returns the Pass record ID. Store it on your record so later updates find the right pass (Flow guide).
  • In bulk, now or on a schedule. Use Kemicard Connect to issue passes for everyone in a tabular report, such as active members without a pass, right away or at a time you schedule. A match check confirms the report and template use the same object, and each run reports its successes and failures. Start with a one-record report, then run the full audience.

5. Distribute with one link

Kemicard writes a signed add-to-wallet link to a field on each record. The same link opens Apple Wallet on an iPhone and Google Wallet on Android, so you never send two versions. Send it through whatever channel fits:

  • The welcome email set on the Configuration.
  • Your email platform (Mailchimp, Klaviyo or Brevo) as a merge field.
  • SMS through Twilio or another SMS API.
  • A QR code for in-person enrollment.
  • A button on your Experience Cloud member portal.

See integrations for each route.

What keeps working after the pass is issued

  • Updates follow the record. Change a tier, an expiry date or a points balance in Salesforce, and the pass on the phone changes.
    • On Apple Wallet, a notification tells the device to fetch the updated pass from the issuer's web service.
    • On Google Wallet, the pass object is updated through the Google Wallet API.
  • Customer engagement notifications. Send a renewal reminder or an event change to one pass holder, or to a whole report with Kemicard Connect, now or on a daily, weekly or monthly schedule. Each run reports its successes and failures. Google allows three notification-triggering messages per pass per day, so plan the cadence.
  • Revocation. End a membership and the pass moves to the wallet's archive. Alternatively it stays visible but is made unusable, with its QR code removed or a revoked marker shown.
  • Scanning writes back. The Kemicard Scanner is a component you can place in three places:
    • a Salesforce page
    • the Salesforce mobile app
    • an Experience Cloud page, so volunteers can scan without full Salesforce access
    Each scan checks the live record and records the check-in or redemption.
  • Reporting is Salesforce reporting. Installs, scans, notifications and redemptions land as records, so they appear in ordinary reports and dashboards.

Five mistakes that cost an afternoon

  1. The page layout isn't assigned. The installer deploys the Kemicard Contact layout, but Salesforce doesn't assign it automatically. Until you do, the pass fields don't appear.
  2. The Configuration has no email template. This is the most common bulk failure, and it errors immediately.
  3. The running user lacks a Kemicard permission set. A Flow runs as its user, so "Insufficient Privileges" usually means a missing assignment.
  4. Old Process Builders fire on the same object. They can push the Flow past Salesforce's query limits. Move their logic into the Flow.
  5. The sandbox was refreshed without updating provisioning. The Org ID changed, so the backend no longer recognizes the org.

The getting started walkthrough takes you from installed package to a pass on a phone in about 15 minutes with the sample data. Troubleshooting covers the rest.

Sources: Salesforce Help: Install a Managed Package, Triggered Flows and Apex Action Element; Apple's Pass reference and Adding a Web Service to Update Passes; Google's Google Wallet API documentation and Trigger Push Notifications.

From Record to Wallet in an Afternoon

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