Skip to main content

Using the app

Here's some further information about using the Voyado Engage app for Shopify.

Contact types

When you configure the app, you have two options on how to store your customers in Engage:

  • Store all customers as contact type “Member“. If a merchant chooses this option, the consent “hasAccount“ is used to tell guests and account holders apart.

  • Store account holders as "Member" and guests as “Contact“.

Shopify will store a contact's shopifyId in the externalId field in the Engage contact.

If you have chosen to work with two contact types, the app will automatically upgrade an already existing “Contact” to type “Member” when creating an account.

Unidentified contacts

It's possible for a customer to be created in Shopify if an unidentified user starts a checkout but don't complete it. This will result in a contact being created in Engage who lacks vital information such as email or mobile number. This, almost always, is bad.

To avoid this, deselect "Send abandoned checkout emails automatically" under Settings > Checkout > Abandoned checkout emails in your Shopify admin.

abandoned-checkout-emails.png

Contact types and loyalty

If you are using loyalty with reward points, your contact types determine how those points are collected (or not collected).

If you've chosen to make everyone contact type "Member" then all your customers can collect points in Engage.

If you've chosen to use both "Member" and "Contact" then only Members can collect points in Engage.

In both situations, you can exclude certain Members from reward points by setting up a filter in the Rewards module. This needs to be done by your Voyado team, so contact them for help.

Multi-market support

If you have several Shopify stores for each of your markets, you can install the Voyado Engage app for each store and connect each Shopify store to a single store in Engage.

If however you have one Shopify store with several markets set up, you can map each market to a different store in Engage.

You can read about this in more detail here.

Preferences / Accepts email

The Shopify app sets the Accepts email flag / preference at two different times:

At customer creation: When a customer is created in Engage, the Accepts email flag is set based on what the customer chose to do. For example, if they sign up for My Pages without setting any consent, Accepts email will be set to "false" in Engage, since the customer hasn’t opted into marketing. But if the customer opts in for the newsletter, the Accepts email flag will be set to "true" in Engage, since they have now opted into marketing.

At checkout: If the customer opts in during checkout in Shopify, that opt-in flag will be sent to Engage and used to update the Accepts email preference.

Newsletter subscribers

If a merchant is using the native Shopify theme block for collecting subscribers, these subscriber will be synced to Engage.

If the merchant is using a third-party platform, they will need to either connect that platform to Engage OR change that platform to one which already has an Engage integration, such as Redeal or Triggerbee.

Displaying loyalty data

There is a specific Engage theme block available in Shopify. It will be populated with a contact's loyalty data if they have logged in or if they've entered the site through an email send-out (soft-identification), allowing them to be identified. This theme block displays:

  • Available promotions

  • Available vouchers

  • Reward point balance

  • Member level

Note

Theme block functionality in the Voyado Engage app will be further developed to support multiple theme blocks, each one displaying a specific combination (or just one) of these values.

Syncing receipts to Engage

Receipts for purchase are synced for both account holders (Member) and guests (Contact). In the app settings you can choose if this happens at the order confirmation stage or at the order fulfillment stage.

Receipts for returns are synced to Engage when a refund is registered in Shopify. Only the products that have been refunded will be sent to Engage, not the whole order.

Transactional communication (Shopify plus merchants only)

Important

Discounted products in Shopify are not defined as discounted in the payload received by Engage when triggering transactional emails. This means that discounts can't be indicated in emails.

These states will trigger a transactional communication from Engage:

  • Order confirmed

  • Order fulfilled

  • Order partially fulfilled

  • Order cancelled

  • Order refunded

Receipts for returns are synced to Engage when a refund is registered in Shopify. Only the products that have been refunded will be sent to Engage, not the whole order.

The state "PARTIALLY_FULFILLED" is used when, for example, two product are part of a purchase, and both are not sent to the customer at the same time. Then a transactional email can be triggered for only the item that has been fulfilled. Once the second item is fulfilled, the state of the transaction becomes "FULFILLED", triggering another transactional email if needed, and the receipt can then be sent to the /receipts endpoint.

Here you can see the various states of an order.

partially_fulfilled.png

Web pixel tracking

Web pixel tracking allows the Engage app for Shopify to track user behavior in a way similar to a cookie, and grants many useful functions.

Important

Compatibility with the Customer Privacy API is enforced, meaning that the Web Pixel App will only run when consent is granted in the context that the consent is required.

There are some prerequisites for web pixel tracking to work:

  • The tracking module in Engage must be enabled.

  • The product feed import setup in Engage must be connected to the locales of your Shopify store (For example, en-GB, en-SE).

  • The “Soft Identification Embed Block” in your Shopify Engage app must be enabled.

  • The “Voyado Soft ID Decrypt Key“, provided by your Voyado team, must have been entered.

  • The email template module for abandoned cart emails must exist.

  • Marketing automations need to be in place to trigger abandoned cart emails.

1 - Identification

The app supports identification in two ways. Visitors are either identified when they log, in or when they enter your site via a personalized link in an email sent from Engage. Once a visitor is identified, the app will connect incoming events to them, as well as previously anonymous events that were connected to the same session and cookie.

2 - Cart tracking

By enabling this feature you will start tracking the cart activity of your visitors on-site and trigger abandoned cart emails through Engage. Every time the cart updates, the app will trigger a cart event to Engage containing the products and the current state of the cart.

web-pixel-tracking-cart.png

Read more about how to work with abandoned cart automations.

3 - Cart abandonment

You can decide in Engage when a cart should be considered abandoned by entering those criteria when you set up your automation flow.

Read more about how to succeed with your abandoned cart campaign.

4 - Locales

When setting up your automations, you will be able to use locale as a filter in order to send emails in the correct currency and language, connecting each locale to a separate product feed.

There is a liquid variable in Shopify which is set based on which locale the customer is shopping in. So if a theme has en-US setup on the store, and you have used a language selector to view the site in US english, then the app will pick up from the theme that the current locale is en-US and use that in events.

This can be seen in Shopify under "Settings / Languages" where you can view all available published languages on the store. Under "Settings / Markets" you'll see the all your markets (locales) and there you can check the default languages assigned to each market.

5 - Product view tracking

By enabling this, the app can collect a visitor's product views on-site which you can then segment and act upon in Engage.

web-pixel-tracking-product-view.png

Read more about how you can leverage this data.

This setting also enables abandoned browse tracking. This works out-of-the-box and is currently in beta.