Menu endpoints

Menus represent a queue that an agent may be assigned to, and options that an end user may select when reaching out to an agent. Each object represents a single menu.

There are seven menu endpoints:

  • /menu - pulls a list of menus.

  • /menu/tree - pulls menus in a tree structure, which mimics the path an end user would use to get in touch with an agent.

  • /menu/{:id} - pulls a single menu resource.

  • /menu/current\_status - Returns current queue status for menus with consumers waiting in queue.

  • /menu/sla - Returns an SLA for all menu paths from now through the previous specified number of minutes.

  • /menu/sla\_by\_queue\_group - Returns an SLA for all queue groups from now through the previous specified number of minutes.

  • /menus/operation_hours - Returns the hours of operation of the menu.

Refer to the following model to determine which fields might contain 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"
          }
        }
      }
    ]
  }
Parameter Required Data Type Definition
sort_column FALSE String Sorts response based on any field in the response object.
sort_direction FALSE ASC or DESC Notes the direction of the sort, whether ascending or descending
page FALSE String Pairs with per to note what page of records. For example if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.
per FALSE String Pairs with page to note how many records would be included in a page of records. For example if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.
id[] FALSE Array[String] Array[Strings]. Id of records to search and return
name[] FALSE Array[String] Returns records based on name of resource.
parent_id[] FALSE Array[String] Returns records based on the parent id of the given records
position[] FALSE Array[String] Returns records based on what position a menu is in
menu_type[] FALSE Array[String] Returns records based on the type of menu. Possible values: ivr_menu, mobile_menu, web_menu
hidden[] FALSE Boolean Returns records that have been hidden (True) or not including records that have been hidden (False)
with_deleted FALSE Boolean Returns records that have been deleted (True) or not including records that have been deleted (False)

Endpoint:

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

More example Requests/Responses:

Example request: Menu list

Body: None

Example response: Menu list

[
    {
        "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"
                        }
                    ]
                }
            }
        ]
    }]

Status Code: 200

Parameter Required Data Type Definition
menu_type[] FALSE Array[String] Returns records based on the type of menu. Possible values: ivr_menu, mobile_menu, web_menu
lang[] FALSE String Returns records that have a specific language property. Possible Values: en, es, fr, de

Endpoint:

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

More example Requests/Responses:

Example request: Menu tree

Body: None

Example response: Menu tree

[
    {
        "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": []
            }
        ]
    }]

Status Code: 200

Single menu

Parameter Required Data Type Definition
record_id FALSE String Returns specific record based on id
with_deleted FALSE Boolean Returns records that have been deleted (True) or not including records that have been deleted (False)

Endpoint:

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

More example Requests/Responses:

Example request: Single menu

Body: None

Example response: Single menu

[
    {
        "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"
                        }
                    ]
                }
            }
        ]
    }]

Status Code: 200

Menus Current Status returns all menus with queued calls or chats with additional data on durations of those queued items.

Endpoint:

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

More example Requests/Responses:

Example request: Menus current status

Body: None

Example response: Menus current status

[
    {
        "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
    }
]

Status Code: 0

Parameter Required Data Type Definition
channel TRUE String String. Values accepted: call, chat
minutes TRUE String String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path

Endpoint:

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

Query params:

Key Value Description
channel {channel} String. Values accepted: call, chat
minutes {minutes} String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path

More example Requests/Responses:

Example request: Menu SLA

Query:

Key Value Description
channel {channel} String. Values accepted: call, chat
minutes {minutes} String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path

Body: None

Example response: Menu 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
    }
]

Status Code: 200

Queue groups SLA

Parameter Required Data Type Definition
channel TRUE String String. Values accepted: call, chat
minutes TRUE String String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path

Endpoint:

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

Query params:

Key Value Description
channel {channel} String. Values accepted: call, chat
minutes {minutes} String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path

More example Requests/Responses:

Example request: Queue groups SLA

Query:

Key Value Description
channel \{channel\} String. Values accepted: call, chat
minutes \{lminutes\} String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path

Body: None

Example response: Queue groups 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
    }
]

Status Code: 200

Endpoint:

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

Query params: None

More example Requests/Responses:

Example request: Menu operation hours

Query: None

Body: None

Example response: Menu operation hours

[
    {
        "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
    }
]

Status Code: 200