Points de terminaison du menu

Les menus représentent une file d'attente à laquelle un agent peut être affecté, ainsi que les options qu'un utilisateur final peut sélectionner lorsqu'il contacte un agent. Chaque objet représente un seul menu.

Il existe sept points de terminaison de menu :

  • /menu : extrait une liste de menus.

  • /menu/tree : extrait les menus dans une structure arborescente, qui imite le chemin qu'un utilisateur final emprunterait pour contacter un agent.

  • /menu/{:id} : extrait une seule ressource de menu.

  • /menu/current_status : renvoie l'état actuel de la file d'attente pour les menus avec des clients en attente.

  • /menu/sla : renvoie un SLA pour tous les chemins de menu, de l'heure actuelle au nombre de minutes spécifié précédemment.

  • /menu/sla_by_queue_group : renvoie un SLA pour tous les groupes de files d'attente à partir de maintenant et jusqu'au nombre de minutes spécifié précédemment.

  • /menus/operation_hours : renvoie les horaires d'ouverture du menu.

Reportez-vous au modèle suivant pour déterminer les champs susceptibles de contenir des informations permettant d'identifier personnellement l'utilisateur :

   {
    "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"
          }
        }
      }
    ]
  }
Paramètre Obligatoire Type de données Définition
sort_column FALSE Chaîne Trie la réponse en fonction de n'importe quel champ de l'objet de réponse.
sort_direction FALSE ASC ou DESC Indique l'ordre de tri, croissant ou décroissant.
dans FALSE Chaîne S'associe à "per" pour indiquer la page des enregistrements. Par exemple, si "per" est défini sur 200 et "page" sur 2, la réponse contiendra les enregistrements 201 à 400, car la page 1 contiendra les enregistrements 1 à 200.
par FALSE Chaîne Associé à "page" pour indiquer le nombre d'enregistrements à inclure dans une page d'enregistrements. Par exemple, si "per" est défini sur 200 et "page" sur 2, la réponse contiendra les enregistrements 201 à 400, car la page 1 contiendra les enregistrements 1 à 200.
id[] FALSE Array[String] Array[Strings]. ID des enregistrements à rechercher et à renvoyer
name[] FALSE Array[String] Renvoie les enregistrements en fonction du nom de la ressource.
parent_id[] FALSE Array[String] Renvoie les enregistrements en fonction de l'ID parent des enregistrements donnés.
position[] FALSE Array[String] Renvoie les enregistrements en fonction de la position d'un menu
menu_type[] FALSE Chaîne Type de menu dont l'arborescence doit être renvoyée. Transmettez une seule valeur sans crochets, par exemple menu_type=ivr_menu. Si vous omettez menu_type, l'API renvoie l'arborescence du menu mobile. Pour récupérer plusieurs types de menus, demandez l'arborescence une fois pour chaque type.
hidden[] FALSE Booléen Renvoie les enregistrements qui ont été masqués (True) ou n'inclut pas les enregistrements qui ont été masqués (False).
with_deleted FALSE Booléen Renvoie les enregistrements qui ont été supprimés (True) ou n'inclut pas les enregistrements qui ont été supprimés (False).

Point de terminaison :

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

Autres exemples de requêtes/réponses :

Exemple de requête : liste de menus

Corps : aucun

Exemple de réponse : liste de menus

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

Code d'état : 200

Paramètre Obligatoire Type de données Définition
menu_type FALSE Array[String] Renvoie les enregistrements en fonction du type de menu. Transmettez menu_type[] une fois par type (par exemple, menu_type[]=ivr_menu&menu_type[]=web_menu) et utilisez cette forme de tableau même pour un seul type. Si votre client HTTP l'exige, encodez les crochets sous la forme menu_type%5B%5D. Si vous omettez menu_type[], l'API renvoie les menus de tous les types. L'API ne filtre pas sur un paramètre de type.
lang FALSE Chaîne Langue dont l'arbre doit être renvoyé. Si vous omettez "lang", l'API renvoie l'arborescence en. Pour récupérer plusieurs langues, demandez l'arborescence une fois pour chaque langue.

Point de terminaison :

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

Autres exemples de requêtes/réponses :

Exemple de requête : arborescence du menu

Corps : aucun

Exemple de réponse : arborescence du menu

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

Code d'état : 200

Menu unique

Paramètre Obligatoire Type de données Définition
record_id FALSE Chaîne Renvoie un enregistrement spécifique en fonction de l'ID
with_deleted FALSE Booléen Renvoie les enregistrements qui ont été supprimés (True) ou n'inclut pas les enregistrements qui ont été supprimés (False).

Point de terminaison :

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

Autres exemples de requêtes/réponses :

Exemple de requête : menu unique

Corps : aucun

Exemple de réponse : menu unique

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

Code d'état : 200

"État actuel des menus" renvoie tous les menus avec des appels ou des chats en file d'attente, ainsi que des données supplémentaires sur la durée de ces éléments en file d'attente.

Point de terminaison :

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

Autres exemples de requêtes/réponses :

Exemple de requête : état actuel des menus

Corps : aucun

Exemple de réponse : état actuel des menus

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

Code d'état : 0

Paramètre Obligatoire Type de données Définition
channel TRUE Chaîne Chaîne. Valeurs acceptées : call, chat
minutes TRUE Chaîne Chaîne. Nombre de minutes à prendre en compte à partir de maintenant lors du calcul du SLA. Par exemple, une valeur de 15 demanderait le SLA des 15 dernières minutes pour chaque chemin de menu.

Point de terminaison :

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

Paramètres de requête :

Clé Valeur Description
channel {channel} Chaîne. Valeurs acceptées : call, chat
minutes {minutes} Chaîne. Nombre de minutes à prendre en compte à partir de maintenant lors du calcul du SLA. Par exemple, une valeur de 15 demanderait le SLA des 15 dernières minutes pour chaque chemin de menu.

Autres exemples de requêtes/réponses :

Exemple de demande : SLA du menu

Requête :

Clé Valeur Description
channel {channel} Chaîne. Valeurs acceptées : call, chat
minutes {minutes} Chaîne. Nombre de minutes à prendre en compte à partir de maintenant lors du calcul du SLA. Par exemple, une valeur de 15 demanderait le SLA des 15 dernières minutes pour chaque chemin de menu.

Corps : aucun

Exemple de réponse : 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
    }
]

Code d'état : 200

SLA des groupes de files d'attente

Paramètre Obligatoire Type de données Définition
channel TRUE Chaîne Chaîne. Valeurs acceptées : call, chat
minutes TRUE Chaîne Chaîne. Nombre de minutes à prendre en compte à partir de maintenant lors du calcul du SLA. Par exemple, une valeur de 15 demanderait le SLA des 15 dernières minutes pour chaque chemin de menu.

Point de terminaison :

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

Paramètres de requête :

Clé Valeur Description
channel {channel} Chaîne. Valeurs acceptées : call, chat
minutes {minutes} Chaîne. Nombre de minutes à prendre en compte à partir de maintenant lors du calcul du SLA. Par exemple, une valeur de 15 demanderait le SLA des 15 dernières minutes pour chaque chemin de menu.

Autres exemples de requêtes/réponses :

Exemple de requête : SLA des groupes de files d'attente

Requête :

Clé Valeur Description
channel {channel} Chaîne. Valeurs acceptées : call, chat
minutes {lminutes} Chaîne. Nombre de minutes à prendre en compte à partir de maintenant lors du calcul du SLA. Par exemple, une valeur de 15 demanderait le SLA des 15 dernières minutes pour chaque chemin de menu.

Corps : aucun

Exemple de réponse : SLA des groupes de files d'attente

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

Code d'état : 200

Point de terminaison

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

Paramètres de requête : aucun

Autres exemples de requêtes/réponses :

Exemple de requête : horaires d'ouverture du menu

Requête : aucune

Corps : aucun

Exemple de réponse : horaires d'ouverture du menu

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

Code d'état : 200