The ActiveCampaign for Shopify integration is a two-way sync that sends actionable order, product, customer, and abandoned cart data from Shopify to ActiveCampaign for logged-in customers and guests.
You can use this data to send customized follow-up emails to your contacts, trigger automations to run based on customer and purchased data, create segments, configure automation goals, and more.
Take Note
ActiveCampaign accounts created on or after January 8, 2024: contacts synced in from the Shopify integration that have checked the “Accepts Marketing” box will be added to the Master Contact List by default. If you delete or change the name of the ActiveCampaign-created Master Contact List, contacts will not be added to any lists. To add contacts to a list, you will need to create an automation
Shopify data on the contact profile page
When contacts sync from Shopify to your ActiveCampaign account, data will appear on their contact profile records.
Below, the Ecommerce widget and Orders widget pull in all new orders and orders brought in with a historical sync. The difference between these two widgets is the information that is displayed. The Ecommerce widget shows an overview of the orders, and the Orders widget shows the orders in more detail.
Note that we do not sync draft orders.
Ecommerce widget
The Ecommerce widget contains order and abandoned cart data for your connected store.
Here you can:
- Sort data by activity and store name
- View Ecommerce metrics, including total revenue, total orders, and total of purchased products
-
View order information, including:
- Order number
- Total (order price)
- Order Date and time
- Order status:
- Pending payment
- Completed
- Abandoned
- Recovered
- Waiting
- Canceled
- Refunded
- Failed
- Returned
- Store name
- View product detail information. Each order listed in the object has a "Products" button. Clicking this button opens the order details for that specific order.
Details here include:
-
- Store name
- Date and time of order
- Order number (Clicking the Order ID number opens the order in your connected Shopify store)
- Order total
- Discount code and discount price
- Products contained in the order:
- Image of the product (if available)
- Product name
- Product category
- SKU
- Quantity ordered
- Product price
Additional Ecommerce Data in Orders Widget
The following information appears on the contact’s order widget:
- Connection ID
- Store’s Order ID
- Order Number
- Cart ID
- Store’s External ID
- You can also view detailed order information by clicking the three dots on the right side of the order widget and then clicking the “Details” button. Clicking this button opens the “Orders” window. This window shows the detailed order data synced into ActiveCampaign for that specific order.
Details in the “Orders” window include the fields listed in the Additional Shopify Ecommerce order data section below.
The Postal Address and Marketing Opt-in (Accepts Marketing) information can only be found in the Orders Widget “Orders” window.
Ecommerce information on the contact's activity stream
The following information appears on the contact's activity stream:
- Synced order information
- Abandoned carts
Shopify store tags
This integration syncs the store tags from your Shopify store. In addition, the ActiveCampaign integration applies the "Shopify-customer" tag. These tags appear in the "Tags" section of contact records.
You can manage your customer tags on the Manage Tags page in your account. To go to the Manage Tags page, click “Contacts” then “Manage Tags.”
"Accepts Marketing" information
This integration syncs all contacts who check the "Accepts Marketing" box and those who don't.
To see which contacts opted into marketing through your Shopify store, you will can either:
- View the "accepts marketing" field in the orders details widget by clicking the “details” button on the right side of the order widget
- Create an advanced search using the "Ecommerce" > "Has opted into marketing" segment condition
- Create an advanced search using the “Ecommerce" > "Order" > "Accepts Marketing" = "true” segment condition
Fields imported from Shopify
Below is a list of fields imported from Shopify and the fields they are mapped to in ActiveCampaign. These fields appear on records for synced contacts.
Shopify fields | ActiveCampaign fields |
Customer first name | First name |
Customer last name | Last name |
Customer email | |
Company | Account |
Phone number* | Phone |
Product title | Product name |
Product type | Product category |
Product ID | Product ID |
Order total | Order total |
Order shipping method | Order shipping method |
Order date | Order date |
Product price | Product price |
Product description | Product description |
Product quantity | Product quantity |
Product image | Product image |
* About the synced phone number from Shopify
The integration will first look for a customer's phone number on their customer record in your Shopify store. If the integration locates that phone number, it will sync to your ActiveCampaign account.
If no phone number is found on the customer record, the integration will check to see if the customer has a phone number associated with their default shipping address. If the integration locates that phone number, it will sync to ActiveCampaign.
If no phone number is found, we will not sync the customer's phone number.
Additional Shopify Ecommcerce order data
Shopify Field | ActiveCampaign Field | Description |
financial_status | Order - Order status | Status of the order in ActiveCampaign. Order status must be one of the following: Pending, Completed, Abandoned, Recoverd, Waiting, Canceled, Refunded, Failed, or Returned |
legacyConnectionId | Order - Connection Id | The globally unique identifier for integration to ActiveCampaign |
id | Order - Store's Order Id | The ID of the order in your store. ActiveCampiagn uses this as a primary identifier within a connection to know if an order you are sending is a new order or an updated order. This must be unique per connection ID. If an update operation is sent using an order ID that already exists, we will override the existing order, not create a new one |
order_number | Order - Order Number | The order number in your store. Generally, an order number is an easily readable number, such as 1001, whereas a Store Order ID might be a globally unique identifier that requires technology to read |
cart_token | Order - Cart ID | The ID of the cart associated with your order in your store |
Order - Store’s External Order ID | If your store has an external order ID, store it here. For example, if you are a WooCommerce store that dropships Amazon orders, your WooCommerce order ID will be the Store’s Order ID, but the Amazon Order ID will be the Store’s External Order ID | |
historical, real_time | Order - Creation Source | Whether the order was synced via active or historical syncing. The value must either be HISTORICAL or REAL_TIME |
Order - Email | Customer Email associated with the order. This email will be the email associated with the ActiveCampaign contact created for the order | |
customer.id | Order - Store’s customer ID | the ID for the customer in your store |
created_at | Order - Store Created Date | When the order was created in your store. Must be in the format “2019-11-16T10:48:23Z” |
updated_at | Order - Store Modified Date | The most recent date the order was updated in your store. Must be in the format “2019-11-16T10:48:23Z” |
Order - Store Status | status of the order in your store | |
notes | Order - Notes | A list of notes assigned to this order |
location_id | Order - Location ID | ID for the store location |
Order - Shipping Method | shipping method of the order | |
order_status_url | Order - Order URL | the URL for the order record in your store |
test | Order - Is Test Order | If true, this is a test order. If false or not set, this is a normal order |
accepts_marketing (marketing_email_consent) | Order - Accepts Marketing | whether the customer opted into marketing |
customer_locale | Order - Customer Locale | language & global region. This must be in the format EN_US (in this example, American English) |
source_name | Order - Channel | Channel where the sale came from |
total_price | Order - Final Amount | total order amount, expressed as a decimal number |
total_discounts | Order - Discounts amount | Total amount of any discounts applied to the order, expressed as a decimal number |
total_shipping_price_set | Order - Shipping Amount | Total amount charged for shipping on the order, expressed as a decimal number |
payment_method | Order - Payment Method | Method used for payment |
shipping_address.first_name | Order - Shipping Address First Name | First name on shipping address |
shipping_address.last_name | Order - Shipping Address Last Name | Last name on shipping address |
shipping_address.address1 | Order - Shipping Address line 1 | Shipping Address line 1 |
shipping_address.address2 | Order - Shipping Address line 2 | Shipping Address line 2 |
shipping_address.address3 | Order - Shipping Address line 3 | Shipping Address line 3 |
shipping_address.city | Order - Shipping Address city | Shipping Address city |
shipping_address.province | Order - Shipping Address province | Shipping Address province |
shipping_address.country | Order - Shipping Address country | Shipping Address country |
shipping_address.zip | Order - Shipping Address postal (zip code) | Shipping Address Postal (zip code) |
shipping_address.phone | Order - Shipping Address phone | Shipping Address phone |
shipping_address.company | Order - Shipping Address company | Shipping Address company |
Order - Shipping Address email | Shipping Address email | |
billing_address.first_name | Order - Billing Address First Name | Billing Address First Name |
billing_address.last_name | Order - Billing Address Last Name | Billing Address Last Name |
billing_address.address1 | Order - Billing Address line 1 | Billing Address line 1 |
billing_address.address2 | Order - Billing Address line 2 | Billing Address line 2 |
billing_address.address3 | Order - Billing Address line 3 | Billing Address line 3 |
billing_address.city | Order - Billing Address city | Billing Address city |
billing_address.province | Order - Billing Address province | Billing Address province |
billing_address.country | Order - Billing Address country | Billing Address country |
billing_address.zip | Order - Billing Address postal (zip code) | Billing Address postal (zip code) |
billing_address.phone | Order - Billing Address phone | Billing Address phone |
billing_address.company | Order - Billing Address company | Billing Address company |
Order - Billing Address email | Billing Address email | |
Order - Discounts | A list of discounts. A discount is made up of Discount Code, Discount Amount, and Discount Type. Discount Code is a string such as “NEW50” that comes from your store. Discount Amount is a decimal representation of the amount discounted. Discount Type must be either SHIPPING or ORDER | |
shipping, order | Order - SMS Marketing State (Shopify Only) |
Whether the customer has opted in for SMS messaging. This field can only be written to; the data will be saved on the customer object. In order to read this field, use ActiveCampaign v3 API. Must be either NOT_SUBSCRIBED, PENDING, REDACTED, SUBSCRIBED, or UNSUBSCRIBED |
not_subscribed, pending, redacted, subscribed, unsubscribed | Order - SMS Opt In Level (Shopify Only) |
The level at which the customer has opted in for SMS messaging. This field can only be written to; the data will be saved on the customer object. In order to read this field, use ActiveCampaign v3 API. Must be either CONFIRMED_OPT_IN, SINGLE_OPT_IN, or UNKNOWN |
confirmed_opt_in, single_opt_in, unknown | Order - SMS Consent Updated Date (Shopify Only) |
Last date at which the customer updated their SMS consent. This field can only be written to; the data will be saved on the customer object. In order to read this field, use ActiveCampaign v3 API |
Additional Ecommerce segment conditions
You can learn more about and see a list of all of the available Ecommerce segment conditions.