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) |
| (none) |
|
| (none) |
|
Now assume contacts already exist on Brevo (with different consent):
Shopify state | Brevo state (before) | Brevo state (after real-time sync) |
| blacklisted | subscribed (Shopify wins) |
| 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) |
| (none) |
|
| (none) |
|
Now assume contacts already exist on Brevo:
Shopify state | Brevo state (before) | Brevo state (after real-time sync) |
| any | unchanged: Brevo's existing consent is preserved |
| 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) |
|
|
|
|
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) |
|
|
|
|
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
Sync Your Shopify Data with Brevo PushOwl: How data syncs between Shopify and Brevo
Customer Data Reference: Customer properties and marketing consent fields
Double Opt-In (DOI): Two-step subscription confirmation
Attribute Mapping (Custom Metafields): Syncing custom metafields alongside consent



