- Brand
- Unknown
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Connect Fospha's daily, full-funnel measurement into ChatGPT, so you can use natural language to understand the impact of every channel across everywhere you sell without dashboards or manual reports.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-10-02
- Tool count
- 20
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Get alerts for Fospha (North & South America)
Get updates when Fospha (North & South America)’s Discoverability Score or category rank changes.
Competitive lineup
20 tools agents can invoke
Returns Fospha clients accessible to the current user. IMPORTANT: Call this tool FIRST in every conversation to discover available clients. Users typically know their brand/company name, not their client_id. If only one client is returned, use that client_name automatically without asking the user. If multiple clients match, present the list of names and ask the user to pick one.
get_clients
Compares how three attribution models — Fospha (data-driven), Last Click (GA), and Ad Platform — value the same channels. Shows revenue, conversions, ROAS, CPP, CAC, and AOV from each model, plus computed discrepancy percentages (fa_vs_lc_*_pct, fa_vs_ap_*_pct). Use when the user asks: - "What does Meta report vs what Fospha says?" - "Where does ad platform disagree with Fospha?" - "Which channels are over-credited by last click?" - "Has the gap between models changed over time?"
get_attribution_comparison
Fetch business event annotations in Fospha for a date range. CONTEXT LAYER: Performance data tools (get_summary, get_markets, get_channels, get_campaign_types, get_campaigns, get_trends, get_attribution_comparison) automatically include relevant annotations in their response. Call this tool whenever the user specifically asks to see, list, or search annotations (e.g. "what annotations do I have?", "show me events for last month"), or whenever analysing performance trends, anomalies, or period-over-period changes to surface relevant business context. To create or update an annotation, use manage_annotations instead.
get_annotations
Create or update business event annotations in Fospha. Use this tool to add or modify annotations that provide context for marketing performance analysis. To fetch existing annotations, use get_annotations instead — calling with action='update' requires an event_id, which you obtain from get_annotations first. IMPORTANT BEHAVIOUR: - When action='create': ALWAYS confirm all details with the customer BEFORE calling this tool. Gather event_name, event_types, start_date, end_date, and any optional fields through conversation first. - When action='update': Call get_annotations first to obtain the event_id, then call with ALL fields (not just the changed ones) — the backend replaces the full record. BULK / MULTI-ANNOTATION HANDLING: This tool creates one annotation per call — there is no bulk endpoint. When a user provides many annotations at once (e.g. from a document or spreadsheet): - Parse all annotations first and present a summary table for the user to review before creating any. - Create in small batches (up to 5), pausing between batches to report progress and let the user abort if needed. - If a single create fails, report it, skip it, and continue with the remaining annotations. - For large sets (50+), warn the user it will take time and suggest confirming a small subset first as a test. - This tool is rate-limited — spacing out calls avoids throttling.
manage_annotations
Returns performance data grouped by campaign type, campaign strategy, and campaign objective — across channels and sources. Use to understand how different campaign strategies (e.g. Prospecting vs Retargeting, Brand vs Non-Brand) perform. Dimensions returned: channel_group, source, campaign_type, campaign_objective, campaign_strategy. Use when the user asks: - "How are my Prospecting campaigns doing?" - "Compare Retargeting vs Prospecting ROAS" - "Which campaign objectives drive the most revenue?" - "Show me performance by campaign strategy" - "Break down by campaign type across channels" Use get_filter_options(filter_name="CAMPAIGN_TYPE"), get_filter_options(filter_name="CAMPAIGN_OBJECTIVE"), get_filter_options(filter_name="CAMPAIGN_STRATEGY") to discover available values.
get_campaign_types
Returns granular campaign, adset, or ad level performance data with full filter operator support. Each row includes channel, source, campaign type/strategy/objective context plus all core and engagement metrics. Name filter operators: - "is": exact match — use when user specifies an exact campaign name. - "contain": partial match (default) — use when user says "campaigns with X" or "containing X". - "doesnt_contain": exclusion — use when user says "exclude campaigns with X" or "not containing X". Granularity levels: - "campaign": one row per campaign (default). - "adset": one row per adset within each campaign. - "ad": one row per ad (most granular). Use when the user asks: - "Show me all campaigns on Facebook" - "Which campaigns contain 'Brand' in the name?" - "Performance of campaigns excluding 'Test'" - "Show me adset level data for Meta" - "What are my top spending ads?"
get_campaigns
Returns performance data broken down by channel group and source (e.g. Paid Social / facebook, Paid Search / google). Includes core metrics, engagement metrics (impressions, clicks, CPM, CTR), and computed spend_share_pct. Use when the user asks: - "How is Paid Social performing?" - "Which channels have the best ROAS?" - "What's my spend allocation across channels?" - "Compare Facebook vs Google performance" - "Show me channel breakdown with spend share" - "Show me ROAS by Business Unit" (with custom_dimensions)
get_channels
Lists all Custom Categories for a client. Custom Categories are computed reporting axes the client has defined using matching rules on channel, source, or campaign name — e.g. "Business Unit" mapping campaigns to Branding / Performance / Social. Once you know a Custom Category's name, pass it to any data tool's custom_categories parameter to include it as a column in the response, or to custom_category_filters to filter rows by a category value. PRO tier and above, or LITE with the Customization Suite add-on. Others receive a tier-denied error. Use when the user asks: - "What Custom Categories do I have?" - "What Custom Categories are set up?" - "Do I have a Business Unit category?" - "Show me what dimensions are available" After calling this tool, pass dimension names to data tools: get_channels(custom_categories=["Business Unit"]) get_campaigns(custom_category_filters=[{"dimension": "Business Unit", "values": ["Branding"]}]) get_summary(custom_categories=["Business Unit"])
get_custom_categories
Lists all custom metric definitions for a client. Custom metrics are calculated fields the client has created from standard KPIs (e.g. "Blended ROAS", "Total CAC", "Revenue per Visit"). Once you know a custom metric's name, pass it to any core data tool's custom_metrics parameter to include it in the response. For example: get_channels(custom_metrics=["Blended ROAS"]) get_trends(custom_metrics=["Revenue per Visit"]) get_summary(custom_metrics=["Blended ROAS"]) Use when the user asks: - "What custom metrics do I have?" - "Show me my custom KPIs" - "Do I have a Blended ROAS metric?"
get_custom_metrics
Returns data freshness status and any unmodelled date ranges. Use when the user asks "is my data up to date?", "when was data last updated?", or "are there any data gaps?". The response includes: - ``data_as_of``: the date through which data is available. - ``last_data_run``: timestamp of the last pipeline run. - ``date``: the freshness date from the lastUpdatedDate query. - ``color``: status indicator (green/orange/red). - ``unmodelled_ranges``: list of date ranges where modelled data is unavailable (market + sales_platform + dates). - ``start_date``: (only when *sales_platform* is provided) earliest data date for that platform.
get_data_freshness
Returns the possible values for a specific filter dimension. IMPORTANT: Call this tool to discover valid values for dynamic filters (markets, channels, sources, currencies) before passing them to other tools. Each client has different available values. Returns a list of {key, value, default_selection, ranking, additional_data} objects. Items with default_selection=true are the client's defaults.
get_filter_options
Answer questions about Fospha products, features, and platform setup. Use this tool whenever the user asks about: - How any Fospha product works (Core, Halo, Beam, Prism, Spark AI) - Attribution methodology, reconciliation, model accuracy, or validation - Platform setup: sign-up, UTM parameters, dashboard configuration - Metrics: ROAS, CAC, CPP, leading indicators, outlier capping - Dashboards: KPI Health Check, Channel Health Check, Optimization, Reporting - Exports, targets, saved views, annotations, custom metrics, custom channel groups - Amazon and TikTok Shop commerce measurement - Benchmarking, year-over-year analysis, cross-channel optimisation - MCP setup, Spark ROAS Agent, Ask Fospha AI - Integrations: Fospha API, TikTok Shop authorization - Competitor comparisons - Why Fospha numbers differ from Meta, Google, GA4, or Shopify HOW TO RESPOND: 1. Read the `results` array — each entry has a `snippet` (relevant content) and a `source` URL 2. Answer the user's question directly and naturally in your own words, using the snippet content as your source of truth 3. Do NOT say "according to the help center" or "the article says" — just answer as if you know the answer 4. At the bottom, add a "Read more:" section with clickable links using the `source` URLs and `title` values from the results
search_help_center
Returns information about the Fospha MCP Server, including what it is, what you can ask, available tools, parameters, and recommended workflows. Use when the user asks what Fospha can do, what tools are available, how to use them, or wants to test the connection.
fospha_intro
Returns performance data broken down by geographic market (e.g. UK, US, DE). Each row is one market with revenue, spend, ROAS, conversions, and all core metrics. Use when the user asks: - "How is the UK performing vs US?" - "Which market has the best ROAS?" - "Show me performance by country" - "Break down revenue by market" - "Weekly UK revenue trend by market"
get_markets
Fetches KPI targets for a Fospha client from the Targets API. IMPORTANT: You MUST set the media, dimension, and kpi parameters correctly based on what the user asks for. Do NOT use defaults blindly.
get_targets
Returns time-series performance data for trending any KPI over time. Each row has a granular_date plus all core metrics (ROAS, revenue, spend, conversions, etc.) and any custom metrics requested. Supports period-over-period comparison: when using preset periods or comparison dates, returns both this_period and previous_period time-series for overlay charts. Use when the user asks: - "Show me ROAS trend over the last 90 days" - "How has revenue trended weekly?" - "Plot spend over time for Paid Social" - "Daily conversion trend for the UK market" - "Compare this month's trend to last year" Engagement metrics (impressions, clicks, CPM, CTR) are supported as time-series. For per-source detail, prefer get_channels or get_markets — they return per-row data instead of blended trends. If time-series aggregation of a media metric fails for a client, the tool degrades gracefully and returns surviving metrics with a partial_response block listing which fields were dropped.
get_trends
Returns overall performance totals for a client — revenue, spend, ROAS, conversions, CPP, CAC, and more. Includes period-over-period comparison (percentage and absolute change) when a preset period or comparison dates are used. Use when the user asks: - "How is my business doing?" - "What's my ROAS / revenue / spend?" - "Show me overall performance for last 30 days" - "Compare this month to last month" For breakdowns by market, channel, or campaign, use the dedicated tools instead. Engagement metrics (impressions, clicks, CPM, CTR) are supported and round-trip correctly. For per-source detail, prefer get_channels or get_markets — they return per-row data instead of blended totals. If summary-level aggregation of a media metric fails for a client, the tool degrades gracefully and returns the surviving metrics with a partial_response block listing which fields were dropped.
get_summary
Peer benchmark data — median SoW (Share of Spend) and SoR (Share of Revenue) across Fospha's client base, broken down by channel group and source. Use when the user asks: - "How does my channel spend compare to peers?" - "Am I over- or under-indexed vs competitors on Paid Social spend?" - "What share of spend do peers put into Google vs Meta?" - "Show me peer benchmarks for all channels" Returns sowBenchmark and sorBenchmark per channel — matching the Fospha webapp benchmark panel. Does NOT return ROAS, CAC, CPP, or CTR benchmarks. Do NOT use this tool to retrieve the client's own performance data — use get_channels, get_summary, or get_markets for that. Combine with get_channels for a side-by-side comparison: get_benchmarks returns peer SoW/SoR; get_channels returns the client's own spend share so they can be compared directly. Benchmarks represent median values across all contributing Fospha clients (minimum 10 clients per data point for privacy). The "window" in the response reflects the latest pipeline aggregation window — use it to show data freshness. Granularity is auto-selected to match webapp behaviour: - channel_group filter set → "group_source_within_group" (source share within that group) - source filter set → "group_source_within_source" (channel share within that source) - no filter → "group_source" (absolute share per channel + source) Pass granularity explicitly to override. Granularity options: - "group_source" — channel group + source breakdown (e.g. Paid Social / Meta) - "channel_group" — channel group only - "campaign_objective" — by campaign objective - "group_source_within_group" — source share within its channel group - "group_source_within_objective" — source share within a campaign objective - "group_source_within_source" — channel group share within a source - "group_within_group" — channel group's own share (always ~100%; scoped to the channel group's own total, for comparing "you" against a benchmark filtered to the same channel group) - "group_within_objective" — channel group share within a campaign objective (across all channel groups) - "group_source_within_group_and_objective" — source share within a channel group AND a campaign objective, both at once - "group_source_within_group_and_source" — channel group's own share within a channel group AND source filter combined (always ~100%) - "group_source_within_source_and_objective" — channel share within a source AND a campaign objective, both at once - "*_excl_amazon_tiktok" variants of group_source, channel_group, campaign_objective, group_within_objective, group_source_within_objective, group_source_within_source, and group_source_within_source_and_objective — same as their base granularity, but the denominator also excludes Amazon and TikTok Shop channel-group spend. Auto-selected whenever excluded_sales_platforms resolves to exactly ["amazon", "TikTok Shop"] (the default) and the active granularity has a variant. Pass non-default excluded_sales_platforms to retain the base granularity. An explicit base granularity is still upgraded when a variant exists. Channels with share of wallet below 5% are suppressed (dashboard parity).
get_benchmarks
Forecasts the incremental impact of paid media spend changes across channels. Uses saturation curve modelling to predict KPI outcomes at a specified daily spend level. Each channel is assessed for headroom (saturation_point - average_spend) and assigned a scaling status. Headroom predicts how much spend can scale before diminishing returns. Positive = room to scale, zero/negative = at or above saturation, "—" = Beyond Predictable Range. Use for budget allocation, channel efficiency, scaling decisions, and spend optimisation. IMPORTANT: Beam uses a fixed ML modelling window (typically quarterly). The period is NOT user-selectable. Within that window, the summary provides lookback metrics at 7, 14, 30, and 90 day intervals. DISPLAY DEFAULT: When presenting data, default to the last 7 day values (e.g. average_last_7_day_spend, average_last_7_day_target, last_7_day_kpi, share_of_wallet_7d). Only use other lookback windows (14d/30d/90d) if the user explicitly asks for them. Headroom statuses (based on spend/saturation ratio): Efficient Scaling (spend < 80% of saturation), Cautious Scaling (80-100%), Inefficient Scaling (>=100%), Exploratory (saturation unknown). The lead KPI determines what metrics mean: - CPP (Cost Per Purchase): target = daily conversions - CAC (Customer Acquisition Cost): target = daily new customer acquisitions - ROAS (Return on Ad Spend): target = daily revenue Use when the user asks: - "Where should I put more budget?" - "Which channels are over-saturated?" - "What CAC/CPP/ROAS can I expect if I scale TikTok?" - "If I increase my daily spend on X, what incremental return will I get?" - "What channels have the most headroom?" - "Which channels are in Cautious Scaling?" - "Black Friday spotlight" or "BF performance"
forecast_spend_optimization
Fetches Beam (spend optimisation) data — channel headroom, scaling status, saturation curves, and campaign efficiency. IMPORTANT: Beam uses a fixed ML modelling window (typically quarterly). The period is NOT user-selectable — it always uses the latest available modelling window. Within that window, the summary provides lookback metrics at 7, 14, 30, and 90 day intervals. DISPLAY DEFAULT: When presenting data, default to the last 7 day values (e.g. average_last_7_day_spend, average_last_7_day_target, last_7_day_kpi, share_of_wallet_7d). Only use other lookback windows (14d/30d/90d) if the user explicitly asks for them. Saturation Point is a monetary value showing the predicted daily spend at which returns start diminishing. Displayed as "Beyond Predictable Range" when the model cannot reliably predict it. Headroom is the monetary difference between the Saturation Point and average daily spend for each lookback window: headroom_7d, headroom_14d, headroom_30d, headroom_90d. Default "headroom" uses the lookback parameter (default 7d). Positive = room to scale, zero/negative = at or above saturation, "—" = Beyond Predictable Range. Headroom Status is based on the ratio of average daily spend to saturation point (matching webapp logic): - Efficient Scaling: spend < 80% of saturation - Cautious Scaling: spend 80-100% of saturation - Inefficient Scaling: spend >= 100% of saturation - Exploratory: saturation point unknown Each lookback window has its own status (headroom_status_7d/14d/30d/90d). The default "headroom_status" matches the lookback parameter. The lead KPI determines what metrics mean: - CPP (Cost Per Purchase): target = daily conversions - CAC (Customer Acquisition Cost): target = daily new customer acquisitions - ROAS (Return on Ad Spend): target = daily revenue Use when the user asks about: - "How much headroom does Meta have?" - "Which channels are saturated / have room to scale?" - "What's the scaling status for each channel?" - "Campaign efficiency in Paid Social" - "Saturation curve for Paid Search" - "Where should I increase/decrease spend?" - "Black Friday spotlight" or "BF performance"
get_spend_optimization_data
Fospha (North & South America) FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.