collect_feedback
ChatGPTCollects user feedback on the provided response. When to use this tool: - After providing an analysis, a SQL query, or an important response - When you want to know if the response was helpful - Naturally suggest: "Was this response helpful? 👍 👎" Ratings: - 'positive': The response was helpful and accurate - 'negative': The response was not satisfactory - 'neutral': Neither satisfied nor dissatisfied Categories (optional): - 'accuracy': Was the response accurate? - 'relevance': Did the response address the question? - 'completeness': Was the response complete? - 'speed': Was the response time acceptable? - 'other': Other feedback Feedback usage: Feedback is used to improve future responses (RAG, analytics).
create_aggregation_view
ChatGPTCreates a materialized view or stored procedure in the project's BigQuery data warehouse for data pre-aggregation. When to use this tool: - When the user needs to pre-aggregate data from multiple connectors (e.g., cross-channel marketing report) - When a query is too slow to run on-demand and benefits from materialization - When the user asks to "create a view", "save this as a table", "materialize this query" Naming rules (enforced): - Target dataset MUST be 'quanti_agg' (created automatically if it doesn't exist) - Object name MUST start with 'llm_' prefix (e.g., llm_weekly_spend) - Format: CREATE MATERIALIZED VIEW quanti_agg.llm_name AS SELECT ... SQL format: - CREATE MATERIALIZED VIEW: for pre-computed aggregation tables - CREATE OR REPLACE MATERIALIZED VIEW: to update an existing view - CREATE PROCEDURE: for complex multi-step transformations Example: CREATE MATERIALIZED VIEW quanti_agg.llm_weekly_channel_spend AS SELECT DATE_TRUNC(date, WEEK) as week, channel, SUM(spend) as total_spend FROM prod_google_ads_v2.campaign_stats GROUP BY 1, 2 Limits: Maximum 20 active aggregation views per project.
create_use_case
ChatGPTCreates and saves a new use case (reusable analysis). When to use this tool: - When the user asks to "save this analysis", "create a use case", "remember this query" - After building a SQL query the user wants to reuse - To capitalize on a recurring business analysis Available scopes: - 'member' (default): Personal use case, visible only to you - 'project': Shared with the entire project team (requires project_id) Best practices: - Slug: technical identifier in snake_case (e.g., weekly_campaign_performance) - Name: human-readable name (e.g., "Weekly Campaign Performance") - Description: explain the business context and when to use this analysis - SQL template: include the SQL query if it's generic and reusable
delete_aggregation_view
ChatGPTDeletes an aggregation view (materialized view or procedure) from the project. When to use this tool: - When the user explicitly asks to delete/drop a view - To clean up unused or obsolete aggregations - When the project has reached the maximum number of views (20) Warning: This marks the view as dropped in Quanti's tracking. The actual BigQuery object may need manual cleanup. Tip: Use list_aggregation_views first to get the view ID.
delete_use_case
ChatGPTPermanently deletes a use case you created. When to use this tool: - When the user explicitly asks to delete a use case - To clean up obsolete or duplicate use cases Warning: This action is irreversible. The use case will be permanently deleted. Permissions: You can only delete use cases you created. Tip: Ask for user confirmation before deleting.
execute_query
ChatGPTExecutes a read-only SQL SELECT query on the project's BigQuery data warehouse. No data modification allowed. Table format: Use dataset.table (e.g., prod_google_ads_v2.campaign_stats). Do NOT prefix with a project_id.
get_help
ChatGPTSearches the official Quanti documentation (docs.quanti.io) to answer questions about using the platform. When to use this tool: - When the user asks "how to do X in Quanti?", "what is a connector?", "how to configure BigQuery?" - When the user needs help configuring or using a connector (Google Ads, Meta, Piano, etc.) - To explain Quanti concepts: projects, connectors, prebuilds, data warehouse, tag tracker, transformations - When the user asks about the Quanti MCP (setup, overview, semantic layer) This tool does NOT replace: - get_schema_context: to get the actual BigQuery schema for a client project - list_prebuilds: to list pre-configured reports for a connector - get_use_cases: to find reusable analyses - execute_query: to execute SQL Available topic filters: connectors, data-warehouses, data-management, tag-tracker, mcp-server, transformations
get_launch_context
ChatGPTRetrieves the full context of a Quanti launch session. The user has pre-configured an analysis from the Quanti interface and was redirected here with a launch_id. Call this function to get the analysis details to execute (name, prompt or SQL template, project).
get_project_context
ChatGPTGets the context of a project (active connectors, available datasets, branding). Use the folderId obtained from list_projects. The response includes a 'branding' object (logo_url, primary_color, secondary_color, tertiary_color, font_family) when configured. Always call this tool before generating a report to apply the project's visual identity.
get_schema_context
ChatGPTStep 1 of schema discovery: returns the catalog of tables relevant to the user's question. Each table comes with its dataset, business name, dw_table_name and a short description — but NOT the field-level details (no columns, no types, no semantic codes). Use the catalog to identify the most promising candidate(s), then call get_table_schema to fetch the full structure of a specific table before writing SQL. IMPORTANT for SQL queries: Use ONLY the dataset.table format (e.g., prod_google_ads_v2.campaign_stats). NEVER prefix with a project_id.
get_table_schema
ChatGPTStep 2 of schema discovery: returns the full structure of a single table — fields with types, semantic codes, business names, and the semantic definitions referenced by those codes. Call this AFTER get_schema_context once you've picked a candidate table. Returns: dw_table_name (use this in SQL), description, fields[], semantic_definitions{} keyed by code.
get_use_cases
ChatGPTSearches for relevant use cases to answer the user's question. Use cases contain SQL templates and business definitions. Use this function to discover available analyses.
list_aggregation_views
ChatGPTLists aggregation views (materialized views and procedures) created for a project. When to use this tool: - When the user asks "what views exist?", "my aggregations", "my materialized views" - Before creating a new view to check it doesn't already exist - To get the view ID for deletion Response format: Returns a JSON array with each view's ID, full_name (dataset.name), type, SQL, description, and creation date.
list_my_use_cases
ChatGPTLists your personal use cases (scope: member). What is a use case? A use case is a reusable analysis you created or saved. It contains a business description and optionally a SQL template. When to use this tool: - When the user asks for "my analyses", "my use cases", "what I saved" - Before creating a new use case to check it doesn't already exist - To find the ID of a use case to modify or delete Visibility: These use cases are private and only visible to you.
list_prebuilds
ChatGPTLists pre-configured reports (prebuilds) available for a connector. What is a prebuild? A prebuild is a standardized report maintained by Quanti for a given connector (e.g., Campaign Stats for Google Ads). It defines the BigQuery table structure (columns, types, metrics) and the associated API query. When to use this tool: - When the user asks "what reports are available for [connector]?" - When the user doesn't know which data or metrics exist for a connector - BEFORE get_schema_context, to explore available reports for a connector - To understand the data structure before writing SQL Difference with get_schema_context: - list_prebuilds → discover which reports/tables EXIST for a connector (catalog) - get_schema_context → get the actual BigQuery schema for the client project (effective data) Response format: Returns a JSON with for each prebuild: its ID, name, description, BigQuery table name, and the list of fields (name, type, description, is_metric). Fields marked is_metric=true are aggregatable metrics (impressions, clicks, cost...), others are dimensions (date, campaign_name...). SKU examples: googleads, meta, tiktok, tiktok-organic, amazon-ads, amazon-dsp, piano, shopify-v2, microsoftads, prestashop-api, mailchimp, kwanko
list_project_use_cases
ChatGPTLists use cases shared with the project team (scope: project). When to use this tool: - When the user asks for "team analyses", "project use cases" - To see what colleagues have shared - Before sharing a new use case to avoid duplicates Visibility: These use cases are visible to all project members.
list_projects
ChatGPTLists all projects accessible by the user. Call this function first to discover available projects.
list_scheduled_queries
ChatGPTLists scheduled queries configured in the project's BigQuery. What is a scheduled query? A scheduled query is a SQL query automatically executed on a defined schedule in BigQuery. It is used to aggregate data, populate reporting tables, or perform recurring transformations. When to use this tool: - When the user EXPLICITLY asks about scheduled queries, BigQuery pipelines, or transfer configs - When the user asks "what are my scheduled queries?", "my BigQuery pipelines" - To check execution frequency or status of a specific scheduled query Do NOT use this tool for general data queries, analytics, or when the user asks about page views, metrics, or data from connectors. Use get_schema_context + execute_query instead. Available filters: - dataset: filter by destination dataset (e.g., 'prod_reports') - status: filter by status 'active' (enabled) or 'disabled' Response format: Returns a JSON with for each scheduled query: its name, SQL query, execution schedule, destination dataset, status (active/disabled), and last/next execution dates.
run_mmm
ChatGPTRe-runs a Marketing Mix Modeling study previously configured with setup_mmm. Important: Do NOT call this right after setup_mmm. The first run is automatically triggered by setup_mmm. Use run_mmm only to re-launch an existing study later (e.g., after data refresh or parameter changes). Prerequisite: Must have called setup_mmm first to obtain an account_id. Duration: The Meridian fit (MCMC) takes approximately 10-30 minutes depending on data volume. The user will receive an email when results are ready. Results: Results are written to the project's data warehouse (mmm_channel_summary and mmm_weekly_contributions tables). They can then be queried via execute_query.
setup_mmm
ChatGPTConfigures a Marketing Mix Modeling (MMM) study for a project. What is MMM? Marketing Mix Modeling measures the real contribution of each marketing channel (Google Ads, Meta, etc.) on a KPI (leads, revenue, conversions), accounting for external factors (seasonality, holidays, promotions). Recommended workflow: 1. Use get_schema_context to discover the project's tables/columns 2. Generate input SQL queries (KPI, channels, exogenous variables) 3. Validate each query before calling setup_mmm: Use execute_query to run a COUNT() wrapper on each input query (e.g., SELECT COUNT() FROM (<query>)). If any query returns 0 rows, do NOT include it in setup_mmm — warn the user that the data source is empty and ask whether to proceed without it or fix the query. 4. Call setup_mmm with the validated SQL queries — the study is automatically launched after setup 5. Do NOT call run_mmm after setup_mmm: the first run is triggered automatically Important: run_mmm is only needed to RE-RUN an existing study later, not after initial setup. Input queries format: Each query must return a "time" column (DATE) and the requested metrics. - role="kpi": a "kpi" column (the target KPI) - role="channel": "spend" and "impressions" columns + channel_name - role="exogenous": columns named after the exogenous variables + columns[] Granularity: "weekly" is recommended (MMM standard). SQL should aggregate by week. Important: Adapt the SQL dialect to the project's data warehouse type (BigQuery, Snowflake, Redshift).
update_use_case
ChatGPTUpdates an existing use case that you created. When to use this tool: - To improve the description or SQL of an existing use case - To fix an error in a use case - To change a use case's category Permissions: You can only modify use cases you created. Tip: Use list_my_use_cases or list_project_use_cases first to get the use case ID.