Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
81f3320
NEW Dashboard actions
fiquick Feb 23, 2026
4b05993
update
fiquick Feb 24, 2026
2119d54
update actions docs
fiquick Feb 24, 2026
027a74a
Update
fiquick Feb 24, 2026
8243d58
update
fiquick Feb 26, 2026
a3a8b97
update
fiquick Feb 26, 2026
454d4ac
update
fiquick Feb 26, 2026
f2710e5
Merge branch 'console' into report-actions
fiquick Feb 26, 2026
63b9d0c
update based on Jennie's feedback
fiquick Mar 4, 2026
386f523
update
fiquick Mar 4, 2026
a5c20e5
update cypher examples
fiquick Mar 5, 2026
77e293a
update
fiquick Mar 5, 2026
4c252ee
add custom URL
fiquick Mar 5, 2026
edbfea9
update to latest designs
fiquick Mar 12, 2026
3cf8e16
Apply suggestion from @jehellqvist
fiquick Apr 16, 2026
17c0f25
onsite update
fiquick Apr 16, 2026
f782076
actions are available for tables
fiquick Apr 17, 2026
5db2f59
awesome
fiquick Apr 20, 2026
bdb7394
great example
fiquick Apr 20, 2026
becb6f3
Merge branch 'console' into report-actions
fiquick Apr 20, 2026
7997339
update nav
fiquick Apr 20, 2026
3f832d8
add admonition
fiquick Apr 20, 2026
7dfab59
update
fiquick Apr 21, 2026
57cdd81
update
fiquick Apr 21, 2026
22e228f
update
fiquick Apr 21, 2026
ce25847
update
fiquick Apr 21, 2026
f144fd9
update
fiquick Apr 21, 2026
b939ab3
update
fiquick Apr 21, 2026
401bbd1
update
fiquick Apr 21, 2026
ee966c9
update
fiquick Apr 21, 2026
c244deb
update
fiquick Apr 21, 2026
4892537
update nav
fiquick Apr 21, 2026
81f5818
update nav
fiquick Apr 21, 2026
c8b608a
add list params
fiquick Apr 21, 2026
4c5c9e2
update nav
fiquick Apr 21, 2026
1ee8373
update
fiquick Apr 21, 2026
b500828
update
fiquick Apr 21, 2026
4a59160
update
fiquick Apr 21, 2026
ead44c0
update cell click screenshots
fiquick Apr 21, 2026
f6e5ba3
remove dupe info
fiquick Apr 21, 2026
11c2d47
add actions index
fiquick Apr 22, 2026
987a100
update
fiquick Apr 22, 2026
46bd07c
Update modules/ROOT/pages/dashboards/actions/index.adoc
fiquick Apr 22, 2026
b7c4fab
based on jennie's great feedback
fiquick Apr 22, 2026
f7728cf
update
fiquick Apr 22, 2026
2e0088a
update desc
fiquick Apr 22, 2026
7e922a1
Update modules/ROOT/pages/dashboards/actions/index.adoc
fiquick Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions modules/ROOT/content-nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,6 @@ Generic Start
** xref:dashboards/create-dashboards-manually.adoc[Create dashboards with Cypher]
** xref:dashboards/managing-dashboards.adoc[Managing dashboards]
** xref:dashboards/import.adoc[Import and export]
** xref:dashboards/parameters-and-filters.adoc[Parameters and filters]
** xref:dashboards/filter-types.adoc[Filter types]
** xref:dashboards/sharing-dashboards.adoc[Sharing dashboards]
** xref:dashboards/visualizations/index.adoc[Visualizations]
*** xref:dashboards/visualizations/graph.adoc[Graph]
Expand All @@ -126,6 +124,13 @@ Generic Start
*** xref:dashboards/visualizations/single-value.adoc[Single value]
*** xref:dashboards/visualizations/text.adoc[Text]
*** xref:dashboards/visualizations/map.adoc[Map]
** xref:dashboards/parameters-and-filters.adoc[Filters]
** xref:dashboards/filter-types.adoc[Filter types]
** xref:dashboards/parameters.adoc[Parameters]
** xref:dashboards/list-parameters.adoc[List parameters]
** xref:dashboards/actions/index.adoc[Actions]
** xref:dashboards/actions/cell-click.adoc[Cell click action]
** xref:dashboards/actions/row-select.adoc[Row select action]
** xref:dashboards/faq-and-resources.adoc[FAQ and resources]

* Metrics
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions modules/ROOT/images/dashboards/actions/filter.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions modules/ROOT/images/dashboards/actions/navigate-dashboard.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions modules/ROOT/images/dashboards/actions/navigate-url.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
108 changes: 108 additions & 0 deletions modules/ROOT/pages/dashboards/actions/cell-click.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
= Cell click action
:description: Use the cell click dashboard action to connect cards, set parameters, and navigate between pages or external link URLS in cards.

The cell click action is available for xref:dashboards/visualizations/table.adoc[Tables].

Use it to:

* *Set a parameter*: A cell click will always set a parameter, which can update the rest of the dashboard so visualizations respond to the selection.

* *Navigate to a dashboard page*: Opens a specific page within the current dashboard.
This is typically used to create a drill-down effect, where the *set parameter* action filters the visualizations on the destination page.

* *Navigate to an external URL*: The *set parameter* value can be embedded directly into a URL string to pass the parameter value to the external target.
For example, insert the `$employee` parameter value into the URL e.g. `https://neo4j.com/name=\{employee}`

[WARNING]
====
To keep data secure, avoid including sensitive data in URL parameters.
For example, a URL including `name=John` exposes personal information directly.
Data in URLs may also appear in browser history and server logs.
====

== Action icons

Action icons appear next to values that can be set as a parameter.

[cols="1,20", frame="none", grid="none"]
|===
|image:dashboards/actions/filter.svg[]
|Set parameter

|image:dashboards/actions/navigate-url.svg[]
|Set parameter and navigate to URL

|image:dashboards/actions/navigate-dashboard.svg[]
|Set parameter and navigate to dashboard page
|===

== Example

The following example uses the Northwind dataset to show how to *set a parameter* and *navigate to a dashboard page*.
Click the name of a top order and revenue generator to open that employee’s dashboard.

* The example starts with the default *Main page*.
* Add a second page called *Employee info*.
* Use an action on the *Main page* to set a parameter and navigate to *Employee info*.

1) On the *Main page*, add a card with a Cypher query that returns each employee’s name, number of orders, and total revenue.

[source,cypher]
----
MATCH (e:Employee)-[:SOLD]->(o:Order)-[orders:ORDERS]->(:Product)
RETURN
e.firstName AS employee,
count(DISTINCT o) AS orders,
round(sum(orders.quantity * orders.unitPrice), 2) AS revenue
ORDER BY revenue DESC
----

2) Add an action to the `employee` column's values

In the actions panel set:

. *TRIGGER* *Cell click*
. *ON CELL* *employee*
. *UPDATE PARAMETER* *employee*
. *TO CELL VALUE* *employee*
. *NAVIGATE TO PAGE* *Employee info*

.Add action
[.shadow]
image::dashboards/actions/add-action.png[width=900]

Once the action is configured, the action preview shows its structure

*action trigger → parameter action → optional navigation action*

.Action preview
[.shadow]
image::dashboards/actions/action-preview.png[width=900]


3) Use the `$employee` parameter on the `Employee info` page's visualizations

On the *Employee info* page, add a Cypher query to a card that reads the parameter and returns details for the selected employee.

[source,cypher]
----
MATCH (e:Employee)
WHERE e.firstName = $employee
RETURN
$employee AS employee,
e.notes AS notes
----

4) Click on a name on the `Main page`

.Top employees selected on the Main page, with hover over the filter icon
[.shadow]
image::dashboards/actions/top-employees.png[width=400]

5) This navigates you to the `Employee info` page and updates the visualization based on the value that was selected

.Employee info
[.shadow]
image::dashboards/actions/employee-notes.png[width=600]


25 changes: 25 additions & 0 deletions modules/ROOT/pages/dashboards/actions/index.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
= Actions

An action is event-driven.
When an action trigger within a visualization is clicked, it assigns a value to a parameter.
Any card with a Cypher query that includes that parameter responds immediately, so visualizations update dynamically based on the selection.

There are two types of actions, used with xref:dashboards/visualizations/table.adoc[tables]:

* xref:dashboards/actions/cell-click.adoc[Cell click action] - Triggered when a person clicks a specific cell value.
* xref:dashboards/actions/row-select.adoc[Row select action] - Triggered when a person selects one or more rows.

[.shadow]
.Dashboard actions
image::dashboards/actions/dashboard-actions.png[]

Use cases:

* Click a person's name → filters other charts with their data
* Click a cell → navigates to another dashboard page with context applied, allowing drill-down into the data
* Select multiple rows of orders → another card calculates total order weight

For many use cases, especially proof-of-concepts, this level of interactivity significantly expands what dashboards can do.
This enables rapid prototyping, with your dashboard behaving like an app.

Instead of building a graph app with frontend code, sketch one directly in your dashboard.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this text Niels, really cool!

55 changes: 55 additions & 0 deletions modules/ROOT/pages/dashboards/actions/row-select.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
= Row select action
:description: Select multiple values for a table to be used in a parameter.

The row select action is available for xref:dashboards/visualizations/table.adoc[Tables].

Select a value from a table row by clicking a checkbox. and assign it to a parameter.
Reuse this parameter in another card or query.
Only the selected cell value is passed, not the full row.

You can select multiple rows, and multiple values from the same column will be selected and added to a xref:dashboards/list-parameters.adoc[list parameter].

== Example

The examples on this page use the xref::/dashboards/index.adoc#_sample_dataset[Northwind sample dataset] which you can also use.

The selected OrderID values are passed to `$orderID`.
We'll then use that in another card to calculate the total freight.

=== Step 1: Add the first card

To return orders in a table, paste the following Cypher into the card, then select *Save*:

.Return orders in a table
[source,cypher]
----
MATCH (c:Customer)-[:PURCHASED]->(o:Order)
RETURN o.orderID AS OrderID, c.companyName AS CustomerCompanyName, o.freight AS Freight
----
Comment thread
fiquick marked this conversation as resolved.

=== Step 2: Add an action
Comment thread
fiquick marked this conversation as resolved.

In the actions panel set:

1. *TRIGGER Row selection*
2. *UPDATE PARAMETER orderID*
3. *TO CELL VALUE OrderID*

When you select a row, the OrderID value from that row is stored in `$orderID`.
If you select multiple rows, $orderID stores a list of OrderID values.

=== Step 3: Add a second card

Now you can use the `$orderID` value in another card.

For example:

.Calculate the total freight across selected orders
[source,cypher]
----
MATCH (o:Order)
WHERE toString(o.orderID) IN $orderID
RETURN sum(toFloat(o.freight)) AS TotalFreight
----
Comment thread
fiquick marked this conversation as resolved.

Selecting multiple rows adds the OrderID values to a list, allowing you to calculate the total freight across those orders.
Comment thread
fiquick marked this conversation as resolved.
2 changes: 1 addition & 1 deletion modules/ROOT/pages/dashboards/filter-types.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This means that your reports can show different data depending on the value of a
.Select component
image::dashboards/filters/selectcomponent.png[width=400]

Examples used here use the Northwind dataset as outlined in http://localhost:8000/aura/dashboards/getting-started/#_add_a_sample_data_set[add a sample dataset] and you can recreate them in your own dashboard.
Examples used here use the Northwind dataset as outlined in xref::/dashboards/index.adoc#_sample_dataset[Northwind sample dataset] and you can recreate them in your own dashboard.

== Node property

Expand Down
32 changes: 32 additions & 0 deletions modules/ROOT/pages/dashboards/list-parameters.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
= List parameters

List parameters allow you to pass multiple values into a parameter and use them in Cypher queries.
Define the parameter once, then reference it using the `$` prefix.
See link:https://neo4j.com/docs/cypher-manual/current/values-and-types/lists/[Cypher Manual -> Lists]

== Example

Examples used here use the Northwind dataset as outlined in xref::/dashboards/index.adoc#_sample_dataset[Northwind sample dataset] and you can recreate them in your own dashboard.

This example compares how many items are ordered by selected countries.

1. Set the list parameter `$list = ["UK", "France", "Germany"]`

2. Add a card and set the visualization to a bar chart.

3. Paste the Cypher query:

[source,cypher]
----
MATCH (o:Order)-[r:ORDERS]->(p:Product)
WHERE o.shipCountry IN $list
RETURN o.shipCountry AS country,
sum(r.quantity) AS unitsOrdered
ORDER BY unitsOrdered DESC
----

As a result, we can see in the Northwind dataset that Germany orders the most units, followed by the UK, then France.

[.shadow]
.Compare how many items are ordered by selected countries.
image::dashboards/parameters-and-filters/list-parameter.png[example]
45 changes: 4 additions & 41 deletions modules/ROOT/pages/dashboards/parameters-and-filters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
:description: Use parameters in your dashboards to further customize queries or use them in filters for node and relationship properties.

Filters are the main way to make dashboard charts dynamic.

Filters can be created in two ways:
They can be created in two ways:

* Add a filter and parameter
* Link a parameter to a filter

== Add a filter and parameter
== Example 1: Add a filter and parameter

Create a filter to see which companies are based in a city, with the default set to London.

Expand Down Expand Up @@ -55,7 +54,7 @@ image::dashboards/parameters-and-filters/customers-located-at-selected-city.png[



== Link a parameter to a filter
== Example 2: Link a parameter to a filter

=== Step 1: Open the parameters drawer `{}`

Expand Down Expand Up @@ -113,40 +112,4 @@ Selecting a value from the dropdown updates the parameter `$unit_param` and upda

.Selecting a new value for the unitsInStock filter
[.shadow]
image::dashboards/parameters-and-filters/filter-and-card.gif[]

== Parameters drawer

.The parameters drawer
[.shadow]
image::dashboards/parameters-and-filters/parameters-drawer.png[]

The drawer shows the dashboard parameters in alphabetical order.
Each parameter has an icon next to it hinting at its data type:

* A text icon for strings.
* A hashtag icon for numbers.
* A calendar icon for dates.
* A filter icon for unspecified data types.

=== Creating a parameter in the parameter drawer

. From the **Parameters** drawer, use the **Add** button.
. In the dialog, enter a parameter name, select a data type and optionally an initial value for the parameter, then **Save**.

=== Editing a parameter

. From the **Parameters** drawer, hover over the parameter you wish to edit.
. In the dialog, edit the parameter name, data type and/or initial value, then **Save**.

=== Using a parameter in a query

To use a parameter in a query, prefix the parameter name with `$`.
For example, to use a parameter with a number value of 4 and the name "unit_param", use `$unit_param` in your query:

// .Cypher query for a table which displays products with a certain number of units in stock

// MATCH (p:Product)
// WHERE p.unitsInStock = $unit_param
// RETURN p.productName as product, p.unitsInStock AS units
// LIMIT 10
image::dashboards/parameters-and-filters/filter-and-card.gif[]
46 changes: 46 additions & 0 deletions modules/ROOT/pages/dashboards/parameters.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
= Parameters

The parameters drawer lets you adjust values that shape your dashboard results.
It's on the top right side of a dasboard.
Use the curly brackets icon `{}` to
link:https://neo4j.com/docs/aura/dashboards/parameters-and-filters/#_step_1_open_the_parameters_drawer[open the parameters drawer].

* *Default value*: The default value if there is no initial current value. It is not required.
* *Current value*: The current value is used even if there is a default value.

== Parameters drawer

.The parameters drawer
[.shadow]
image::dashboards/parameters-and-filters/parameters-drawer.png[]

The drawer shows the dashboard parameters in alphabetical order.
Each parameter has an icon next to it hinting at its data type:

* A text icon for strings.
* A toggle icon for boolean.
* A hashtag icon for numbers.
* A calendar icon for dates.
* A filter icon for unspecified data types.

=== Creating a parameter in the parameter drawer

. From the **Parameters** drawer, use the **Add** button.
. In the dialog, enter a parameter name, select a data type and optionally an initial value for the parameter, then **Save**.

=== Editing a parameter

. From the **Parameters** drawer, hover over the parameter you wish to edit.
. In the dialog, edit the parameter name, data type and/or initial value, then **Save**.

=== Using a parameter in a query

To use a parameter in a Cypher query, prefix the parameter name with `$`.
See link:http://localhost:8000/aura/dashboards/parameters-and-filters/#_step_2_add_a_parameter[add a parameter].

// .Cypher query for a table which displays products with a certain number of units in stock

// MATCH (p:Product)
// WHERE p.unitsInStock = $unit_param
// RETURN p.productName as product, p.unitsInStock AS units
// LIMIT 10
5 changes: 5 additions & 0 deletions modules/ROOT/pages/dashboards/visualizations/table.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
= Table
:description: The Neo4j dashboard table visualization.

[NOTE]
====
xref:dashboards/actions/cell-click.adoc[Cell click] and
xref:dashboards/actions/row-select.adoc[Row select] actions are available for tables.
====

Neo4j dashboard tables can render all data returned by a Cypher query as a result table.

Expand Down
Loading
Loading