Passmint
TemplatesDocsPricingBlog
Log inGet started
Passmint

Apple and Google Wallet passes from one API. Built for people who ship.

Product
  • Pass Designer
  • Developers
  • Distribution
  • Analytics
  • Templates
  • Pricing
Developers
  • Documentation
  • API reference
  • Node SDK
  • Webhooks
Company
  • Changelog
  • About
  • Contact
  • Support
  • Security
  • Terms
  • Privacy
Social
  • GitHub
  • X

© 2026 Passmint. Built for indie makers.

Apple Wallet & Google Wallet, one API.

CRM & marketing

Give every new Klaviyo profile a wallet coupon — and a channel beyond email and SMS

Klaviyo already owns your email and SMS. A wallet pass is the third owned channel: it sits on the home screen, updates by push at no per-message cost, and you issue one automatically the moment a profile subscribes.

Start freeRead the docs →
Apple & Google WalletNo-code via ZapierFree to start
Klaviyo
New Profile
via Zapier
Passmint
Create Pass
Membership card

What you can do

A few ways teams put Klaviyo and Passmint to work together.

The default flow: profile subscribes → Create Pass from a coupon template carrying a unique discount_code. The code sits on the home screen, redeemable in store or online, and you skip the inbox entirely. Pair it with a Klaviyo welcome flow that links to the pass for a one-tap save.
Point a Klaviyo segment (e.g. 'spent over £200' or 'predicted CLV high') at this Zap and issue a loyalty card instead of a coupon. Map a vip_tier property to the pass so the card shows Bronze/Silver/Gold, giving your best customers a tangible membership artifact — and you a push channel straight to the segment that matters most.
Instead of triggering on subscription, trigger when a profile enters a segment that drives a Klaviyo flow — winback, post-purchase, replenishment. Each entrant gets a wallet offer timed to that moment, so the pass reinforces the flow rather than competing with it for inbox attention.
When a customer's spend bumps their tier or points in Klaviyo, trigger on the property change, add a Find Pass step (by holder email), then Update Pass to push the new vip_tier or points balance to the card already in their wallet. No new pass, no new email — the home-screen card just changes, instantly, at no per-message cost.

Set it up

One Zap links the two — live in a few minutes, no code involved.

  • A Passmint account and an API key (pmk_live… or pmk_test…), from Developers → API Keys.
  • A Passmint template for the pass you're issuing — a coupon for signup offers, or a loyalty card for a VIP program. Note its field names (e.g. discount_code, vip_tier, clv_band): they must match the profile properties you map.
  • A Zapier account (the free plan is enough to build and test this).
  • A Klaviyo account with the list or segment you want to issue from. Profiles with an email are recommended so passes can be delivered and the pass link can be merged back into your flows.
  • If you're issuing unique discount codes, a source for them — a Klaviyo coupon-code property on the profile, or a code-pool step earlier in the Zap.

In Zapier, add Passmint as a connected app and paste your API key when prompted. Zapier verifies it against your account immediately, so you'll know the connection works before building the rest of the Zap. Use a pmk_test… key while you're setting things up.

Create a new Zap and choose Klaviyo as the trigger app. Pick the trigger that fires when a profile is created, or when a profile subscribes to a list — the latter is usually what you want, so passes only go to people who've opted in. Send a test so Zapier can pull a sample profile and learn its property names (email, name, and any custom properties like vip_tier or a coupon code).

TODO(verify): Confirm Klaviyo's exact trigger labels — there's typically a 'new profile' trigger and a 'profile subscribed to a list' trigger — and whether each lets you scope to a specific list. Note whether subscription consent (email vs SMS) is exposed on the sample profile.

Add an action step, choose Passmint, and select Create Pass. Pick the template to issue from the dropdown — Zapier loads your templates automatically — choosing your coupon template for a signup offer or your loyalty template for a VIP card. Then map Holder Email and Holder Name from the Klaviyo profile's email and name properties.

In Field Values, map the Klaviyo profile data you want on the pass to your template's fields. The key on the left must exactly match a field name defined in your Passmint template (e.g. discount_code → the profile's coupon code, vip_tier → a tier property, clv_band → Klaviyo's predicted-CLV property bucketed into Bronze/Silver/Gold). The value on the right is the property from the triggering profile. Properties you don't map are simply left off the pass.

TODO(verify): Confirm which Klaviyo profile properties are available to map — especially predicted CLV / lifetime value and any per-profile coupon code, which may live under predictive analytics or a custom property rather than the core profile fields. Then confirm, on a real template, that the Field Values keys you reference exist as field names in that template; mismatched keys are silently ignored.

Add a second action — Klaviyo → update profile (or add a profile property) — and map Passmint's Pass URL output into a custom property such as wallet_pass_url. Now your welcome flow can drop a personalised "Add to Apple/Google Wallet" button into the very first email or SMS, using that property as the link. The pass becomes part of the onboarding you already run.

TODO(verify): Confirm Klaviyo's 'update profile' / 'add or update property' action exists in Zapier and that it can write a custom property keyed by the same email from the trigger. Check whether the property must be pre-created in Klaviyo before a flow can reference it.

Run the Zap with your test profile and check that a pass is created in Passmint, the URL comes back, and (if you added it) the property writes onto the Klaviyo profile. Open the pass on a phone to confirm the code and branding look right, then switch your API key to pmk_live…, turn the Zap on, and subscribe a test address to watch it work end to end.

Questions

The details teams check before switching the Zap on.

It's a separate owned channel. Email and SMS are messages you send (and pay per SMS for); a wallet pass is an object that lives on the customer's home screen and that you update by push — for free, as often as you like. A flash sale, a points top-up, or a new offer lands on the installed pass without sending or paying for another campaign. It complements Klaviyo's channels rather than replacing them.
Yes. Point the trigger at subscription to a particular list, or trigger on profiles entering a Klaviyo segment, so only that audience gets a pass. A common setup is a coupon pass for all new subscribers and a separate VIP loyalty card for a high-CLV segment. You can also add a Zapier filter to gate on any profile property.
Yes, as long as the code exists on the profile (or you generate one earlier in the Zap). Map that property to a discount_code field in your coupon template via Field Values, and each pass carries its own code. If you map a single static code instead, every pass shows the same one.
Yes — that's the channel advantage. Trigger on the Klaviyo property change, use Find Pass (by holder email) → Update Pass, and Passmint pushes the new tier or balance to the pass already installed in their wallet. The customer sees the change with no email, no SMS, and no per-message cost.
The pass is still created — holder email is optional — but you lose automatic delivery and per-holder analytics, and you can't merge the pass link back into a Klaviyo email flow for that profile. Add a Zapier filter requiring email if you'd rather skip those profiles.
Only the Field Values keys do. The key you type in the mapping must match a field name in your Passmint template character for character, or that value is silently dropped from the pass. The Klaviyo property's own name can be anything — it's the key on the left of the mapping that has to line up.
Zapier is perfect for getting this live today. When you're issuing passes to a fast-growing list, want them created the instant a profile subscribes without per-task costs, or need unique codes and CLV bands pulled straight from your own data warehouse, call the Passmint API directly — POST /v1/passes, or the @passmint/node SDK. Same passes, same push updates to installed wallets, full control over every field.

Related integrations

Mailchimp

Hand every new Mailchimp subscriber a wallet coupon — the offer lives on the phone, not the inbox.

HubSpot

Issue a membership card when a contact is created and keep the tier in sync as they move through your funnel.

ActiveCampaign

Hand every new contact a coupon or loyalty pass automatically.

Intercom

Issue a membership or loyalty pass to every new contact.

Issue your first pass from Klaviyo today

Free for your first passes. No Apple or Google certificates to manage, no code to write.

Start freeExplore the API →