Camper BMS
Login

Klaviyo Integration

Connect your own Klaviyo account to Camper BMS to turn your booking data into a consent-based email audience that stays up to date automatically - guest profiles and live booking events flow straight into Klaviyo under your own brand and sender details.

What It Does

The integration links your Klaviyo account to Camper BMS over a secure connection (OAuth - no API keys to copy and paste) and keeps two things in sync: who your consented guests are, and what those guests are doing. Only guests who have opted in to marketing are ever synced.

Where to Find It

Navigate to Marketing > Klaviyo from the main navigation. If you don't see Marketing in the sidebar, it may be hidden under Settings > Navigation, or your role may not include integration permissions.

Setting It Up

  1. Connect - on the Klaviyo page, click Connect Klaviyo. You are sent to Klaviyo to authorise the connection, then returned to Camper BMS. (While the app is completing Klaviyo's partner review, Klaviyo may show a "not yet reviewed" notice on the consent screen - the page pre-warns you it is safe to continue.)

  2. Choose a list - pick which Klaviyo list your guests should sync into and save. We recommend setting that list to single opt-in, since guests already give explicit marketing consent at checkout. As soon as you save the list, Camper BMS sends an example profile carrying every property and metric, so your segment and flow builders are populated straight away.

  3. Sync existing guests - click the sync button to backfill your existing consented guests into the list. You'll see live progress and a completion state. Nothing is sent in bulk until you press this.

  4. Done - from then on everything is automatic. New consents, profile updates and booking events flow in real time with no further action needed.

Guest Profiles

Every guest who has opted in to marketing syncs into your chosen Klaviyo list as a subscribed profile, carrying Camper BMS-branded properties for personalisation and segmentation:

  • The park they stayed at

  • Total completed stays, and their last and next stay dates

  • Their most relevant site type

  • Lifetime spend across all their paid invoices

  • Behavioural tags - such as booking guest, repeat guest, checked in, and the site types they prefer

These properties refresh automatically whenever the guest's data changes, so your segments stay accurate on their own.

Booking Events

As a booking moves through its lifecycle, the guest's Klaviyo profile receives branded metrics in real time, ready to trigger flows:

  • Booking Reserved, Booking Pending, Booking Confirmed, Booking Cancelled

  • Checked In and Checked Out

  • The e-commerce trio - Started Checkout (with a resume-checkout link), Placed Order (with its dollar value), and Cancelled / Refunded Order

Orders sync forward only, from the day you connect - there's no historical order backfill, as lifetime value is already represented on the profile through the lifetime spend property.

Consent Works Both Ways

Only guests who opted in to marketing are ever synced, and consent stays honest in both directions:

  • If a guest withdraws consent in Camper BMS, they are unsubscribed in Klaviyo.

  • If a guest unsubscribes from a Klaviyo email, their consent is revoked back in Camper BMS by a nightly reconciliation that reads their Klaviyo subscription status.

Routine syncs never re-assert consent, so a Klaviyo-side unsubscribe always sticks.

What You Can Build

  • Abandoned-checkout recovery - a flow triggered on Started Checkout emails the guest their resume link with their dates and site type.

  • Pre-arrival and post-stay flows - confirmation and "before you arrive" sequences, and Checked Out to trigger review requests or come-back offers.

  • Segmentation from day one - build audiences like "stayed before", "spent over $1,000", "glamping guests" or "no stay in 12 months" straight from the synced properties, with no order history needed.

  • Win-back and loyalty campaigns keyed on each guest's last-stay date.

  • Revenue attribution - campaign links carry a click through to the booking, and Placed Order values let Klaviyo report the revenue each campaign produced.

Permissions We Request

Camper BMS requests only the minimum Klaviyo scopes its guest-sync integration needs. Every scope maps to specific endpoints the app calls, and none is requested speculatively - so when you connect you can see exactly what access you are granting and why.

Scope

Why we need it

Endpoints called

accounts:read

After the OAuth callback we fetch the account's organisation name once, so you can see which Klaviyo account is connected (for example "Connected - Acme Holiday Park") and catch a wrong-account connection.

GET /api/accounts

lists:read

Populates the list picker you use to choose which list guests sync into, and reads that list's members for the nightly consent reconciliation and for membership checks before an unsubscribe.

GET /api/lists (paginated), GET /api/lists/{id}/profiles

lists:write

Subscribes guests into - and unsubscribes them from - your chosen list. The subscribe and unsubscribe job endpoints require this scope whenever a list relationship is included.

POST /api/profile-subscription-bulk-create-jobs, POST /api/profile-subscription-bulk-delete-jobs (with list relationship)

profiles:read

Reads list membership and subscription status during the nightly consent reconciliation, which flows back into Camper BMS so a guest who opts out is never contacted again.

GET /api/lists/{id}/profiles with additional-fields[profile]=subscriptions

profiles:write

Creates and updates guest profiles with their contact details and Camper BMS-branded properties (prefixed camper_bms_ - park, total stays, next stay, site type and tags). Used for real-time single-guest syncs, the operator-triggered bulk backfill, the nightly refresh, and seeding one example profile at setup.

POST /api/profile-import (single), POST /api/profile-bulk-import-jobs (bulk)

subscriptions:write

Records consent: guests who consent at checkout are subscribed (live consent), previously consented guests are imported with their original consent timestamp (historical_import), and guests who withdraw consent in Camper BMS are unsubscribed. Only guests with explicit marketing consent are ever subscribed - assumed consent is never written.

POST /api/profile-subscription-bulk-create-jobs, POST /api/profile-subscription-bulk-delete-jobs

events:write

Streams booking activity into your flows and segmentation - Booking Reserved / Pending / Confirmed / Cancelled, Checked In, Checked Out, Started Checkout (abandoned-cart recovery), and Placed / Cancelled / Refunded Order with order values for revenue attribution. Also seeds one example event per metric at setup.

POST /api/events

Disconnecting

Click Disconnect on the Klaviyo page. Camper BMS stops all syncing and revokes the connection immediately.

Related articles

Still need a hand?

Our support team is happy to help.

Contact support