{"id":345295,"date":"2026-07-27T07:25:18","date_gmt":"2026-07-27T07:25:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/flow-analytics-for-woocommerce\/"},"modified":"2026-07-27T07:24:42","modified_gmt":"2026-07-27T07:24:42","slug":"flow-analytics-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/flow-analytics-for-woocommerce\/","author":23366747,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.0.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Flow Analytics for WooCommerce","header_author":"Databrief","header_description":"Sends WooCommerce store events \u2014 product views, add to cart, checkout, purchases and customer identity \u2014 straight from your store to Flow. No dataLayer and no tag manager required.","assets_banners_color":"1c1454","last_updated":"2026-07-27 07:24:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/flow.databrief.sa\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"databrief","date":"2026-07-27 07:24:42"}},"upgrade_notice":{"1.1.1":"<p>Documentation and packaging update for the WordPress.org listing; no change to tracking behaviour.<\/p>","1.1.0":"<p>Customer name is now sent with identify and purchase events, and hidden when hashed-identifiers-only mode is on.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3624093,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3624093,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3624093,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3624093,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3624093,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3624093,"resolution":"1","location":"assets","locale":"","width":1280,"height":820}},"screenshots":{"1":"The settings screen: site key, connection test and reporting options."}},"plugin_section":[],"plugin_tags":[232,9067,986,282,286],"plugin_category":[36,45],"plugin_contributors":[272936],"plugin_business_model":[],"class_list":["post-345295","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-attribution","plugin_tags-conversion-tracking","plugin_tags-ecommerce","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-databrief","plugin_committers-databrief"],"banners":{"banner":"https:\/\/ps.w.org\/flow-analytics-for-woocommerce\/assets\/banner-772x250.png?rev=3624093","banner_2x":"https:\/\/ps.w.org\/flow-analytics-for-woocommerce\/assets\/banner-1544x500.png?rev=3624093","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/flow-analytics-for-woocommerce\/assets\/icon.svg?rev=3624093","icon":"https:\/\/ps.w.org\/flow-analytics-for-woocommerce\/assets\/icon.svg?rev=3624093","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/flow-analytics-for-woocommerce\/assets\/screenshot-1.png?rev=3624093","caption":"The settings screen: site key, connection test and reporting options."}],"raw_content":"<!--section=description-->\n<p>Flow Analytics for WooCommerce connects your store to <a href=\"https:\/\/flow.databrief.sa\/\">Flow<\/a>, a marketing analytics and attribution service for online stores.<\/p>\n\n<p>Instead of asking you to wire up a tag manager and a data layer, the plugin reads WooCommerce directly. Prices, product ids, order totals, taxes, shipping and coupons come from the same objects WooCommerce uses to bill your customer, so the numbers in your reports match the numbers in your store.<\/p>\n\n<h4>What it reports<\/h4>\n\n<ul>\n<li><code>page_view<\/code> \u2014 every page, handled by the Flow tracker<\/li>\n<li><code>view_item<\/code> \u2014 a product page<\/li>\n<li><code>view_item_list<\/code> \u2014 shop and category pages (optional)<\/li>\n<li><code>search<\/code> \u2014 a product search<\/li>\n<li><code>add_to_cart<\/code> and <code>remove_from_cart<\/code> \u2014 including AJAX add to cart<\/li>\n<li><code>view_cart<\/code> \u2014 the cart page<\/li>\n<li><code>begin_checkout<\/code> \u2014 the checkout page, classic or blocks<\/li>\n<li><code>purchase<\/code> \u2014 a completed order<\/li>\n<li><code>refund<\/code> \u2014 a refunded order<\/li>\n<li><code>$identify<\/code> \u2014 links an order or a signed-in customer to the visitor<\/li>\n<\/ul>\n\n<h4>Orders are never quietly lost<\/h4>\n\n<p>When a shopper comes back to your thank-you page, the browser reports the order, which is the richest signal available. When the shopper never comes back \u2014 a payment redirect that drops off, a closed tab, a blocked script, a gateway that confirms by webhook minutes later \u2014 your server reports the order instead, a few minutes after the fact.<\/p>\n\n<p>Both paths recognise each other, so an order is reported once and only once.<\/p>\n\n<h4>Attribution keeps working<\/h4>\n\n<p>The plugin keeps the Flow tracker's visitor id with the order, so an order reported by your server is still attributed to the campaign, ad click or referrer that originally brought the shopper in. Nothing is credited to \"Direct\" just because the shopper closed the tab.<\/p>\n\n<h4>Setup<\/h4>\n\n<p>Paste your Flow site key into WooCommerce \u2192 Flow Analytics, press \"Test connection\", and you are done. There is nothing else to configure.<\/p>\n\n<h4>Compatibility<\/h4>\n\n<ul>\n<li>High-Performance Order Storage (HPOS)<\/li>\n<li>Cart and Checkout blocks, as well as the classic shortcode checkout<\/li>\n<li>WP Consent API, when a consent plugin provides it<\/li>\n<li>Do Not Track and Global Privacy Control browser signals<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Flow (Databrief), the analytics service the plugin was built for. An account is required. Without a site key, the plugin sends nothing at all.<\/p>\n\n<p><strong>1. Flow tracker script \u2014 <code>https:\/\/flow.databrief.sa\/sdk\/attr.js<\/code><\/strong><\/p>\n\n<p>Loaded in your visitors' browsers. It assigns an anonymous visitor id, keeps a session, and records the campaign, click id and referrer that brought the visitor to your store.<\/p>\n\n<p><strong>2. Flow collect endpoint \u2014 <code>https:\/\/flow.databrief.sa\/collect<\/code><\/strong><\/p>\n\n<p>Receives the events listed above. Two senders use it: your visitors' browsers, and your own server for orders and refunds.<\/p>\n\n<p><strong>What is sent:<\/strong> the site key you configured; an anonymous visitor id and session id; the page URL, referrer and campaign parameters (UTM tags and ad click ids); for each product, its id, name, SKU, chosen variant, category, brand, price and quantity; for an order, its order number, internal id, status, total, tax, shipping, coupon, payment method title, the shopper's billing country and whether it is the customer's first order; for a refund, the refund id and amount; and \u2014 for orders and signed-in customers \u2014 the customer identifier, name, email address and phone number, together with the SHA-256 hashes of the email and phone. The name, email address and phone number can be excluded in the plugin settings, in which case only the hashes are sent.<\/p>\n\n<p><strong>What is not sent:<\/strong> passwords, payment card data, and the contents of any WordPress or WooCommerce table beyond the fields listed above.<\/p>\n\n<p>Service terms: https:\/\/flow.databrief.sa\/terms?lang=en\nPrivacy policy: https:\/\/flow.databrief.sa\/privacy?lang=en<\/p>\n\n<p>Both documents are published in English and Arabic; drop the <code>?lang=en<\/code> for the Arabic version.<\/p>\n\n<p>Because the plugin transmits customer data to a third-party service, tell your visitors about it in your own privacy policy, and gate it behind your consent banner if the law that applies to you requires consent for analytics.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to WooCommerce \u2192 Flow Analytics.<\/li>\n<li>Paste the site key from your Flow account (Flow \u2192 Install).<\/li>\n<li>Press \"Test connection\". A green answer means the store is connected.<\/li>\n<\/ol>\n\n<p>If your Flow site restricts traffic to specific domains, add the domain shown on the settings screen to that list.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20google%20tag%20manager%20or%20a%20data%20layer%3F\"><h3>Do I need Google Tag Manager or a data layer?<\/h3><\/dt>\n<dd><p>No. The plugin reads WooCommerce itself. If you already push a data layer for another tool, leave it alone \u2014 the Flow tracker never reads it, so nothing is counted twice.<\/p><\/dd>\n<dt id=\"will%20orders%20be%20counted%20twice%3F\"><h3>Will orders be counted twice?<\/h3><\/dt>\n<dd><p>No. The browser and the server both know whether the other one already reported an order, and the browser additionally remembers which orders it has reported.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20customer%20pays%20and%20closes%20the%20tab%3F\"><h3>What happens when a customer pays and closes the tab?<\/h3><\/dt>\n<dd><p>Your server reports the order a few minutes later, with the visitor id captured at checkout, so attribution is preserved.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20cart%20and%20checkout%20blocks%3F\"><h3>Does it work with the Cart and Checkout blocks?<\/h3><\/dt>\n<dd><p>Yes, with both the blocks and the classic shortcode checkout.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20high-performance%20order%20storage%3F\"><h3>Does it work with High-Performance Order Storage?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses WooCommerce's order API and declares HPOS compatibility.<\/p><\/dd>\n<dt id=\"can%20i%20keep%20customer%20email%20addresses%20out%20of%20flow%3F\"><h3>Can I keep customer email addresses out of Flow?<\/h3><\/dt>\n<dd><p>Yes. Enable \"Send only hashed email and phone\" in the settings. Flow then receives SHA-256 hashes, which are enough to recognise a returning customer but cannot be read back.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20errors%3F\"><h3>Where do I see errors?<\/h3><\/dt>\n<dd><p>WooCommerce \u2192 Status \u2192 Logs, under the <code>flow-analytics<\/code> source.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Documentation: the External Services section now lists every field sent, including product SKU and chosen variant, order status, the shopper's billing country, the new-customer flag and the refund id.<\/li>\n<li>Translations are now delivered through translate.wordpress.org instead of being bundled with the plugin.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Send customer name with identify and purchase events so it appears in Flow reports.<\/li>\n<li>Read the name from the billing address first, then the shipping address, then the user profile.<\/li>\n<li>Omit the name when \"Send only hashed email and phone\" is enabled, alongside the other raw identifiers.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Product view, product list, search, cart, checkout, purchase, refund and identify events read directly from WooCommerce.<\/li>\n<li>Server-side order reporting for shoppers who never return to the store, with de-duplication against the browser.<\/li>\n<li>HPOS and Cart\/Checkout blocks compatibility.<\/li>\n<li>Do Not Track, Global Privacy Control and WP Consent API support.<\/li>\n<\/ul>","raw_excerpt":"Send WooCommerce product views, cart activity, checkouts and orders to your Flow analytics account. No data layer and no tag manager needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345295"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/databrief"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345295"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345295"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345295"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345295"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345295"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}