How to Create a Pass with Zapier
Updated June 25, 2026
TL;DR: Issue Apple Wallet and Google Pay passes automatically from any Zapier trigger.
- 1. Connect PassNinja to Zapier (see how-to-connect).
- 2. Choose a trigger — a form, CRM event, spreadsheet row, payment, or anything else.
- 3. Add PassNinja → Create Pass as an action and select your pass template.
- 4. Map trigger fields (name, email, points, etc.) to the pass template fields.
- 5. Add a follow-up action to send the passUrl via email or SMS.
PassNinja's Zapier integration includes a native Create Pass action — no Webhooks by Zapier, no API keys in headers, no JSON to write by hand. Select your template, map your data, and every new Zap run issues a personalized Apple Wallet or Google Pay pass and returns the install link ready to drop into an email or SMS action.
How it works
- A trigger fires in another app — a form submission, a new CRM contact, a completed payment, a spreadsheet row.
- Zapier calls PassNinja's Create Pass action with the data from that trigger.
- PassNinja creates the pass and returns a
passUrlthat works on both iPhone (Apple Wallet) and Android (Google Pay). - A follow-up action delivers that link to the recipient.
The pass is live immediately — recipients can tap the link on their phone and add it to their wallet in one step.
Setting up Create Pass in a Zap
Step 1 — Choose a trigger
Connect any app that fires when you want a pass created. Common choices:
| Trigger app | Event | Use case |
|---|---|---|
| Google Sheets | New or Updated Row | Guest lists, member imports, event registrations |
| Typeform / Jotform | New Submission | Sign-up forms, RSVP forms |
| Shopify | New Customer | Loyalty card on first purchase |
| Stripe | New Customer | Membership pass on subscription start |
| HubSpot | New Contact | CRM-driven pass issuance |
| Salesforce | New Lead | Field sales or event pass |
Set up your trigger, connect the app account, and run a test step to pull in sample data. You'll map this data to pass fields in Step 3.
Step 2 — Add PassNinja → Create Pass
- Click + to add an action after your trigger.
- Search for PassNinja.
- Select the Create Pass action.
- Connect your PassNinja account — see How to Connect PassNinja to Zapier if you haven't done this yet.
Step 3 — Select a Pass Template
The Pass Template dropdown lists every template in your PassNinja account. Select the one you want to use.
After selecting a template, the field list below it updates automatically to show exactly the fields defined on that template — no need to know field names in advance.
Tip: If your template doesn't appear, go to your PassNinja dashboard and confirm the template is active, then refresh the Zapier dropdown.
Step 4 — Map your data to pass fields
Each field shown corresponds to a field in your template. Click inside a field and select the matching data from your trigger step.
| Pass field | Map from trigger |
|---|---|
| Form → Email field | |
| First Name | CRM → Contact First Name |
| Points | Static value: 0 |
| Member Since | Zapier → Current Date/Time |
| Event Date | Formatter → converted to ISO 8601 |
Fields marked required must have a value — the Zap will error if they are blank. Optional fields can be left empty; the pass uses its template default.
Date fields: Pass date fields expect ISO 8601 format (
2026-12-31T23:59:00.000Z). If your trigger returns a date in another format, add a Formatter by Zapier → Date/Time → Convert step before Create Pass to normalize it.
Step 5 — Test the action
Click Test action. If successful, Zapier shows the response:
{
"id": "abc123def456789012",
"serialNumber": "abc123def456789012",
"passType": "ptk_0x1a4b",
"passUrl": "https://i.installpass.es/p/abc123def456789012"
}
Open the passUrl on your phone to confirm the pass looks correct and all fields are mapped as expected.
Step 6 — Send the passUrl to the recipient
Add one more action to deliver the pass. The passUrl returned by Create Pass is a universal link — it opens Apple Wallet on iPhone and Google Pay on Android.
Send via email (Gmail):
- Add Gmail → Send Email
- Subject:
Your [Program Name] pass is ready - Body:
Tap here to add your pass to your wallet: {{passUrl}}
Send via SMS (Twilio):
- Add Twilio → Send SMS
- Message:
Your pass is ready. Add it to your wallet: {{passUrl}}
Save to CRM (HubSpot):
- Add HubSpot → Update Contact
- Set a custom property
passninja_serial_numberto{{serialNumber}} - Set
passninja_pass_urlto{{passUrl}}
Storing the serialNumber on the contact record lets you update or delete the pass later by looking it up from your CRM.
Common patterns
Issue a pass and email it in one Zap
Trigger: Typeform → New Submission
Action 1: PassNinja → Create Pass
Action 2: Gmail → Send Email (body includes {{1. passUrl}})
Create a pass only if one doesn't already exist
Trigger: Google Sheets → New Row
Action 1: PassNinja → Find Pass (search by serial number stored in the sheet)
Filter: Only continue if Find Pass returned 0 results
Action 2: PassNinja → Create Pass
Action 3: Google Sheets → Update Row (write serialNumber back to sheet)
Issue an event ticket and write the serial back to the guest list
Trigger: Google Sheets → New Row (guest list)
Action 1: PassNinja → Create Pass (Event Ticket template)
Action 2: Gmail → Send Email (passUrl in body)
Action 3: Google Sheets → Update Row (set "Pass Serial" column to {{1. serialNumber}})
Storing the serial in the sheet lets you update guest details (table assignment, seat, status) later using the Update Pass action.
Field format reference
| Field type | Expected format | Example |
|---|---|---|
| Text | Plain string | Jane Doe |
| Valid email address | jane@example.com | |
| Phone | Digits only or E.164 | +14155551234 |
| Date / Time | ISO 8601 | 2026-12-31T23:59:00.000Z |
| Number | Numeric string | 100 |
| Boolean | true or false | true |
Troubleshooting
"Pass template not found" The selected template was deleted or the template ID changed. Reopen the Zap, click the Pass Template dropdown, and reselect the template.
Pass created with blank fields The trigger test data was empty, or the field mapping pointed to a field that returned no value. Run your trigger with real data, check the mapping, and retest.
passUrl works on desktop but not on mobile The link opens the pass installation flow — it only does something on a phone with Apple Wallet or Google Pay installed. On desktop it redirects to a landing page. This is expected behavior.
Zap errors with "required field missing" One or more fields marked required in your template were not mapped or returned an empty value. Check all required fields have a mapping and that your trigger provides data for them.
More articles focused on Zapier
PassNinja connects to Zapier using OAuth 2.0 — the same secure login flow used by Google, Shopify...
How to Create and Send NFC Passes Using ZapierZapier is one of the most popular automation platforms, connecting thousands of apps without requ...
How to Use Zapier Actions with PassNinjaPassNinja exposes four Zapier actions that cover the full pass lifecycle — issuing a new pass, pu...
How to Use Zapier Triggers with PassNinjaPassNinja triggers work as REST Hooks — a real-time push mechanism. The moment a pass is created,...