Skip to main content
Here are all the data mappings for the Engage - Shopify integration.

Contact data mapping

EngageSource data (Shopify)Notes
Contact.externalIdCustomer.id
Contact.contactType”member” or “contact”Only set on contact creation. according to “Customer contact type” setting
Contact.firstNameCustomer.firstName
Contact.lastNameCustomer.lastName
Contact.emailCustomer.email
Contact.gendervoyado.genderAvailable as a customer metafield in Shopify.
Contact.mobilePhoneCustomer.phone
Contact.createdInStoreAssociated Store for Customer.localeBased on market configuration in Engage App in Shopify
Contact.streetCustomer.defaultAddress.address1 , Customer.defaultAddress.address2
Contact.cityCustomer.defaultAddress.city
Contact.countryCustomer.defaultAddress.country
Contact.countryCodeCustomer.defaultAddress.countryCodeV2
Contact.language
Contact.externalIdShopify internal Id
Contact.preferences.acceptsEmailCustomer.emailMarketingConsent.marketingState == SUBSCRIBEDSet on Contact creation and opt-in through an order
Contact.preferences.acceptsSmsCustomer.smsMarketingConsent.marketingState == SUBSCRIBEDSet on Contact creation and opt-in through an order
Contact.preferences.acceptsPostalfalseOnly set on Contact creation.
Contact.consents[id=“hasShopifyAccount”].valueCustomer.state == ACTIVESet for all customers who have an account online
Contact.consents[id=“hasShopifyAccount”].source”Shopify”

Receipt data mapping

EngageSource data (Shopify) - orders/createSource data (Shopify) - refunds/createNotes
Receipt.contact.matchKeyAssociated Contact Voyado Contact ID
Receipt.contact.matchKeyType”contactId”
Receipt.uniqueReceiptIdOrder.idRefund.order.id
Receipt.receiptNumberOrder.nameRefund.order.number
Receipt.createdDateOrder.createdAtRefund.createdAt
Receipt.storeExternalIdAssociated Store External ID by Customer.locale retrieved from databaseBased on market configuration in Engage App in Shopify
Receipt.currencyOrder.currencyCodeRefund.order.currencyCode
Receipt.exchangeRateToGroupCurrencyThe exchange rate between “voyado group currency” (see settings) and Order.currencyCode / Refund.order.currencyCode , retrieved from third party service (with 24-hours accuracy)
Receipt.totalGrossPriceOrder.totalPriceSet.shopMoney.amountRefund.totalRefundedSet.shopMoney.amount
Receipt.taxDetailsOrder.taxLines
Receipt.taxDetails[].descriptionOrder.taxLines[].title”Tax refund”
Receipt.taxDetails[].valueOrder.taxLines[].priceSet.shopMoney.amountsum(Refund.refundLineItems[].totalTaxSet.shopMoney.amount)
Receipt.paymentMethods[].typeOrder.transactions[].gatewayRefund.transactions[].gateway
Receipt.paymentMethods].descriptionOrder.transactions[].[paymentProvider.nameRefund.transactions].[paymentProvider.name
Receipt.paymentMethods[].valueOrder.transactions[].amountSet.shopMoney.amountRefund.transactions[].amountSet.shopMoney.amount
Receipt.items[]Order.lineItems[]Refund.refundLineItems[]
Receipt.items[].type”PURCHASE""RETURN”
Receipt.items[].quantityOrder.lineItems[].quantityRefund.refundLineItems[].quantity
Receipt.items[].grossPaidPriceOrder.lineItems[].discountedTotalSet.shopMoney.amountRefund.refundLineItems[].priceSet.shopMoney.amount
Receipt.items[].taxAmountSum of Order.lineItems[].taxLines[*].priceSet.shopMoney.amountRefund.refundLineItems[].totalTaxSet.shopMoney.amount
Receipt.items[].skuOrder.lineItems[].skuRefund.refundLineItems[].lineItem.sku
Receipt.items[].articleNumberOrder.lineItems[].skuRefund.refundLineItems[].lineItem.sku
Receipt.items[].discounts[].typeDerived from type of Order.lineItems[].discountAllocations[].discountApplicationSee *A1
Receipt.items[].discounts[].descriptionDerived from type of Order.lineItems[].discountAllocations[].discountApplicationSee *A2
Receipt.items[].discounts[].valueOrder.lineItems[].discountAllocations[].allocatedAmountSet.shopMoney.amount

*A1 - Discount type mapping

DiscountApplication typeEngage discount description
AutomaticDiscountApplication235
DiscountCodeApplication235
ManualDiscountApplication235
ScriptDiscountApplication235

*A2 - Discount description mapping

DiscountApplication typeEngage discount description
AutomaticDiscountApplicationAutomatic discount: \${AutomaticDiscountApplication.code}
DiscountCodeApplicationDiscount code: \${DiscountCodeApplication.code}
ManualDiscountApplicationManual discount: \${ManualDiscountApplication.description}
ScriptDiscountApplicationScript discount: \${ScriptDiscountApplication.title}

Cart abandonment

EngageSource
[].CartReferenceAbandonedCheckout.cart_id
[].TimeAbandonedCheckout.updated_at
[].ContactIdIdentified contact ID
[].LanguageAbandonedCheckout.customer_locale
[].UrlAbandonedCheckout.abandoned_checkout_url
[].Items[].SkuAbandonedCheckout.line_items[].sku
[].Items[].QuantityAbandonedCheckout.line_items[].quantity

Engage order notification

EngageSource (Shopify) - orders/*Source (Shopify) - refunds/createNotes
contact.matchKeyOrder.email or Order.phone (based on customer identification method, see settings.)
contact.matchKeyType”email” or “phone” (based on customer identification method)
orderStatusSee *B3
paymentStatusSee *B4
orderNumberOrder.name
createdDateOrder.createdAt
shippingDateOrder.fulfillments[0]?.createdAt
statusChangedDateOrder.updatedAt
storeIdAssociated store ID for Order.customerLocale (see store locale mapping.)
currencyOrder.currencyCode
languageOrder.customerLocale.split(’-’)[0]
totalGrossPriceOrder.totalPriceSet.shopMoney.amount
freightFee.valueOrder.shippingLine.discountedPriceSet.shopMoney.amount
freightFee.taxsum(Order.shippingLine.taxLines[].priceSet.shopMoney.amount
totalTaxOrder.totalTaxSet.shopMoney.amount
taxDetails[].descriptionOrder.taxLines[].title
taxDetails[].valueOrder.taxLines[].priceSet.shopMoney.amount
extraData.CreatedDateOrder.createdAt
extraData.ShippingDateOrder.fulfillments[0]?.createdAt
extraData.ReturnDateOrder.refunds[0]?.createdAt
extraData.TrackingNumberOrder.fulfillments?[0].trackingInfo.number
extraData.TrackingLinkHTMLOrder.fulfillments?[0].trackingInfo.url
extraData.ShippingMethodOrder.shippingLine.code
extraData.ShippingAddressFirstNameOrder.shippingAddress.firstName
extraData.ShippingAddressLastNameOrder.shippingAddress.lastName
extraData.ShippingAddressStreetOrder.shippingAddress.address1 + Order.shippingAddress.address2
extraData.ShippingAddressZipCodeOrder.shippingAddress.zip
extraData.ShippingAddressCityOrder.shippingAddress.city
extraData.ShippingAddressCountryOrder.shippingAddress.countryCodeV2
extraData.ShippingAddressPhoneOrder.shippingAddress.phone
extraData.ShippingAddressEmailOrder.email
extraData.PaymentMethodOrder.paymentGatewayNames.join(’,‘)
extraData.BillingAddressFirstNameOrder.billingAddress.firstName
extraData.BillingAddressLastNameOrder.billingAddress.lastName
extraData.BillingAddressStreetOrder.billingAddress.address1 + Order.billingAddress.address2
extraData.BillingAddressZipCodeOrder.billingAddress.zip
extraData.BillingAddressCityOrder.billingAddress.city
extraData.BillingAddressCountryOrder.billingAddress.countryCodeV2
extraData.BillingAddressPhoneOrder.billingAddress.phone
extraData.BillingAddressEmailOrder.email
items[]Order.lineItems[LineItem.refundableQuantity > 0]Order.refunds[].refundLineItems[]
items[].type”purchase""return”
items[].skuOrder.lineItems[].skuOrder.refunds[].refundLineItems[].sku
items[].quantityOrder.lineItems[].refundableQuantityOrder.refunds[].refundLineItems[].quantity
items[].grossPaidPriceOrder.lineItems[].discountedTotalPriceSet.shopMoney.amountOrder.refunds[].refundLineItems[].priceSet.shopMoney.amount
items[].taxAmountsum(Order.lineItems[].taxLines[].priceSet.shopMoney.amount)Order.refunds[].refundLineItems[].totalTaxAmount.shopMoney.amount
items[].descriptionOrder.lineItems[].name
items[].imageUrlOrder.lineItems[].image.src
items[].discounts[].typeOrder.lineItems[].discountAllocations[].discountApplicationSee *B1
items[].discounts[].descriptionOrder.lineItems[].discountAllocations[].discountApplicationSee *B2
items[].discounts[].valueOrder.lineItems[].discountAllocations[].allocatedAmountSet.shopMoney.amount

*B1 - Discount type mapping

DiscountApplication typeEngage discount type
AutomaticDiscountApplication235
DiscountCodeApplication235
ManualDiscountApplication235
ScriptDiscountApplication235

*B2 - Discount description mapping

DiscountApplication typeEngage discount description
AutomaticDiscountApplicationAutomatic discount: \${AutomaticDiscountApplication.code}
DiscountCodeApplicationDiscount code: \${DiscountCodeApplication.code}
ManualDiscountApplicationManual discount: \${ManualDiscountApplication.description}
ScriptDiscountApplicationScript discount: \${ScriptDiscountApplication.title}

*B3 - Order status mapping

ConditionValue
Order.refunds”REFUNDED”
Order.fulfillments”FULFILLED”
Order.partialFulfillments”PARTIALLY_FULFILLED”
Order.cancellations”CANCELLED”
Otherwise”CONFIRMED”

*B4 - Order payment status mapping

ConditionValue
Order.fullyPaid”PAID”
Order.unpaid”UNPAID”
Otherwise”PARTIALLY_PAID”