Klaviyo Integration

Responsly connects to Klaviyo so you can turn survey responses into profile data, custom events, and list growth — directly inside your email marketing stack. With this integration, you can:

  • Map survey answers to Klaviyo profile properties (standard fields and custom properties)
  • Add mapped answers to the response event as extra properties on the branded metric Responsly Survey Response
  • Fire that response event on every identified submission (always includes form_id, response_id, and submitted_at)
  • Create or update profiles and optionally add them to a Klaviyo list
  • Request email marketing consent when respondents answer yes on a mapped Yes/No or Legal (checkbox) question
  • Personalize survey links in Klaviyo emails using hidden variables and URL parameters

This guide walks through a Post-Purchase Feedback survey: collect NPS after an order, confirm the shopper’s email, and capture marketing consent — then sync everything to Klaviyo for segmentation and flows.

Prerequisites

Before setting up the integration, ensure you have:

  • A Responsly account with the Klaviyo integration available on your plan
  • A Klaviyo account and permission to authorize the Responsly OAuth application
  • Pop-ups enabled in your browser for app.responsly.com (required for OAuth)
  • For list membership and consent: familiarity with your Klaviyo list opt-in settings (including double opt-in, if enabled)

How sync works

When a respondent submits a survey and the Klaviyo integration is Active for that form, Responsly queues a background job that:

  1. Checks that the respondent is identified — Klaviyo profile ID in a hidden variable whose name contains klaviyo_profile_id, and/or a valid email (from URL parameters ending in _email, mapped profile email, or the email question used for list enrollment)
  2. Creates or updates the Klaviyo profile when there are mapped profile properties (or when a profile ID or email is needed for downstream steps)
  3. Requires a Klaviyo profile ID after upsert before list membership, marketing consent, or events can run — if Klaviyo does not return a profile ID, those steps are skipped
  4. Optionally adds the profile to a list (when Add contacts to Klaviyo list is on and marketing consent is not handling subscription for that list)
  5. Optionally subscribes the profile to email marketing when the mapped consent question is yes or checked
  6. Sends one branded metric event per response — Responsly Survey Response — with form_id, response_id, and submitted_at, plus any fields from mappings with target Event property (question mappings and static values on the same event)

If the respondent cannot be identified, the sync is skipped and no data is sent to Klaviyo.

Note: Responsly does not send a separate metric per mapping row. All Event property rows add fields to the single Responsly Survey Response event.

Step 1: Create Your Post-Purchase Feedback Survey

Build a short survey you send from a Klaviyo post-purchase flow or order confirmation email. For this use case, three questions are enough:

  1. NPSHow likely are you to recommend [product] to a friend or colleague?
    • Add an NPS question (0–10 scale). Replace [product] with your product name or use a hidden variable if the product varies per order.
  2. EmailWhat’s the email address you used for this order?
    • Add an Email question. Shoppers confirm the address tied to the order so Responsly can create or match the Klaviyo profile — especially when you do not pass klaviyo_profile_email in the survey link.
  3. Legal (consent) — I agree to receive marketing emails from [company] (product updates, offers, and news).
    • Add a Legal (checkbox) question. Map it under Marketing consent (optional) in Step 3 so Responsly requests email marketing subscription in Klaviyo when the box is checked.

Create a new survey

Steps in Responsly:

  1. Log in to your Responsly dashboard.
  2. Click Create new survey and choose a template, the AI survey generator, or build from scratch.
  3. Add the three questions above in that order (NPS → Email → Legal).
  4. Optionally remove or shorten the Welcome page so the NPS question is the first screen — better for email links.

Step 2: Connect Responsly to Klaviyo

Choose Klaviyo from the Integrations list

Responsly uses OAuth (PKCE) to connect securely to your Klaviyo account. You can authorize from the survey builder or from the Klaviyo marketplace install page.

From a survey (typical):

  1. Open your survey in Responsly.
  2. In the top navigation, go to IntegrateIntegrations.
  3. Select Klaviyo and click Connect Klaviyo.
  4. A pop-up opens — log in to Klaviyo and authorize Responsly.

    If the pop-up does not appear, allow pop-ups for app.responsly.com in your browser.

From Klaviyo marketplace (optional):

  1. Open the Responsly install URL: https://app.responsly.com/integrations/install/klaviyo.
  2. Sign in to Responsly if prompted, then complete Klaviyo OAuth in the pop-up.
  3. On the install page, choose which survey should use Klaviyo and click Connect — you land in that survey’s Klaviyo settings.

Step 3: Configuration (Settings tab)

Open the Klaviyo integration and stay on the Settings tab. Sections appear in this order (top to bottom):

  1. Identification notice
  2. Klaviyo list
  3. Response event in Klaviyo
  4. Marketing consent (optional)
  5. Test integration
  6. Map questions to Klaviyo
  7. Set static values

Identification notice

At the top of the Settings tab, Responsly reminds you that respondents must be identifiable in Klaviyo: pass profile ID or email via Survey link parameters, map an answer to the profile email field, or choose an Email question when Add contacts to Klaviyo list is enabled.

Klaviyo list

Optionally sync post-purchase respondents to a Klaviyo list (for example, Post-Purchase Feedback or Newsletter):

  1. Select a Klaviyo list from the dropdown (lists are loaded from your connected account).
  2. Enable Add contacts to Klaviyo list if you want each identified respondent added to that list after their profile is created or updated.
  3. When Add contacts to Klaviyo list is on, select the Email question (identify new contacts) — choose What’s the email address you used for this order? (required on save; must be an Email-type question).

Profiles are added to the list after a successful profile upsert and when a Klaviyo profile ID or email is available. If you also use Marketing consent (optional) with the same list and the respondent consents, Responsly uses Klaviyo’s subscription API for that list instead of a separate list-add step — see Marketing consent.

Response event in Klaviyo

On every identified response, Responsly sends one branded metric event to Klaviyo — useful for Flows and the profile timeline. This is the only metric Responsly uses for event-property mappings.

  • Metric name (fixed): Responsly Survey Response
  • Always included: form_id, response_id, submitted_at
  • Plus: any fields from Event property mappings (questions or static values)

What goes into the event:

SourceProperties on the event
Branded response event (always)form_id, response_id, submitted_at
Event property mappings (questions or static values)Your custom keys (e.g. score, source)

Example timeline payload when NPS is mapped as event property score:

Metric: Responsly Survey Response
Properties: form_id, response_id, submitted_at, score

To request email marketing subscription in Klaviyo when a respondent opts in:

  1. Use a Legal (checkbox) or Yes/No consent question (for example I agree to receive marketing emails from [company]…).
  2. In Marketing consent (optional), select that question under Consent question.
  3. When the answer is yes or the Legal box is checked, Responsly calls Klaviyo’s subscription API after the profile is synced.

If Add contacts to Klaviyo list is enabled and the respondent consents, Responsly subscribes via the selected list and that list’s opt-in rules apply (including double opt-in when configured on that list in Klaviyo). A separate list-add call is not used in that case.

If the consent question is empty or the answer is no, profile and property sync can still run, but explicit marketing consent is not set through this step.

Klaviyo Integration Settings tab 1

Test integration

Test integration is available when configuring Klaviyo for a specific survey. Click it to send a test profile and event to Klaviyo without submitting a real survey.

Confirm the test profile appears in Klaviyo (search for an address like responsly-klaviyo-test-…@example.com) and that a Responsly Survey Response event shows on the profile timeline with source: responsly_integration_test and form_id.

Map questions to Klaviyo

Use Map questions to Klaviyo to send each answer to Klaviyo as either a profile property or an event property.

For each row:

  1. Question — select a survey question.
  2. Target — choose Profile property or Event property.
  3. Klaviyo property name — profile field or custom key on the response event (taggable).

Each row has three fields (no per-row metric name). When target is Event property, the value is added to the same event as in Response event in Klaviyo.

Click Add question mapping for additional rows.

Example mappings for Post-Purchase Feedback:

QuestionTargetKlaviyo property name
NPS — How likely are you to recommend [product]…Profile propertypost_purchase_nps (custom — type it in)
Email — What’s the email address you used for this order?Profile propertyemail
NPS — same questionEvent propertyscore

Map questions to Klaviyo

Do not map the Legal or consent Yes/No question to a profile field — use Marketing consent (optional) instead.

Tip: Map NPS to a profile property for segments (e.g. detractors 0–6). Map the same answer to Event property score if you want that value on the timeline event and in Flow filters on Metric → Responsly Survey Response.

Standard profile fields supported in the UI:

Property nameUse for
emailEmail address
phone_numberPhone number
external_idExternal identifier
first_nameFirst name
last_nameLast name
organizationCompany / organization
titleJob title
cityCity
regionRegion / state
countryCountry
zipPostal code
imageImage URL

Any other name is stored as a custom profile property in Klaviyo.

Warning: Matrix, ranking, and multi-scale (numbers scale) questions are sent as text or JSON. Responsly shows a warning in the UI for these types. Prefer rating, NPS, single-choice, or text questions for clean properties and segments.

Set static values

Attach the same value to every synced profile or event.

For each row:

  1. Target — Profile property or Event property.
  2. Klaviyo property name — field or custom property key.
  3. Static value — the value to send on every response.

Example for Post-Purchase Feedback:

TargetKlaviyo property nameStatic value
Event propertysourceResponsly

Event property rows add a fixed field to the same response event as question mappings (e.g. source = Responsly).

Click Add static value for more rows.

Use the Survey link tab to build a public URL that passes hidden variables into your survey. Klaviyo substitutes merge tags in the query string so each recipient gets a personalized link.

Survey link tab with URL parameters and placeholders

  1. At the top, copy the read-only survey URL — Responsly appends query parameters with Klaviyo merge tags as values.
  2. Click Add parameter to add rows. The first click adds two defaults:
    • ProfileEmail → hidden variable klaviyo_profile_email (merge tag {{ email }})
    • ProfileProfile ID → hidden variable klaviyo_profile_id (merge tag {{ person.id }})
  3. For each parameter, choose Source type and the field:
    • Profile — standard profile fields (email, first name, Profile ID, etc.) or any custom profile property (taggable). Hidden variable name: klaviyo_profile_{field} (for example klaviyo_profile_id).
    • Case — pass a Klaviyo profile property into the survey for context (presets: Order ID, Campaign ID, or a custom property name). Hidden variable name: klaviyo_case_{field} (for example klaviyo_case_order_id). Case parameters do not identify the respondent by themselves — still pass profile email or ID for sync.
  4. Click Save changes after configuring parameters so hidden variables are added to your form definition.

When sending from Klaviyo campaigns or flows, paste this URL into your email CTA or button. Klaviyo substitutes the merge tags with each recipient’s profile data.

Important: The integration does not sync anonymous responses. Always pass profile ID and/or email in the link (for example klaviyo_profile_id and klaviyo_profile_email), map email from a survey answer, or use the email question required when Add contacts to Klaviyo list is enabled.

For more background, see Hidden Variables and Identification of Respondents.

Step 5: Distribute your Post-Purchase Feedback survey via Klaviyo

Post-purchase flow or order email

  1. Copy the personalized survey link from the Survey link tab (Step 4).
  2. In Klaviyo, add the link to your Placed Order (or similar) flow — for example in the thank-you or delivery email a few days after purchase.
  3. Add a CTA such as How was your order? pointing to the survey URL (merge tags in the query string are resolved per recipient).
  4. Activate the flow or send the campaign.

Campaign email

  1. Use the same survey link in a one-off campaign if you are not using a post-purchase flow.
  2. Add a button or text link; merge tags resolve per recipient when the message sends.
  1. Open IntegrateShare in Responsly.
  2. Copy the public link, or use the link from the Klaviyo Survey link tab with parameters configured.
  3. Share via SMS, social, or other channels (identification via URL parameters still applies).

Trigger Klaviyo Flows from Post-Purchase Feedback

Unlike CRM workflow rules, Klaviyo automation is driven by metrics (events) and profile properties. After Responsly syncs:

  • Trigger a Flow on Metric → Responsly Survey Response to thank promoters or follow up with detractors.
  • Filter on event property score (from your NPS event mapping) — for example score less than 7.
  • Segment profiles where profile property post_purchase_nps is 9–10 for loyalty campaigns, or 0–6 for recovery outreach.
  • Combine Marketing consent with list settings so opted-in shoppers enter your main marketing list when they answer yes on the consent question.

Example: Metric → Responsly Survey Response where score is less than 7 → send a personal check-in email from support.

Step 6: Testing

Before going live, test end to end:

  1. Connect Klaviyo and complete Settings + Survey link configuration.
  2. Turn Active on and Save changes (including after Survey link parameters, so hidden variables exist on the form).
  3. Click Test integration and verify the test profile and event in Klaviyo.
  4. Send yourself a test email from Klaviyo with the personalized survey link, or open the URL manually with test query values (e.g. your email in klaviyo_profile_email).
  5. Submit the survey as a test respondent — answer the NPS question, enter your email, and check or leave the Legal consent box.
  6. Verify in Klaviyo:
    • Open the profile → check Properties for post_purchase_nps (or your mapped NPS field) and email.
    • Check List membership if enabled.
    • Check the profile timeline for a Responsly Survey Response event with score, form_id, response_id, and submitted_at.
    • If you opted in, confirm email marketing subscription status matches your list’s opt-in rules.
  7. Verify in Responsly:
    • Open IntegrateAnalyze → confirm the response and hidden variable values.

Troubleshooting

IssueWhat to check
Responses not appearing in KlaviyoIntegration Active and Save changes clicked; Klaviyo still connected (not disconnected); respondent identified by email or profile ID
Profile not createdValid email in URL (klaviyo_*_email), mapped email field, or email question; correct hidden variable names after Save changes
List membership or events missing after responseKlaviyo returned a profile ID after upsert; check logs if profile upsert succeeded but downstream steps were skipped
Hidden variables empty on responseSurvey link parameters saved with Save changes; parameter names match klaviyo_{source}_{field}
List membership missingList selected; Add contacts to Klaviyo list enabled; Email question selected when required; profile upsert succeeded
Marketing consent not appliedYes/No or Legal consent question mapped; answer is yes / checkbox checked; email valid on profile
Event properties missing on timelineEvent property mappings use a property name; profile ID must exist after upsert — the branded event always includes form_id, response_id, submitted_at
No event on timelineProfile ID missing after upsert (identification or profile-import failed)
OAuth pop-up blockedAllow pop-ups for app.responsly.com
API or connection errorsDisconnect and Connect Klaviyo again on the survey, or remove and reconnect the account under ProfileIntegrations; confirm Klaviyo API access

Supported question types and how values are sent

Responsly formats answers automatically before sending to Klaviyo:

Answer typeHow it is sent
Text, email, number, rating, NPS, yes/no, single choiceSingle value (choice labels as text)
Multiple choiceSelected labels joined with ;
DateYYYY-MM-DD
Matrix, ranking, numbers scaleText or JSON (use with caution)

Profile vs event targets

TargetBest forNotes
Profile propertySegmentation, profile fields, long-lived attributesStandard fields or custom properties in Klaviyo
Event propertyExtra fields on Responsly Survey ResponseMerged into one event; multiple rows → more properties on that event

Tip: For Post-Purchase Feedback, map NPS to profile property post_purchase_nps for segments and to event property score for Flow filters on the same response metric.

Analyze survey results

In Responsly

After collecting responses, use IntegrateAnalyze:

  • Overall Results — aggregated statistics and charts
  • Individual Responses — each submission with hidden variables
  • Export — XLSX, CSV, or PDF reports

In Klaviyo

Synced data appears on each profile:

  • Properties — standard and custom fields from mappings and static values
  • Lists — membership when list sync is enabled
  • Activity — the response metric event (with default and mapped properties) on the profile timeline

Use this data for segments, campaigns, and Flows based on survey behavior and scores.

Best practices

  • Identify early: Pass klaviyo_profile_email and/or klaviyo_profile_id in post-purchase emails, and keep the Email question as a fallback.
  • Save after Survey link changes: Hidden variables are created when you Save changes, not when you only copy the URL.
  • Three questions is enough: NPS, order email, and Legal consent keep completion high in order confirmation and flow emails.
  • One metric per response: Flows and segments should use Responsly Survey Response; map custom data as event properties (e.g. score, source) rather than expecting a separate metric per field.
  • Respect consent: Map the Legal checkbox to Marketing consent only when copy matches what subscribers agree to; align with your list’s double opt-in settings in Klaviyo.
  • Test before launch: Use Test integration and a real test send from Klaviyo with your own profile.
  • Reconnect when needed: If the teammate who authorized Klaviyo leaves, another user should connect their Klaviyo account so sync continues.

Remove a connected Klaviyo account

Klaviyo is authorized per Responsly user (OAuth). To revoke access for your user account — for example when someone leaves the team or you want to connect a different Klaviyo login — remove the connection from account settings, not only from a single survey.

Remove Klaviyo and other integrations from account settings

  1. Open Integrations in Responsly (My accountProfileIntegrations).
  2. Find Klaviyo in the list (with the date it was added).
  3. Click Delete next to Klaviyo and confirm.

After deletion, surveys that used your Klaviyo token will no longer sync until another team member connects Klaviyo on their account and reconfigures the integration. To restore sync without removing the account globally, open the survey’s Klaviyo settings and use Connect Klaviyo again with a valid Klaviyo login. You can also use Disconnect Klaviyo in the survey integration header to revoke OAuth for your user without visiting account settings.

Note: Deleting Klaviyo here removes the OAuth link for your Responsly user.

FAQ

Will the integration work with anonymous responses?

No. Each response must be tied to a Klaviyo profile. Pass profile ID via a hidden variable whose name contains `klaviyo_profile_id` (for example by adding Profile field **id** on the Survey link tab), pass email via a parameter ending in `_email` (for example `klaviyo_profile_email`), map an answer to the profile email field, or select an email question when adding contacts to a list.

The authorization pop-up isn't appearing — what should I do?

Enable pop-ups in your browser for app.responsly.com. Check the URL bar for a blocked pop-up notification, or adjust settings in Chrome, Firefox, Opera, Edge, or Safari.

What if the user who connected Klaviyo leaves the organization?

Klaviyo is connected per Responsly user account. Another team member should open the integration settings, disconnect if needed, and connect with their own Klaviyo account to restore API access.

Do I need to create custom properties in Klaviyo before mapping?

Standard profile fields (email, first name, etc.) are supported out of the box. For custom profile properties, create them in Klaviyo or type a new property name when mapping — Responsly sends values under the profile properties object in Klaviyo.

Why are matrix, ranking, or multi-scale answers not mapping cleanly?

These question types are sent as text or JSON. Responsly shows a warning in the integration UI. For reliable segmentation in Klaviyo, map simpler question types (rating, NPS, single choice, text).

What happens when I enable both a Klaviyo list and marketing consent?

When a respondent agrees on your mapped consent question, Responsly requests email marketing subscription via Klaviyo's API. If both **Add contacts to Klaviyo list** and marketing consent are enabled for the same list, Responsly uses the subscription API with that list (list opt-in rules apply, including double opt-in) instead of a separate list-add call. If subscription fails, Responsly may fall back to adding the profile to the list.

What does the Test integration button do?

It creates a test profile with a unique email address (for example responsly-klaviyo-test-…@example.com) and sends a **Responsly Survey Response** test event to your Klaviyo account so you can verify the connection without submitting a real survey.

Can I send surveys from Klaviyo and still sync responses?

Yes. Use the personalized survey link from the Survey link tab in your Klaviyo campaigns or flows. As long as the respondent is identified (email or profile ID in the URL), responses sync to the correct Klaviyo profile.

Need help or have more questions?

Responsly platform helps us to manage customer satisfaction and communication within our organization.

Alicja Zborowska, Administration Specialist

Red bull
Bayer

We automated the product experience management process.

KraftHeinz

Managing customer experience is made easy with Responsly.

Danone

Our suppliers are surveyed quickly and efficiently.

Feel the Responsly advantage over other products

Talk to us!