List menu options
curl --request GET \
--url https://api.withallo.com/v2/api/numbers/{number}/menu_options \
--header 'Authorization: <api-key>'import requests
url = "https://api.withallo.com/v2/api/numbers/{number}/menu_options"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.withallo.com/v2/api/numbers/{number}/menu_options', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.withallo.com/v2/api/numbers/{number}/menu_options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.withallo.com/v2/api/numbers/{number}/menu_options"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.withallo.com/v2/api/numbers/{number}/menu_options")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withallo.com/v2/api/numbers/{number}/menu_options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"node_id": "node-1",
"path": [
{
"node_id": "node-1",
"digit": "1"
}
],
"digits": "1",
"label": "Website FR",
"condition": {
"type": "MENU_BRANCH",
"branches": [
[
{
"node_id": "node-1",
"digit": "1"
}
]
],
"include_no_choice": false
}
},
{
"node_id": "node-3",
"path": [
{
"node_id": "node-1",
"digit": "1"
},
{
"node_id": "node-3",
"digit": "2"
}
],
"digits": "1>2",
"label": "Sales",
"condition": {
"type": "MENU_BRANCH",
"branches": [
[
{
"node_id": "node-1",
"digit": "1"
},
{
"node_id": "node-3",
"digit": "2"
}
]
],
"include_no_choice": false
}
}
]
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}Boîtes de réception
Lister les options de menu
Flattens the phone-menu tree of the line’s published call flow. Each option carries a ready MENU_BRANCH condition. A line without a phone menu, or whose calls are not routed by the call-flow engine, returns an empty list. Menu conditions are only accepted on lines where this list is not empty.
GET
/
v2
/
api
/
numbers
/
{number}
/
menu_options
List menu options
curl --request GET \
--url https://api.withallo.com/v2/api/numbers/{number}/menu_options \
--header 'Authorization: <api-key>'import requests
url = "https://api.withallo.com/v2/api/numbers/{number}/menu_options"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.withallo.com/v2/api/numbers/{number}/menu_options', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.withallo.com/v2/api/numbers/{number}/menu_options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.withallo.com/v2/api/numbers/{number}/menu_options"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.withallo.com/v2/api/numbers/{number}/menu_options")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withallo.com/v2/api/numbers/{number}/menu_options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"node_id": "node-1",
"path": [
{
"node_id": "node-1",
"digit": "1"
}
],
"digits": "1",
"label": "Website FR",
"condition": {
"type": "MENU_BRANCH",
"branches": [
[
{
"node_id": "node-1",
"digit": "1"
}
]
],
"include_no_choice": false
}
},
{
"node_id": "node-3",
"path": [
{
"node_id": "node-1",
"digit": "1"
},
{
"node_id": "node-3",
"digit": "2"
}
],
"digits": "1>2",
"label": "Sales",
"condition": {
"type": "MENU_BRANCH",
"branches": [
[
{
"node_id": "node-1",
"digit": "1"
},
{
"node_id": "node-3",
"digit": "2"
}
]
],
"include_no_choice": false
}
}
]
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"retryable": true,
"request_id": "<string>",
"retry_after_seconds": 123
}
}Scope requis :
INBOXES_READComportement
Met à plat l’arbre du menu téléphonique du call flow publié de la ligne. Les brouillons sont ignorés. Chaque option donne :path: les choix de menu depuis le premier menu jusqu’à cette option.digits: le même chemin en touches, par exemple1>2.label: le nom de l’option dans le call flow.condition: une conditionMENU_BRANCHprête à l’emploi pour cette option. C’est toujours uneMENU_BRANCH.
conditions vides.
Utilisez-le seulement pour construire une branche sur mesure. Dans le cas courant, partez de Obtenir les suggestions de boîtes.
Combiner plusieurs options
Une ligne apparaît une seule fois danssources, avec au plus une MENU_BRANCH. Pour couvrir plusieurs options d’une même ligne, concaténez les branches de leurs conditions dans une seule MENU_BRANCH :
{
"allo_number": "+33612345678",
"conditions": [
{
"type": "MENU_BRANCH",
"branches": [
[{"node_id": "node-1", "digit": "1"}, {"node_id": "node-3", "digit": "2"}],
[{"node_id": "node-1", "digit": "2"}]
],
"include_no_choice": false
}
]
}
Erreurs
| Statut | Code | Quand |
|---|---|---|
403 | ALLO_NUMBER_FORBIDDEN | L’appelant n’a pas accès à cette ligne |
Cette page vous a-t-elle été utile ?