| name | chart-link-analysis |
| description | Answers questions from an Amplitude chart or dashboard link — fetch the definition, pull the data, explain or adapt it. Use when the user pastes an Amplitude URL, asks "what does this chart show", wants a report refreshed from a dashboard, or wants to clone/adapt an existing analysis. |
Chart Link Analysis
Second most common job: the user pastes a link and wants the analysis
understood, refreshed, or adapted.
The arc
- Resolve the URL.
get_from_url returns the entity type, IDs, and
(for charts) the current definition. One call handles chart, dashboard,
experiment, notebook, and cohort links — use it instead of asking the
user for IDs.
- Read the definition. For a chart:
get_amplitude_charts with
include: 'typed' — the typed params mirror the chart-builder UI and are
the fastest way to see how the project spells events/properties. If
typed fails to lower the chart ("advanced features are not modeled"),
fall back to include: 'definition' for the raw form. For a dashboard:
use_amp_dashboards action: 'get' (batch ≤3) to get its chart list,
then read the charts that matter.
- Pull the data.
get_amplitude_charts include: 'data' with the
chart IDs, ≤3 IDs per call. For a report refresh, request the granularity
the report needs (daily for week-over-week, weekly for monthlies).
- Adapt or fork. Edit the typed params, then call
query_amplitude_data with the edited chart and chartId set to
the saved chart's id — the parent's params fill gaps the typed model
omits, and the edit stays linked to its parent. Render the result with
render_amplitude_chart; the user saves it from the widget's Save
chart button (there is no model-facing save tool). To replicate a whole
dashboard in a new context: read the reference dashboard, then rebuild
each chart — do not try to "copy" in one call.
Expectations to set
get_from_url does not run the chart — it returns metadata/definition.
Data always comes from get_amplitude_charts include: 'data' (saved
charts) or query_amplitude_data (ad hoc).
include: 'data' returns the same numbers the UI shows, including
Amplitude's timezone bucketing — when comparing against external sources
(e.g. BigQuery), call out timezone and partial-day differences explicitly.
- Definition reads are cheap; data reads are the expensive calls. Read all
definitions first, then decide which 1–3 charts actually need data.
- Just need the link for the user?
include: 'link' (the default) validates
the ids and returns URLs without running anything.