Reference

Zapier

Trigger Zaps on verification outcomes, AML hits, review cases, or any platform event — and create sessions, tags, and AML checks from other apps.

The Zapier app connects the platform to 7,000+ apps with no code: post to Slack when a verification needs review, add approved users to your CRM, open a ticket on an AML hit, or kick off a verification session when a row lands in a spreadsheet.

The app lives in the repo at sdks/zapier/ (Zapier Platform CLI). Until it's published to the public Zapier directory, push it to your Zapier workspace as a private app:

cd sdks/zapier
npm install
npx zapier login
npx zapier register "ThirdFactor Obsidian"   # once
npx zapier push

Connecting your account

The connection asks for two fields:

FieldValue
Base URLYour deployment's API origin, e.g. https://acme.thirdfactor.ai
API keyA tenant API key (sk_…) from Console → Settings → API keys

Zapier validates the pair against GET /v3/automation/me/ and labels the connection with your tenant name.

Note

If the connection test fails with a permissions error, the Connect feature isn't enabled for your account — it's switched on per account by the platform administrator. Nothing will trigger until it's enabled.

Triggers

All triggers are instant (REST hooks): turning a Zap on creates a Connect subscription with source: "zapier" (visible and debuggable on the console Connect page); turning it off deletes the subscription.

Ready-made triggers for the highest-value events:

TriggerFires on
Verification Completedsession.completed — any final outcome; branch on data.session.status in later steps
Verification Approvedsession.approved
Verification Declinedsession.declined
Verification Needs Reviewsession.in_review
Review Case Openedcase.created
AML Watchlist Hitaml.hit
Module Completedmodule.completed — with an optional module dropdown (ID check, liveness, AML, …)

Plus a generic Platform Event trigger with a dynamic dropdown of the full event catalog — anything in the catalog (session.started, case.overdue, credits.low, …) can drive a Zap.

Most triggers accept an optional Workflow filter (a dynamic dropdown of your workflows), so a Zap can react only to, say, your "High-value onboarding" workflow. Sample data in the Zap editor comes from GET /v3/automation/samples/<event>/ — your most recent real payloads when any exist, a realistic static sample otherwise.

Actions

ActionDoes
Create Verification SessionPOST /v3/session/ — pick a workflow from a dropdown, pass your user reference (vendor_data), contacts, expiry; returns the hosted verification url to send to the applicant
Add Tag to SessionPOST /v3/session/<id>/tags/
Run AML CheckPOST /v3/tools/aml-check/ — standalone sanctions/PEP screen by name, DOB, country

Find Session — by session ID, or by your vendor_data reference (the vendor-data variant scans the newest 200 sessions, which is fine for automation-scale lookups; use the API directly for bulk reconciliation).

Example Zaps

  • Verification ApprovedSalesforce: update the lead to "KYC passed", attach the risk score.
  • Verification Needs ReviewSlack: post to #compliance with the hosted console link.
  • AML Watchlist HitJira: open a ticket carrying data.aml.matched_entities.
  • Google Sheets new row → Create Verification SessionGmail: email the applicant their verification link.
  • Module Completed (ID_VERIFICATION)Airtable: log the OCR'd document fields the moment the document step finishes, before the session even completes.

Note

Zapier receives whatever the subscription allows — the payload is already sanitized (no evidence images or secrets), and you can additionally scope the subscription by workflow and module. Treat data in Zapier per your data-privacy obligations; PII such as OCR'd document fields does flow through module.completed events.