Skip to main content

Source of Truth for Marketing Consent

Understand how the Source of Truth (SOT) setting decides whether Shopify or Brevo wins when marketing consent differs with worked examples to avoid confusion.

Written by Anand
Updated this week

The Source of Truth (SOT) setting in Brevo PushOwl decides which platform wins when a customer's marketing consent state differs between Shopify and Brevo. It is one of the most misunderstood settings in the data sync flow this guide walks through what it does, what it does not do, and exactly what happens in each scenario with worked examples.

What the Source of Truth Setting Controls

The SOT setting has a very specific, narrow scope. Before anything else, get these four rules straight:

Rule

Details

Applies only to marketing consent

Email subscription status (and SMS subscription status, where applicable). It does not control how customer attributes, orders, products, or any other data sync.

Applies only to real-time sync

SOT only governs ongoing updates after the initial sync. The historical sync (the first-time catch-up when you install Brevo PushOwl) is not affected by this setting.

Two options only

Either Shopify or Brevo is the source of truth you pick one.

You can change it any time

The setting is found under Settings → Synchronisation → Customer data sync. Changing it affects future updates from that point onwards; it does not rewrite history.

Important: If you are doing a fresh historical sync (e.g., brand-new Brevo account), the Shopify consent is what loads into Brevo regardless of the SOT setting, because there are no existing Brevo contacts to compare against. SOT only starts mattering once real-time updates begin.

The Two Options at a Glance

SOT Option

When a Shopify update arrives

When a Brevo update happens

Best For

Shopify

Always overrides the Brevo contact's consent

Syncs back to Shopify (Brevo → Shopify)

Fresh Brevo accounts or stores confident their Shopify data is correct

Brevo

Does not override an existing Brevo contact's consent (new contacts are still created from Shopify)

Syncs back to Shopify (Brevo → Shopify)

Stores that already have curated consent data in Brevo and want to protect it

In both modes, consent changes made inside Brevo (e.g., a customer clicks "unsubscribe" on a Brevo email) sync back to Shopify. The direction that differs is Shopify → Brevo.


Option 1: Shopify as Source of Truth

Choose this option if Shopify is where you trust the customer's marketing consent state.

How It Behaves

  • Shopify → Brevo: Every Shopify customer update overrides the Brevo contact's email/SMS subscription status. Whatever Shopify says, Brevo mirrors.

  • Brevo → Shopify: Consent changes made in Brevo (e.g., a customer clicks unsubscribe in a campaign email, or is blacklisted from bouncing) sync back to Shopify.

When to Pick Shopify

Scenario

Why

New Brevo account, no existing contacts

There is nothing in Brevo to protect. Shopify is the only real source of consent.

Existing Brevo account, but you trust Shopify

If your Shopify consent data has been kept accurate and you want Brevo to follow it, Shopify SOT guarantees consistency.

Worked Example: Shopify SOT

Assume no contact yet exists on Brevo.

Shopify state

Brevo state (before)

Brevo state (after sync)

abc@example.com: subscribed

(none)

abc@example.com: subscribed

xyz@example.com: unsubscribed / not_subscribed

(none)

xyz@example.com: blacklisted

Now assume contacts already exist on Brevo (with different consent):

Shopify state

Brevo state (before)

Brevo state (after real-time sync)

abc@example.com: subscribed

blacklisted

subscribed (Shopify wins)

xyz@example.com: unsubscribed

subscribed

blacklisted (Shopify wins)


Option 2: Brevo as Source of Truth

Choose this option if Brevo is where you trust the customer's marketing consent state typically because you have been building your Brevo list for a while and do not want Shopify updates to overwrite it.

How It Behaves

  • Shopify → Brevo (existing contact): The Brevo contact's consent is preserved. Shopify's consent value does not override it.

  • Shopify → Brevo (brand-new contact): If the contact does not exist yet on Brevo, it is created using Shopify's consent value. (There is nothing to preserve in this case.)

  • Brevo → Shopify: Consent changes made in Brevo sync back to Shopify.

The "Marketing consent sync" Checkboxes (Optional Overrides)

Under Brevo SOT, you'll see two groups of checkboxes:

Direction

Checkboxes

Shopify → Brevo

☐ Email subscription status ☐ SMS subscription status

Brevo → Shopify

☐ Email subscription status ☐ SMS subscription status

Each checkbox allows consent of that channel to flow in that direction. With Brevo SOT, these are unchecked by default on the Shopify → Brevo side that's what preserves Brevo's consent.

If you check a box on the Shopify → Brevo side (e.g., "Email subscription status"), you are explicitly telling Brevo PushOwl: "for this channel, let Shopify override Brevo." This mixes the two modes and may introduce inconsistencies, so only enable the override if you know why.

Tip: There is also a top-level checkbox: "I want to keep my data consistent across Brevo and Shopify." Checking it enables full two-way consent sync (all four checkboxes on), which guarantees consistency but effectively makes Shopify behave like the source of truth for any channel whose box is checked.

When to Pick Brevo

Scenario

Why

Existing Brevo account with curated consent data

You have been managing subscription state in Brevo (e.g., blacklisting bounces, processing unsubscribes) and don't want Shopify updates to undo that.

Shopify consent data is unreliable

If historical Shopify consent was imported loosely or from third-party tools, Brevo SOT prevents bad data from polluting your Brevo list.

Worked Example: Brevo SOT

Assume no contact yet exists on Brevo (behaves the same as Shopify SOT, contact is simply created):

Shopify state

Brevo state (before)

Brevo state (after sync)

abc@example.com: subscribed

(none)

abc@example.com: subscribed

xyz@example.com: unsubscribed

(none)

xyz@example.com: blacklisted

Now assume contacts already exist on Brevo:

Shopify state

Brevo state (before)

Brevo state (after real-time sync)

abc@example.com: subscribed

any

unchanged: Brevo's existing consent is preserved

xyz@example.com: unsubscribed

any

unchanged: Brevo's existing consent is preserved


Brevo → Shopify Consent Sync

Independent of SOT direction, consent changes that originate inside Brevo always flow back to Shopify. Two common cases:

Case 1: Consent-Only Sync

If a customer is blacklisted in Brevo (for example, they clicked the email unsubscribe link), that change is reflected on Shopify.

Brevo (updated)

Shopify (after reverse sync)

abc@example.com: subscribed

abc@example.com: subscribed

xyz@example.com: blacklisted

xyz@example.com: unsubscribed

Case 2: Consent + Custom Attributes (Requires metafield_sync Flag)

If the metafield_sync flag is enabled on your Brevo PushOwl integration, custom attributes that change in Brevo (e.g., date-of-birth, loyalty tier) will also sync back to Shopify as metafields, in addition to consent.

Brevo (updated)

Shopify (after reverse sync)

abc@example.com: subscribed, DOB: 11/11/1997

abc@example.com: subscribed, DOB: 11/11/1997

xyz@example.com: blacklisted, DOB: 10/12/1998

xyz@example.com: unsubscribed, DOB: 10/12/1998

Note: If metafield_sync is enabled, every new contact created on Brevo will also be pushed to Shopify. This flag is off by default. Contact support to enable it.


Frequently Asked Questions

Does SOT affect the historical (first-time) sync?

No. During historical sync, there are typically no existing Brevo contacts to compare against (or you are building Brevo fresh), so Shopify consent loads as-is. SOT begins to matter only once real-time updates start flowing.

I changed SOT from Shopify to Brevo. Will my existing contacts' consent revert?

No. SOT governs future updates only. It does not rewrite or roll back consent that has already been synced.

My Shopify and Brevo consent are already out of sync. Which option fixes it?

Shopify SOT will bring Brevo in line with Shopify over time, because each Shopify update overwrites Brevo. If you prefer to consolidate in the opposite direction (make Shopify follow Brevo), Brevo SOT combined with checking the Brevo → Shopify consent checkboxes will gradually update Shopify from Brevo changes. Note that Brevo SOT only propagates when a consent change actually occurs on Brevo. It won't retroactively push historical Brevo state.

What happens to brand-new contacts under Brevo SOT?

New contacts (those that don't exist on Brevo yet) are always created using Shopify's consent value, because there is no existing Brevo consent to preserve.

Does SOT apply to SMS consent too?

Yes. SOT applies to both email and SMS marketing subscription status. The "Marketing consent sync" checkboxes let you control email and SMS separately.

I enabled all four "Marketing consent sync" checkboxes under Brevo SOT. What does that mean?

You've effectively asked for full two-way sync, any consent change on either side is pushed to the other. Functionally this is similar to Shopify SOT for the checked channels, but with the extra Brevo → Shopify overrides also on. This keeps both systems perfectly aligned but removes Brevo's "protection" from being overridden by Shopify.

Will Brevo SOT block Brevo → Shopify updates?

No. Brevo SOT only affects the Shopify → Brevo direction. Consent changes that originate in Brevo always flow back to Shopify (regardless of SOT).


Summary Cheat Sheet

Situation

Recommended SOT

Fresh Brevo account, no prior data

Shopify

Existing Brevo account, Shopify consent is trustworthy

Shopify

Existing Brevo account with curated consent you want to protect

Brevo

You want Shopify and Brevo to always match (and accept that Shopify overrides)

Brevo with all "Marketing consent sync" boxes checked, or just Shopify

Still unsure? Contact the Brevo PushOwl support team with a summary of how you manage consent today. They can recommend the safest option and, if needed, help you plan the transition.


Related Articles

Did this answer your question?