A URA dinâmica sempre esta associada a uma URA no painel da plataforma de voz Zenvia a qual está com a opção dinâmica ativada e com o campo de texto preenchido com a url do endpoint.
É neste endpoint que iremos buscar o arquivo json dinamicamente.
Você pode associar a URA em um DID (número receptivo) ou um ramal a uma URA.
Segue alguns artigos que irão lhe ajudar:
Abaixo você encontrará uma lista de ações possível em um URA dinâmica. Para cada ação, você precisa nos informar os dados dessa 'acao', que ficam no parâmetro 'acao_dados'.
Ação - Ação Dados
- tts - mensagem
{
"acao":"tts",
"acao_dados":{
"mensagem":"Olá, esse é minha mensagem de texto "
}
}
2. playAudio - url_audio
{
"acao":"playAudio",
"acao_dados":{
"url_audio":"https://seuaudioemumaurlpublica.com/audio.mp3"
}
}
Importante: O áudio deve estar em uma URL pública, para que nosso sistema possa busca-la.
3. transfer - numero_telefone
- {
"acao":"transfer",
"acao_dados":{
"numero_telefone":"48999333333"
}
}
Importante: O número de telefone deve ser válido (DDD+número), pode ser fixo, celular ou até um ramal da Zenvia (Exemplo: ramal: 4000).
4. fila - fila_id
{
"acao":"fila",
"acao_dados":{
"fila_id":"1234"
}
}
Nota: Para você pegar ao id da fila basta entrar no painel da plataforma de voz Zenvia e ir em Central > Filas
Veja também: Como funcionam as Filas de atendimento
5. webhook - url
{
"acao":"webhook",
"acao_dados":{
}
}
Você recebera informações como esse exemplo:
{
"id": 123456789,
"ativa": false,
"url_gravacao": "https://api.evoline.com.br/rec/?id=123456789&x=ab12ab123&cid=1234",
"data_inicio": "2019-05-21T10:21:36-03:00",
"numero_destino": "552112341234",
"numero_origem": "11912341234",
"status": "atendida",
"duracao_segundos": null,
"tags": null,
"duracao": null,
"duracao_cobrada_segundos": null,
"duracao_cobrada": null,
"duracao_falada_segundos": null,
"duracao_falada": null,
"preco": null,
"ramal_id": 0,
"ramal": null,
"gravacoes_parciais": []
}
6. gotomenu - menu
{
"acao":"gotomenu",
"acao_dados":{
"menu":"menu 2"
}
}
7. dinamico - url / audio_espera
{
"acao":"dinamico",
"acao_dados":{
"url":"https://www.seuendoint.com.br/outrauradinamica.json",
"audio_espera": "https://seuaudioemumaurlpublica.com/audio.mp3"
"audio_espera": "https://seuaudioemumaurlpublica.com/audio.mp3"
}
}
Você recebera informações como esse exemplo:
{
"chamada_recebida_id":"ID da chamada",
"from":"Número do cliente",
"to":"Número do DID",
"ultimo_dtmf":"Última opção digitada",
"tags":"Tags personalizadas"
}
8. fim
{
"acao":"fim"
}
Outras ações dentro da URA
- opcao
- Caso você tenha adicionado uma 'opcao' na 'acao' da URA ela só sera chamada caso o usuário digite o número dela. As opções vão de 1 a 9.
- menu
- Indica a qual menu pertence essa etapa da URA, iniciando sempre no menu 1. As opções vão de 1 à 9.
- timeout
- Este é o tempo de espera para que a ligação seja derrubada ou a URA vá para a próxima ação, ele começa a conta após a sua ação acabar. Exemplo: assim que acabar o texto do seu TTS ele espera 5 segundos antes de derrubar a ligação "timeout":5
- coletar_dtmf
- Isso indicar que essa etapa da da ação ira esperar no máximo a quantidade de caracteres que você passar. Por exemplo: {"coletar_dtmf":"11"}. Quando atingido o máximo de DTMF(ou acabar o timeout) sera executada a próxima ação.
- queue_fail_timeout
- Quando você utiliza a ação 'fila' você pode usar esse parâmetro passando o tempo máximo de espera da fila, após o termino do tempo a próxima ação sera executada.
Exemplo Json de uma URA:
{
"nome" : "Ura Exemplo",
"dados" : [
{
"acao": "tts",
"menu": "menu 1",
"timeout":0,
"acao_dados":{
"mensagem": "Olá, João. Escute o áudio a seguir digite a opção desejada."
}
},
{
"acao": "audio",
"menu": "menu 1",
"acao_dados":{
"url_audio": "https://www.seuaudio.com/audio.mp3"
}
},
{
"acao": "fila",
"menu": "menu 1",
"queue_fail_timeout":"60",
"opcao":"1",
"acao_dados":{
"fila_id": "1234"
}
},
{
"acao": "transfer",
"menu": "menu 1",
"opcao":"2",
"acao_dados":{
"numero_telefone": "48999999999"
}
},
{
"acao": "gotomenu",
"menu": "menu 1",
"opcao":"3",
"acao_dados":{
"menu": "menu 2"
}
},
{
"acao" : "tts",
"menu" : "menu 2",
"acao_dados" : {
"mensagem" : "Ok, Digite 1 para enviar os dados dessa chamada para 1 endpoint, Digite 2 para deixar o seu recado ou aguarde para finalizar a ligação."
}
},
{
"acao":"fim"
},
{
"acao" : "webhook",
"menu" : "menu 2",
"opcao":"1",
"acao_dados" : {
"url" : "https://seu.endpoint/receber_webhook"
}
},
{
"acao" : "stt",
"menu" : "menu 2",
"opcao":"2",
"acao_dados" : {
"url" : "https://seu.endpoint/receber_stt"
}
}
]
}