Plantillas y contexto
La URL de tu app se resuelve con Handlebars antes de cargarse. Aquí están todas las variables disponibles y los helpers que puedes usar.
La iframe.url que defines en la app se compila con Handlebars en el navegador del agente, justo antes de montar el iframe. Eso te permite inyectar datos del contexto (id de llamada, email del cliente, segmento, etc.) directamente en la URL.
{
"iframe": {
"url": "https://apps.example.com/lookup?call={{call.id}}&email={{encode form.email}}"
}
}Helpers
Además de la sintaxis estándar de Handlebars, están disponibles dos helpers específicos para apps:
encode
{{encode user.email}}
Aplica encodeURIComponent. Úsalo siempre en valores que van a query string.
urlEncode
{{urlEncode user.email}}
Alias de encode.
Más todos los helpers compartidos documentados en Webhooks › Helpers.
La plantilla se compila con noEscape: true, es decir, no se hace HTML-escape automático. Para query strings usa encode explícito.
Si una variable no existe en el contexto actual, Handlebars la renderiza como string vacío (sin error).
Variables comunes (llamadas y reuniones)
{{user.id}}
string
Id del agente autenticado.
{{user.email}}
string
Email del agente.
{{user.firstname}}
string
Nombre del agente (desde metadata).
{{user.lastname}}
string
Apellido del agente.
{{user.<campo>}}
mixed
Cualquier otro campo de la metadata del agente.
{{account.id}}
string
Id de la cuenta (tenant).
Llamadas
Disponible cuando la app se renderiza durante una llamada (cuando el agente acepta una atención de cola, se reconecta, o acepta una invitación a una llamada activa).
{{call.id}}
string
Id de la llamada.
{{call.startedAt}}
ISO date
Fecha de creación de la llamada.
{{call.duration}}
number
Minutos en cola (solo en reconexión).
{{call.ticketId}}
string
Id de ticket de integración, si aplica.
{{segment.id}}
string
Id del segmento.
{{segment.name}}
string
Nombre del segmento.
{{branch.id}}
string
Id de la sucursal QMS, si aplica.
{{branch.label}}
string
Etiqueta de la sucursal.
{{poc.id}}
string
Id del POC, si aplica.
{{poc.label}}
string
Etiqueta del POC.
{{tags}}
array
Etiquetas configuradas en el segmento.
{{selectedTags}}
array
Etiquetas seleccionadas en la llamada (solo en reconexión).
{{extraData.<campo>}}
mixed
Cualquier campo del payload extraData del widget.
{{integrationData.<campo>}}
mixed
Datos de integraciones, si aplican.
Reuniones
Disponible cuando la app se renderiza durante una reunión agendada.
{{appointment.id}}
string
Id de la cita.
{{appointment.startAt}}
ISO date
Inicio agendado.
{{appointment.endAt}}
ISO date
Fin agendado.
{{appointment.scheduledFor}}
string
Usuario/cliente para quien se agendó.
{{appointment.customer}}
object
Perfil del cliente, si está adjunto.
{{service.id}}
string
Id del servicio (calendario).
{{service.name}}
string
Nombre del servicio.
{{tags}}
array
Etiquetas configuradas en el servicio.
{{selectedTags}}
array
Etiquetas seleccionadas en la reunión.
Formularios: form y agentForm
Los campos de formulario se exponen como objetos clave-valor, indexados por el nombre que les diste al configurarlos. Eso te permite referenciar cualquier campo directamente.
Formulario del cliente: form
Respuestas que el cliente final envió antes de entrar a la cola o reunión.
Formulario del agente: agentForm
Valores que llena el agente durante la atención (o que llegan pre-llenados por una integración).
Iteración por todos los campos
Si necesitas recorrer todos los campos del formulario (por ejemplo, para construir un query string dinámico), también están disponibles como arrays:
Cada item del array tiene como mínimo: name, value, type.
Ejemplos
Última actualización
¿Te fue útil?

