Skip to main content
Klaviyo Flows can call into Omneo using Klaviyo’s webhook action. This lets you fire Omneo-side logic (issuing a reward, recording an interaction, granting a benefit) at exactly the right point in a customer journey. This page covers how to add and configure a webhook action against Omneo. For event-by-event behaviour of Klaviyo’s built-in system webhooks (bounces, subscribes, unsubscribes), see System webhooks.

Add a webhook action to your Flow

1

Open or create a Flow

In Klaviyo, navigate to Flows, then open the Flow you want to extend or create a new one.
2

Drag in a Webhook action

From the action sidebar, drag a Webhook action onto the canvas after your trigger or filter steps.
3

Configure the destination URL

Set the Destination URL to the relevant Omneo extension endpoint (see Available endpoints below).
4

Add headers and body

Add the headers and JSON body shown below for the action you want Omneo to perform.
5

Preview, save, and activate

Use Klaviyo’s Preview feature to render the JSON for a real profile and confirm the values look right, then save the Flow and switch it live.

Required headers

Every webhook call into Omneo must include the shared secret configured against the extension. This is the same secret used by Klaviyo system webhooks.
Requests without a matching x-omneo-secret are rejected. Treat this secret like an API key: store it only in Klaviyo’s secured webhook configuration.

Available endpoints

The extension exposes a small set of Flow webhook endpoints. Each is mounted under your tenant on the extension URL provided by Omneo:

Rewards

POST /{tenant}/api/v1/webhooks/klaviyo/rewards Issues a reward against the Omneo profile that triggered the Flow. Required fields Optional fields Example body
Response codes

Templating tips

Klaviyo exposes a limited set of variables inside Flow webhook bodies:
  • {{ person.id }}, {{ person.email }}, {{ person.first_name }}, {{ person.last_name }}: profile fields
  • {{ event.* }}: only the custom event properties you have defined in your Flow. Internal Klaviyo metadata like unique_id and timestamp is not available here.
If you need a deduplication key but do not have a natural one, define a custom event property on your Flow (for example event.reward_id) and reference it as id in the JSON body.