Skip to main content
Webhooks let your server receive real-time notifications when events occur inside Fliqr AI. Instead of polling the API, you register an HTTPS endpoint and Fliqr AI delivers an HTTP POST to that URL within seconds of each subscribed event. This is the recommended way to react to inbound messages, new contacts, flow completions, and order activity without introducing polling latency.

Available Events

Register a Webhook

Create a webhook endpoint by sending a POST to /webhooks with your URL, the events you want to receive, and a secret for signature verification:
Response — HTTP 201 Created

Registration Parameters

string
required
The HTTPS URL Fliqr AI will POST events to. Must be publicly reachable. HTTP (non-TLS) endpoints are not accepted.
array
required
An array of event names to subscribe to. At least one event is required. Use ["*"] to subscribe to all events.
string
required
A secret string you choose. Fliqr AI uses this to compute an HMAC-SHA256 signature for every delivery, which your server uses to verify authenticity. Store this as an environment variable.

Webhook Object Fields

string
Unique identifier for the webhook registration. Use this ID to update or delete the webhook.
string
The delivery URL.
array
The list of subscribed event names.
string
active or disabled. Webhooks are automatically disabled after repeated delivery failures.
string
ISO 8601 timestamp when the webhook was registered.

Event Payload Structure

Every event delivery is an HTTP POST with a JSON body following this structure:
string
A unique identifier for this specific event delivery. Use this for idempotency — if you receive the same id twice, discard the duplicate.
string
The event name, matching one of the subscribed event types.
string
ISO 8601 timestamp when the event occurred on the Fliqr AI platform.
object
The event payload. Schema varies by event type. Always contains contact_id and channel at minimum.

Verify Webhook Signatures

Fliqr AI signs every delivery with an HMAC-SHA256 digest of the raw request body, using your webhook secret. The signature is sent in the X-Fliqr-Signature header. Always verify this before processing:
webhook-server.js
Always verify the X-Fliqr-Signature header before processing any webhook payload. Never trust the payload contents without first confirming the signature matches — an unverified endpoint can be exploited to inject arbitrary events.
Use crypto.timingSafeEqual (or your language’s equivalent constant-time comparison) rather than a simple string equality check. Standard string comparison is vulnerable to timing attacks.

Retry Policy

If your endpoint returns anything other than HTTP 200, or does not respond within 10 seconds, Fliqr AI marks the delivery as failed and retries automatically: After 5 consecutive failures, the webhook is automatically disabled and you receive a notification email. Re-enable it from Settings → Webhooks once your endpoint is healthy.

Respond Quickly, Process Asynchronously

Your endpoint must return 200 within 10 seconds. For any processing that takes longer — database writes, downstream API calls, or sending follow-up messages — push the event body onto an internal queue and return 200 immediately:

What’s Next

Contacts

Use the Contacts API to look up and update contact records when you receive a webhook event.

Webhook Integrations Guide

Step-by-step guide for connecting Fliqr AI webhooks to popular platforms and serverless functions.