How it works
The attribute mapping page distinguishes between two kinds of mappings:- Locked mappings. A set of default mappings that come pre-configured and can’t be changed. These cover the core customer fields Voyado needs, like name, address, and email.
- Custom mappings. Mappings you configure yourself, between any Shopify customer metafield and any custom attribute on your Voyado contact type.
Locked mappings
The following Shopify fields are always mapped to their corresponding Voyado attribute. You’ll see these listed under Locked Mappings on the mapping page, marked with a lock icon. They’re not available to select when you create a custom mapping.voyado namespace (for example, voyado.discoveryKey). Note that the Shopify metafield key and the Customer Engagement attribute name are not always identical — the birthday metafield is voyado.birthDay, while the Customer Engagement attribute it fills is birthdate.
first_name, default_address.zip). The same fields appear in their GraphQL form (firstName, defaultAddress.zip) in Field mappings, which documents the full receipt and order payloads alongside contact data.Supported attribute types
When you create a custom mapping, only Voyado attribute types that are compatible with the selected Shopify metafield type are shown. Here’s how types line up:Create a custom mapping
Open Attribute Mapping
Add a mapping
Select the Shopify metafield
Select the Voyado attribute
Check type compatibility
Resolve value alignment (if applicable)
Create the metafield (if it doesn't exist yet)
voyado namespace, or skip creation and save the mapping as inactive until you create it yourself.Save
Creating a new metafield manually
If the metafield you want doesn’t exist in Shopify yet and you’d rather create it yourself first:Create the definition in Shopify
Save it
Complete the mapping
How syncing works
Once a mapping is active, it’s applied automatically. Here’s what triggers a sync:Good to know
Here are some important points to know when working with metafields:- Mapping is one-to-one which means that a metafield can only be mapped to one Voyado attribute, and an attribute can only be the target of one mapping. This also means the same field cannot be mapped twice.
- A Shopify metafield with no value does not overwrite an existing value in Voyado. An empty source field never deletes existing data.
- If a mapped Voyado attribute is later deleted in Customer Engagement, or a mapped Shopify metafield definition is removed, the mapping will be flagged as “Broken” the next time you open the field mapping section.
- For Dropdown attributes, if an incoming value during sync doesn’t match any allowed value in Voyado, that update is skipped and a warning is written to the sync log rather than the sync failing outright.
-
Any metafield the app creates on your behalf is always placed under the
voyadonamespace. This keeps app-managed fields collision-free and easy to identify, and means they can be cleanly removed if you ever uninstall the app. If you already store similar data undercustomor another namespace, you’ll need to map those fields manually; the app doesn’t auto-detect or migrate any existing data for you. - Per-mapping behavior for null or empty values isn’t configurable yet. Support for that is planned for a future release.
Exclude orders from syncing
Merchants (or other Shopify apps) can exclude individual orders from syncing to Voyado Customer Engagement. The exclusion holds for as long as the metafield is set, and can be reversed by clearing it. This is controlled by a dedicated metafield on the Shopify order.true on an order, the Voyado Customer Engagement app skips that order in every sync operation, no matter how many times it’s subsequently updated.
The exclusion metafield
What gets excluded
How exclusion and correction work
The exclusion check runs on every event tied to an order, including creation, updates, fulfillment, and cancellation. The app reads the current value ofvoyado.exclude_from_sync at the time of each event and acts on it directly; it isn’t cached or treated as a permanent state.
Sync coverage
The exclusion check applies across every sync mechanism, with no exceptions.voyado.exclude_from_sync isn’t included in the standard order export payload. It has to be fetched explicitly alongside order data from the Shopify Admin API.Logging
Every time an order event comes in and the order is excluded, we log:- Order ID
- Event type that triggered the check (for example,
order/updatedororder/paid) - Reason: excluded via
voyado.exclude_from_sync - Timestamp