仪表板上的自定义点击目的地

你可以设置仪表板卡片,将人们发送到仪表板、保存的问题和 URL,并使用卡片中的值在目标位置更新过滤器,或参数化外部网站的链接。

Metabase 提供了一些简单的构建块,让您可以自定义当有人点击仪表板上的图表时会发生什么。您可以将这些原语组合在一起,创建通过报告的路径,仪表板更新后续仪表板,甚至将人们发送到外部网站。

对于本文,我们将关注自定义点击行为的一个选项:转到自定义目的地。我们将使用 Metabase 的示例数据库进行场景模拟,向您展示自定义目的地是如何工作的,并展示一些创建交互式体验的技巧。

我们将创建两个快速仪表板——一个 订单概览 仪表板和一个 产品详情 仪表板。我们想要创建的用户体验是:当有人查看我们的订单概览仪表板时,他们应该能够点击一个产品,然后 Metabase 将他们带到根据用户点击的产品更新的产品详情仪表板。一旦人们到达产品详情仪表板,Metabase 应该能够根据用户点击的产品类别将人们发送到不同的外部 URL。

之后,我们还将通过另一个使用 SQL 问题的示例展示如何将自定义目的地作为向仪表板上的 SQL 问题添加交互元素的好方法。

如果你已经有了自己的仪表板可以工作,你可以跳到我们开始自定义目的地的地方。

创建订单概览和产品详情仪表板

让我们首先构建我们的 订单概览 仪表板并向其中添加两个问题。我们将快速浏览这部分内容——如果你需要更详细的信息,请查看我们关于 提问创建仪表板 的文档。

创建一个新的仪表板,命名为订单概览,并将其保存在一个合理的位置。

我们将就我们的订单提出两个问题

  1. 我们的订单表是什么样的?:首先浏览 Orders 表,然后点击保存。
  2. 订单是如何按州划分的?:选择 Orders 表开始,然后在侧边栏的 用户 下按 State 字段汇总。由于我们按州汇总,Metabase 为我们生成了一个 区域地图。务必保存此问题。

接下来,我们可以将那些保存的问题添加到我们的新仪表板中。在查看空白仪表板时,点击 铅笔图标 进入编辑模式,并通过选择 + 添加保存的问题。一旦添加了这些问题并保存了仪表板,结果应该看起来像这样:

The Orders Overview dashboard.

接下来,我们需要创建我们的 产品详情 仪表板,最终我们会将其链接到订单概览。产品详情将更详细地查看我们库存中的单个项目,因此我们还将设置一个仪表板过滤器,允许我们根据要检查的产品输入一个ID值。

创建此仪表板,将其命名为产品详情,并保存。

让我们提出两个新问题,并将它们添加到这个仪表板中。

  1. 产品名称是什么?:从 产品 表格开始,点击 可视化,然后选择 数字,在 显示字段 下拉菜单中选择 标题。保存此问题。
  2. 有多少订单包含此产品?:从 订单 表格开始,并在 订单 列表下按 产品ID 的计数进行汇总。也通过 数字 可视化此内容,在 显示字段 下拉菜单中选择 Count,然后保存问题。

返回到产品详情仪表板。在编辑模式下,添加我们的新保存问题,并且别忘了我们还需要一个仪表板过滤器。要添加一个过滤器,请点击右上角的 添加过滤器 图标,并选择 ID。为每个卡片选择适当的列进行过滤——我们的产品名称卡片将通过 Product.ID 进行过滤,而订单数量应该通过 Order.Product ID 进行过滤。我们将这些问题的可视化设置为 数字,以便它们像变量文本卡片一样运行,根据过滤器的值更改其文本。

以下是仪表板过滤器设置将看起来像什么

Adding a filter to our Product Detail dashboard.

点击 完成 并保存您的仪表板。

现在我们将展示如何链接到外部网站。仅作为一个例子,我们将使用Metabase文档的搜索结果页面,并搜索用户点击的产品。

以下是完整的点击路径

订单概览 仪表板 → 产品详情 仪表板 → 外部网站

此GIF显示了点击路径的实际操作

A click path from the Orders overview dashboard to the Product detail dashboard, to the Metabase docs search page for the clicked category: Widget.

自定义点击行为:订单概览仪表板

让我们回到 订单概览 仪表板。我们可以向此仪表板上的每个卡片添加自定义点击行为,但让我们专注于仅添加一个自定义目的地到一张卡片。假设我们想要设置 订单 卡(包含订单表的卡片),以便当有人点击 产品ID 时,Metabase 会将其发送到产品详情页面,并将产品详情仪表板上的过滤器与用户点击的产品 产品ID 连接。

从订单概览页面开始,我们将点击 铅笔图标 进入仪表板编辑模式。接下来,我们将悬停在要自定义的卡片上。一个菜单将出现在右上角。点击 点击行为图标 菜单(它是带有鼠标指针的卡片图标)。

Hover over the card you want to customize, and click on the click behavior icon.

Metabase 将为您滑动出一个侧边栏,以设置有人点击此表格时会发生什么。

For cards with tables, you can customize click behavior for each column. For questions composed using the query builder, the default click behavior is to Open the action menu.

让我们先了解一下情况

  • 卡片网格:由于我们为订单卡片选择了 点击行为,Metabase 以蓝色突出显示其 点击 标签。我们可以通过点击其他卡片的标签来选择另一张卡片的点击行为。
  • 右上角:主要的编辑菜单,包括添加问题、文本框或过滤器选项。
  • 右侧边栏:用于自定义当前卡片点击行为的选项。

由于我们使用查询构建器来编写“订单”问题,Metabase将默认点击行为设置为打开钻取菜单,这允许人们钻取数据

Click behavior for the Product ID column. Defaults to Open the action menu.

让我们更改点击行为,将人们发送到我们的产品详情仪表板。

表格和自定义目的地是一对特别好的组合,因为我们可以为表格中的每一列设置不同的自定义目的地。在这个例子中,我们将只设置单列的点击行为。我们将在“订单”问题卡上设置一个自定义目的地,以便当人们点击“产品ID”列中的值时,Metabase会1) 将他们发送到产品详情仪表板,2) 并通过点击的产品ID过滤该仪表板。

我们的选项有

  • 打开操作菜单(使用查询构建器编写的问题的默认选项)。
  • 转到自定义目的地。
  • 更新仪表板过滤器。

我们将选择转到自定义目的地

Metabase将提供三个自定义目的地选项

  • 仪表板
  • 保存的问题
  • URL

要将人们发送到产品详情仪表板,我们将选择仪表板选项,并选择我们的产品详情仪表板。

这里是检查点

We have the Product ID column set to Go to a custom destination, which we

传递值到目的地

到目前为止,我们已经将产品ID列设置为转到自定义目的地,我们将其设置为链接到产品详情仪表板,但我们还没有完成设置此链接。接下来,我们想要将值传递到此仪表板的过滤器中。您会注意到仪表板上有可用的过滤器列表。在这种情况下,我们的产品详情仪表板只有一个我们可以传递值的过滤器:ID

点击ID,您会注意到您可以从表中的任何列传递值,而不仅仅是产品ID列。但在这个例子中,我们将从产品ID列传递值。

Metabase将提供一个摘要

Summary of the click behavior we

在这里,Metabase确认我们已将产品ID列的点击行为设置为

  • 转到自定义目的地。
  • 链接到产品详情仪表板。
  • 产品ID列的值传递到ID过滤器上的产品详情仪表板。

让我们试试看:从订单概览,我们将在产品ID列上点击,Metabase将带我们到产品详情仪表板,并将值14放入ID过滤器中。

Clicking on the Product ID column in the Orders Overview dashboard sends you to Product Detail and plugs the Product ID value (in this case 14, the ID for Awesome Concrete Shoes) into the ID filter on that dashboard.

自定义目的地:URL

接下来,我们将设置产品详情仪表板,以便当人们点击产品名称卡时,Metabase将发送他们到一个外部网站,并使用卡片中的值参数化URL。我们可以发送他们到任何外部网站,但在这个例子中,我们将发送他们到Metabase文档的搜索页面,以便您可以查看参数化操作(并且阅读我们的文档会使您成为一个更好的人)。

这是那个仪表板

Product detail dashboard, showing details for the classic Lightweight Wool Computer.

像以前一样,我们将进入仪表板编辑模式,悬停在产品名称卡上,并选择点击行为

我们将看到之前看到的相同菜单

  • 打开操作菜单。
  • 转到自定义目的地。
  • 更新仪表板过滤器。

我们将选择 转到自定义目的地URL。接下来,我们将输入我们的 URL,并通过将它们用双大括号括起来来包含 参数,如下所示:{{parameter}}。在这种情况下,我们将使用 标题 作为 URL 中的参数

https://metabase.net.cn/search?query={{Title}}

Modal for entering a custom URL. You can use double braces to enclose parameters.

您可以查看 您可引用的值 下拉菜单,以查看您可以在 URL 中用作参数的值的完整列表。您可以使用 URL 中的任何(或所有)值,包括重复使用相同的值。

使用文本框添加导航

除了 为您的仪表板添加上下文 之外,您还可以使用文本卡片将有用的导航链接添加到仪表板中,例如添加一个将您带回到我们 订单概览 仪表板(我们开始的地方)的文本卡片。您可以创建一个文本卡片,将文本居中,并使用 Markdown 创建一个链接到 订单概览 仪表板的链接,这只是为您的读者提供方便,让他们更容易浏览您的点击路径。这是带有该链接的仪表板的外观

Using a text card to add a helpful navigation link.

使用 SQL 问题的自定义目的地

我们上面使用的示例仪表板只包括使用 Metabase 的 查询构建器 提出的问题,但您可能还有您想在仪表板上使其交互式 本地查询

让我们先在我们的 产品详情 仪表板中提出并添加一个 SQL 问题,这次是关于产品类别。在导航到本地查询构建器后,我们将输入以下 SQL 问题

select CATEGORY
from PRODUCTS
where
    {{TITLE}} and
    {{ID}}

Metabase 滑出一个侧边栏,其中您将看到两个变量:标题ID。我们希望这个问题在我们输入 ID 或标题字段中的值时显示产品类别。从下拉菜单中,将两个的 变量类型 都设置为 字段筛选器。将 标题 变量映射到 产品.标题 字段,并将 ID 映射到 产品.ID

您可以通过将示例 ID 添加到字段筛选器来确认问题是否运行;这里我们使用产品 ID 号 34 进行测试,并运行查询。因为我们的可视化是 数字,所以我们看到该产品的类别(小工具)作为文本显示在问题下方

Editing and running our SQL query.

现在保存该问题并将其添加到我们的 产品详情 仪表板中。在编辑模式下,请确保将现有的仪表板筛选器链接到我们的新卡片,该新卡片应该筛选新 产品类别 卡片中的 ID 列。

接下来,选择我们新卡片上的 点击行为图标,您将看到与之前略有不同的菜单

  • 不执行任何操作
  • 转到自定义问题
  • 更新仪表板筛选器

存在“不执行任何操作”选项的原因是我们用 SQL 编写了 产品类别 问题,而 SQL 问题不包括 操作菜单

接下来,我们将向您展示一个巧妙的小技巧。如果我们返回到 产品类别 问题,我们可以使用 concat 创建基于筛选器值的字符串。

select concat('Category is ', CATEGORY)
from PRODUCTS
where
    {{TITLE}} and
    {{ID}}

Updated category question written in SQL.

最后,我们可以将自定义目的地设置为一个特定的参数化 URL,就像我们之前做的那样,或者将此卡片链接到包含按产品类别统计的订单的另一个仪表板。

总结

我们已经向您展示了如何设置简单的点击路径,以及如何为本地查询和Metabase查询构建器创建的查询设置自定义目标。但这些示例只展示了单个点击路径。您可以为仪表板上的每个问题卡自定义行为!例如,您可以创建一个州详细仪表板,并自定义美国地图上的点击行为,使Metabase将人们发送到按点击的州筛选的州详细仪表板。

使用Metabase查询构建器构建的问题将默认显示在操作菜单中,允许用户深入数据,但对于SQL问题,我们建议根据需要自定义目标。请参阅我们的文档了解更多关于交互式仪表板的信息。

您还可以将用户属性传递到URL或目标过滤器中,允许您为特定用户定制体验。

因此,通过您的数据设置点击路径时,请发挥创意,并在我们的论坛上分享您发现的任何技巧。

下一节:交叉筛选:使用图表更新仪表板过滤器

只需几次点击,您就可以配置任何图表或表格来更新仪表板过滤器。

下一篇文章