elastic / elastic/docs-content

Improve URL drilldown docs with practical examples for context.panel.* and row/cell interaction variables

Open
#6,728 3 comments 0 reactions 1 assignee Claimed by @florent-leborgne View on GitHub
Planned-S24 Team:Experience
Dominant language
No language data
Stars
47
Forks
261
Avg merge
3d 12h
Merged PRs (30d)
116

Description

## Problem

Customer feedback (score 3/5, enterprise serverless, v9.5.0):

> The Drill-down documentation is hard to understand.
>
> `https://www.elastic.co/?panel={{context.panel.title}}` — we can find this.
>
> But how to use these?
> `context.panel.filters`, `context.panel.id`, `context.panel.indexPatternId`, `context.panel.query.language`, `context.panel.query.query`, `context.panel.savedObjectId`, `context.panel.timeRange.from`, `context.panel.timeRange.to`, `context.panel.title`
>
> More examples would allow customers to see the capabilities and "cherry-pick" features (see how it is implemented and apply to their own situation).

The customer also specifically asked for **example dashboards with tables containing Row and Cell interactions that they can see working**.

## Current state

The [URL templating section](https://www.elastic.co/docs/explore-analyze/dashboards/drilldowns#url-template-variable) of the drilldowns page:
- Lists all `context.panel.*` variables in the reference table, with short descriptions but **no usage examples**.
- Shows one end-to-end URL drilldown example (`{{event.value}}` → GitHub issues URL), but nothing for `context.panel.*` variables.
- Lists Row click event variables (`event.rowIndex`, `event.values`, `event.keys`, `event.columnNames`) with no worked example of a table row/cell interaction in practice.
- The `context.panel.filters` tip says "use with rison helper for internal Kibana navigations" but doesn't show what that actually looks like.

## Suggested improvements

1. **Add practical URL examples for each `context.panel.*` variable group**, directly in or alongside the variables reference table. For example:
- `context.panel.timeRange.*` → `{{kibanaUrl}}/app/discover#/?_g=(time:(from:'{{context.panel.timeRange.from}}',to:'{{context.panel.timeRange.to}}'))`
- `context.panel.filters` → `{{kibanaUrl}}/app/discover#/?_a=(filters:{{rison context.panel.filters}})`
- `context.panel.query.*` → combining query + language into an external search URL
- `context.panel.savedObjectId` / `context.panel.id` → deep-link to the panel itself

2. **Add a worked end-to-end example for a Row click (table row interaction)**, showing a data table panel with a URL drilldown that passes `event.values` and `event.keys` to an external or internal URL. This is the most commonly requested scenario and currently has zero examples.

3. **Consider adding a short "Common recipes" or "Example templates" section** that groups 3–5 copy-pasteable URL templates covering the most frequent use cases (filter passthrough, time range passthrough, row value passthrough).

## Source

Customer feedback submitted via in-app feedback form (dashboards app, observability solution, serverless, v9.5.0). Contact allowed.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.