You will learn
Learn what data syncs from Shopify to FosterFlow and where to view it. This includes order data, onsite tracking data, custom interactions (like popups), and customer data. Understanding how FosterFlow maps and standardizes Shopify’s native data structure is key to building accurate segments and flows.
About the data sync
When you integrate with Shopify, FosterFlow will ingest event data and automatically convert it into a standardized schema. This ensures that all e-commerce metrics, user profiles, and product interactions are uniformly structured for your marketing automation needs.
Important note regarding historical data:
Upon installing the FosterFlow plugin, an initial historical sync will occur. FosterFlow only syncs historical data for the following:
* Customers (including their email/SMS subscription status)
* Products
* Orders (Purchases)
All other behavioral events (such as page views, add to cart, search, and custom popup interactions) begin accumulating after the installation is complete. FosterFlow does not sync historical data for these onsite tracking events.
Once the initial historical sync is complete, new data and events will sync to FosterFlow in real time.
Supported Events Mapping
FosterFlow automatically maps native Shopify events into standardized FosterFlow event names. You will see the following events in your analytics and flow triggers:
- view_item (Mapped from
product_viewed) - add_to_cart (Mapped from
product_added_to_cart) - remove_from_cart (Mapped from
product_removed_from_cart) - page_view_cart (Mapped from
cart_viewed) - begin_checkout (Mapped from
checkout_started) - add_shipping_info (Mapped from
checkout_shipping_info_submitted) - add_payment_info (Mapped from
payment_info_submitted) - purchase (Mapped from
checkout_completed) - page_view_product_listing (Mapped from
collection_viewed) - view_search_results (Mapped from
search_submitted) - page_view_others (Mapped from
page_viewed) - popup (Custom onsite popup interactions)
Event Payload Structure
When an event is tracked, FosterFlow enriches the event with specific data modules based on the context of the action. Below is the reference for how FosterFlow organizes this data.
Common Event Data
Every event synced from Shopify includes standard metadata to identify the user and the session.
* event_id: Unique identifier for the event.
* event_name: The standardized FosterFlow event name.
* event_time: Timestamp of the event in UTC.
* session_id: The user’s active session identifier.
* device_id / client_id: Unique identifier for the user’s device/browser.
* tenant_id: Your FosterFlow workspace ID.
Customer Profile (User Data)
When user data is available (e.g., during checkout or from historical syncs), FosterFlow automatically builds or updates the user profile.
* external_user_id: The native Shopify Customer ID.
* email: Customer’s email address.
* phone_number: Customer’s phone number.
* email_optin: True/False based on Shopify’s buyerAcceptsEmailMarketing.
* sms_optin: True/False based on Shopify’s buyerAcceptsSmsMarketing.
* locale: Formatted language/region code extracted from the browser (e.g., en_US).
* gdpr_optin: Defaults to true upon capture.
Ordered Products & Items
For events like view_item, add_to_cart, and purchase, FosterFlow attaches detailed item arrays (items).
* id: The Shopify Variant ID.
* name: The product title.
* brand: The product vendor.
* mpn: The SKU of the product variant.
* category: Array containing the product type.
* price: Price amount of the variant.
* currency: Currency code (e.g., USD).
* url: The full URL to the product page.
* image_link: The secure URL (https) of the product image.
* quantity: The number of items involved in the event.
Transaction & Cart Data
Triggered during begin_checkout, add_shipping_info, and purchase events.
* transaction_id: The checkout token.
* currency: Currency code for the transaction/cart.
* total: The total value (for carts, this is automatically calculated as amount * quantity).
* shipping_cost: The cost of shipping.
* tax_value: Total tax amount applied.
Page Context & Source Tracking
FosterFlow deeply tracks the context of where the event occurred on your site, automatically categorizing page types and traffic sources.
* type: Categorized automatically based on the URL path (Home, Detail, Category, Search, Cart, Checkout, Confirmation, Promotion, or Content).
* page_location: The full URL of the page.
* page_referrer: The referring URL.
* page_title: The title of the document.
* source: Automatically determined by parsing utm_source parameters. If UTMs are missing, FosterFlow falls back to referrer analysis to identify sources like google, facebook, instagram, twitter, youtube, tiktok, linkedin, or defaults to web.
Promotions & Discounts
If a discount is applied during checkout, FosterFlow captures the promotion details.
* promotion_title: The name or code of the discount applied.
* promotion_discount: The flat monetary amount discounted.
* promotion_discount_ratio: The percentage of the discount applied.
Shipping Address
Captured when a user submits their shipping information.
* first_name & last_name: Customer name.
* address1 & address2: Street address details.
* city, region (Province), region_code, country, country_code, zip.
* phone: Contact number for shipping.
Search Criteria
Captured during the view_search_results event.
* search_criteria.user_query: The actual text string the user searched for on your site.
Popup Interactions
For onsite popup events, FosterFlow tracks user engagement with campaigns.
* action: The action taken (e.g., submitted, closed).
* name: Name of the popup.
* campaign_name & campaign_id: Identifiers for the specific marketing campaign.
* user_interaction: Boolean indicating if the user actively interacted.
* action_description: Additional context about the popup action.
How we calculate revenue
Revenue, or purchase value, is calculated based on the total parameter captured in the transaction payload. FosterFlow captures the total checkout amount (which typically includes sub-total + shipping – discounts) directly from Shopify’s total price data.
You may see that the Revenue value on your dashboard does not always perfectly match up with the native revenue value you see in Shopify. This is because Shopify retrospectively subtracts canceled and refunded orders from their revenue calculation, while FosterFlow records the event value at the exact moment of the purchase event.
Note that if you’re looking to create a condition (like in a segment or flow) based on revenue for a customer over a certain period, you should use the Revenue metrics associated with your standardized purchase events.