Skip to main content
The Omneo Klaviyo extension is a two-way integration that keeps customer profiles, communication preferences, and behavioural data in sync between Omneo and Klaviyo. It powers personalised marketing campaigns triggered by real customer activity: loyalty events, profile changes, list memberships, and more.

What the extension does

Because the extension syncs the Omneo profile ID onto every Klaviyo profile it touches, your Klaviyo templates can link customers straight into their own Profile Portal. Customers can manage their preferences, mute one topic, unsubscribe, complete their profile, or show their loyalty card without logging in. This section covers the Klaviyo side. For the full URL contract, the security trade-offs and the rules for when a link changes a preference, see Comms preference deep links.

Before you start

  • Your portal domain, for example my.[brand].com. The examples below use [portal].
  • The Omneo profile ID property name as it is synced to Klaviyo for your tenant. The examples use person.omneo_id. If your property name contains spaces, use person|lookup:'Omneo ID':'' in both the condition and the output.
  • The handles of any custom comms attributes you want topic links for, and whether each is configured as an inclusion or an exclusion attribute. Your Omneo account manager can confirm both.
Keep Klaviyo’s native unsubscribe as your unsubscribe mechanism unless your implementation team advises otherwise. It is the one that reliably stops the next send and the one compliance rests on. The Omneo preference links sit alongside it and give customers a gentler option than leaving altogether.
Every snippet goes in an HTML block. The {% if %} conditional only works in HTML, and the drag-and-drop button cannot be wrapped in one. Each link wraps in a condition because contacts Omneo has not synced yet (platform-side sign-up forms, imports) have no Omneo profile ID, and a link with an empty profile ID shows the portal’s error state.

Manage preferences

The safe default for the footer. p on its own opens the preference centre and changes nothing. Contacts without an Omneo ID fall back to Klaviyo’s own preference page, so the footer always works.

Stop receiving one topic

A topic link changes one custom comms attribute option on load. Where the topic sits in an exclusion attribute, commsValue=1 adds the option to the list of things the customer does not want, which mutes it. Replace sale_promotions with the option value and interest_exclusions with your attribute’s handle.
  • There is no {% else %} here. Contacts without an Omneo ID simply do not see the link.
  • Use topic links only in campaigns that are clearly about one topic. For mixed campaigns, transactional email, and order or booking confirmations, use the manage preferences link instead.
  • Put them in the individual campaign, not the shared footer.
  • On an inclusion attribute the meaning flips: commsValue=0 removes the option and mutes the topic. Check which kind you have before building a link. See Standard and custom attributes.
  • Topic muting only affects sends that respect it. Build your Klaviyo segments or flow filters on the synced attribute so a muted topic is actually excluded.

Unsubscribe

Keep the native link in every campaign and flow footer exactly as it is. When a customer unsubscribes here, Klaviyo stops sending and the system webhooks pass it back to Omneo, so their preference page stays accurate.
{% unsubscribe_link %} outputs the bare URL and belongs in an href. {% unsubscribe %} renders a complete anchor.

Omneo one-click unsubscribe

Omneo also provides a dedicated one-click unsubscribe at the portal’s /unsubscribe route. It is an alternative to the native link for specific setups, and should only be used where your Omneo implementation team has advised it. On load it applies the unsubscribe fields configured for your portal (email_optout: true unless configured otherwise) and shows a confirmation with a link to manage notifications. Fall back to the native link for contacts without an Omneo ID:
The Omneo unsubscribe changes preferences in Omneo. Whether that stops the next Klaviyo send depends on how your tenant is connected, including the Use Email Promo for Subscriptions setting, which is disabled by default. It also fires on load, so link-scanning tools can trigger it. Confirm the setup with your implementation team and read Before you send before using it.

Complete your profile

Opens Profile Portal in “complete your profile” mode. The customer sees the same prompt cards as the logged-in portal, one for each important field missing from their profile, and each card disappears once the field is filled in. Depending on your portal’s configuration, the fields are shown as one form saved all at once, or as a sequence of cards saved one at a time. No login is needed and no customer data is shown back, because the link carries only the profile ID. The page shows your custom message and imagery, plus a permanent call to action that sends the login email if the customer wants to see their full profile.
  • The parameter is id, not p as used on the preference links.
  • Because the link is evergreen, it works in campaigns and delayed flow steps as well as immediate sends.
  • Pair it with an incentive where you have one, for example a benefit that unlocks once key fields are filled. See Progressive profiling.
  • Your implementation team configures the message, the imagery, and which fields count as important.

Show my card

Displays the customer’s loyalty card with buttons to add it to Apple Wallet or Google Wallet. No login is needed and no personal information is shown.
Use it where the customer is about to need their card: welcome and tier-change emails, event invitations, and pre-visit or in-store campaigns.

Practical notes

  • Add the manage preferences and unsubscribe links to your saved footer so every campaign and flow picks them up. Topic links belong in individual campaigns.
  • Style the links like your existing footer links by adding your own style="..." to the anchor tag.
  • & is correct inside an HTML block. Use a plain & if you paste a URL into a button’s link field.
  • The no-code alternative to the conditional is two blocks with display conditions on the Omneo ID property.
  • Before a campaign goes out, send yourself a preview and click every link. Use a test profile for topic and unsubscribe links, since they change preferences on click.
  • Check what share of your list carries an Omneo profile ID before relying on the Omneo branch of each link.
  • New topics can be added to the preference centre at any time. Each new option gets its own topic link.

In this section

Installation

Install the extension from the Klaviyo marketplace and what gets created on first install.

Profile sync

How profiles are matched, created, and updated between Omneo and Klaviyo.

System webhooks

How Klaviyo’s system webhooks (bounces, subscribes, etc.) update Omneo comms preferences.

Flow webhooks

Trigger Omneo actions from a Klaviyo Flow, including the headers and body Omneo expects.

Metrics & targets

Send Omneo reactions to Klaviyo as custom events, with optional identity tokens.

Inbound queues

How inbound and outbound work is queued and processed in the background.

Master list

Keep every email-subscribed profile in a single Klaviyo list.