How automations work

Last updated: September 19, 2026

Automations connect something that happens outside WalletPassBuilder - a form submission, a payment, a booking - to something that should happen inside it, like sending a notification or updating a pass. Every automation is built as a visual flow: a trigger, then any number of conditions and actions.

The trigger

Every automation starts from a named event, posted to POST /v1/events with a name and a data payload. You can send a fully custom event from your own code, or start from one of the built-in presets - Jotform, Typeform, Stripe Checkout, Square, WooCommerce, or Calendly - each of which pre-fills a sensible event name and shows setup instructions for that service.

Conditions and actions

From the canvas, click the + button under any step to branch on a condition (True/False, based on a field in the event's data) or add an action: send a notification, email/text/WhatsApp a pass to someone, create or update a pass, call your own webhook, or wait before continuing.

Delivering a pass by email, SMS, or WhatsApp

These actions close the loop on a form-driven signup - point a trigger at Jotform or Typeform, add a Create pass step to personalize a pass from the submission, then add Email pass, Text pass, or WhatsApp pass right after it to send that pass's "Add to Wallet" link to the address or phone number the form captured. They work anywhere else you already have a pass id and a recipient in the run's data, not just after Create pass. Adding one of these steps right after Create pass automatically fills in the pass id field and a starter message for you.

All three channels - email, SMS, and WhatsApp - are free to send while this is still new. We're not charging pass credits for message delivery yet; we'd rather see how teams actually use it first.

WhatsApp additionally requires a Meta-approved message template for any message you send first (outside a customer's own 24-hour reply window) - create and get it approved in the Twilio Console's Content Editor, then paste its Content Template SID into the action and fill in its {{1}}, {{2}}... variables, same convention as every other field: a literal value, or a dot-path like createdPass.passUrl to include the pass link.

Turning it on

An automation only runs while it's set to Active - toggle this from the canvas header once your flow is built. Every run appears on the Runs tab with a step-by-step log, and the Metrics tab tracks completed, failed, and quota-exceeded counts over time.

Was this article helpful?

Still need help?

Our team is here to answer your questions.

Contact us