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 Airtable records into wallet passes that stay in sync

Keep your membership directory, loyalty base, or partner roster in Airtable; let each record become a live Apple Wallet or Google Wallet pass — issued automatically, and updated in place when the record changes.

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

What you can do

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

Swap the trigger for the 'new or updated record' version (watching the fields that matter, like Tier or Points), add a Find Pass step by holder email, then Update Pass. When you change someone's tier, top up their points, or flip a status in Airtable, the edit is pushed straight to the card already in their wallet — no re-issue, no resend. This is Airtable's real advantage over a flat list: the record stays the source of truth and the pass tracks it.
Point the trigger at an Airtable view rather than the whole table — say an 'Approved' or 'Paid' view. A record only fires the Zap once it lands in that view, so partner applications, pending signups, or unpaid members never get a pass until your view's conditions say they should. Move a record out of the view and it simply stops matching; pair it with a Void Pass branch if you want the pass invalidated on the way out.
Keep partners in a base with a linked Companies table and issue a generic ID or membership pass per partner record. Map the linked company name and the partner's access level into the pass; when a partnership ends, mark the record and add a Void Pass step so their badge goes invalid in their wallet immediately.
Track a Points number on each customer record and use New-or-Updated Record → Find Pass → Update Pass to push the new balance to that holder's loyalty card the moment the number changes in Airtable — turning your base into a live points ledger that the wallet card mirrors.

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, loyalty card, or ticket. Note its field names (e.g. member_tier, points): they must match the Airtable fields you map.
  • A Zapier account (the free plan is enough to build and test this).
  • An Airtable base with the table you want to issue from. A field for the holder's email is recommended so passes can be delivered and tracked, and a URL field to receive the pass link is handy.

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 Airtable as the trigger app. Pick the trigger that fires when a record is created, then select the base and table Passmint should watch. If your records only become pass-worthy once they're approved or active, point the trigger at a filtered view instead of the whole table — that way only records that appear in that view will fire the Zap. Send a test so Zapier can read a sample record and learn your field names.

TODO(verify): Confirm the exact Airtable trigger label for a newly created record and that it asks you to choose a base + table (and, ideally, lets you scope to a specific view). Note which field types it exposes cleanly in the sample (single-select, linked records, attachments, formula/rollup fields often need special handling).

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 fields on the Airtable record.

In Field Values, map each Airtable field 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 → your Tier single-select, points → your Points number); the value on the right is the field from the record. Watch the typed fields: a single-select comes through as its option text, a linked-record field usually arrives as the linked record's name or ID, and a rollup/formula arrives as its computed value — map whichever form your template expects. Fields you don't map are simply left off the pass.

TODO(verify): On a real template, confirm the Field Values keys you reference exist as field names in that template (mismatched keys are silently ignored). Also confirm how Airtable's typed fields surface in Zapier — single-select option text vs. ID, and whether linked-record fields come through as names or record IDs.

Add a second Airtable action that updates the same record, and map Passmint's Pass URL output into a URL field (e.g. 'Wallet link') on that record. Now every record carries its own shareable pass link right next to the data it was issued from — handy for a manual send, a mail merge, or an Airtable button field that opens the pass.

TODO(verify): Confirm Airtable's 'update record' action and that it can target the record from the trigger using its record ID (the trigger should expose the record ID to pass through). Confirm a URL field accepts the mapped pass URL.

Run the Zap with your test record 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 record (or move one into your watched view) to see 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 field you want on the pass goes into Field Values, where the key must match a field name defined in your Passmint template. Fields you don't map are ignored.
A single-select usually arrives as its option text, a linked-record field as the linked record's name or ID, and a rollup or formula as its computed value. Map whichever form your template field expects — if a value looks like a record ID where you wanted a name, adjust which Airtable field you map. Confirm the exact behaviour in Zapier's test step, since it depends on how Airtable exposes each field.
Only if you build the update path. The basic Zap issues a pass when a record is created. To push edits — a new tier, more points, a status change — use the 'new or updated record' trigger with a Find Pass → Update Pass step, and Passmint pushes the change to the installed pass automatically.
Yes — point the Airtable trigger at a view instead of the whole table. A record fires the Zap only when it appears in that view, so you can gate issuance on an 'Approved', 'Paid', or 'Active' view's conditions without adding extra filter logic in Zapier.
Zapier triggers on records created (or updated) 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 an existing base. For that, the Passmint API issues passes in bulk far faster and cheaper, and you can write the returned URLs back into Airtable in the same run.
Zapier is perfect for getting this live today. When you're issuing passes for an entire base at once, need them updated the instant a record changes without per-task costs, or want field values driven straight from your own database rather than mirrored through Airtable, call the Passmint API directly — POST /v1/passes, or the @passmint/node SDK. Same passes, same live updates, full control.

Related integrations

Notion

Turn every new Notion database item into a wallet pass.

Coda

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

Google Sheets

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

Zapier Tables

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

Issue your first pass from Airtable today

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

Start freeExplore the API →