Saltar al contenido principal

Integraciones de audio

Una integracion de audio conecta una plataforma donde se generan o guardan tus llamadas con AuditorIA, para que los audios entren sin subirlos a mano. Cada integracion es un punto de entrada: deja el audio dentro de AuditorIA y, a partir de ahi, la app lo procesa con su flujo normal (transcripcion, analisis y auditoria).

Los origenes de audio se eligen en cada campana, desde la pestana Origenes de Audio. Esta pagina explica como conectar cada origen externo. Para el mapa general de la campana, ver Configuracion de campanas.

Qué hace y qué no hace una integración

Ninguna integración audita sola. Solo hace que el audio entre a AuditorIA. Una vez dentro, el caso sigue el mismo recorrido que cualquier otro: aparece en las tareas, se transcribe y queda listo para auditar.

La dirección del webhook es la de tu instalación

Las integraciones por webhook (como Anura) envían los datos por internet a la dirección pública de tu propia AuditorIA. El endpoint que cargás en Anura es https://<tu-dominio-de-auditoria>/webhook/anura/, donde el dominio es el de tu instalación. No tenés que adivinarlo: AuditorIA te muestra el endpoint exacto en la pantalla de Anura (paso 1), listo para copiar. Una instalación en localhost no puede recibir estos webhooks: la plataforma externa necesita una dirección accesible desde internet.


Anura

Conecta tu PBX en la nube Anura para que cada llamada finalizada con grabacion entre automaticamente a AuditorIA y quede lista para auditar.

Como funciona

Cuando una llamada termina en Anura, Anura envia un aviso (webhook) a AuditorIA con los datos de la llamada y el enlace a la grabacion. AuditorIA valida la clave de acceso, identifica al operador, descarga la grabacion, crea la tarea y la procesa. No tenes que subir nada a mano.

Antes de empezar

  • Una campana de llamadas creada en AuditorIA. Vas a necesitar su identificador (campaign_id). Ver Configuracion de campanas.
  • Una planilla de calidad asociada a esa campana, para poder auditar despues. Ver Planillas de calidad.
  • Una API Key de AuditorIA (la clave que autentica el aviso de Anura).
  • Acceso a la configuracion de Eventos / Webhooks en tu cuenta de Anura.
  • La URL publica de tu AuditorIA (ver el aviso sobre la direccion del webhook).

Paso 1 - En AuditorIA: marcar Anura como origen

  1. En el menu lateral, abri Campanas > Configuracion de campanas > Llamadas. Vas a ver la lista de campanas: elegi la que queres integrar con Anura.

Lista de campanas en Configuracion de campanas

  1. Abri la campana (si es nueva, guardala primero: el origen se configura sobre una campana ya guardada) y entra a la pestana Origenes de Audio.

Campana abierta con sus pestanas de configuracion

  1. Elegi Anura y guarda.

Pestana Origenes de Audio con Anura seleccionado

Al elegir Anura, AuditorIA muestra una guia con el endpoint, los encabezados y las reglas. Usala como referencia mientras configuras el evento en Anura.

Guia de configuracion de Anura dentro de AuditorIA

Paso 2 - En AuditorIA: crear la API Key

  1. Abri Configuracion > API Keys (/dashboard/settings/api-keys).
  2. Genera una API Key y copiala. La vas a usar como header X-API-Key al configurar Anura.
info

Guarda la API Key en un lugar seguro al crearla. Es la credencial que autentica los avisos de Anura contra tu AuditorIA.

Paso 3 - En Anura: crear el evento

En tu cuenta de Anura, crea un evento que avise a AuditorIA cuando termina la llamada.

  1. Entra al panel de Anura.

Panel principal de Anura

  1. Abri Configuracion > Eventos.

Menu de Anura: acceso a Eventos

  1. Usa Agregar para crear un evento nuevo.

Lista de eventos en Anura con el boton Agregar

El evento tiene tres pestanas: Peticion, Encabezados y Cuerpo. Completa las tres.

Peticion

Define a donde y como se envia el aviso.

CampoValor
ProtocoloHTTPS
Hostel dominio publico de tu AuditorIA
Puerto443
Ruta/webhook/anura/
MetodoPOST
Tipo de contenidoapplication/json
AutorizacionSin autorizacion (la clave va en Encabezados)

Pestana Peticion del evento en Anura

El host es el de tu instalación

El host es el dominio publico de tu instalacion de AuditorIA. No lo adivines: en la pantalla de Origenes de Audio > Anura (paso 1) figura el endpoint exacto, listo para copiar. Una instalacion en localhost no funciona, porque Anura necesita alcanzarla desde internet.

Encabezados

Agrega, como pares Key / Valor, los encabezados del aviso:

  • X-API-Key: la API Key que creaste en el paso 2.
  • Content-Type: application/json.

Pestana Encabezados del evento en Anura con X-API-Key y Content-Type

Cuerpo

El Cuerpo es el JSON que Anura va a enviar en cada llamada. Se arma asi:

  • las claves son los campos que AuditorIA necesita;
  • los valores son las variables de Anura {{ ... }}, que Anura reemplaza por los datos reales al enviar;
  • campaign_id no es una variable: es el numero de tu campana en AuditorIA. Lo ves en el encabezado de la campana como ID de campana #N, y va sin comillas.

No incluyas los campos automaticos: cdrid lo genera AuditorIA si no viene, y hooktrigger toma END por defecto (ademas tu evento ya dispara solo en END).

Pega este JSON en el Cuerpo y reemplaza <ID_DE_TU_CAMPANA> por el numero de tu campana:

{
"dialtime": "{{ dialtime }}",
"direction": "{{ direction }}",
"calling": "{{ calling }}",
"called": "{{ called }}",
"status": "{{ status }}",
"duration": "{{ duration }}",
"billseconds": "{{ billseconds }}",
"wasrecorded": "{{ wasrecorded }}",
"audio_file_mp3": "{{ audio_file_mp3 }}",
"accountname": "{{ accountname }}",
"accountextension": "{{ accountextension }}",
"queueagentname": "{{ queueagentname }}",
"answerterminal": "{{ answerterminal }}",
"campaign_id": <ID_DE_TU_CAMPANA>
}

Pestana Cuerpo del evento en Anura con el JSON pegado

Que significa cada campo:

CampoPara que sirve
dialtimeFecha y hora de la llamada.
directionEntrante (inbound) o saliente (outbound).
calling / calledNumeros origen y destino.
statusEstado final de la llamada.
durationDuracion en segundos.
billsecondsSegundos facturados.
wasrecordedDebe ser true.
audio_file_mp3URL publica y accesible de la grabacion.
accountnameNombre de la cuenta/agente. En llamadas salientes AuditorIA lo usa como operador.
accountextensionExtension de la cuenta.
queueagentname / answerterminalNombre del agente en llamadas entrantes. AuditorIA lo usa como operador.
campaign_idNumero de la campana en AuditorIA (no es una variable).
El operador depende de la dirección de la llamada

AuditorIA identifica al operador por su nombre: en llamadas salientes usa accountname; en entrantes usa queueagentname (o answerterminal). Por eso conviene incluir los tres. Tiene que ser el nombre del agente, no una extension. Confirma en Anura el nombre exacto de cada variable.

Si falta alguno de los campos de la tabla, Anura igual envia el aviso, pero AuditorIA lo rechaza.

Anura tambien ofrece muchas otras variables (por ejemplo callingname, calledname, datos de cola o accounttags). Podes sumarlas al Cuerpo si las queres para tus propios registros, pero son opcionales: hoy AuditorIA no las usa, asi que para que la llamada se procese alcanza con los campos de la tabla.

Las variables {{ ... }} que ves en el JSON las ofrece Anura. AuditorIA las lista en la guia de Origenes de Audio > Anura, en dos columnas: a la izquierda el campo (la clave del JSON) y a la derecha la variable (el valor). No es una pestana ni un formulario aparte: es una referencia de que variables existen, para que las uses dentro del Cuerpo. Por ejemplo, accountname -> {{ accountname }} significa que en el Cuerpo va "accountname": "{{ accountname }}".

Lista de variables de Anura que se usan como valores en el Cuerpo

Ejemplo del JSON ya completo que envia Anura

aviso

Solo se procesan eventos END con grabacion. Si wasrecorded no es true o audio_file_mp3 no es accesible, no se crea ninguna tarea.

Con esto la integración queda lista

Guarda el evento. No hay pasos adicionales: desde la proxima llamada finalizada con grabacion, Anura avisa a AuditorIA y la llamada entra sola al flujo. Anura no tiene boton de prueba, asi que para confirmar genera una llamada real (corta, con grabacion) y revisa que aparezca en las tareas de la campana.

Que pasa despues

Cuando todo esta configurado, cada llamada finalizada con grabacion:

  1. Llega a AuditorIA, que valida la API Key.
  2. Identifica al operador por su nombre. Si ese operador no existe todavia, lo crea.
  3. Descarga la grabacion y crea la tarea.
  4. Entra al flujo normal: aparece en Buscar y trabajar con tareas, se transcribe y queda lista para revisar y auditar.

Notas importantes

  • Operador por nombre: si el nombre del agente en Anura no coincide con un operador existente, AuditorIA crea uno nuevo. Para evitar operadores duplicados, usa los mismos nombres que ya tenes cargados. Ver Gestionar operadores locales.
  • Campana correcta: si campaign_id no coincide con una campana real, la llamada puede no asociarse a la campana esperada.
  • Solo END con grabacion: los demas eventos se reciben pero no generan tareas.

Problemas frecuentes

  • No entra ninguna llamada: revisa que el evento sea END, que la grabacion este activada, que audio_file_mp3 sea accesible y que la URL y los headers esten bien.
  • El aviso se rechaza (no autorizado): la X-API-Key falta o es incorrecta.
  • La llamada entra en otra campana o sin el operador correcto: revisa campaign_id y el nombre del agente.

Otros origenes

La guia detallada de los demas origenes esta en preparacion. Mientras tanto, podes seleccionarlos en la pestana Origenes de Audio de la campana:

  • Interno: audios subidos a mano o por la API interna. Ver Subir audio.
  • Net2Phone: sincronizacion de grabaciones por webhook.
  • Servidor SFTP: sincronizacion desde un servidor remoto.
  • API Externa: integracion generica con terceros mediante la API de AuditorIA.
  • Neotel: ingesta nativa (SQL Server + FTP).