create_dashboard
ChatGPTCreate a comprehensive dashboard with charts, rich text, and custom layout WHEN TO USE: - After the user has searched existing content or explored some analysis in Amplitude - The user has explicitly requested to create a dashboard CRITICAL - CHART IDs MUST BE FROM SAVED CHARTS: - Only use chartIds from SAVED/PERMANENT charts - these are returned by save_chart_edits (in the chartId field) or create_chart - DO NOT use editIds from query_dataset - these are temporary IDs that cannot be added to dashboards - DO NOT use the editId from query_dataset responses - you must first call save_chart_edits to get a permanent chartId - The typical workflow is: query_dataset (returns editId) → save_chart_edits (converts editId to permanent chartId) → create_dashboard (uses chartId) - If you use an editId instead of a saved chartId, the dashboard creation will fail with "NotFoundError: No chart" INSTRUCTIONS: - Provide a descriptive name for the dashboard - Use rows array where each row contains items in left-to-right order - Each item specifies width (3-12 columns). If width is omitted, items auto-fill remaining space - Each row must specify height in pixels. Only heights of 375, 500, 625, 750 are allowed - Total width of items in a row must not exceed 12 columns - Max 4 items per row (ensures minimum 3-column width per item) - Use chartMetas to configure chart display options (view type, annotations, etc.) - Return a link to the new dashboard in the response - DO NOT include static analysis in dashboard text content. Dashboards are meant to be long-lived and thus a point in time insight does not help - DO group similar charts together and include a header and some text describing how to interpret the charts effectively MARKDOWN FORMAT: - Rich text content uses standard markdown syntax - Supported: headers (# ###), bold (text), italic (text), lists (- or 1.), links ([text](url)), code blocks (``), inline code (code`) - Example: "# Overview\n\nThis dashboard shows key metrics for user engagement." LAYOUT EXAMPLES: - Full-width item: { height: 6, items: [{ type: 'chart', chartId: '123', width: 12 }] } - Two side-by-side: { height: 4, items: [{ type: 'chart', chartId: '1', width: 6 }, { type: 'rich_text', content: '# Notes', width: 6 }] } - Three columns: { height: 5, items: [{ width: 4 }, { width: 4 }, { width: 4 }] } - Auto-fill: { height: 4, items: [{ type: 'chart', chartId: '1' }, { type: 'chart', chartId: '2' }] } (each gets 6 columns)
get_amplitude_context
ChatGPTUnified entry point for Amplitude context. Routes to one of two underlying tools based on whether a projectId is provided. ROUTES: - No projectId → 'get_context' route: returns the current user, organization (including org-level AI context), and the LIST of accessible projects as { appId, appName }. Use this to discover which projects exist and their ids. - projectId provided → 'get_project_context' route: returns that single project's details — description, timezone, currency, session definition, source projects, and project-level AI context. WHEN TO USE: - Session start, "what projects do I have access to?", "show me my org details", "what is my role?" → omit projectId. - "what timezone / currency / session settings does project X use?", "describe project X" → pass projectId. NOTES: - projectId is optional on purpose. Omit it to get the project list first, then call again with a real id from that list — do NOT guess project ids. - The two layers are meant to be loaded together: call once without projectId at session start for org context, then with a projectId to drill into a project. On conflict, project-level context overrides org-level. DO NOT USE FOR: - Running analytics queries → use 'query_dataset'. - Finding charts/dashboards/cohorts → use 'search'.
get_chart_alerts
ChatGPTRetrieve chart alert anomalies for a project or for one specific chart. WHEN TO USE: - The user wants recent chart alerts, anomalies, or alert notifications. - Use chartId to scope to one chart. - Use get_chart_monitor when the user wants monitor configuration or subscribers instead of alert history. INSTRUCTIONS: - chartId is optional. If provided, projectId is not needed. - For project-wide alerts, projectId is optional only when the user has access to exactly one project. If multiple projects are accessible, provide projectId. - includeUnseen filters to alerts the current user has not marked as seen. - limit defaults to 20 and is capped at 100. EXAMPLES: - {"projectId":"12345"} - {"chartId":"abc123","limit":10} - {"projectId":"12345","includeUnseen":true} NOTES: - This tool returns alert anomalies, not monitor configuration. - Alerts are returned newest first.
get_chart_definition_params
ChatGPTGet the parameter schema, valid enum values, and a working example for a specific chart type. WHEN TO USE: - Before calling query_dataset, to understand the correct parameter schema for a chart type. - When you need to know valid enum values (e.g., funnel modes, segmentation metrics). - When you need a working example definition to use as a template. INSTRUCTIONS: - Call this tool with the chart type you want to build a definition for. - Use the returned schema to construct a valid definition object. - Pass the constructed definition to query_dataset. - If the chart type is not yet supported, construct the definition based on existing chart examples from search/get_charts. SUPPORTED CHART TYPES: composition, eventsSegmentation, funnels, retention, sessions, stickiness
get_chart_monitor
ChatGPTRetrieve the current monitor configuration and subscribers for a chart. WHEN TO USE: - The user wants to inspect a chart alert monitor before changing it. - Use this before subscribe_chart_alert if you need the monitorId or current subscriber list. - Use get_chart_alerts if the user wants alert anomalies instead of monitor settings. INSTRUCTIONS: - Provide chartId. - Returns the monitor ID, enabled state, conditions, email recipients, and channel subscriptions. EXAMPLES: - {"chartId":"abc123"} NOTES: - This only works for charts that already have a monitor.
get_charts
ChatGPTRetrieve full chart objects by their IDs using the chart service directly WHEN TO USE: - You want to retrieve a full chart definition. - Useful if you want to base an ad hoc query dataset analysis on an exsiting chart. INSTRUCTIONS: - Use the search tool to find the IDs of charts you want to retrieve, then call this tool with the IDs.
get_cohorts
ChatGPTGet detailed information about specific cohorts by their IDs. WHEN TO USE: - You want to retrieve full cohort definitions after finding them via search. - You need detailed cohort information including definition, metadata, and audience details. INSTRUCTIONS: - Use the search tool to find the IDs of cohorts you want to retrieve, then call this tool with the IDs. - This returns full cohort objects with all details, unlike the search tool which returns summary information.
get_context
ChatGPTGet information about the current user, organization, and list of accessible projects. WHEN TO USE: - "What projects do I have access to?" - "Show me my organization details" - "What is my user role?" - Any session start, before drilling into a specific project — load the org layer first. RETURNS: - User details (email, name, role) - Organization info: name, plan, quota, and org.aiContext — org-level AI context (company-wide business definitions, glossary terms, KPI rules, behavior guidelines). Canonical source for org-scoped guidance. - List of accessible projects (just names and IDs) CONTEXT LAYERING: - org.aiContext here is the org-level layer of customer AI context. - For project-specific guidance — including project-level AI context, timezone, currency, source projects, and session settings — call 'get_project_context' with a projectId. - The two layers are intended to be loaded together. On conflict, project-level context supplements or overrides org-level context. DO NOT USE FOR: - Project-specific settings (timezone, currency, sessions) → use 'get_project_context' instead - Running analytics queries → use 'query_dataset' or 'query_amplitude_data' instead - Finding charts/dashboards/cohorts → use 'search' instead
get_dashboard
ChatGPTGet specific dashboards and all their charts WHEN TO USE: - You want to retrieve full dashboard definitions including chart IDs that you can query and analyze individually. INSTRUCTIONS: - Use the search tool to find the IDs of dashboards you want to retrieve, then call this tool with the IDs. - Very commonly you will want to query the charts after retrieving a dashboard.
get_events
ChatGPTRetrieve events from a project with strict filtering by event types, limit, and cursor pagination. WHEN TO USE: - You can generally rely on the search tool to find the event you are looking for. - Use this tool to get full event objects which include the event category and whether or not the event is active. - Use this tool to paginate through ALL events when the search tool may not return the event you are looking for. INSTRUCTIONS: - Get the project ID from the context tool. - Use the search tool first to try to find the event you're looking for. - If the search tool does not return the event you are looking for, use this tool without specifying eventTypes to paginate through all events. - If you know the event types you want to get, use this tool with the eventTypes parameter to get more information about the event. NOTES: - Event types are equivalent to the ingested name. Always use "ingested name" instead of "event type" when responding to the user.
get_experiments
ChatGPTRetrieve specific experiments by their IDs. WHEN TO USE: - You want to retrieve addition information for experiments like state, decisions, etc. INSTRUCTIONS: - Use the search tool to find the IDs of experiments you want to retrieve, then call this tool with the IDs.
get_flags
ChatGPTRetrieve specific feature flags by their IDs or flag key. WHEN TO USE: - You want to retrieve full flag definitions including variants, metadata, and configuration details. INSTRUCTIONS: - Use the search tool to find the IDs of flags you want to retrieve, then call this tool with the IDs. - You can also pass in flag key instead and this can return multiple flags since the same flag key can be in multiple projects.
get_from_url
ChatGPTRetrieve objects from Amplitude URLs WHEN TO USE: - CRITICAL: Only use this tool for full Amplitude app URLs on supported hosts (app.amplitude.com, app.eu.amplitude.com, apps.stag2.amplitude.com, local.amplitude.com) - You have an Amplitude URL and want to get the full object definition - User shares a link to a dashboard, chart, notebook, experiment, etc. INSTRUCTIONS: - Provide the full Amplitude URL (e.g., https://app.amplitude.com/analytics/myorg/chart/456 or https://app.eu.amplitude.com/analytics/myorg/chart/456) - The tool will parse the URL, validate the organization, and return the full object - Works with charts, dashboards, notebooks, experiments, flags, cohorts, metrics, opportunities, and orchestration workflows - Agent session URLs (/agents/session/{id}) are not resolvable here — use get_agent_results with the session_id instead
get_metrics
ChatGPTGet detailed information about specific metrics by their IDs. WHEN TO USE: - You want to retrieve full metric definitions after finding them via search. - You need detailed metric information including params, key properties, and metadata. INSTRUCTIONS: - Use the search tool to find the IDs of metrics you want to retrieve, then call this tool with the IDs. - This returns full metric objects with all details, unlike the search tool which returns summary information. - If you already have the metric ID, you can not use this tool and instead query the metric directly using query_metric if that is what the user wants.
get_monitor_history
ChatGPTRetrieve the audit history for a chart monitor. WHEN TO USE: - The user wants to know who changed a chart monitor and when. - Use get_chart_monitor first if you need to discover the monitorId from a chart. INSTRUCTIONS: - Provide monitorId. - Returns the history entries in reverse chronological order. EXAMPLES: - {"monitorId":"mon_123"} NOTES: - This is monitor change history, not alert anomaly history.
get_project_context
ChatGPTGet project-specific settings and configuration for a specific project. WHEN TO USE: - "What timezone is this project using?" - "What are the currency settings?" - "How are sessions defined?" - "What is the week start day?" RETURNS: - Timezone and date settings (timezone, week start, quarter start) - Currency settings (locale, target currency) - Session definition (timeout, custom property) - Source projects (data lineage) - Project-level AI context (project-specific business guidelines) CONTEXT LAYERING: - This tool returns the project-level layer of customer AI context only. - For org-level AI context (company-wide business definitions, glossary, KPI rules, behavior guidelines), call 'get_context' — it carries org.aiContext and is the canonical source for org-scoped guidance. - Call 'get_context' once per session before drilling into specific projects so you have both layers loaded. On conflict, project-level context supplements or overrides org-level context. REQUIRES: projectId parameter DO NOT USE FOR: - Listing all projects → use 'get_context' instead - User/org info → use 'get_context' instead
get_properties
ChatGPTRetrieve properties from a project's taxonomy. Use propertyType to select which kind of properties to fetch. PROPERTY TYPES: | propertyType | What it returns | Key params | |---|---|---| | event | Event properties. Pass eventType to scope to one event; omit it to list project-wide. Pass includeDeleted to include deleted properties. | eventType, includeDeleted | | user | User-level properties | sources, name | | derived | Computed/formula properties | derivedPropertyType, names | | group | Group properties (e.g., company_name, plan_tier) | groupTypes | | lookup | CSV lookup table properties | configurationFilter, lookupTableName | | channel | Traffic source channel properties | names | | persisted | Event-to-user persisted properties | names | GLOBAL VS. EVENT-SCOPED EVENT PROPERTIES: Event properties in Amplitude have two scopes: - Global (plan-wide): a property definition shared across the project's tracking plan, not tied to a single event. - Event-scoped (local): a definition attached to one specific event type (e.g., "Button Clicked.button_name"). When the user looks for event properties without specifying a scope (global or event-scoped), prompt for clarification. INSTRUCTIONS: - Use the search tool or get_events first to find exact event/property names before calling this tool. - All property types support limit/cursor pagination. For 'event', pagination applies only when eventType is omitted (event-scoped returns all properties for that event). - If the user has not specified a project, prompt them to decide. Don't decide for them. EXAMPLES: - Event properties for one event: { "propertyType": "event", "projectId": "123", "eventType": "Button Clicked" } - All event properties in a project: { "propertyType": "event", "projectId": "123" } - Including deleted: { "propertyType": "event", "projectId": "123", "includeDeleted": true } - User properties: { "propertyType": "user", "projectId": "123", "sources": ["CUSTOMER"] } - Derived properties: { "propertyType": "derived", "projectId": "123", "derivedPropertyType": "event" } - Group properties: { "propertyType": "group", "projectId": "123", "groupTypes": ["company"] }
query_chart_chatgpt
ChatGPTQuery a single chart given its ID. RULES: - Users want to know references for analyses in order to validate the data. - ALWAYS REFERENCE CHARTS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES. WHEN TO USE: - You want to query a chart to get its data. - Only one chart or chart edit can be queried in a single request. PREREQUISITES (required): - You MUST have a concrete chartId or chartEditId before calling this tool. Do not call it speculatively. - If you do not already have one, resolve it FIRST via: - search with entityTypes: ["CHART"] to find a saved chart by name. - get_from_url when the user has shared an Amplitude chart URL. - query_amplitude_data if the user wants an ad-hoc analysis rather than an existing chart. - If the user has not provided a chart reference and none of the above apply, STOP and ask the user which chart to query. INSTRUCTIONS: - Provide saved charts via chartId and chart edits (links ending in /chart/new/<edit_id> or /chart/<chart_id>/edit/<edit_id>) via chartEditId. - Only one chart or chart edit ID is allowed per request; if you have both, prefer chartEditId. - Results will include data for the chart and errors if it fails. RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse CRITICAL — NON-ADDITIVE METRICS (uniques, pct_dau): - These metrics cannot be summed across intervals. The chart UI plots per-interval values, not a running total. - Additive metrics (totals, sums) CAN be summed across intervals. How to read the JSON response, by metric type: 1. COUNT metrics ("uniques"): - Use "overallSeries" — it is the TRUE deduped unique count across the full date range. - Do NOT sum "timeSeries" values — that overstates the count due to user overlap across intervals. 2. RATIO metrics ("pct_dau" only): - Use "timeSeriesAverage" (mean of per-interval values) — this matches what the chart UI displays. For "current" reporting, also consider the most recent N intervals from "timeSeries". - Do NOT use "overallSeries" for pct_dau over multi-interval ranges. For pct_dau, "overallSeries" is a long-range aggregate (deduped numerator over the full range / deduped denominator over the full range). Over many intervals the denominator dedupes a much larger pool than the numerator, which compresses the ratio — typically reporting roughly half of the per-interval values the chart shows. This is mathematically valid as a long-range aggregate but is NOT what users see in the chart. - Do NOT sum "timeSeries" values — ratios cannot be summed. CSV Response Structure (when isCsvResponse is true): - Header rows: The top rows contain metadata including chart name, description, events, formulas, and other chart configuration details - Data header row: A single row containing column labels for the data points below (typically includes dates or time periods) - Data rows: Each row contains: Label columns: First few columns contain row labels identifying the data series Value columns: Numerical data organized under the corresponding date/time columns from the data header row - Parse by: Skip metadata rows, identify the data header row, then extract labels from first columns and values from remaining columns - Cells in the CSV response are delimited by commas and may be prepended with a character Example below measures uniques of custom event "Valuable Tweaking" over 3 days (2025-08-23, 2025-08-24, 2025-08-25) for all users. The data points are 614, 1769, and 4132 for the 3 days respectively. IMPORTANT: The overall unique users is 5642 (NOT 614+1769+4132=6515), because users overlap across days. data: " Example chart name" " Formula"," UNIQUES(A)" " A:"," [Custom] 'Valuable Tweaking'" " Segment"," 2025-08-23"," 2025-08-24"," 2025-08-25" " All Non-Amplitude Users","614","1769","4132" definition: { "app": "APP_ID", "params": { "countGroup": "User", "end": 1756166399, "events": [ { "event_type": "ce:'Valuable Tweaking'", "filters": [], "group_by": [] } ], "…
query_charts
ChatGPTQuery up to 3 charts concurrently given their IDs. RULES: - Users want to know references for analyses in order to validate the data. - ALWAYS REFERENCE CHARTS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES. WHEN TO USE: - You want to query multiple charts to get their data efficiently. - Maximum of 3 charts can be queried in a single request. PREREQUISITES (required): - You MUST have at least one concrete chartIds or chartEditIds entry before calling this tool. Do not call it speculatively. - If you do not already have any, resolve them FIRST via: - search with entityTypes: ["CHART"] to find saved charts by name. - get_from_url when the user has shared Amplitude chart URLs. - query_amplitude_data if the user wants an ad-hoc analysis rather than an existing chart. - If the user has not provided chart references and none of the above apply, STOP and ask the user which charts to query. INSTRUCTIONS: - Provide saved charts via chartIds and chart edits (links ending in /chart/new/<edit_id> or /chart/<chart_id>/edit/<edit_id>) via chartEditIds. - Chart edit IDs take precedence over chart IDs when both are available for a given chart. - Use this tool to query up to 3 charts + chart edits (combined total). - Results will include data for each successfully queried chart and errors for any failed charts. RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse CRITICAL — NON-ADDITIVE METRICS (uniques, pct_dau): - These metrics cannot be summed across intervals. The chart UI plots per-interval values, not a running total. - Additive metrics (totals, sums) CAN be summed across intervals. How to read the JSON response, by metric type: 1. COUNT metrics ("uniques"): - Use "overallSeries" — it is the TRUE deduped unique count across the full date range. - Do NOT sum "timeSeries" values — that overstates the count due to user overlap across intervals. 2. RATIO metrics ("pct_dau" only): - Use "timeSeriesAverage" (mean of per-interval values) — this matches what the chart UI displays. For "current" reporting, also consider the most recent N intervals from "timeSeries". - Do NOT use "overallSeries" for pct_dau over multi-interval ranges. For pct_dau, "overallSeries" is a long-range aggregate (deduped numerator over the full range / deduped denominator over the full range). Over many intervals the denominator dedupes a much larger pool than the numerator, which compresses the ratio — typically reporting roughly half of the per-interval values the chart shows. This is mathematically valid as a long-range aggregate but is NOT what users see in the chart. - Do NOT sum "timeSeries" values — ratios cannot be summed. CSV Response Structure (when isCsvResponse is true): - Header rows: The top rows contain metadata including chart name, description, events, formulas, and other chart configuration details - Data header row: A single row containing column labels for the data points below (typically includes dates or time periods) - Data rows: Each row contains: Label columns: First few columns contain row labels identifying the data series Value columns: Numerical data organized under the corresponding date/time columns from the data header row - Parse by: Skip metadata rows, identify the data header row, then extract labels from first columns and values from remaining columns - Cells in the CSV response are delimited by commas and may be prepended with a character Example below measures uniques of custom event "Valuable Tweaking" over 3 days (2025-08-23, 2025-08-24, 2025-08-25) for all users. The data points are 614, 1769, and 4132 for the 3 days respectively. IMPORTANT: The overall unique users is 5642 (NOT 614+1769+4132=6515), because users overlap across days. data: " Example chart name" " Formula"," UNIQUES(A)" " A:"," [Custom] 'Valuable Tweaking'" " Segment"," 2025-08-23"," 2025-08-24"," 2025-08-25" " All Non-Amplitude Users","614","1769","4132" definition: { "app": "APP_ID…
query_dataset_chatgpt
ChatGPTRun analytics queries to answer data questions about users, events, funnels, and retention. WHEN TO USE - Answer questions like: - "How many active users did we have last week?" - "Show me a funnel from sign up to purchase" - "What is the retention rate for new users?" - "How many users completed checkout yesterday?" - Any question asking for metrics, counts, trends, funnels, or retention analysis DO NOT USE FOR: - Finding existing charts/dashboards → use 'search' instead - To get the valid chart definition to pass -> use 'get_chart_definition_params' instead - To validate the chart definition before passing it to query_dataset -> use 'verify_chart_definition' instead - BOTH THESE TOOLS SHOULD BE USED AND ARE INEXPENSIVE TO USE BEFORE PASSING THE CHART DEFINITION TO query_dataset - If you need more information about existing charts in the project as an example → use 'get_charts' instead - Project settings (timezone, currency) → use 'get_project_context' instead STRATEGIES 1. Use the 'search' tool to find if there are charts with properties that relate to the data you want to query. 2. If you are unsure about the properties or schema please don't modify existing properties and use the two tools below to get detailed information: 3. Use the 'get_chart_definition_params' tool to understand the valid chart definition to pass. 4. Use the 'verify_chart_definition' tool to validate the chart definition before passing it to query_dataset. 5. Use the 'get_charts' tool to find examples of existing charts in the project to understand the events, properties, and dataset schema generally. 6. Optionally use the 'search' tool again to find additional events, user properties, etc. needed for the query. 7. Optionally use the 'get_event_properties' tool to get properties on individual events. 8. Use this tool to query the ad hoc analysis. GENERAL GUIDELINES - Don't assume or guess properties, events, or schema. Use the tools provided to you to understand the data before running a dataset query. - When running into query failures, try searching for existing charts to understand the data taxonomy and dataset schema. - When you receive a 400 error response the schema is likely incorrect or the events/properties do not exist. - ALWAYS include a descriptive "name" field in the definition object. This name will be displayed as the chart title. Examples: "Active Users Last 7 Days", "Sign Up to Purchase Funnel", "New User Retention". AMPLITUDE WIDE META EVENTS TYPES Special system events available for analysis. Events are passed in the "event_type" field: - "_active": Any active event useful for tracking 'active users' like DAU, MAU(events not marked as inactive) - "_all": Any event being tracked in Amplitude - "_new": Events triggered by new users within the time interval. Useful for tracking 'new users'. - "_any_revenue_event": Any revenue-generating event. Useful for tracking 'revenue'. - "$popularEvents": Top events by volume (dynamically computed). Useful for more meta taxonomy analyses like 'what are the most common events'. PROPERTY TYPES: - Amplitude core properties are built-in and use standard names like "country", "platform", "device_id", "user_id" - Custom properties are organization-defined and are typically prefixed with "gp:" - Derived/formula properties (from TMS) must use prop_type and group_by.type of "derivedV2" in segments and group_by — not "user" or legacy "derived". Use get_properties with propertyType "derived" to list them. - Hidden properties are intentionally excluded from get_properties; do not use them. Prefer derived replacements named in project context. - If you are unsure which properties exist, use search/get_charts/get_properties/get_event_properties before querying, then verify_chart_definition before query_dataset RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse CRITICAL — NON-ADDITIVE METRICS (uniques, pct_dau): - These metrics cannot be summed across int…
query_experiment
ChatGPTQuery an experiment analysis. CRITICAL: Do NOT pass metricIds unless user explicitly requests specific metrics or requests analysis on secondary metrics. Omit metricIds for primary metric only (cleaner, focused results). RULES: - Users want to know references for analyses in order to validate the data. - ALWAYS REFERENCE EXPERIMENTS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES. WHEN TO USE: - You want to query a experiment for analysis. INSTRUCTIONS: - Use the search tool to find the ID of the experiment you want to query. - You may want to use the get_experiments tool to get more context about the experiment (i.e. state, variants, etc.) - Use this tool to query the experiment analysis. EXAMPLE: groupBy: [{"type": "user", "value": "device type", "group_type": "User"}]
query_metric
ChatGPTQuery metric data using the dataset endpoint with metric references RULES: - Users want to know references for analyses in order to validate the data. - ALWAYS REFERENCE METRICS TO THE USER BY THEIR LINK WHEN QUERIED AND USED IN ANALYSES. WHEN TO USE: - You want to query a metric to get its data. INSTRUCTIONS: - Use the search tool to find the ID of the metric you want to query. - Use this tool to query the metric. RESPONSE FORMAT: Returns {isCsvResponse: bool, csvResponse or jsonResponse, definition}. Only ONE response type present. Check the isCsvResponse flag to determine which response format to parse CRITICAL — NON-ADDITIVE METRICS (uniques, pct_dau): - These metrics cannot be summed across intervals. The chart UI plots per-interval values, not a running total. - Additive metrics (totals, sums) CAN be summed across intervals. How to read the JSON response, by metric type: 1. COUNT metrics ("uniques"): - Use "overallSeries" — it is the TRUE deduped unique count across the full date range. - Do NOT sum "timeSeries" values — that overstates the count due to user overlap across intervals. 2. RATIO metrics ("pct_dau" only): - Use "timeSeriesAverage" (mean of per-interval values) — this matches what the chart UI displays. For "current" reporting, also consider the most recent N intervals from "timeSeries". - Do NOT use "overallSeries" for pct_dau over multi-interval ranges. For pct_dau, "overallSeries" is a long-range aggregate (deduped numerator over the full range / deduped denominator over the full range). Over many intervals the denominator dedupes a much larger pool than the numerator, which compresses the ratio — typically reporting roughly half of the per-interval values the chart shows. This is mathematically valid as a long-range aggregate but is NOT what users see in the chart. - Do NOT sum "timeSeries" values — ratios cannot be summed. CSV Response Structure (when isCsvResponse is true): - Header rows: The top rows contain metadata including chart name, description, events, formulas, and other chart configuration details - Data header row: A single row containing column labels for the data points below (typically includes dates or time periods) - Data rows: Each row contains: Label columns: First few columns contain row labels identifying the data series Value columns: Numerical data organized under the corresponding date/time columns from the data header row - Parse by: Skip metadata rows, identify the data header row, then extract labels from first columns and values from remaining columns - Cells in the CSV response are delimited by commas and may be prepended with a character Example below measures uniques of custom event "Valuable Tweaking" over 3 days (2025-08-23, 2025-08-24, 2025-08-25) for all users. The data points are 614, 1769, and 4132 for the 3 days respectively. IMPORTANT: The overall unique users is 5642 (NOT 614+1769+4132=6515), because users overlap across days. data: " Example chart name" " Formula"," UNIQUES(A)" " A:"," [Custom] 'Valuable Tweaking'" " Segment"," 2025-08-23"," 2025-08-24"," 2025-08-25" " All Non-Amplitude Users","614","1769","4132" definition: { "app": "APP_ID", "params": { "countGroup": "User", "end": 1756166399, "events": [ { "event_type": "ce:'Valuable Tweaking'", "filters": [], "group_by": [] } ], "groupBy": [], "interval": 1, "metric": "uniques", "segments": [], "start": 1755907200, }, "type": "eventsSegmentation", } JSON Response Structure (when isCsvResponse is false): - Parse using the following structure: - timeSeries: Array of arrays, each containing data points for a given time period with a "value" property - overallSeries: Array of arrays, each containing the overall data point across the entire range under the "value" property. IMPORTANT — interpretation depends on the metric: For "uniques" (count): this is the TRUE deduped unique count over the full date range. Use this. For "pct_dau" (ratio): this is a long-range aggregate ratio (deduped numerator over range / deduped denominator over range). It does NOT match the per-interval values the chart UI plots …
save_chart_edits
ChatGPTSave temporary chart edits as permanent charts WHEN TO USE: - You have chart edit IDs from query_dataset and want to save them as permanent charts - You need to add charts to dashboards or notebooks (which require saved chart IDs) WORKFLOW: 1. Use query_dataset to create ad-hoc analyses (returns editId) 2. Use save_chart_edits to convert editIds into permanent chartIds 3. Use chartIds in create_dashboard or create_notebook IMPORTANT: - All AI-generated charts are saved as unpublished in your personal space - Charts require human review before publishing to shared spaces - Use bulk saving to reduce tool calls when creating multiple charts
search
ChatGPTSearch for dashboards, charts, notebooks, experiments, and other content in Amplitude. INSTRUCTIONS: - Use this as your primary tool to discover and explore available analytics content before diving into specific analyses. - If you are not sure what to search for, use the default search query. - Do not specify appIds/projectIds in the input unless the user explicitly asks to search within a specific app/project. - When searching for taxonomy entities like events, properties, etc. use higher limits (e.g. 100-200) to get more results as there are more important entities to search through. - When searching for events, use the get_event_properties tool to get event properties on an individual event. DO NOT USE FOR: - AI agent results, agent analyses, or agent runs → use 'get_agent_results' instead - Getting full dashboard definitions with chart details → use 'get_dashboard' with the IDs from search results - Running queries or analysis → use 'query_dataset' or 'query_chart' ADDITIONAL INFORMATION: - Results are personalized to the user you are making the request on behalf of. - Results do not include the full object definition. You will need to use other tools to get the full object definition when needed. - Best practice is to query for a single entity type, unless the user's request is open ended. - The response includes an isOfficial flag in contentMeta to identify content that has been marked as official by the organization.
search_entity_relationships
ChatGPTFind relationships for any Amplitude entity - shows what charts, experiments, cohorts, and other entities are connected to or use the specified source entity. WHEN TO USE: - You want to understand dependencies and relationships for a specific Amplitude entity. - You need to see what content references a specific entity before making changes. - You're analyzing the impact of modifying or archiving an entity. - You want to find all entities that use a particular event, property, cohort, chart, etc. INSTRUCTIONS: - Provide the app ID and specify a source entity with its type and name. - The tool searches for relationships to a fixed set of target entity types (metrics, segments, cohorts, connections, predictions, experiments, flags, custom events, derived properties, lookup properties). - Results are split into separate searches for charts vs other entities to prevent charts from crowding out other entity types. - The response shows all entities that reference or are related to the specified source entity, organized by entity type. - Use this to understand entity adoption and potential impact of changes. SUPPORTED ENTITY TYPES: - event - custom_event - event_property - user_property - derived_property - lookup_property - channel_classifier - cohort - prediction - metric RESPONSE FORMAT: - results: Combined list of all related entities - resultsByType: Results organized by entity type (charts, cohorts, metrics, etc.) - counts: Count of results for each entity type - totalHits: Total number of matching entities across both searches - chartHits/nonChartHits: Separate hit counts for chart vs non-chart searches EXAMPLES: - Find all charts using event "Login" in app 187520 - Analyze which experiments are targeting a specific cohort id in an app - Understand what content uses a particular custom event before archiving it - Find all entities that reference a specific event_property
subscribe_chart_alert
ChatGPTSubscribe or unsubscribe the current user or a channel to chart alerts for a monitor. WHEN TO USE: - The user wants to subscribe or unsubscribe from chart alerts. - Use get_chart_monitor first if you need the monitorId or want to inspect existing subscribers. INSTRUCTIONS: - Provide monitorId, action, and deliveryMethod. - For email delivery, this tool only manages the current user's own email subscription. - For Slack or Teams delivery, provide deliveryChannel. - deliveryWorkspaceId is optional workspace context for Slack or Teams channels when needed. - If adding the first subscriber to a disabled monitor, this tool re-enables the monitor automatically. - If removing the last subscriber, this tool disables the monitor automatically. EXAMPLES: - {"monitorId":"mon_123","action":"subscribe","deliveryMethod":"email"} - {"monitorId":"mon_123","action":"subscribe","deliveryMethod":"slack","deliveryChannel":"C024BE91L"} - {"monitorId":"mon_123","action":"unsubscribe","deliveryMethod":"teams","deliveryChannel":"19:channel-id@thread.tacv2","deliveryWorkspaceId":"tenant-id:team-id"} NOTES: - Do not use this to edit thresholds or other monitor settings. Use update_chart_monitor for that.
update_chart_monitor
ChatGPTEnable or disable an existing chart monitor. WHEN TO USE: - The user wants to turn a chart alert monitor on or off. - Use get_chart_monitor first if you need to inspect the current monitor state. INSTRUCTIONS: - Provide monitorId. - enabled=true turns the monitor on. - enabled=false turns the monitor off. EXAMPLES: - {"monitorId":"mon_123","enabled":true} - {"monitorId":"mon_123","enabled":false} NOTES: - This tool only changes the enabled state. - Use subscribe_chart_alert to manage recipients and get_chart_monitor to inspect thresholds and subscribers.
verify_chart_definition
ChatGPTValidate and auto-correct a chart definition before passing it to query_dataset. WHEN TO USE: - After constructing a chart definition, to verify it is valid before querying. - When you want to catch and auto-fix common mistakes (wrong enum values, wrong field names). - The tool will auto-coerce known LLM mistakes and return the corrected definition. - Validates event types and properties exist in the project taxonomy. WHAT IT DOES: - Validates required fields (type, app, params) and chart-type-specific parameters. - Auto-coerces known mistakes: wrong funnel mode names (this_order → ordered), conversionWindow objects → conversionSeconds, ISO date strings → Unix timestamps, string events → {event_type, filters, group_by}. - Validates that referenced event types exist in the project. - Validates that referenced properties exist on their event types. - Validates user and derived properties in segments/group_by: hidden properties are rejected, and derived formula properties must use prop_type/group_by type derivedV2 (not user or legacy derived). - Returns the corrected definition ready to pass to query_dataset. SUPPORTED CHART TYPES: composition, eventsSegmentation, funnels, retention, sessions, stickiness Unsupported types pass through with a warning (not an error) — you can still send them to query_dataset.
get_charts
Claudeget_context
Claudeget_dashboard
Claudeget_event_properties
Claudeget_events
Claudeget_experiments
Claudeget_flags
Claudeget_notebook
Claudeget_user_properties
Claudequery_charts
Claudequery_dataset
Claudequery_experiment
Claudequery_metric
Claudesearch
Claude