/aa-conversion-funnel-analysis
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel,"
$ npx -y skills add adobe/skills --skill aa-conversion-funnel-analysis --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/aa-conversion-funnel-analysis
Context preview
The summary Claude sees to decide when to auto-load this skill.
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel,"
SKILL.md
aa-conversion-funnel-analysis.SKILL.mdname: aa-conversion-funnel-analysis
description: >
Analyzes a multi-step conversion funnel to find where visitors drop off and
which steps have the worst leakage. Use this skill when someone describes a
journey and asks about conversion rates, drop-off, fallout, or step
completion. Trigger for "analyze our checkout funnel," "where are visitors
dropping off," "what's our add-to-cart to purchase conversion rate," "funnel
analysis," "show me fallout between steps," or "which step loses the most
visitors."
license: Apache-2.0
metadata:
author: Adobe
version: "1.0"
Conversion Funnel Analysis (Adobe Analytics)
Analyze a multi-step conversion funnel to identify where visitors drop off, which steps have the worst leakage, and what drives visitors to convert or abandon. Uses AA visit-level segment-based reporting to simulate funnel steps.
> **AA Container Model:** AA funnels use **hit**, **visit**, and **visitor** > containers — not CJA's event/session/person. Funnel steps are defined as > visit-level segments (visitors who completed the step during a visit). > > **Reporting approach:** AA does not have a native sequential fallout API > accessible via MCP. This skill approximates fallout by creating or finding > visit-level segments for each funnel step, then running the metric for > each step segment to compute pass-through rates.
---
AA MCP Tools Used
- `findReportSuites` — select report suite
- `setSessionDefaults` — set session context (reportSuiteId + globalCompanyId)
- `findDimensions` — discover page/event dimensions for step definition
- `findMetrics` — find visits or orders as the counting metric
- `searchDimensionItems` — validate page names or event values
- `findSegments` — find existing step segments if available
- `upsertSegment` — create visit-level step segments if not found
- `runReport` — run visits count for each step segment
---
Phase 0 — Setup
1. Confirm report suite with `findReportSuites` / `setSessionDefaults`. 2. Ask the user about the overall funnel scope (visit or visitor level):
- **Visit-level funnel:** all steps happen within a single visit
(typical for checkout funnels)
- **Visitor-level funnel:** steps can span multiple visits
(typical for lifecycle funnels)
findReportSuites(globalCompanyId: "<gcid>", page: 0, limit: 10)
setSessionDefaults(globalCompanyId: "<gcid>", reportSuiteId: "<rsid>")
---
Phase 1 — Define the Funnel Steps
Ask the user to describe each step of the funnel in plain language. Prompt for 3–8 steps. Example:
1. Product page viewed 2. Add to cart 3. Checkout started 4. Payment info entered 5. Order confirmed (purchase)
For each step, ask:
- "Is this defined by a page view (page name or URL), a custom event, or
a combination?"
- "Should this step be at the **hit** level (single page/event) or
**visit** level (any visit where this happened)?"
---
Phase 2 — Discover Components
2.1 Validate page names
For page-based steps:
findDimensions(page: 1, limit: 500) # returns all available dimensions; look for variables/page
searchDimensionItems(
dimensionId: "variables/page",
searchOr: "<step page keywords>", # space-separated keywords OR'd together
startDate: "<start>",
endDate: "<end>",
page: 1,
limit: 20
)
Common page dimension IDs: `variables/page`, `variables/entrypage`, `variables/exitpage`. Confirm the correct page name value with the user if multiple matches exist.
> **Note:** `searchDimensionItems` uses `searchOr` or `searchAnd` for filtering — not `searchTerm`. > If no rows return, try a wider date range — some report suites only have historical data.
2.2 Validate events/metrics
For event-based steps (add to cart, checkout, purchase):
findMetrics(expansions: "componentType,categories", page: 0, limit: 200)
# Filter results locally by name: visits, orders, pageviews, etc.
---
Phase 3 — Find or Create Step Segments
For each funnel step, search for an existing segment:
findSegments(searchTerm: "<step description>")
If an appropriate visit-level segment exists, use it directly.
If not, create a new visit-level segment for each step:
upsertSegment(
definition: {
"name": "Visit: Checkout Started",
"description": "Visits where the visitor reached the checkout page",
"reportSuiteID": "<rsid>",
"container": {
"func": "segment",
"context": "visits",
"pred": {
"func": "streq",
"val": "/checkout",
"str": "/checkout",
"dimension": "variables/page"
}
},
"tags": [{ "name": "funnel" }]
}
)Create all step segments before running reports. Record each segment `id`.
> **Important:** Only create new segments with explicit user confirmation. > Present the list of segments to be created and ask: "I need to create N > visit-level segments to define your funnel steps. Is that OK?"
---
Phase 4 — Run Funnel Step Reports
For each step segment, run the visits count over the analysis period:
runReport(
dimensionId: "variables/page", # required by AA runReport
metricIds: "metrics/visits", # note: plural field name "metricIds"
segmentIds: "<step segment id>", # note: plural field name "segmentIds"
startDate: "<start>",
endDate: "<end>",
limit: 1
)
# summaryData.totals[0] is the total visits for this segment
This is 1 call per funnel step. For a 5-step funnel = 5 calls.
Also run total visits (no segment) as the 100% baseline:
runReport(
dimensionId: "variables/page",
metricIds: "metrics/visits",
startDate: "<start>",
endDate: "<end>",
limit: 1
)
# Use summaryData.totals[0] as the baseline visit count
> **AA runReport field names:** Use `metricIds` (not `metricId`) and `segmentIds` (not `segmentId`). > Use `startDate`/`endDate` (ISO 8601) rather than a `dateRange` object. > Always read totals from `summaryData.totals[0]`, not from `rows`.
---
Phase 5 — Compute Funnel Metrics
For
Read more
name: aa-conversion-funnel-analysis description: > Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel," "where are visitors dropping off," "what's our add-to-cart to purchase conversion rate," "funnel analysis," "show me fallout between steps," or "which step loses the most visitors." license: Apache-2.0 metadata: author: Adobe version: "1.0"
Conversion Funnel Analysis (Adobe Analytics)
Analyze a multi-step conversion funnel to identify where visitors drop off, which steps have the worst leakage, and what drives visitors to convert or abandon. Uses AA visit-level segment-based reporting to simulate funnel steps.
> **AA Container Model:** AA funnels use **hit**, **visit**, and **visitor** > containers — not CJA's event/session/person. Funnel steps are defined as > visit-level segments (visitors who completed the step during a visit). > > **Reporting approach:** AA does not have a native sequential fallout API > accessible via MCP. This skill approximates fallout by creating or finding > visit-level segments for each funnel step, then running the metric for > each step segment to compute pass-through rates.
---
AA MCP Tools Used
- `findReportSuites` — select report suite
- `setSessionDefaults` — set session context (reportSuiteId + globalCompanyId)
- `findDimensions` — discover page/event dimensions for step definition
- `findMetrics` — find visits or orders as the counting metric
- `searchDimensionItems` — validate page names or event values
- `findSegments` — find existing step segments if available
- `upsertSegment` — create visit-level step segments if not found
- `runReport` — run visits count for each step segment
---
Phase 0 — Setup
1. Confirm report suite with `findReportSuites` / `setSessionDefaults`. 2. Ask the user about the overall funnel scope (visit or visitor level):
- **Visit-level funnel:** all steps happen within a single visit
(typical for checkout funnels)
- **Visitor-level funnel:** steps can span multiple visits
(typical for lifecycle funnels)
findReportSuites(globalCompanyId: "<gcid>", page: 0, limit: 10) setSessionDefaults(globalCompanyId: "<gcid>", reportSuiteId: "<rsid>")
---
Phase 1 — Define the Funnel Steps
Ask the user to describe each step of the funnel in plain language. Prompt for 3–8 steps. Example:
1. Product page viewed 2. Add to cart 3. Checkout started 4. Payment info entered 5. Order confirmed (purchase)
For each step, ask:
- "Is this defined by a page view (page name or URL), a custom event, or
a combination?"
- "Should this step be at the **hit** level (single page/event) or
**visit** level (any visit where this happened)?"
---
Phase 2 — Discover Components
2.1 Validate page names
For page-based steps:
findDimensions(page: 1, limit: 500) # returns all available dimensions; look for variables/page searchDimensionItems( dimensionId: "variables/page", searchOr: "<step page keywords>", # space-separated keywords OR'd together startDate: "<start>", endDate: "<end>", page: 1, limit: 20 )
Common page dimension IDs: `variables/page`, `variables/entrypage`, `variables/exitpage`. Confirm the correct page name value with the user if multiple matches exist.
> **Note:** `searchDimensionItems` uses `searchOr` or `searchAnd` for filtering — not `searchTerm`. > If no rows return, try a wider date range — some report suites only have historical data.
2.2 Validate events/metrics
For event-based steps (add to cart, checkout, purchase):
findMetrics(expansions: "componentType,categories", page: 0, limit: 200) # Filter results locally by name: visits, orders, pageviews, etc.
---
Phase 3 — Find or Create Step Segments
For each funnel step, search for an existing segment:
findSegments(searchTerm: "<step description>")
If an appropriate visit-level segment exists, use it directly.
If not, create a new visit-level segment for each step:
upsertSegment(
definition: {
"name": "Visit: Checkout Started",
"description": "Visits where the visitor reached the checkout page",
"reportSuiteID": "<rsid>",
"container": {
"func": "segment",
"context": "visits",
"pred": {
"func": "streq",
"val": "/checkout",
"str": "/checkout",
"dimension": "variables/page"
}
},
"tags": [{ "name": "funnel" }]
}
)Create all step segments before running reports. Record each segment `id`.
> **Important:** Only create new segments with explicit user confirmation. > Present the list of segments to be created and ask: "I need to create N > visit-level segments to define your funnel steps. Is that OK?"
---
Phase 4 — Run Funnel Step Reports
For each step segment, run the visits count over the analysis period:
runReport( dimensionId: "variables/page", # required by AA runReport metricIds: "metrics/visits", # note: plural field name "metricIds" segmentIds: "<step segment id>", # note: plural field name "segmentIds" startDate: "<start>", endDate: "<end>", limit: 1 ) # summaryData.totals[0] is the total visits for this segment
This is 1 call per funnel step. For a 5-step funnel = 5 calls.
Also run total visits (no segment) as the 100% baseline:
runReport( dimensionId: "variables/page", metricIds: "metrics/visits", startDate: "<start>", endDate: "<end>", limit: 1 ) # Use summaryData.totals[0] as the baseline visit count
> **AA runReport field names:** Use `metricIds` (not `metricId`) and `segmentIds` (not `segmentId`). > Use `startDate`/`endDate` (ISO 8601) rather than a `dateRange` object. > Always read totals from `summaryData.totals[0]`, not from `rows`.
---
Phase 5 — Compute Funnel Metrics
For
Repo: adobe/skills
Other skills on adobe-skills.
- /aa-executive-briefing
Generates a concise, executive-ready performance summary covering key metrics, trends, and what's driving movement. Use this skill when someone needs to produce a briefing, executive summary, performance narrative, or stakeholder readout — for example, "write an exec summary of
Open skill - /aa-kpi-pulse
Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when someone asks for a performance summary, a weekly recap, a morning briefing, a KPI update, or any variation of "how did we do this week/month." Also
Open skill - /aa-segment-performance-comparator
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences or visitor groups — for example, "how do mobile visitors compare to desktop on conversion," "compare new vs. returning visitors,"
Open skill - /aa-top-movers-watchlist
Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric between two time periods. Use this skill when someone asks "what's up and what's down," "which campaigns moved the most," "top gainers and losers,"
Open skill - /cja-dimension-analysis
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user wants to analyze one or more dimensions — including cardinality, distribution/skew, trends, anomalies, data quality errors, comparisons, and forecasting. Also trigger when someone asks "what
Open skill - /cja-executive-briefing
Generates a polished, leadership-ready performance briefing with KPI tiles, executive narrative bullets, and a driver analysis — all as a print-ready HTML document. Always use this skill when someone asks for an executive summary, performance briefing, leadership readout,
Open skill

