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 Coda rows into wallet passes

Run your list inside the Coda doc your team already works in; let each new 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
Coda
New Row
via Zapier
Passmint
Create Pass
Membership pass

What you can do

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

Swap in Coda's updated-row trigger, add a Find Pass step (by holder email), then Update Pass. When you change someone's role or details in the table, the update is pushed straight to the pass already in their wallet — no re-issue.
Instead of every new row, gate issuance behind a Coda automation or an approval column, and trigger the Zap only when that condition is met — so passes go out exactly when a row is marked approved.

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 or a generic ID/credential pass. Note its field names: they must match the Coda columns you map.
  • A Zapier account (the free plan is enough to build and test this).
  • A Coda account with the doc and table you want to issue from, plus a column holding the holder's email 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, choose Coda as the trigger app, and pick the trigger that fires when a row is added to a table. Select the doc and table Passmint should watch, then send a test so Zapier reads a sample row and learns your column names.

TODO(verify): Confirm the exact Coda trigger label for a new row and that it asks you to pick a doc and a table. Note any requirement to grant Coda API access or generate a token during the connection.

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 Coda columns.

In Field Values, map each Coda column you want on the pass to a template field. The key on the left must exactly match a field name in your Passmint template; the value on the right is the cell from the row. Send a test and confirm a pass is created with the right values.

TODO(verify): Confirm Coda's column labels as Zapier exposes them, and that the Field Values keys you reference exist as field names in the real template. Mismatched keys are silently ignored.

Questions

The details teams check before switching the Zap on.

The Email and Name columns map to Holder Email and Holder Name. 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 Coda's updated-row trigger with a Find Pass → Update Pass step — Passmint then pushes the change to the installed pass automatically.
Only the template — holder email and name are optional, though email powers delivery and per-holder analytics. As long as your template is selected and any Field Values keys match its field names, the pass is created even from a sparse row.
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

Google Sheets

Issue or refresh a wallet pass for every new or updated row.

Notion

Turn every new Notion database item into a wallet pass.

Zapier Tables

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

Issue your first pass from Coda today

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

Start freeExplore the API →