菜单端点

菜单表示可以分配给客服人员的队列,以及最终用户在联系客服人员时可以选择的选项。每个对象代表一个菜单。

共有七个菜单端点:

  • /menu - 拉取菜单列表。

  • /menu/tree - 以树状结构拉取菜单,模拟最终用户与客服人员联系时会使用的路径。

  • /menu/{:id} - 拉取单个菜单资源。

  • /menu/current_status - 返回有消费者在队列中等待的菜单的当前队列状态。

  • /menu/sla - 返回从现在到之前指定分钟数内所有菜单路径的 SLA。

  • /menu/sla_by_queue_group - 返回从现在到之前指定分钟数内所有队列组的 SLA。

  • /menus/operation_hours - 返回菜单的营业时间。

请参考以下模型,确定哪些字段可能包含 PII:

   {
    "id": 0,
    "name": "string",
    "parent_id": 0,
    "position": 0,
    "deleted": true,
    "hidden": "string",
    "menu_type": "ivr_menu",
    "output_msg": "string",
    "agent_assignments": [
      {
        "lang": "en",
        "queue_level": "primary",
        "channel_type": "chat",
        "assignee": {
          "id": 0,
          "name": "string", // This may be considered PII
          "last_name": "string", // This may be considered PII
          "first_name": "string", // This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        }
      }
    ],
    "team_assignments": [
      {
        "lang": "en",
        "queue_level": "primary",
        "channel_type": "chat",
        "team": {
          "id": 0,
          "name": "string",
          "parent_id": 0,
          "position": 0,
          "deleted": true,
          "agents_count": 0,
          "assignees": {
            "id": 0,
            "name": "string", // This may be considered PII
            "last_name": "string", // This may be considered PII
            "first_name": "string", // This may be considered PII
            "agent_number": "string",
            "avatar_url": "string"
          }
        }
      }
    ]
  }
参数 必填 数据类型 定义
sort_column FALSE 字符串 根据响应对象中的任何字段对响应进行排序。
sort_direction FALSE ASC 或 DESC 注明排序方向,即升序还是降序
页面 FALSE 字符串 与“per”搭配使用,表示记录的页数。例如,如果 per 设为 200,page 设为 2,则响应将包含记录 201-400,因为 page 1 包含 1-200。
每 FALSE 字符串 与 page 搭配使用,用于指明一页记录中应包含多少条记录。例如,如果 per 设为 200,page 设为 2,则响应将包含记录 201-400,因为 page 1 将包含 1-200。
id[] FALSE Array[String] Array[Strings]。要搜索和返回的记录的 ID
name[] FALSE Array[String] 根据资源名称返回记录。
parent_id[] FALSE Array[String] 根据给定记录的父级 ID 返回记录
position[] FALSE Array[String] 根据菜单所在的位置返回记录
menu_type[] FALSE 字符串 要返回其树的菜单类型。传递不带括号的单个值,例如 menu_type=ivr_menu。如果您省略 menu_type,API 会返回移动菜单树。如需检索多种菜单类型,请针对每种类型分别请求一次树。
hidden[] FALSE 布尔值 返回已隐藏的记录 (True) 或不包含已隐藏的记录 (False)
with_deleted FALSE 布尔值 返回已删除的记录 (True) 或不包含已删除的记录 (False)

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus

更多请求/响应示例:

示例请求:菜单列表

Body: None

示例回答:菜单列表

[
    {
        "id": 1693,
        "name": "Death Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You have reached the Death Star",
        "hidden": false,
        "agent_assignments": [
            {
                "lang": "en",
                "queue_level": "primary",
                "channel_type": "voice_call",
                "assignee": {
                    "id": 97,
                    "agent_number": 97,
                    "name": "Darth Vader",
                    "last_name": "Darth",
                    "first_name": "Vader"
                }
            },
            {
                "lang": "it",
                "queue_level": "primary",
                "channel_type": "voice_call",
                "assignee": {
                    "id": 1407,
                    "agent_number": 123,
                    "name": "Moff Tarkin",
                    "last_name": "Moff",
                    "first_name": "Tarkin"
                }
            }
        ],
        "team_assignments": [
            {
                "lang": "en",
                "queue_level": "primary",
                "channel_type": "voice_call",
                "team": {
                    "id": 10,
                    "name": "Storm Troopers",
                    "parent_id": null,
                    "position": 1,
                    "agents_count": 48,
                    "deleted": false,
                    "assignees": [
                        {
                            "id": 1,
                            "agent_number": null,
                            "name": "Storm Troooper 1",
                            "last_name": "Storm ",
                            "first_name": "Admin1",
                            "avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
                        },
{
                            "id": 2,
                            "agent_number": null,
                            "name": "Storm Troooper 2",
                            "last_name": "Storm ",
                            "first_name": "Admin1",
                            "avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
                        },
{
                            "id": 3,
                            "agent_number": null,
                            "name": "Storm Troooper 3",
                            "last_name": "Storm ",
                            "first_name": "Admin1",
                            "avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
                        }
                    ]
                }
            }
        ]
    }]

状态代码:200

参数 必填 数据类型 定义
menu_type FALSE Array[String] 根据菜单类型返回记录。每种类型传递一次 menu_type[],例如 menu_type[]=ivr_menu&menu_type[]=web_menu,即使只有一种类型,也请使用此数组形式。如果您的 HTTP 客户端需要,请将方括号编码为 menu_type%5B%5D。如果您省略 menu_type[],API 会返回所有类型的菜单。该 API 不会根据类型参数进行过滤。
lang FALSE 字符串 要返回其树的语言。如果您省略 lang,API 会返回 en 树。如需检索多种语言,请针对每种语言分别请求一次树。

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus/tree

更多请求/响应示例:

示例请求:菜单树

Body: None

示例回答:菜单树

[
    {
        "id": 2029,
        "name": "Mobile 1",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "mobile_menu",
        "output_msg": null,
        "hidden": false,
        "children": []
    },
    {
        "id": 2024,
        "name": "Death Star Venting System",
        "parent_id": null,
        "position": 1,
        "deleted": false,
        "menu_type": "mobile_menu",
        "output_msg": null,
        "hidden": false,
        "children": []
    },
    {
        "id": 2025,
        "name": "Droid Repair",
        "parent_id": null,
        "position": 2,
        "deleted": false,
        "menu_type": "mobile_menu",
        "output_msg": null,
        "hidden": false,
        "children": []
    },
    {
        "id": 2049,
        "name": "Emperor's Hotline",
        "parent_id": null,
        "position": 3,
        "deleted": false,
        "menu_type": "mobile_menu",
        "output_msg": null,
        "hidden": false,
        "children": []
    },
    {
        "id": 2026,
        "name": "Storm Trooper Armor",
        "parent_id": null,
        "position": 4,
        "deleted": false,
        "menu_type": "mobile_menu",
        "output_msg": null,
        "hidden": false,
        "children": [
            {
                "id": 2036,
                "name": "Armor Polishing Team",
                "parent_id": 2026,
                "position": 0,
                "deleted": false,
                "menu_type": "mobile_menu",
                "output_msg": null,
                "hidden": false,
                "children": []
            }
        ]
    }]

状态代码:200

单一菜单

参数 必填 数据类型 定义
record_id FALSE 字符串 根据 ID 返回特定记录
with_deleted FALSE 布尔值 返回已删除的记录 (True) 或不包含已删除的记录 (False)

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus/{​{menu_id}​}

更多请求/响应示例:

示例请求:单个菜单

Body: None

示例回答:单个菜单

[
    {
        "id": 1693,
        "name": "Death Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You have reached the Death Star",
        "hidden": false,
        "agent_assignments": [
            {
                "lang": "en",
                "queue_level": "primary",
                "channel_type": "voice_call",
                "assignee": {
                    "id": 97,
                    "agent_number": 97,
                    "name": "Darth Vader",
                    "last_name": "Darth",
                    "first_name": "Vader"
                }
            },
            {
                "lang": "it",
                "queue_level": "primary",
                "channel_type": "voice_call",
                "assignee": {
                    "id": 1407,
                    "agent_number": 123,
                    "name": "Moff Tarkin",
                    "last_name": "Moff",
                    "first_name": "Tarkin"
                }
            }
        ],
        "team_assignments": [
            {
                "lang": "en",
                "queue_level": "primary",
                "channel_type": "voice_call",
                "team": {
                    "id": 10,
                    "name": "Storm Troopers",
                    "parent_id": null,
                    "position": 1,
                    "agents_count": 48,
                    "deleted": false,
                    "assignees": [
                        {
                            "id": 1,
                            "agent_number": null,
                            "name": "Storm Troooper 1",
                            "last_name": "Storm ",
                            "first_name": "Admin1",
                            "avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
                        },
{
                            "id": 2,
                            "agent_number": null,
                            "name": "Storm Troooper 2",
                            "last_name": "Storm ",
                            "first_name": "Admin1",
                            "avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
                        },
{
                            "id": 3,
                            "agent_number": null,
                            "name": "Storm Troooper 3",
                            "last_name": "Storm ",
                            "first_name": "Admin1",
                            "avatar_url": "https://subdomain.somedomain.com/data_uri_upload20171201-21853-1ijzccm.png"
                        }
                    ]
                }
            }
        ]
    }]

状态代码:200

“菜单当前状态”会返回所有包含已排队通话或聊天的菜单,以及有关这些已排队项时长的其他数据。

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus/current_status

更多请求/响应示例:

示例请求:菜单当前状态

Body: None

示例回答:菜单当前状态

[
    {
        "menu_id": 10,
        "lang": "en",
        "menu_path_id": 5,
        "menu_path": "zdco IVR Support/1 Day Shipping",
        "comm_type": "Call",
        "in_queue_count": 2,
        "oldest_in_queue": "2021-05-10T22:17:21.000Z",
        "oldest_duration_in_queue": 300,
        "total_queue_duration": 400,
        "average_queue_duration": 200
    }
]

状态代码:0

参数 必填 数据类型 定义
频道 TRUE 字符串 字符串。接受的值:call、chat
分钟 TRUE 字符串 字符串。计算 SLA 时,从现在开始回溯的分钟数。例如,值为 15 表示请求每个菜单路径过去 15 分钟的 SLA

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus/sla

查询参数:

键 值 说明
频道 {channel} 字符串。接受的值:call、chat
分钟 {minutes} 字符串。计算 SLA 时,从现在开始回溯的分钟数。例如,值为 15 表示请求每个菜单路径过去 15 分钟的 SLA

更多请求/响应示例:

示例请求:菜单服务等级协议 (SLA)

查询:

键 值 说明
频道 {channel} 字符串。接受的值:call、chat
分钟 {minutes} 字符串。计算 SLA 时,从现在开始回溯的分钟数。例如,值为 15 表示请求每个菜单路径过去 15 分钟的 SLA

Body: None

示例回复:菜单服务等级协议 (SLA)

[
    {
        "menu_path_id": 100,
        "lang": "en",
        "menu_path": "Support/1 Day Shipping",
        "sla": 96.5
    },
    {
        "menu_path_id": 100,
        "lang": "es",
        "menu_path": "Support/1 Day Shipping Spanish",
        "sla": 99.0
    },
    {
        "menu_path_id": 101,
        "lang": "en",
        "menu_path": "Support/3 Day Shipping",
        "sla": 0.0
    }
]

状态代码:200

队列组 SLA

参数 必填 数据类型 定义
频道 TRUE 字符串 字符串。接受的值:call、chat
分钟 TRUE 字符串 字符串。计算 SLA 时,从现在开始回溯的分钟数。例如,值为 15 表示请求每个菜单路径过去 15 分钟的 SLA

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus/sla_by_queue_groups

查询参数:

键 值 说明
频道 {channel} 字符串。接受的值:call、chat
分钟 {minutes} 字符串。计算 SLA 时,从现在开始回溯的分钟数。例如,值为 15 表示请求每个菜单路径过去 15 分钟的 SLA

更多请求/响应示例:

示例请求:队列组 SLA

查询:

键 值 说明
频道 {channel} 字符串。接受的值:call、chat
分钟 {lminutes} 字符串。计算 SLA 时,从现在开始回溯的分钟数。例如,值为 15 表示请求每个菜单路径过去 15 分钟的 SLA

Body: None

示例回答:队列组 SLA

[
    {
        "queue_group_id": 20,
        "queue_group_name": "Shipping",
        "sla": null
    },
    {
        "queue_group_id": 24,
        "queue_group_name": "Customer Support",
        "sla": 99.2
    },
    {
        "queue_group_id": 29,
        "queue_group_name": "Escalations",
        "sla": 98.3
    }
]

状态代码:200

端点:

Method: GET
Type: 
URL: https://{​{subdomain}​}.{​{domain}​}/manager/api/v1/menus/operation_hours

查询参数:无

更多请求/响应示例:

示例请求:菜单营业时间

查询:无

Body: None

示例回答:菜单营业时间

[
    {
        "created_at": "2020-07-31T03:08:29.000Z",
        "fri_end_time": 86400,
        "fri_start_time": 0,
        "holidays": [],
        "id": 1,
        "mon_end_time": 86400,
        "mon_start_time": 0,
        "sat_end_time": 86400,
        "sat_start_time": 0,
        "sun_end_time": 86400,
        "sun_start_time": 0,
        "thu_end_time": 86400,
        "thu_start_time": 0,
        "time_zone": "Africa/Cairo",
        "tue_end_time": 86400,
        "tue_start_time": 0,
        "updated_at": "2021-03-24T13:23:43.000Z",
        "wed_end_time": 86400,
        "wed_start_time": 0
    },
    {
        "created_at": "2022-08-01T11:33:21.000Z",
        "fri_end_time": 28800,
        "fri_start_time": 21600,
        "holidays": [],
        "id": 2,
        "mon_end_time": 28800,
        "mon_start_time": 21600,
        "sat_end_time": 0,
        "sat_start_time": 0,
        "sun_end_time": 0,
        "sun_start_time": 0,
        "thu_end_time": 28800,
        "thu_start_time": 21600,
        "time_zone": "Europe/Helsinki",
        "tue_end_time": 28800,
        "tue_start_time": 21600,
        "updated_at": "2022-11-09T10:47:20.000Z",
        "wed_end_time": 28800,
        "wed_start_time": 21600
    }
]

状态代码:200