Connect Klaviyo to Syncaut to automate customer profile management, list subscriptions, and event tracking — all from within your workflows. Keep your Klaviyo contacts in sync with orders and customer activity from your e-commerce stores.
Before adding a Klaviyo node to your workflow, you need one thing:
A Klaviyo Private API Key
This is different from the Public API Key. Make sure you are using the Private key — the Public key is only for browser-side tracking and will not work here.
Log in to your Klaviyo account
Go to Settings → API Keys
Click Create Private API Key
Give it a name (e.g. "Syncaut")
Under API Scopes, select Full Access or at minimum enable:
Profiles — Read and Write
Lists — Read and Write
Events — Write
Subscriptions — Write
Click Create and copy the key immediately
⚠️ Important: The Private API Key is shown once when created. Copy it immediately and store it safely. If you lose it you will need to create a new one — existing keys cannot be retrieved after leaving the page.
Klaviyo credentials are stored as a single Private API Key string.
In Syncaut, go to your Workspace → Credentials
Click Add Credential
Select Klaviyo as the type
Paste your Private API Key as the credential value
Give it a recognisable name (e.g. "Client Store — Klaviyo")
Save
⚠️ Make sure you are pasting the Private API Key, not the Public API Key. The Private key starts with
pk_. If you paste the wrong key, all API calls will return a 401 Unauthorized error.
Your key is encrypted at rest and never exposed after saving.
When adding a Klaviyo node to your workflow, you go through three steps:
Step name — a variable name used to reference this node's output in later steps (e.g. syncProfile). Must start with a letter or underscore, no spaces.
Credential — select the Klaviyo credential you added above
Choose what you want this node to do:
Create profile — Add a new contact to Klaviyo
Update profile — Update an existing contact's properties
Get profile — Fetch a contact by email address
Subscribe to list — Subscribe a contact to a specific Klaviyo list
Track event — Log a custom event against a profile
Each action comes with a pre-loaded JSON template. Replace the {{placeholders}} with actual values or reference outputs from previous workflow steps using {{stepName.data}}.
Creates a new contact profile in Klaviyo. If a profile with the same email already exists, Klaviyo will merge the data.
Key payload fields:
email — required. The contact's email address.
phone_number — optional. Must be in E.164 format (e.g. +14155552671)
first_name, last_name — optional
properties — optional object for any custom attributes you want to store (e.g. total_orders, total_spent)
Updates an existing profile's custom properties. Uses the email address to find the profile.
Key payload fields:
email — required. Used to identify which profile to update.
properties — object of custom attributes to update (e.g. last_order_date, order_count)
Fetches a profile by email address. Useful for checking whether a contact exists before creating or subscribing them.
Key payload fields:
email — required. The email address to search for.
The profile data is available in the output as {{stepName.data}}.
Subscribes a contact to a Klaviyo list and sets their email marketing consent status.
Key payload fields:
email — required. The contact's email address.
list_id — required. The ID of the Klaviyo list to subscribe them to. Find this in Klaviyo under Lists & Segments → your list → Settings.
consented_to_receive_email — set to true to mark them as subscribed, false to unsubscribe.
⚠️ You must have explicit consent from the contact before subscribing them to a marketing list. Subscribing contacts without consent may violate email marketing regulations such as CAN-SPAM and GDPR.
Logs a custom event against a profile. Use this to send behavioural data into Klaviyo such as order placements, product views, or refund requests. Events can trigger Klaviyo flows and segments.
Key payload fields:
email — required. The profile the event belongs to.
event_name — required. The name of the event (e.g. Placed Order, Requested Refund). This is what will appear in Klaviyo's event list.
properties — optional object of event metadata (e.g. order_id, total, items)
To pass a complex object like an array of order items, use the {{json variable}} helper:
"items": "{{json orderItems}}"
This action is not supported via the API. Klaviyo does not allow triggering campaign sends programmatically. Use Klaviyo's own UI to create and send campaigns, or use Track Event to trigger a Klaviyo Flow instead.
Reference outputs from previous workflow steps inside the payload using Handlebars syntax:
{{stepName.data}}
For example, if a previous step named getOrder fetched an order, reference the customer email as:
{{getOrder.data.billing_address.email}}
To pass a full object or array as a JSON string, use the {{json variable}} helper:
"items": "{{json getOrder.data.line_items}}"
Use the variable picker (+ variable) above the payload editor to insert common variables without typing them manually.
Every Klaviyo node stores its result under the step name you provide. The output structure is:
{
"data": {},
"action": "create_profile"
}
Reference it in later steps as {{stepName.data}}. For example, if your step is named syncProfile:
{{syncProfile.data}}
401 Unauthorized Your Private API Key is incorrect or has been deleted. Go to Klaviyo → Settings → API Keys, create a new key, and update the credential in Syncaut. Make sure you are not using the Public API Key by mistake.
403 Forbidden Your Private API Key does not have the required scope for the action. Edit the key in Klaviyo and enable the missing scope (Profiles, Lists, Events, or Subscriptions).
Credential not found The credential attached to the node was deleted from your workspace. Re-add it under Workspace → Credentials and update the node.
Invalid JSON payload The payload contains a syntax error or an unresolved variable returned an unexpected value. Check the payload in the node editor and make sure all {{placeholders}} are correctly resolved before running.
Profile not found on Get Profile No profile with that email address exists in Klaviyo. Consider using Create Profile first or checking the email value being passed in.
list_id is missing or invalid The list ID in your Subscribe to List payload is empty or incorrect. Find the correct list ID in Klaviyo under Lists & Segments → your list → Settings.
Navigate