fetch
ChatGPTRetrieve the full record for an opaque document id from MerchantFlow's retrieval results. Returns id, title, text, URL, and metadata. Best for: the full record behind a retrieval result id. Not for: keyword lookups.
find_cogs_gaps
ChatGPTFind products or variants with missing or stale COGS data that are affecting P&L accuracy. Returns product titles, SKUs, and the gap reason. Best for: a to-do list of products whose cost data is missing or stale. Not for: coverage percentages or cost history.
find_duplicate_customers
ChatGPTGroup orders by customer email hash to find customers under multiple names or phone numbers. Best for: customers who appear under more than one name or phone number. Not for: customer value rankings.
generate_report
ChatGPTGenerate the data for any report over a date range - the same numbers the dashboard shows. The report selector is exactly one of report_id (a saved or custom report identifier) and template_key (a built-in template such as pnl or product_performance). Dates default to the report's own default timeframe ending today; narrower ranges reduce truncation. Best for: the figures of a saved or template report. Not for: discovering which reports exist.
get_ad_performance
ChatGPTGet paid and owned channel performance for a date range across Meta, Google, Snapchat, TikTok, Pinterest and Klaviyo, with spend, clicks, impressions, conversions and the revenue each platform reports for itself. Group by platform, campaign, or country. Klaviyo is an owned channel billed as a flat fee, so its spend is 0 by design and it is marked is_owned_channel. Best for: spend, clicks, impressions and conversions per platform, campaign or country. Not for: blended marketing efficiency against total store revenue.
get_anomalies
ChatGPTGet recent anomalies detected by MerchantFlow (profit drops, spend spikes, sync failures, integration errors). Best for: unusual movements MerchantFlow has flagged. Not for: a general activity log.
get_bank_balance
ChatGPTGet the current bank balance, burn rate over the last 30/60/90 days, and projected runway in days. Best for: cash position, burn and runway. Not for: accounting profit.
get_bottom_products
ChatGPTGet the bottom N products ranked by profit or margin. Useful for finding SKUs that are losing money. Supports a minimum units filter to drop low-volume noise. Best for: loss-making or lowest-margin products. Not for: best sellers.
get_cac_payback
ChatGPTGet overall customer acquisition cost and payback metrics for a date range.
get_channel_roas
ChatGPTGet blended MER (Marketing Efficiency Ratio) and per-platform spend over a date range, with optional comparison to the previous period. Each row also carries platform_reported_revenue and platform_reported_roas - the ad platform’s own self-attributed claim. These figures are non-additive across platforms because Meta and Google may claim the same order; MerchantFlow-attributed revenue remains null in this result. Best for: blended MER and per-platform spend efficiency against total store revenue. Not for: campaign-level delivery metrics.
get_cogs_coverage
ChatGPTReport how much of the store's catalogue, units sold, and revenue is covered by COGS data over a date range (default: last 30 days), including margin distribution and the top products still missing costs. Best for: what share of products, units and revenue has cost data. Not for: a product-by-product to-do list.
get_cohort_analysis
ChatGPTGet customer cohort analysis showing LTV, repeat purchase rate, and revenue by cohort month/week over time. Best for: how acquisition cohorts retain and spend over time. Not for: one customer's history.
get_combined_pnl
ChatGPTCombined profit and loss across every linked store for a date range (default: last 30 days), converted into one reporting currency. Set per_store to also get the per-store breakdown. Requires a plan covering more than one store. Best for: one profit and loss across several linked stores in a single currency. Not for: a single store.
get_customer_detail
ChatGPTGet lifetime value detail for a single customer: net profit, revenue, CAC, tenure, and order history (most recent 200 orders). Customer name and email in the response are partially redacted. The customer identifier is the id returned in the customer lifetime value list. Best for: one known customer's lifetime figures and orders. Not for: finding or ranking customers.
get_date_range_summary
ChatGPTGet a high-level summary of revenue, profit, orders, ad spend, and top metrics for an arbitrary date range, suitable for quick time-period comparisons. Best for: a quick headline snapshot of a period. Not for: a cost-by-cost profit and loss breakdown.
get_discount_code_performance
ChatGPTGet per-discount-code margin metrics: uses, revenue, discount cost, COGS, allocated ad spend, gross profit, and margin percent, ranked by any column. Pre-aggregated rolling timeframes provide the fastest results, while an explicit start_date/end_date produces a custom range computed live. Best for: whether each discount code made money. Not for: gift cards.
get_expenses_breakdown
ChatGPTGet OPEX and CAPEX expenses broken down by category and vendor over a date range, including recurring expenses and CAPEX amortisation. Best for: operating and capital expenses by category or vendor. Not for: cost of goods, ad spend or payment fees.
get_integration_status
ChatGPTGet the connection status of all integrations (Shopify, WooCommerce, ad platforms, 3PL and fulfilment providers) including last sync time and any errors. Best for: whether each connection is healthy and when it last synced. Not for: plan limits or rate-limit headroom.
get_invoice_import_draft
ChatGPTReturns the progress of a draft invoice cost import: its status and, once read, the supplier, invoice lines and their matched products. Best for: the file viewer following a draft invoice import's progress. Not for: cost history or current costs.
get_item_cogs
ChatGPTGet the current cost of goods sold and full cost history for one item, identified by sku, product_id (internal product id), or variant_id (the commerce platform's variant id, e.g. the Shopify variant id - not an internal uuid). Optional on_date returns the cost effective on that date. Best for: one item's current cost and cost history. Not for: browsing all costs.
get_ltv_summary
ChatGPTGet customer lifetime value summary, optionally segmented by country, including average LTV, CAC, and LTV:CAC ratio. Best for: store-wide lifetime value averages and LTV:CAC. Not for: listing or ranking individual customers.
get_market_products
ChatGPTGet the Markets country drilldown for a date range, ranked by variant and bundle contribution margin using the same service as the dashboard. Best for: which products and bundles drive profit within one country. Not for: the country-by-country overview.
get_markets
ChatGPTGet the Markets dashboard table for a date range, including real geo ad spend, blended fallback spend, revenue, net profit, margins, ROAS, POAS, CAC, and spend-without-orders markets. Best for: profit, spend and efficiency per country. Not for: products within one country.
get_mca_status
ChatGPTGet active revenue-based funding (MCA) agreements, repayment schedule, and impact on current period P&L. Best for: revenue-based funding agreements and their repayments. Not for: general expenses.
get_north_star_status
ChatGPTGet the current status of all configured North Star KPIs with target, actual, delta, and trend direction. Best for: progress against the store's configured KPI targets. Not for: metrics outside those KPIs.
get_pnl_summary
ChatGPTGet a profit and loss summary for the tenant's store over a date range, broken down by revenue, COGS, ad spend, expenses, fees, and net profit. Optionally compare to the previous period or previous year for percentage deltas. Best for: the full profit and loss of one store over any date range, with an optional comparison period. Not for: several linked stores combined, or profit per country.
get_product_detail
ChatGPTGet detailed profitability for a specific product including current catalogue price, variant-level pricing breakdown, COGS, and 90-day trend from the analytics snapshots. Best for: one known product's profitability, pricing and trend. Not for: rankings across the catalogue.
get_profile
ChatGPTReturns the MerchantFlow account and store this connection is signed in as: an opaque profile id that stays the same across reconnections, the user's name and email, and the store name as a label. Best for: identifying which account and store this connection belongs to. Not for: plan limits or store analytics.
get_recent_activity
ChatGPTGet a chronological feed of recent tenant activity: syncs, large orders, and integration events. Best for: a timeline of recent syncs, large orders and integration events. Not for: flagged anomalies.
get_revenue_breakdown
ChatGPTGet revenue broken down by country over a date range. Best for: splitting revenue into groups over a date range. Not for: profit, costs or ad-platform metrics.
get_store_list
ChatGPTList the stores linked to this account, with each store's platform, currency, timezone, connection state and last sync time. The result defines the store set available for combined figures. Best for: which stores are linked to this account. Not for: their combined profit.
get_tax_insights
ChatGPTGet period tax totals and the blended effective tax rate over a trailing N-day window, plus a per-country split. Tax figures combine tax the platform reported on orders with tax computed from active manual TaxRule entries where the platform reported none (or a fixed-amount rule applies). Mirrors the dashboard tax settings page tiles. Best for: tax totals and the effective tax rate, by country. Not for: the wider profit and loss.
get_top_products
ChatGPTGet the top N products ranked by revenue, profit, margin, or units sold over a date range using the same order-based product profit math as the dashboard. Best for: ranking the best products by revenue, profit, margin or units. Not for: loss-making products or one product's detail.
list_capabilities
ChatGPTReport this connection's plan tier, available history, cross-store availability, current rate-limit headroom, and known data limits. Best for: this connection's plan limits, history window and rate-limit headroom. Not for: integration health.
list_cogs
ChatGPTList cost-of-goods-sold entries for all items and variants in this store, newest effective date first, enriched with the matching product and variant. Paginate with page/page_size; filter by SKU substring or effective-date range. Best for: browsing cost entries across the catalogue. Not for: one item's cost history.
list_customers
ChatGPTList customers ranked by lifetime value (net profit after allocated overhead, summed across each customer's full order history) - the same source as the dashboard Customers page. start_date/end_date filter WHICH customers appear, by their first-order date; they do NOT clamp a customer's lifetime totals to that window. Customer name and email in the response are partially redacted. Each returned id identifies a customer record whose detail includes up to 200 recent orders. Best for: ranking individual customers by lifetime value. Not for: store-wide averages.
list_reports
ChatGPTList every report available to this store: saved template reports, custom reports, and the built-in template catalogue. Each returned report id or template key identifies a report available for generation. Best for: discovering which reports exist. Not for: the report figures themselves.
lookup_order
ChatGPTLook up a single order by number and return its line items, margin, fulfillment state, and refund history. Best for: one known order's line items, margin, fulfilment and refunds. Not for: looking through many orders at once.
open_cogs_import_file
ChatGPTOpens a supplier invoice (PDF or image) or a cost CSV in the MerchantFlow app beside the conversation, to preview product cost changes before importing them in MerchantFlow. Best for: previewing a supplier invoice or cost CSV the user opened, beside the conversation. Not for: reading current costs or applying cost changes.
open_merchantflow
ChatGPTOpens the MerchantFlow app on one page of the store's figures for a preset period: today's snapshot, profit and loss, products, ads, markets or orders. Returns each page block's figures, or why the connection cannot show it. Best for: the merchant browsing their store's pages in the MerchantFlow app, opened from the ChatGPT sidebar. Not for: answering a specific question in the conversation.
open_profit_waterfall
ChatGPTOpens the interactive profit waterfall for a preset period in the tenant's timezone - the last 7, 30 or 90 days, this month, last month or year to date (default: the last 30 days). Returns net revenue, each cost line and net profit for that period. Best for: redrawing the interactive waterfall on a preset period from the chart's own period buttons. Not for: arbitrary date ranges or period comparisons.
open_store_pulse
ChatGPTOpens a compact panel with yesterday's revenue, profit and orders against the day before, the last seven days, and anomalies MerchantFlow flagged this week. Best for: a compact view kept beside the conversation, opened as a conversation tab. Not for: detailed analysis.
preview_cogs_csv
ChatGPTCompares a cost CSV with the store's current product costs: which SKUs match, and what each cost would change to. Changes nothing. Best for: the file viewer's diff of a cost CSV against current costs. Not for: importing or saving costs.
query_order_basket_analytics
ChatGPTAnalyse orders filtered by what is IN the basket (which products, and how many units), broken down by region, channel or month. Answers questions the pre-computed dashboard context cannot, such as 'orders containing two chairs, average shipping cost per region'. Returns order counts, net revenue, and BOTH shipping figures: what customers were charged (revenue) and what fulfilment actually cost the merchant, with an explicit coverage percentage for the cost side. Best for: totals over orders defined by what they contain, such as orders with two or more of a product. Not for: finding specific orders.
resolve_products
ChatGPTResolve a product name, category word or SKU (e.g. 'chairs', 'oak desk', 'CHR-01') to concrete product IDs in this store's catalog. Each match includes a similarity score and supports disambiguation of natural-language product references for product-level basket analysis. Best for: turning a product name or SKU into catalogue ids ahead of basket analysis. Not for: product profitability.
run_abandoned_cart_identifier
ChatGPTRecent abandoned checkouts with recoverable value. Read-only - does not send messages. Best for: recoverable abandoned checkouts. Not for: past customers who have stopped buying.
run_business_valuation
ChatGPTRun the SDE-multiple business valuation for the tenant based on current P&L data, growth, margin, MER, and risk scoring. Returns valuation range with sensitivity analysis. Best for: an estimate of what the business is worth. Not for: day-to-day profit reporting.
run_collection_membership_audit
ChatGPTCollections in the store with product count and last-updated date, flagging empty collections. Returns the first "limit" collections and reports how many matched in total. The result covers collection hygiene, empty collections, and potentially stale collections. Best for: empty or stale collections. Not for: individual product listings.
run_customer_spend_tier_classifier
ChatGPTClassify customers into VIP / regular / casual / one-time tiers based on lifetime spend and order count. Best for: segmenting customers into spend tiers. Not for: ranking individual customers by profit.
run_dead_stock_report
ChatGPTIdentify products with zero sales in the window and (when Shopify is connected) their current on-hand inventory. Best for: products with zero sales and stock still on hand. Not for: ranking products that do sell.
run_fulfillment_digest
ChatGPTDigest of open orders by fulfillment status and age. Surfaces orders stuck for more than 3 days. Best for: unfulfilled orders and how long they have waited. Not for: carrier tracking of shipped orders.
run_gift_card_balance_report
ChatGPTOutstanding gift card balance grouped by currency plus redemption percentage against initial issuance. Best for: outstanding gift card liability. Not for: discount code performance.
run_high_risk_order_report
ChatGPTShopify-flagged orders with medium or high fraud risk in the recent window. Read-only. Best for: orders Shopify flagged for fraud risk. Not for: general order lookups.
run_inventory_valuation
ChatGPTTotal dollar value of inventory currently on hand (on-hand quantity x recorded COGS per SKU). Best for: the value of stock on hand at cost. Not for: sales velocity.
run_multi_location_inventory_audit
ChatGPTFind variants that are out of stock at some locations but available at others - candidates for transfers. Best for: stock imbalances between locations. Not for: store-wide totals.
run_page_content_audit
ChatGPTStore pages flagged by content thinness, unpublished status, or staleness. Best for: thin, unpublished or stale store pages. Not for: product listings.
run_product_completeness_score
ChatGPTScores every product on a 0-100 scale based on images, SEO fields, description length, and taxonomy. Best for: an overall 0-100 listing quality score per product. Not for: a single issue such as images or SEO alone.
run_product_image_audit
ChatGPTProducts without a featured image or fewer than N total images. Best for: products missing images. Not for: overall listing quality scores.
run_product_viability
ChatGPTRun a product viability simulation: given a proposed selling price, COGS, and expected ad spend, compute break-even ROAS, contribution margin, and sensitivity analysis against store averages. Best for: a hypothetical product that is not selling yet. Not for: the performance of existing products.
run_repeat_purchase_rate
ChatGPTPercentage of customers in the selected window who placed two or more orders. Best for: the share of customers who bought more than once in a window. Not for: lifetime value.
run_seo_metadata_audit
ChatGPTProducts missing SEO title or with SEO description shorter than threshold. Best for: products missing SEO titles or descriptions. Not for: overall listing quality scores.
run_stock_velocity
ChatGPTRank products by units sold in the selected timeframe and classify them as fast, steady, slow, or dead. Best for: classifying every product from fast to dead by units sold. Not for: inventory value.
run_url_redirect_audit
ChatGPTURL redirects in the store, flagging loops, empty targets and redirect chains. Returns the first "limit" redirects and reports the total matched. The result covers broken links, redirect loops, and SEO risks from redirect chains after a replatform. Best for: broken or looping redirects. Not for: page content.
run_win_back_candidates
ChatGPTIdentify valuable customers who haven't purchased in the last N days. Best for: valuable past customers who have stopped buying. Not for: abandoned checkouts.
run_wismo_digest
ChatGPTWhere Is My Order digest - in-flight orders with tracking status, age, and destination. Best for: carrier tracking status of orders already shipped. Not for: orders not yet fulfilled.
search
ChatGPTSearch this MerchantFlow store for products and orders matching a query. Returns retrieval documents with an id, title, and URL; each id resolves to its full record. This endpoint provides record retrieval rather than profit, ad, cohort, or valuation analytics. Best for: finding a product or order record by keyword. Not for: analytics.
search_mentions
ChatGPTLists products and ad campaigns from this store matching the text typed after @ in the ChatGPT composer, as links to their records. Best for: the ChatGPT composer @-mention picker listing products and campaigns. Not for: analytics or order lookups.
search_orders
ChatGPTSearch orders by date range, customer email, order number, or product SKU. Returns a summary of matching orders with profit per order. Hard-capped at 100 results. Best for: finding orders by date, customer email, order number or SKU, with profit per order. Not for: one order's full line items, or totals over basket contents.
settings_read
ChatGPTReturns the signed-in user's own MerchantFlow preferences for this store - the ChatGPT app, the Daily AI Summary schedule and anomaly alert emails - with their schema and layout. Best for: ChatGPT's plugin settings page showing the user's own preferences. Not for: store data or tenant-wide configuration.
settings_update
ChatGPTChanges the signed-in user's own MerchantFlow preferences for this store - the ChatGPT app's home page and period, the Daily AI Summary schedule and anomaly alert emails. Changes no store data and no setting shared with the team. Best for: ChatGPT's plugin settings page saving the user's own preferences. Not for: changing store data, costs or tenant-wide configuration.
start_invoice_import_draft
ChatGPTStarts a draft cost import from a supplier invoice: the invoice is read and its lines matched to products, for review in MerchantFlow. Counts toward the monthly invoice extraction allowance. Costs change only when the draft is applied in MerchantFlow. Best for: the file viewer starting a draft import from a supplier invoice the user chose to read. Not for: applying costs, which happens in MerchantFlow.