Webhooks and 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. That turns any app Zapier supports into a trigger for Wexio flows.

Zap editor with an API by Zapier trigger step and a Webhooks by Zapier action step

Provider docs: Setting up webhooks in Zapier

Setup

1. Connect It in Wexio

Go to Settings → Webhooks and API → Webhooks → New connection → Inbound and keep Authentication mode on Shared secret (default). Copy the endpoint URL and the webhook 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 suggests them from the trigger step
Headersx-webhook-secret = the Wexio webhook secret

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

3. Resolve Contacts, Capture the Schema and Bind a Flow

This is the same as for any inbound setup.

  1. Set Identifier type and JSON path on the Wexio connection, for example Email with $.customer.email.
  2. Tap Capture schema, run the Zap once and let Wexio learn the fields.
  3. Add a Webhook Received trigger on a flow and pick this connection.

Example - New Google Form Response to 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, then WA Template "thank_you_survey" with {{webhook.customer.name}}

Troubleshooting

SymptomCauseFix
Zap test returns 401The x-webhook-secret header is missing or mis-casedCopy the secret fresh and make sure the 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 does not exist in Wexio yet, or the JSON path is wrong
Duplicate flow runsZapier retried on a slow responseAdd the header X-Idempotency-Key: {{bundle_id}}. Wexio dedupes replays

Was this page helpful?

On this page