Customer Data Management

The Shopify app provides you the tools needed to respect customer data and opt-in status for an optimal workflow.

Opt-Out Management

When customers create an account or make a change to an existing Shopify account, the Shopify App will begin tracking any opt-out changes.

Since Shopify uses a true/false Customer Accepts Marketing field to track opt-out status and Marigold Engage by Sailthru uses a multi-tiered approach, we use the following mapping between the platforms:

When the system receives an opt-out request from Shopify, we will either:

  1. Set that user to Opt-Out (Marketing)
  2. Retain an existing opt-out status if it is more restrictive.

How Opt-Out Management Works

The Shopify App receives customer data through Shopify webhooks when a customer is created or updated. While the data sent from Shopify includes a customer's marketing opt-in status, it doesn't specify if the status was human-generated or a default from Shopify.

To respect all opt-in and opt-out decisions, including opt-ins made in the system prior to a customer creating a Shopify account, we use the following logic to interact with Shopify opt-out data.

Webhook Received Customer creation  Customer update
Customer Accepts Marketing  If the customer is marked as Accepting Marketing at time of customer creation, it means the customer actively signed up at checkout or through a Shopify newsletter signup widget. was done  Treated as an opt-in in the system. These are assumed to indicate a recorded opt-in. 
Customer Doesn't Accept Marketing  If a Customer is set to Doesn't Accept Marketing at account creation, that means they didn't opt-in during checkout  However. They may have opted into messaging previously.  If the customer is opted in, Shopify will be updated with the system's knowledge of opt-in.  This is checked to see if it is an actual opt-out change or if it was propagated from an account creation (sometimes the customers/update webhook is received within seconds of account creation).  We compare the customer's updated_at timestamp to their accepted_marketing_updated_at timestamp. If they occur within 10 seconds, it is accepted as an active opt-out change. 

Opt-Out Data from Marigold Engage by Sailthru

When an opt-out change is recorded for a profile (from email, a profile page, the API, etc.) we propagate that back to Shopify using the mapping in the Opt-Out Management section. Valid profiles become customers that Accept Marketing. Any level of profile opt-out will become a customer who Doesn't Accept Marketing.

 

GDPR Support

Maintain a single source of truth for processing GDPR requests through your Shopify integration. Shopify uses two different webhooks to manage GDPR requests. One webhook manages redact requests and one webhook manages data requests. customers/redact This webhook sent by Shopify will remove or redact any data on a specified customer and their orders. It is sent time-delayed from the time of request:

  • 10 days if a customer hasn't made a purchase in the last six months
  • 6 months otherwise
The profile will be removed through the User API. Note: Once a full profile is deleted via a Shopify delete request, the user and all preferences are deleted. This includes DoNotTrack information. You will need to request DoNotTrack information from a user again.  customers/data_request This webhook is sent by Shopify when a customer requests their data. The request is handled manually:
  • The request automatically sends an email that opens a Support ticket. 
  • Support receives the ticket and processes the appropriate information.
  • The request is sent to you through email. It includes the user's email address or Profile ID, so you can process the request and send the appropriate data to the user.