Twilio TaskRouter workers 对数组中对象中数据的匹配表达式

Matching expressions for Twilio TaskRouter workers on data in objects in arrays

我的 Twilio Taskrouter worker 的属性如下所示:

{
  "name": "Bob",
  "id": "45",
  "roles": [
    { "id": "19", "name": "Foobar" },
    { "id": "20", "name": "Foobaz" }
  ]
}

我想编写一个队列表达式来仅匹配具有 id20 的角色的 Workers。我该怎么做?

它看起来像...

"20" in roles.id

...但这不起作用。因为看起来 Taskrouter 不够聪明,无法“展开”id 并在其中进行匹配(就像使用像 jq 这样的工具)。我无法在 Twilio Taskrouter expression docs.

中找到解决方案

此处为 Twilio 开发人员布道师。

我无法用这样的数据为您找到解决方案。我刚刚考虑的解决方法是向您的工作人员添加一个数组,例如 role_ids。您可以保留 roles 的现有数组,但添加更简单的数据类型以在表达式匹配中使用。

因此,属性将如下所示:

{
  "name": "Bob",
  "id": "45",
  "roles": [
    { "id": "19", "name": "Foobar" },
    { "id": "20", "name": "Foobaz" }
  ],
  "role_ids": ["19", "20"]
}

然后您可以使用表达式:

"20" in role_ids