Skip to main content
The Passlet Zapier app lets a Zap issue and manage passes, send notifications, find existing passes, and start workflows from pass lifecycle or scan events. Project, template, pass, and template-variable fields load from your workspace while you configure each step.
This integration is currently a developer preview. The repository contains the complete app, but it must be linked to a private Zapier integration or shared by invitation until Passlet completes Zapier’s public review and publishing process.

Connect your account

1

Create an access token

In Passlet, open Access tokens and create a token for Zapier. Copy the plt_... value when it is shown; Passlet does not display it again.
2

Choose scopes

Grant only the scopes used by your Zaps. A connection that uses every available Zapier step needs:
  • templates:read for project, published-template, and template-variable fields
  • passes:read for pass choices, Find Pass, and live trigger samples
  • passes:write to create or void passes and revoke links
  • pass-notifications:write to send pass or project notifications
  • webhooks:write for lifecycle and scan triggers
  • scans:read for live Pass Scanned samples
3

Add Passlet in Zapier

In a linked private or invited Passlet integration, add a Passlet step, choose Connect a new account, and paste the access token. Zapier tests the token against your workspace without requiring an unrelated API scope.
Treat the access token like a password. Store it only in the Zapier connection, and rotate or revoke it from Passlet if it is exposed.

Available steps

You can type an ID directly in dropdown fields when it comes from an earlier Zap step. Published template choices are filtered automatically, so draft-only templates do not appear.

Create a pass and deliver it

Create Pass requires an external pass ID, label, and published template. The external ID comes from your source system, such as an order or membership ID. It makes retries idempotent: sending the same ID again returns the existing pass instead of creating a duplicate. Passlet accepts the action asynchronously and initially returns QUEUED. Apple and Google hosted links are not ready at that point. Use Pass Issued as the trigger for a second Zap that sends the wallet links by email, SMS, or another channel. Use Pass Failed to route issuance failures for review.
Template variables are loaded from the selected template’s published version. Changing the template refreshes those fields without a hand-maintained Zapier definition file.

How triggers work

When you enable a Zap with a Passlet trigger, Zapier gives Passlet a private callback URL. The integration creates a Zapier-owned webhook subscription for the selected event. When you disable or delete the Zap, it removes that subscription automatically. Each delivery is HMAC-signed. The integration verifies the signature against the raw request body, rejects stale signatures, ignores other event types, and returns Passlet’s stable event ID to Zapier for deduplication. You do not need to create a webhook endpoint or manage a signing secret yourself. Connector-managed endpoints cannot be edited or toggled on the Passlet Webhooks page, keeping their normal lifecycle in sync with Zapier. A workspace owner can force-remove an orphaned endpoint if Zapier can no longer unsubscribe it; reconnect the Zap afterwards. For custom receivers and signature details, see Webhooks.

Maintaining the integration

The Zapier app is a TypeScript application, not a Power Automate connector definition. Repetitive API types, webhook examples, and output fields are generated from Passlet’s public OpenAPI contract. Step names, field labels, dynamic template variables, authentication, and trigger lifecycle stay hand-curated for Zapier’s interface. Contract drift, type checks, tests, and Zapier validation run before release. Pushing, promoting, and submitting the app for Zapier review are explicit release steps and require Zapier deployment credentials.