Skip to main content
Solved

Managing subscriptions in Shopify


Forum|alt.badge.img

Hi! I am having an issue with managing my subscribers between Shopify and Klaviyo.

I have signed up a customer in the backend of Shopify and set them as accepting marketing, because they consented over the phone

This customer is then coming through to my Klaviyo account but it’s showing as never subscribed, even though there is a custom property (I did not set this up) that is Accepts Marketing: True

I have double opt-in enabled on my account and do not wish to disable this, is there any way of ensuring that any changes I make to customer accounts in the Shopify backend (subscribe AND unsubscribe) are synched across to Klaviyo? Or does it only synch data from the front end interactions?

Best answer by ebusiness pros

Hi ​@KJGPMD - thanks for bringing this question to the community!

 

Shopify’s “accepts marketing” property does not automatically subscribe someone to your marketing emails in Klaviyo, since there’s not a “subscribed to list” event associated with the profile. That Shopify status will only sync them to Klaviyo as an “active profile” that can receive some percentage of your marketing emails, like Abandoned Cart or Post-Purchase flows (this is less strict in the US, more strict if you’re in the EU with GDPR). 

 

If a customer’s agreeing to receive marketing emails by phone, the best thing to do is manually add their email address to your Master/ Newsletter list in Klaviyo, and check the box saying they consented to receive marketing emails. That will set their Klaviyo status as “subscribed.”

 

However, it’s a more sustainable and reliable path for you to create a dedicated page on your website, with an embedded form, that you can send to customers as follow-up to the phone call, where they can submit their own email address. That will sync marketing consent consistently and accurately between both Shopify and Klaviyo without you needing to manually update things in either platform. 

 

I hope this helps!

~ Gabrielle 

View original
Did this topic or the replies in the thread help you find an answer to your question?

3 replies

NOAH MERCY
Problem Solver II
Forum|alt.badge.img+1
  • Problem Solver II
  • 19 replies
  • January 25, 2025

Hi ​@KJGPMD ,

The issue seems to be related to how Shopify syncs marketing preferences with Klaviyo, especially with double opt-in enabled. Here’s how to address it:

  1. Double Opt-In Behavior: With double opt-in enabled, customers must confirm their subscription through the opt-in email sent by Klaviyo. Backend updates in Shopify (e.g., manually marking "Accepts Marketing") won’t automatically trigger this confirmation step.

  2. Sync Updates: Shopify only syncs marketing preferences based on customer actions on the front end (e.g., checking the opt-in box during checkout or a form). Manual backend updates won’t trigger a subscription status change in Klaviyo.

  3. Workaround:

    • To ensure these manual updates are reflected, send the customer a confirmation email using Klaviyo’s double opt-in process.
    • Alternatively, you can manually update their subscription status in Klaviyo if the customer has already given consent.
  4. Best Practices: Document and automate the consent process wherever possible to avoid manual updates that may not sync seamlessly.

If you need assistance setting this up or automating the process, feel free to reach out!

Best,


ebusiness pros
Partner - Silver
Forum|alt.badge.img+26
  • 2025 Champion
  • 318 replies
  • Answer
  • January 26, 2025

Hi ​@KJGPMD - thanks for bringing this question to the community!

 

Shopify’s “accepts marketing” property does not automatically subscribe someone to your marketing emails in Klaviyo, since there’s not a “subscribed to list” event associated with the profile. That Shopify status will only sync them to Klaviyo as an “active profile” that can receive some percentage of your marketing emails, like Abandoned Cart or Post-Purchase flows (this is less strict in the US, more strict if you’re in the EU with GDPR). 

 

If a customer’s agreeing to receive marketing emails by phone, the best thing to do is manually add their email address to your Master/ Newsletter list in Klaviyo, and check the box saying they consented to receive marketing emails. That will set their Klaviyo status as “subscribed.”

 

However, it’s a more sustainable and reliable path for you to create a dedicated page on your website, with an embedded form, that you can send to customers as follow-up to the phone call, where they can submit their own email address. That will sync marketing consent consistently and accurately between both Shopify and Klaviyo without you needing to manually update things in either platform. 

 

I hope this helps!

~ Gabrielle 


Forum|alt.badge.img
  • Problem Solver II
  • 11 replies
  • January 28, 2025

Hi ​@KJGPMD,

I agree with ​@ebusiness pros. Sharing the link to a form might be the easiest workaround. There is also a more complex alternative to achieve your goal automatically using a webhook. Here is the “short” tutorial:

  1. Create a segment with these criteria (you might want to add AND is not in “Newsletter” or your main list):
  2. Draft a flow with this segment as trigger.
  3. Add a webhook to subscribe the contact (here is were it gets tricky).
    1. You will need an API key with “Write Access” to lists, profiles and subscriptions before you start.
    2. Also, fetch the list id of your main subscriber list (if you don’t know how to get this click here).
    3. Add the input below to the webhook.
    4. Set it live.
    5. (optional) Add past profiles to the beginning of the flow to subscribe the contacts that you already added but were not subscribed automatically (click here if you don’t know how to achieve this).

You only need to change 2 things. (1) Replace PRIVATEKEYHERE for your freshly created API key. Within the JSON body, (2) replace REPLACE-THIS-WITH-YOUR-LIST-ID with the id of you main subscriber list (eg., Newsletter). The rest should stay the same!

 

Destination URL:     https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs

Key Value
accept application/vnd.api+json
content-type application/vnd.api+json
revision 2025-01-15
Authorization Klaviyo-API-Key PRIVATEKEYHERE

 

JSON body

{
  "data": {
    "type": "profile-subscription-bulk-create-job",
    "attributes": {
      "profiles": {
        "data": [
          {
            "type": "profile",
            "attributes": {
              "subscriptions": {
                "email": {
                  "marketing": {
                    "consent": "SUBSCRIBED"
                  }
                }
              },
              "email": "{{person.email}}"
            }
          }
        ]
      },
      "historical_import": false
    },
    "relationships": {
      "list": {
        "data": {
          "type": "list",
          "id": "REPLACE-THIS-WITH-YOUR-LIST-ID"
        }
      }
    }
  }
}

Save it and test it by clicking on “Preview” (just above the Destination URL) and then on “Send Test Request”. A green banner should appear with a success message.

 

IMPORTANT: Consent is a delicate subject. This option will not trigger a double opt-in email confirmation. They will be automatically subscribed. You need to be 100% sure that these contacts want to receive your emails before actioning this solution.

 

All best,

Andrés @ Melusine Studio // Klaviyo Master Gold

melusine.studio