AFI AFI

Webhook (Pro)

Estimated reading: 2 minutes Updated August 1, 2026

The Pro Webhook receiver extends the free Webhook integration with custom headers, multiple authentication schemes, payload transforms, and retry-on-failure handling. Use it when you need to integrate with an API that has stricter requirements than basic POST.

What you’ll need

  • A target endpoint URL that accepts JSON or form-encoded POST/PUT/PATCH requests.
  • The Advanced Form Integration plugin installed and activated.

Create the integration

  1. Go to AFI → Add New.
  2. Configure the trigger.
  3. In Action → Platform, select Webhook (Pro).
  4. In Task, choose Send Data.
  5. Configure:
  • URL: the destination endpoint.
  • Method: POST, PUT, PATCH, DELETE, or GET (GET sends data as query parameters).
  • Body Format: JSON, Form-encoded, or XML.
  • Custom Headers: add any number of Header-Name: value pairs (e.g., X-API-Key: ..., Content-Type: ...).
  • Authentication: pick None, Basic, Bearer Token, or OAuth 2.0 Client Credentials.
  • Retry on failure: number of retry attempts (1-5) with exponential backoff.
  1. Map the form fields to body keys (or use a free-form template for full control over the payload structure).
  2. Optional: configure Conditional Logic.
  3. Click Save Integration.

Screenshot: AFI field-mapping screen with Webhook Pro options visible, headers, auth, retry

Tasks supported

Send Data

Sends the form payload to the configured URL with all the configured headers, auth, and body format. The response code and body are saved in AFI → Log for debugging.

Pro features

  • Custom HTTP method (PUT, PATCH, DELETE, GET).
  • Custom headers with merge-tag support.
  • Multiple auth modes (Basic, Bearer, OAuth 2.0).
  • Body formats beyond JSON (form-encoded, XML).
  • Retry on failure with exponential backoff.
  • Free-form payload template for non-flat JSON structures.

Conditional logic example

Send to your /api/high-priority endpoint only when the form’s priority field is “urgent”. Standard submissions go to /api/standard via a second Webhook Pro integration with a different conditional logic gate.

Troubleshooting

Endpoint returns 401

Check the auth mode and credentials. For Bearer tokens, confirm the token isn’t expired (some providers issue short-lived tokens). For OAuth Client Credentials, verify the token endpoint URL and client secret.

Endpoint returns 415 (Unsupported Media Type)

Some APIs require a specific Content-Type header. Set it explicitly under Custom Headers: application/json, application/x-www-form-urlencoded, or whatever the API expects.

Retries firing the same submission multiple times

If your endpoint isn’t idempotent (returns errors but actually processes the request), retries can create duplicates. Either fix the endpoint to be idempotent, or set retries to 0 for that integration.

Related docs