Shopify

Use GrowthLoop audiences and warehouse data for Shopify customer segments and profiles.

Connect this destination to export audience membership as a Shopify customer segment, or to write warehouse rows onto Shopify customers, for use in Shopify.

This destination writes to your Shopify account and is a good fit when you want to:

  • Make GrowthLoop audiences available as Shopify customer segments
  • Match existing Shopify customers on Customer ID, email, or phone
  • Create or update Shopify customer profiles from a warehouse table

This maps to GrowthLoop Audiences and Syncs:

Use it forAudiencesSyncs
Creating a Shopify customer segment from an audience✓
Creating or updating Shopify customers from a warehouse table✓

Audience exports update existing Shopify customers only. Rows that do not match a customer are rejected. Syncs can create customers when the update rule allows it.

Prerequisites

Make sure you have:

  • A Shopify store and permission to create, configure, and install apps for it.
  • A Shopify app installed on the store with the read_customers and write_customers Admin API scopes.
  • Your store's myshopify.com domain, such as your-store.myshopify.com.
  • The app's Client ID and Client secret.
📘

Note

Shopify manages new custom apps in the Dev Dashboard. See Shopify's app installation and setup guide if you need to create or install an app.

Create and configure a Shopify app

  1. In Shopify, go to Settings > Apps.
  2. Click Develop apps, then click Build apps in Dev Dashboard.
  3. Click Create app, enter a name such as GrowthLoop, and click Create.
  4. Create an app version and add the read_customers and write_customers scopes in Access.
  5. Click Release, then install the app on the store you want to connect.
  6. Open the app's Settings page and copy the Client ID and Client secret.
⚠️

Warning

Store the client secret securely. Do not include it in documents, messages, or source control. See Shopify's client credentials guide.

Set up Shopify as a destination

  1. In GrowthLoop, click the Destinations tab on the left sidebar.
  2. Click New Destination in the top right corner.
  3. Search for Shopify and click Add Shopify.
  4. Enter the required information, then click Create.
FieldDescription
Destination NameName this destination in GrowthLoop. Use a name so your team recognizes its purpose, like "Shopify Store".
Sync FrequencySet the default export frequency (for example, daily or weekly). You can override this setting for individual exports and syncs.
StoreThe store's myshopify.com domain, such as your-store.myshopify.com.
Client IDThe Client ID from your Shopify app.
Client secretThe Client secret from your Shopify app.

GrowthLoop validates the connection and required scopes. Shopify then appears in your list of connected destinations.

Export to Shopify

From within GrowthLoop, export from an audience. See Export an audience if you need more information on these steps.

After building or selecting an audience, click Export, then search for Shopify.

Map contact identifiers

Map one match field. GrowthLoop looks up an existing Shopify customer. It does not create a customer on an audience export.

Match fieldNotes
Shopify Customer IDThe customer ID from Shopify
EmailExact email address on the Shopify customer
PhonePhone number as it is stored in Shopify, including the country code when Shopify stores it that way

Configure the export

This is where you set the campaign type and schedule for audience exports.

  • Export Name: Defaults to {audience name}_GL_Audience_{audience ID}. GrowthLoop uses this as the Shopify segment name.
  • Campaign type: Choose a one-time or ongoing export.
  • Export Inclusion Criteria: All audience members for a full refresh, or Newly added audience members for additions and removals since the last export.
  • Schedule: Set frequency, start date, end date, and days of the week for ongoing exports.

Export behavior

This is what GrowthLoop writes when you export an audience.

BehaviorWhat happens
What GrowthLoop writesA Shopify customer segment and a dedicated customer metafield for membership. Direction is GrowthLoop → Shopify.
When it runsGrowthLoop sends the export as a batch on the next successful run. An export that starts Now runs within about 15 minutes.
Match fieldShopify Customer ID, Email, or Phone. GrowthLoop updates existing customers only.
SegmentGrowthLoop creates a customer segment named with Export Name, or reuses that segment when it already belongs to this audience.
AddGrowthLoop sets the audience metafield to true on the matched customer.
RemoveGrowthLoop sets the audience metafield to false. The customer leaves the segment.
One-time exportsGrowthLoop sends current membership once.
Ongoing adds and removalsOngoing exports add contacts who enter the audience and remove contacts who leave.
CreatesGrowthLoop does not create Shopify customers on an audience export. Unmatched rows are rejected.
DeletesGrowthLoop does not delete Shopify customers or segments, and it does not change customer tags.

Create a sync in GrowthLoop

Create a sync from a warehouse table to write rows onto Shopify customers. See Syncs for information on how to complete those steps.

Select an Object Type:

ObjectUse it forSync modes
UsersCreate or update Shopify customersInsert only, Update only, or Insert or update

When you configure the sync:

  • Connection: Select your Shopify destination.
  • Object Type: Select Users.
  • Update Rule: Select Insert only, Update only, or Insert or update. See Sync behavior.
  • Dataset/Table: Select the warehouse table that holds the records.
  • Match Field: Map Customer ID, Email, or Phone.

After you map fields, click Update Sync. Enable the sync with the toggle at the top of the page.

When you update mappings on an existing sync, choose Updates only unless you need Back-fill. Back-fill rewrites already synced rows and can be expensive on your warehouse.

Map at least one identifier, then map the customer fields you want to write.

Destination fieldDescription
Customer IDMatch an existing Shopify customer. GrowthLoop does not write this field
EmailMatch, create, or update the customer's email address
PhoneMatch, create, or update the customer's phone number
First nameCreate or update the customer's first name
Last nameCreate or update the customer's last name
LocaleCreate or update the customer's locale
NoteCreate or update the note on the customer
Tax exemptCreate or update the customer's tax-exempt status

Shopify customer tags are not available as sync fields. GrowthLoop preserves existing tags.

Syncs write customer profiles. They do not add or remove contacts from a Shopify segment. To manage segment membership, export an audience.

For Insert only, match customers by Email or Phone so Shopify can create the record.

Sync behavior

BehaviorWhat happens
When it runsGrowthLoop sends the sync as a batch on the next successful run.
Insert onlyGrowthLoop creates customers that do not already match. Rows that already exist are skipped.
Update onlyGrowthLoop updates mapped fields on matching customers. Rows that do not match are skipped.
Insert or updateGrowthLoop updates the customer when it matches, and creates a customer when it does not.
Match fieldCustomer ID, Email, or Phone.
Segment membershipSyncs do not add or remove contacts from a Shopify customer segment.
DeletesGrowthLoop does not delete Shopify customers.

Confirm the export was successful

When the run finishes, confirm you can use the data in Shopify.

  • Audience export: Open Customers > Segments and look up the segment. Look for the _GL_Audience_ name unless you changed Export Name. Open the segment and confirm the expected customers appear.
  • Customer sync: Open Customers and check the mapped fields on a customer you sent.

In GrowthLoop, review counts on the audience Exports tab, or confirm the sync appears in the Syncs table. See Export an audience or Syncs for more information.

Congrats on successfully exporting to Shopify!

Troubleshooting

These are the issues we see most often. You can always email us at [email protected] for help.

ProblemCauseResolution
Connection fails to validateStore, Client ID, or Client secret is wrong, or the app is missing scopesConfirm the myshopify.com domain and app credentials. Grant read_customers and write_customers, then install the app on that store
Rows fail to match on an exportThe match field is blank, or no Shopify customer has that ID, email, or phoneMap Shopify Customer ID, Email, or Phone to a value that already exists on a Shopify customer
More than one customer matchedEmail or phone matches more than one Shopify customerUse Shopify Customer ID, or make the email or phone unique in Shopify
The segment name is rejectedA Shopify segment already uses that Export Name and is not this audienceChange Export Name so it is unique in Shopify, then export again
Contacts who left the audience are still in the segmentThe export is one-time, or inclusion criteria did not include removalsUse an ongoing export and Newly added audience members or All audience members so removals run
An insert-only sync skipped a rowUpdate Rule is Insert only and the customer already existsUse Insert or update to update existing customers
An update-only sync skipped a rowUpdate Rule is Update only and no Shopify customer matchedUse Insert or update to create missing customers, or map a match field that already exists
A sync did not change a segmentSyncs update customer profiles onlyExport an audience to add or remove segment membership

What’s Next

Export an audience after you connect a destination

Did this page help you?