Webhooks & APIIntegrations

Zapier

Fire Wexio flows from any Zap

Zapier's Webhooks by Zapier action can POST to a Wexio inbound URL at the end of any Zap — turning ~6000 Zapier-supported apps into triggers for Wexio flows.

Zapier action step pointing at Wexio

Provider docs: Setting up webhooks in Zapier

Setup

1. Create an inbound Wexio connection

Settings → Webhooks & API → New connection → Inbound. Keep Auth mode: Shared Secret. Copy the endpoint URL and the signing secret.

2. Add a Webhooks by Zapier step

In your Zap, add Webhooks by Zapier → POST.

Webhooks by Zapier configuration
FieldValue
URLThe Wexio endpoint URL
Payload typeJson
DataYour JSON fields — Zapier's field picker auto-suggests from the trigger step
Headersx-webhook-secret = the Wexio signing secret

Use Zapier's Custom Request action (POST) if you need to pass the body as a raw JSON string instead of Zapier's auto-built key/value pairs. Custom Request lets you include Content-Type: application/json explicitly, which some payload shapes (nested objects) need.

3. Contact resolution, schema, flow

Same as any inbound setup:

  1. Configure Identifier type + JSON path on the Wexio connection (e.g. Email + $.customer.email).
  2. Tap Capture schema, run the Zap once, let Wexio learn the fields.
  3. Add a Webhook Received trigger on a flow and pick this connection.

Example — New Google Form Response → WhatsApp Template

  • Zap trigger: Google Forms → New response
  • Zap action: Webhooks by Zapier → POST to Wexio
  • Payload: { "customer": { "phone": "{{response_phone}}", "name": "{{response_name}}" }, "survey": "nps" }
  • Wexio connection: identifier Phone number, path $.customer.phone
  • Wexio flow: Webhook Received → WA Template "thank_you_survey" with {{webhook.customer.name}}

Troubleshooting

SymptomCauseFix
Zap test returns 401Missing or mis-cased x-webhook-secret headerCopy the secret fresh, ensure header name matches exactly
Zap test returns 400 INVALID_JSONPayload type was set to FormSwitch to Json
Zap runs but no flow firesIDENTIFIER_NOT_FOUND in historyThe contact doesn't exist in Wexio yet, or the JSON path is wrong
Duplicate flow runsZapier retry on slow responseInclude X-Idempotency-Key: {{bundle_id}} header — Wexio dedupes replays

On this page