list_active_projects to find your project, then list_conversions and list_attribution_models to resolve the right IDs, and finally run_report to fetch the data.
AI agent orchestration
Internal tools that help AI agents plan and validate their work. These are called automatically by the assistant — you do not need to use them directly.analyze_request
analyze_request
clarify, the assistant resolves the ambiguity and calls again. If status is proceed, the assistant follows the returned approach.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
user_prompt | string | Yes | The user’s question or request, verbatim |
project_id | string | No | Omit to auto-resolve |
analyze_response
analyze_response
approved, the assistant presents the response incorporating any suggestions. If status is revise, the assistant makes corrections and calls again with an updated draft.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
response_draft | string | Yes | The full response planned for the user |
approved or revise) and suggestions.Projects and account
Tools for listing projects and checking your account.list_active_projects
list_active_projects
bigqueryProjectId, bigqueryDatasetId). Super users also see serviceAccountEmail.Parameters: NoneReturns: Array of project objects with ID, name, timezone, type, account info, and BigQuery settings.Example prompts:- “List all my SegmentStream projects”
- “Which projects do I have access to?”
- “What is the BigQuery dataset ID for my project?”
get_project
get_project
attributionAdjustment, maxAttributionWindow, workflowState, and billingAccount.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “Show me the details of project X”
- “What timezone and currency is this project configured with?”
- “What features are enabled for this project?”
get_current_user
get_current_user
- “Who am I logged in as?”
- “What role do I have?”
Data sources
Tools for inspecting connected advertising platforms and their import status.list_data_sources
list_data_sources
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What ad platforms are connected to this project?”
- “Show me all data sources”
- “Which data sources are enabled?”
get_data_source
get_data_source
isEnabled, isAuthenticated, options, authMeta, and workflow status.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
data_source_id | string | Yes | The data source ID |
- “Show me the configuration of the Facebook data source”
- “Is the Google Ads data source authenticated?”
get_data_source_logs
get_data_source_logs
startedAt, fillDate, status, errors, and message.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
data_source_id | string | Yes | The data source ID |
- “Show me the recent import logs for our Facebook data source”
- “Are there any import errors for Google Ads?”
- “When was the last successful import for this data source?”
Data streams
Tools for inspecting event data streams (GA4 BigQuery exports, SDK streams, etc.).list_data_streams
list_data_streams
isEnabled, isConnected, displayName, destinationTableName, and config.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What data streams are configured?”
- “Show me all connected event tracking sources”
- “Is the GA4 BigQuery stream connected?”
get_data_stream
get_data_stream
isEnabled, isConnected, displayName, destinationTableName, and config.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
data_stream_id | string | Yes | The data stream ID |
- “Show me the configuration of this data stream”
- “What table does this stream write to?”
test_data_stream_connection
test_data_stream_connection
| Name | Type | Required | Description |
|---|---|---|---|
data_stream_id | string | Yes | The data stream ID |
- “Test the connection for our GA4 data stream”
- “Is the data stream still connected?”
Conversions
Tools for inspecting conversion definitions, statistics, and geographic breakdowns.list_conversions
list_conversions
modelledConversionId, isUniqueConversion, hidden, and legacy fields.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What conversions are configured in this project?”
- “List all active conversions”
- “Show me the conversion IDs I need for reporting”
get_conversion
get_conversion
| Name | Type | Required | Description |
|---|---|---|---|
conversion_id | string | Yes | The conversion ID |
- “Show me how the Purchase conversion is configured”
- “What events trigger this conversion?”
- “What deduplication settings does this conversion use?”
get_conversion_statistics
get_conversion_statistics
totalConversions, totalSessions, totalValues, visitors, conversionsHistory (per date), and exportsHistory.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
conversion_id | string | Yes | The conversion ID |
date_from | string | No | Start date in YYYY-MM-DD format |
date_to | string | No | End date in YYYY-MM-DD format |
chart_granularity | string | No | DAY or HOUR |
- “How many purchases happened last month?”
- “Show me the daily conversion trend for the past 30 days”
- “What is the total conversion value this quarter?”
get_conversions_by_country
get_conversions_by_country
| Name | Type | Required | Description |
|---|---|---|---|
conversion_id | string | Yes | The conversion ID |
project_id | string | Yes | The project ID |
start_date | string | Yes | Start date in YYYY-MM-DD format |
end_date | string | Yes | End date in YYYY-MM-DD format |
- “Which countries had the most purchases last month?”
- “Break down lead conversions by country for Q4”
Attribution models
Tools for inspecting attribution model configurations.list_attribution_models
list_attribution_models
attributionWindow, adjustment, filter, dimension, isDefault, and isDisabled.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What attribution models are available?”
- “Which attribution model is the default?”
- “Show me all attribution model IDs”
get_attribution_model
get_attribution_model
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The attribution model ID |
project_id | string | Yes | The project ID |
- “Show me the configuration of the Multi-Touch attribution model”
- “What is the attribution window for the Last Click model?”
- “Does this model use self-reported attribution?”
Reports and analytics
Tools for querying campaign performance data — the primary way to pull metrics from SegmentStream.run_report
run_report
format: "csv" for a compact representation that uses fewer tokens.Supports 30+ built-in dimensions (campaign_name, ad_platform, country, source_medium, date, etc.) plus custom dimensions. Metrics are passed as a single unified list — the server automatically determines whether each metric is a traffic metric or a conversion metric.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
format | string | No | Response format: json (default) or csv. Use csv for a compact tabular representation |
params.date_range | object | Yes | Primary date range with from and to in YYYY-MM-DD |
params.comparison_date_range | object | No | Comparison date range for period-over-period analysis |
params.dimensions | array | No | Dimensions to group by (e.g., campaign_name, ad_platform, channel). channel is a built-in alias for the Channel custom dimension. Use list_custom_dimensions to discover other custom dimensions |
params.metrics | array | No | Metrics to return. Traffic: clicks, cost, impressions, sessions, users, cpc, cpm, ctr, avg_session_duration, time_on_site, video_views, video_view_rate. Conversion: conversions, conversion_value, converted_users, conversion_rate, cpa, roas, aov, and _by_conv_time / _incl_projected variants. Server infers metric type automatically |
params.attributed_conversions | array | No | Array of {id, conversion_id, attribution_id} objects — required when conversion metrics are requested |
params.filter | object | No | Filter expression with dimension, operator, and values — supports and/or combinators. Binary operators: equals, not_equals, contains, not_contains, in, not_in, gt, gte, lt, lte. Unary operators: is_set, not_set |
params.order_by | array | No | Sort order. Each item has metric, direction (asc/desc), optional attributed_conversion_id and scope |
params.limit | number | No | Max rows (default 1000, max 1000) |
params.offset | number | No | Row offset for pagination |
params.time_machine_date | string | No | Time machine date (YYYY-MM-DD) — sets both ML score date and max conversion date |
params.calculated_metrics | object | No | Calculated metrics definition with custom expression trees |
- “Show me the top 10 campaigns by cost for the last 30 days”
- “What is the ROAS by ad platform for last month?”
- “Give me a breakdown of conversions by source/medium and country”
- “Compare campaign performance between this month and last month”
run_report_timeseries
run_report_timeseries
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
params.date_range | object | Yes | Date range with from and to in YYYY-MM-DD |
params.granularity | string | No | day (default), hour, week, or month |
params.metrics | array | No | Metrics to return (same as run_report) |
params.attributed_conversions | array | No | Conversion + attribution model pairs. Required when conversion metrics are requested |
params.filter | object | No | Filter expression |
params.time_machine_date | string | No | Time machine date (YYYY-MM-DD) |
params.calculated_metrics | object | No | Calculated metrics definition |
- “Show me the daily cost trend for the past 30 days”
- “Plot weekly conversions over the last 3 months”
- “Chart the ROAS trend by week for Facebook campaigns”
run_saved_report
run_saved_report
list_report_configs to find config IDs.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
config_id | string | Yes | The saved report config ID (from list_report_configs) |
date_range | object | No | Override the saved date range. If omitted, uses the config’s firstDateRange |
filter | object | No | Override the saved filter. If omitted, uses the config’s filter (if any) |
order_by | array | No | Override the saved sort order. If omitted, uses the config’s ordering |
format | string | No | Response format: json (default) or csv |
limit | number | No | Max rows (default 1000, max 1000) |
offset | number | No | Row offset for pagination |
- “Run the Performance Overview report for last month”
- “Execute the saved channel report but filter by Google Ads only”
- “Run report config X with a custom date range”
list_report_configs
list_report_configs
get_report_config to fetch full settings for a specific report.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What reports are saved in this project?”
- “List all report configurations”
get_report_config
get_report_config
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
report_id | string | Yes | The report config ID |
- “Show me the configuration of the Performance Overview report”
- “What dimensions and metrics does this report use?”
get_report_dimension_values
get_report_dimension_values
common_dimension for built-in dimensions (e.g., campaign_name, ad_platform, channel), custom_dimension_key for custom dimension group names, or custom_field with an optional custom_field_scope. The channel dimension is a built-in alias for the Channel custom dimension. Use prefix to narrow the results.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
common_dimension | string | No | Built-in dimension name. One of: account_id, account_name, ad_group_id, ad_group_name, ad_id, ad_name, ad_platform, anonymous_id, campaign_id, campaign_name, campaign_type, channel, city, country, data_source_id, date, device, device_brand, domain, landing_page, landing_page_path, region, source_medium, targeting_id, targeting_name, user_id, utm_campaign, utm_content, utm_medium, utm_source, utm_term |
custom_dimension_key | string | No | Custom dimension key — returns group names for that dimension |
custom_field | string | No | Custom field name (e.g., event.name) |
custom_field_scope | string | No | Custom field scope (table name) |
prefix | string | No | Prefix to filter returned values |
- “What campaign names are available for filtering?”
- “List all ad platform values in this project”
- “What values are available for the source_medium dimension?”
export_report_csv
export_report_csv
get_download_job (type: csv-v4) to obtain the download URL once the export is ready.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
params | object | Yes | Same parameters as run_report |
report_name | string | No | Human-readable report name for the CSV file |
billing_account_name | string | No | Billing account name to include in the CSV |
interval | string | No | Date interval shorthand: custom, last_7_days, last_14_days, last_28_days, last_30_days, last_60_days, last_90_days, last_6_months, last_12_months, yesterday |
get_download_job.Example prompts:- “Export this report as a CSV”
- “Download campaign performance data for the last quarter”
get_download_job
get_download_job
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
job_id | string | Yes | Job ID returned by export_report_csv |
type | string | Yes | Job type: csv-v4 or google-sheets-v4 |
progress (0—100), status (waiting, active, completed, failed), download URL, and failedReason.Example prompts:- “Is my CSV export ready?”
- “Check the status of the download job”
preview_report_sql
preview_report_sql
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
params | object | Yes | Same parameters as run_report |
sqlQueryString and attributed conversions JSON.Example prompts:- “Show me the SQL that would be generated for this report”
- “What BigQuery query does SegmentStream run for campaign performance?”
User journey
Tools for tracing individual user paths and attribution credit distribution.get_user_journey
get_user_journey
anonymous_id or user_id. Useful for debugging attribution and understanding individual user paths.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
params.date_from | string | Yes | Start date (YYYY-MM-DD) |
params.date_to | string | Yes | End date (YYYY-MM-DD) |
params.attributed_conversions | array | Yes | Array of {id, conversion_id, attribution_id} objects |
params.conversion_internal_ids | array | Yes | Conversion internal IDs to include |
params.selected_anonymous_id | string | No | Filter to a specific anonymous ID |
params.selected_user_id | string | No | Filter to a specific user ID |
- “Show me the user journey for anonymous ID
abc123over the last 30 days” - “What touchpoints led to the last conversion for user
[email protected]?” - “Trace the journey for this anonymous ID and show attribution credits”
debug_user_journey
debug_user_journey
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
params | object | Yes | Same parameters as get_user_journey |
- “Show me the SQL behind this user journey query”
- “Debug the user journey query for this anonymous ID”
BigQuery
Direct SQL access to your project’s BigQuery dataset.bigquery_execute_sql
bigquery_execute_sql
hitsSet instead of project.dataset.hitsSet). Use list_active_projects to find the bigqueryProjectId and bigqueryDatasetId for each project.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The SegmentStream project ID (use list_active_projects to find it) |
query | string | Yes | The BigQuery SQL query to execute. Tables can be referenced without full qualification since the default dataset is set automatically |
- “Run a query to count sessions by country for last week”
- “Show me the schema of the sessions table”
- “Query the raw events table for the last 24 hours”
- “How many unique users visited the site yesterday?”
bigquery_get_table_schema
bigquery_get_table_schema
null if the table does not exist. Use list_active_projects to find the project ID.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The SegmentStream project ID |
table_name | string | Yes | The table name within the project dataset (e.g., hitsSet, sessions). Do not fully qualify — the project dataset is used automatically |
- “What columns does the sessions table have?”
- “Show me the schema for hitsSet”
- “What fields are available in the stitched_sessions table?”
Custom dimensions
Tools for inspecting custom dimensions configured in your project.list_custom_dimensions
list_custom_dimensions
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What custom dimensions are available?”
- “List all custom dimension keys I can use in reports”
get_custom_dimension
get_custom_dimension
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
key | string | Yes | The custom dimension key |
- “Show me the SQL expression for the brand/non-brand custom dimension”
- “How is this custom dimension calculated?”
Self-reported attribution
Tools for inspecting self-reported attribution (SRA) settings.get_sra_settings
get_sra_settings
extractionSql, classifierEnabled, channelMappings, overrideConditions, and isMigrated.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “Show me the self-reported attribution settings”
- “What channel mappings are configured for SRA?”
- “Is the SRA classifier enabled?”
Audiences
Tools for inspecting audience definitions and memberships.list_audiences
list_audiences
isForever, filter, membershipDurationDays, and status for each audience.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
ml_model_id | string | No | Filter audiences by ML model |
conversion_id | string | No | Filter audiences by conversion |
- “What audiences are defined in this project?”
- “List all audiences associated with the Purchase conversion”
get_audience
get_audience
projectId, isForever, filter, filterSql, membershipDurationDays, status, createdAt, and updatedAt.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
audience_id | string | Yes | The audience ID |
- “Show me the filter criteria for this audience”
- “How long do users stay in this audience?”
query_audiences_by_client_id
query_audiences_by_client_id
audienceId, audienceName, entryTime, and expirationTime for each membership.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
anonymous_id | string | Yes | The anonymous client ID to query audience memberships for |
from | string | Yes | Start date (ISO date, e.g., 2025-01-01) |
to | string | Yes | End date (ISO date, e.g., 2025-01-31) |
- “What audiences does anonymous ID
abc123belong to?” - “Show me audience memberships for this user over the last 30 days”
get_audiences_inclusion
get_audiences_inclusion
allUsers count. Optionally filter by ML model.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
ml_model_id | string | No | Filter inclusion stats by ML model |
- “What percentage of users are in each audience?”
- “Show me audience inclusion statistics”
Workflows
Tools for monitoring data processing workflows.list_workflows
list_workflows
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
limit | number | No | Maximum number of workflows to return (default 20) |
- “Show me the recent workflows”
- “What data processing jobs ran today?”
get_workflow_status
get_workflow_status
| Name | Type | Required | Description |
|---|---|---|---|
workflow_id | string | Yes | The workflow ID |
- “What is the status of this workflow?”
- “Did this workflow complete successfully?”
- “Show me any errors from the last workflow run”
Cost data quality
Tools for monitoring advertising cost data accuracy.get_cost_data_quality
get_cost_data_quality
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
data_source_id | number | No | Scope results to a specific data source |
date_from | string | No | Start date (YYYY-MM-DD) |
date_to | string | No | End date (YYYY-MM-DD) |
- “What is the cost data quality score for this project?”
- “Show me the data quality for the Facebook data source”
- “How has cost data quality changed over the last 30 days?”
Identity graph
Tools for inspecting user identity stitching.get_identity_graph_statistics
get_identity_graph_statistics
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
conversion_internal_id | string | No | Filter by internal conversion ID |
days_back | number | No | Number of days to look back |
use_users_v2 | boolean | No | Whether to use the users v2 engine |
- “Show me the identity graph statistics”
- “How many users have cross-device stitching?”
- “What is the user stitching distribution for the last 30 days?”
Incidents
Tools for checking project health alerts.list_incidents
list_incidents
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
status | string | No | Filter by status: Ok or Error |
limit | number | No | Maximum number of incidents to return |
offset | number | No | Number of incidents to skip for pagination |
minimum_updated_at | string | No | Only return incidents updated after this ISO-8601 date |
- “Are there any active incidents?”
- “Show me recent errors for this project”
- “List all incidents from the last week”
Classifiers (ML models)
Tools for inspecting ML-based classifiers used for conversion scoring.list_classifiers
list_classifiers
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What ML classifiers are configured?”
- “Show me the classifier settings for this project”
get_classifier
get_classifier
| Name | Type | Required | Description |
|---|---|---|---|
classifier_id | string | Yes | The classifier ID |
- “Show me the details of this classifier”
- “What model does this classifier use?”
list_classifier_models
list_classifier_models
- “What classifier models are available?”
- “Show me the pricing for classifier models”
Portfolios (budget optimization)
Tools for inspecting portfolio configurations, performance history, and optimization scenarios.list_portfolios
list_portfolios
potentialMetric, actualMetric, actualSpend), targetsCount, isReady, and lastApplyTime.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What portfolios are configured in this project?”
- “List all optimization portfolios”
- “Which portfolios are ready for optimization?”
get_portfolio_history
get_portfolio_history
portfolio_id (and optional period), returns a summary with per-period rows and plots. When start_date and end_date are provided, returns detailed period data including per-campaign breakdowns.Parameters:| Name | Type | Required | Description |
|---|---|---|---|
portfolio_id | string | Yes | The portfolio ID |
period | string | No | History period: LAST_MONTH, LAST_THREE_MONTHS (default), or LAST_SIX_MONTHS |
start_date | string | No | Period start date (ISO-8601, e.g., 2025-01-01). When provided with end_date, returns detailed per-campaign breakdowns |
end_date | string | No | Period end date (ISO-8601, e.g., 2025-01-31). When provided with start_date, returns detailed per-campaign breakdowns |
- “Show me the portfolio performance over the last 3 months”
- “What was the campaign-level breakdown for January?”
- “How has this portfolio performed over the last 6 months?”
get_portfolio_optimization
get_portfolio_optimization
| Name | Type | Required | Description |
|---|---|---|---|
portfolio_id | string | Yes | The portfolio ID |
total_budget_limit | number | No | Total budget constraint for the optimization period |
total_daily_budget_limit | number | No | Daily budget constraint for optimization |
optimization_version | string | No | Optimization algorithm version (default: v7) |
- “Show me the optimization recommendations for this portfolio”
- “What would the optimal budget allocation look like with a $50,000 monthly budget?”
- “Show me the diminishing returns curves for portfolio targets”
Experiments (geo tests)
Tools for inspecting geo-lift experiments.list_experiments
list_experiments
| Name | Type | Required | Description |
|---|---|---|---|
project_id | string | Yes | The project ID |
- “What experiments are running?”
- “Show me all geo tests and their status”
- “List completed experiments with their results”
get_experiment
get_experiment
| Name | Type | Required | Description |
|---|---|---|---|
experiment_id | string | Yes | The experiment ID |
- “Show me the results of this geo test”
- “What was the measured lift in this experiment?”
- “Show me the experiment preparation details”
list_experiment_custom_parameter_keys
list_experiment_custom_parameter_keys
| Name | Type | Required | Description |
|---|---|---|---|
conversion_id | string | Yes | The conversion ID |
- “What custom parameters can I use for geo test segmentation?”
- “List available custom parameter keys for experiments”