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 for | Audiences | Syncs |
|---|---|---|
| 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_customersandwrite_customersAdmin API scopes. - Your store's
myshopify.comdomain, such asyour-store.myshopify.com. - The app's Client ID and Client secret.
NoteShopify 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
- In Shopify, go to Settings > Apps.
- Click Develop apps, then click Build apps in Dev Dashboard.
- Click Create app, enter a name such as
GrowthLoop, and click Create. - Create an app version and add the
read_customersandwrite_customersscopes in Access. - Click Release, then install the app on the store you want to connect.
- Open the app's Settings page and copy the Client ID and Client secret.
WarningStore 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
- In GrowthLoop, click the Destinations tab on the left sidebar.
- Click New Destination in the top right corner.
- Search for Shopify and click Add Shopify.
- Enter the required information, then click Create.
| Field | Description |
|---|---|
| Destination Name | Name this destination in GrowthLoop. Use a name so your team recognizes its purpose, like "Shopify Store". |
| Sync Frequency | Set the default export frequency (for example, daily or weekly). You can override this setting for individual exports and syncs. |
| Store | The store's myshopify.com domain, such as your-store.myshopify.com. |
| Client ID | The Client ID from your Shopify app. |
| Client secret | The 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 field | Notes |
|---|---|
| Shopify Customer ID | The customer ID from Shopify |
| Exact email address on the Shopify customer | |
| Phone | Phone 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.
| Behavior | What happens |
|---|---|
| What GrowthLoop writes | A Shopify customer segment and a dedicated customer metafield for membership. Direction is GrowthLoop → Shopify. |
| When it runs | GrowthLoop sends the export as a batch on the next successful run. An export that starts Now runs within about 15 minutes. |
| Match field | Shopify Customer ID, Email, or Phone. GrowthLoop updates existing customers only. |
| Segment | GrowthLoop creates a customer segment named with Export Name, or reuses that segment when it already belongs to this audience. |
| Add | GrowthLoop sets the audience metafield to true on the matched customer. |
| Remove | GrowthLoop sets the audience metafield to false. The customer leaves the segment. |
| One-time exports | GrowthLoop sends current membership once. |
| Ongoing adds and removals | Ongoing exports add contacts who enter the audience and remove contacts who leave. |
| Creates | GrowthLoop does not create Shopify customers on an audience export. Unmatched rows are rejected. |
| Deletes | GrowthLoop 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:
| Object | Use it for | Sync modes |
|---|---|---|
| Users | Create or update Shopify customers | Insert 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 field | Description |
|---|---|
| Customer ID | Match an existing Shopify customer. GrowthLoop does not write this field |
| Match, create, or update the customer's email address | |
| Phone | Match, create, or update the customer's phone number |
| First name | Create or update the customer's first name |
| Last name | Create or update the customer's last name |
| Locale | Create or update the customer's locale |
| Note | Create or update the note on the customer |
| Tax exempt | Create 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
| Behavior | What happens |
|---|---|
| When it runs | GrowthLoop sends the sync as a batch on the next successful run. |
| Insert only | GrowthLoop creates customers that do not already match. Rows that already exist are skipped. |
| Update only | GrowthLoop updates mapped fields on matching customers. Rows that do not match are skipped. |
| Insert or update | GrowthLoop updates the customer when it matches, and creates a customer when it does not. |
| Match field | Customer ID, Email, or Phone. |
| Segment membership | Syncs do not add or remove contacts from a Shopify customer segment. |
| Deletes | GrowthLoop 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.
| Problem | Cause | Resolution |
|---|---|---|
| Connection fails to validate | Store, Client ID, or Client secret is wrong, or the app is missing scopes | Confirm 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 export | The match field is blank, or no Shopify customer has that ID, email, or phone | Map Shopify Customer ID, Email, or Phone to a value that already exists on a Shopify customer |
| More than one customer matched | Email or phone matches more than one Shopify customer | Use Shopify Customer ID, or make the email or phone unique in Shopify |
| The segment name is rejected | A Shopify segment already uses that Export Name and is not this audience | Change Export Name so it is unique in Shopify, then export again |
| Contacts who left the audience are still in the segment | The export is one-time, or inclusion criteria did not include removals | Use an ongoing export and Newly added audience members or All audience members so removals run |
| An insert-only sync skipped a row | Update Rule is Insert only and the customer already exists | Use Insert or update to update existing customers |
| An update-only sync skipped a row | Update Rule is Update only and no Shopify customer matched | Use Insert or update to create missing customers, or map a match field that already exists |
| A sync did not change a segment | Syncs update customer profiles only | Export an audience to add or remove segment membership |
Updated 16 days ago
