To synchronize Shopify with JUNE, a corresponding list and automations must be created in JUNE. Finally, the transfer is enabled in Shopify.
1. Setup in JUNE
First, you create an email list in JUNE.
Here you will learn how to create email lists.
To enable the synchronization between both systems, you have to create mandatory fields in the JUNE list.
Go to Settings in the top bar.
Click on Create Fields. A new menu window opens. For each field, enter the following information:
Technical name: accepts_marketing
Type: Boolean
Technical name: marketing_opt_in_level
Type: Text
Technical name: admin_graphql_api_id
Type: text
Technical name: pending_optin
Type: Boolean
If email and SMS marketing are used together, create two additional fields. For each field, you enter the following information:
Technical name: email_marketing_consent
Type: Object
Technical name: sms_marketing_consent
Type: Object
Optionally, the following user information can be saved. For each field, you enter the following information:
Technical name: first_name
Type: Text
Technical name: last_name
Type: Text
Technical name: accepts_marketing_updated_at
Type: Date
Technical name: tags
Type: Select
Technical name: orders_count
Type: Number
Technical name: state
Type: Text
Technical name: note
Type: Text
Technical name: currency
Type: Text
Technical name: phone
Type: Text
Once the fields are created, click API in the upper tab and note the Collect Token, List ID and API Token. This token will be used to identify the newly created list in the future.
2. Setup in Shopify
Once the JUNE list is created, it can be linked in Shopify.
For this, two new webhooks need to be created in the Notifications section of Shopify's settings menu. Webhooks should be the last settings option in Notifications.
1. Click on Create Webhook
2. Specify the following information:
3. Webhook 1
Event: Customer creation
Format: JSON
URL: https://engagement.juneapp.com/collect/ the previously saved Collect Token from JUNE will be added here.
Webhook API Version: Latest
4. Webhook 2
Event: Customer update
Format: JSON
URL: https://engagement.juneapp.com/collect/ the previously stored Collect Token from JUNE is added here
Webhook API Version: Latest
With this setting, newly created and updated user data will be transferred to JUNE.
If the double opt-in should be processed in JUNE, it must be disabled in Shopify. To do this, go to the Marketing section and disable the double opt-in.
Depending on whether the opt-in process takes place in Shopify or JUNE, different automations need to be set in JUNE.
3. Create Automations in JUNE
The inventory data in JUNE should now be updated with the data from Shopify.
Go to the JUNE list you created in the first step.
Click on Settings in the top bar.
Activate Update existing collects.
Next, build a journey in the JUNE Workflow Builder.
User is added to the email list
Go to the JUNE list you created in the first step.
Click on Actions in the top bar.
In the Workflow Builder, click Create Action.
Click on the action User is added to the email list.
Depending on whether the opt-in process is processed in JUNE or Shopify, you now need to create different conditions. These Actions have the function of “subscribing” the user and thus enabling them to receive newsletters.
3. a) Opt-In with Shopify
When the opt-in process is done with Shopify, a condition must be set within the action created. Here, the user will then be marked subscribed for JUNE as soon as the relevant information comes from Shopify.
To do this, click Add Condition and select Custom Segmentation.
The Custom Segmentation should look like this:
Unsubscribed | is not | false |
Accepts marketing | is | true |
Marketing opt in level | is | confirmed_opt_in |
In the successful (green) area of the action, you now need to add a service that subscribes the user. Click on Add Service and select Subscribe.
3. b) Opt-In with JUNE
If the opt-in process is to be processed via JUNE, a condition must be created that recognizes the single opt-in from Shopify and thereby sends a confirmation email.
To do this, click Add Condition and select Custom Segmentation.
The Custom Segmentation should look like the following:
Unsubscribed | is not | false |
Accepts marketing | is | true |
Marketing opt in level | is | single_opt_in |
Pending optin | is not | false |
If you want users from non-shopify sources to opt-in as well, you need to extend the condition and combine the previous condition into a group.
To do this, click Add Group and create the rules in this group.
The condition type must initially be set to OR so that two conditions can be mixed. Then follows a rule group that recognizes non-shopify users:
Unsubscribed | is not | false |
OR |
|
|
Admin graphql api id | exists | No |
Admin graphql api id | is |
|
In the successful (green) area a confirmation mail can now be added. The opt-in process can then be built in the regular way. Here you can learn how to build the DOI process in JUNE.
Additionally, the opt-in status should be saved so that repeated logins or manual adjustments to the user do not result in new emails.
Click Add Service.
Select Update Data.
In the options, select the pending_optin field and check the checkbox that appears.
In the login action of the opt-in process, the value for pending_optin must be reset.
Click Add Service.
Select Update Data.
In the options, select the pending_optin field and uncheck the checkbox that appears.
Receive Unsubscription from Shopify
To process unsubscriptions from Shopify, you need to build another journey.
In the workflow builder, click Create Action.
Click on the action User is added to the email list.
Click Add Condition and select Custom Segmentation.
The Custom Segmentation should look like this:
Accepts marketing | is | false |
Unsubscribed | is | false |
4. In the successful (green) area, click Add service.
5. Select Unsubscribe.
Synchronize (Un-)subscribes in JUNE to Shopify
To transfer subscriptions and unsubscriptions from JUNE to Shopify, you need to create an action for each that communicates with Shopify.
Create two actions for this purpose.
Action 1: User subscribes
Action 2: User unsubscribes
If non-Shopify users are used in the list, a condition must be added to ensure that JUNE can communicate with Shopify. Click Add Condition and select Custom Segmentation.
The Custom Segmentation should look like the following:
Admin graphql api id | exists | Yes |
Admin graphql api id | is not |
|
To transfer the data, click on Add Service and select Webhook. The service must now be configured.
URL:
https://myshop.myshopify.com/admin/api/2022-07/customers/[%=admin_graphql_api_id.replace('gid://shopify/Customer/','')%].json
Please replace “myshop.myshopify.com” with the corresponding URL of the store.
Method: PUT
Headers:
{ "X-Shopify-Access-Token”: “shpat_xxxxxxxx”, “content-type”: “application/json” }
The code “shpat_xxxxxxxx” must be replaced with a corresponding authorization token from Shopify.
Body:
{
“customer”: {
"accepts_marketing": [%=(_unsubscribed?"false”:”true”)%],
“email_marketing_consent”: {
“state”: “[%=(_unsubscribed?"unsubscribed”:”subscribed”)%]”
}
}
}
An integration service will be added to replace the webhook.
🧑💻 Contact & Support
Do you need help setting up an integration? Our developers are happy to help. Book your call here.