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.

Spreadsheets & databases

Turn new Google Sheets rows into wallet passes

Keep your list in a spreadsheet; let every row become a live Apple Wallet or Google Wallet pass — issued automatically, no code.

Start freeRead the docs →
Apple & Google WalletNo-code via ZapierFree to start
Google Sheets
New Spreadsheet Row
via Zapier
Passmint
Create Pass
Membership pass

What you can do

A few ways teams put Google Sheets and Passmint to work together.

Swap the trigger for the 'new or updated row' version, add a Find Pass step (by holder email), then Update Pass. When you bump someone's tier or points in the sheet, the change is pushed straight to the card already in their wallet — no re-issue, no resend.
Point the same flow at a guest-list sheet with an event-ticket template. Every approved row becomes an Apple/Google Wallet ticket with the guest's name and seat — and you can write the ticket link back for your invite email.
Keep a roster sheet of staff and issue a generic ID pass per row. When someone leaves, mark their row and add a Void Pass step so the badge goes invalid in their wallet immediately.
Track points in a column and use New-or-Updated Row → Find Pass → Update Pass to push the new balance to each holder's loyalty card the moment the number changes.

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 membership card, ticket, or coupon. Note its field names (e.g. member_tier, points): they must match the spreadsheet columns you map.
  • A Zapier account (the free plan is enough to build and test this).
  • A Google account with the sheet you want to issue from. A column for the holder's email is recommended so passes can be delivered and tracked.

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 Google Sheets as the trigger app. Pick the trigger that fires on a new row, then select the spreadsheet and worksheet Passmint should watch. Send a test so Zapier can read a sample row and learn your column names.

TODO(verify): Confirm the exact Google Sheets trigger label (it's the 'new row' trigger) and that it asks you to choose a spreadsheet + worksheet. Note any requirement that the header row be in the first row.

Add an action step, choose Passmint, and select Create Pass. Pick the template to issue from the dropdown — Zapier loads your templates automatically. Then map Holder Email and Holder Name from the matching columns in your sheet.

In Field Values, map each spreadsheet column you want on the pass to a template field. The key on the left must exactly match a field name defined in your Passmint template (e.g. member_tier → the Gold/Silver column); the value on the right is the cell from the row. Columns you don't map are simply left off the pass.

TODO(verify): 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 Google Sheets action that updates the same row, and map Passmint's Pass URL output into a 'Wallet link' column. Now every row carries its own shareable pass link — handy for a manual send or a mail merge.

TODO(verify): Confirm the Google Sheets 'update row' action and that it can target the row from the trigger (some setups need the row ID passed through).

Run the Zap with your test row and check that a pass is created in Passmint and the URL comes back. Open the pass on a phone to confirm it looks right, then switch your API key to pmk_live…, turn the Zap on, and add a row to watch it work end to end.

Questions

The details teams check before switching the Zap on.

Email and name map to the Holder Email and Holder Name fields. Every other column you want on the pass goes into Field Values, where the key must match a field name defined in your Passmint template. Columns you don't map are ignored.
Only if you build the update path. The basic Zap issues a pass when a row is added. To push edits, use the 'new or updated row' trigger with a Find Pass → Update Pass step — Passmint then pushes the change to the installed pass automatically.
The pass is still created — holder email is optional — but you lose automatic delivery and per-holder analytics. Add a Zapier filter requiring the email column if you'd rather skip those rows.
The Field Values keys do. They must match the field names defined in your Passmint template character for character, or those values are silently dropped from the pass. The spreadsheet's own header text can be anything — it's the key you type in the mapping that matters.
Zapier triggers on rows added from now on, one task at a time, so it's ideal for a steady trickle of new members — not a one-time backfill of a large existing list. For that, the Passmint API issues passes in bulk far faster and cheaper.
Zapier is perfect for getting this live today. When you're issuing thousands of passes, need them created the instant a row changes without per-task costs, or want field values driven straight from your own database, call the Passmint API directly — POST /v1/passes, or the @passmint/node SDK. Same passes, same live updates, full control.

Related integrations

Airtable

Issue a wallet pass per Airtable record and keep it in sync as the record changes.

Notion

Turn every new Notion database item into a wallet pass.

Coda

Issue a wallet pass for every new row in a Coda table.

Zapier Tables

Issue a wallet pass straight from a Zapier Table — no external app.

Issue your first pass from Google Sheets today

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

Start freeExplore the API →