web_widget).
Voz + chat, un solo asistente
- Voz — un clic inicia una conversación de voz en vivo usando la configuración completa del asistente: modo de motor, voz, base de conocimientos, herramientas, barreras de seguridad. Las llamadas web aparecen en tu historial de llamadas con la dirección
web. - Chat — el mismo asistente, prompts y base de conocimientos en formato texto, para los visitantes que no pueden o no quieren hablar.
Insertar el widget
Crea un widget en Ajustes → Canales → Widget web y elige Visualización:- Flotante (predeterminado) — burbuja en la esquina; Posición y Estado inicial aplican. Prefiere el cargador script (
allow="microphone"):
- Inline — widget en el flujo de la página (sin launcher). Prefiere web component o iframe:
data-famulor-target="#famulor-assistant". El panel de incrustación incluye fragmentos HTML, React y Markdown.
Orígenes permitidos
Lista el o los sitios que pueden incrustar el widget (orígenes exactos comohttps://example.com, o comodines de subdominio como *.example.com). Localhost está admitido para desarrollo. Los orígenes son opcionales al crear o guardar.
- Una lista vacía no significa «abierto a cualquier sitio»: se bloquean orígenes externos. Solo el dominio de la plataforma sigue permitido para que la vista previa en la app funcione.
- Añade cada host de producción (y staging) que cargará el fragmento antes de publicar. Si el widget no carga en un sitio de cliente, revisa primero Allowed origins.
Personalización
- Visualización — Flotante (launcher en esquina) o Inline (incrustado en el flujo). Posición y Estado inicial solo aplican a Flotante.
- Colores y marca — color del botón, acento del panel, logo; la marca del tenant se aplica automáticamente en los dominios de marca blanca.
- Posición — esquina del launcher flotante (oculto en Inline).
- Modos — solo voz, solo chat, o ambos.
- Presencia de voz — visualizador de audio clásico o un avatar de IA virtual (ver abajo).
- Textos — etiqueta del botón, mensaje de bienvenida, aviso de IA, aviso de privacidad.
- Formulario previo al chat — formulario opcional antes de que empiece el chat o la voz (ver abajo).
Avatar de IA virtual
Función separada condicionada al plan (ai_avatar). En el editor del widget, elige AI avatar en presencia de voz y selecciona un avatar.
- Diseños
- Avatar only (full-bleed) — tarjeta compacta centrada en el rostro (estilo Anam). Flotante: Expandido o Minimizado; Inline muestra la tarjeta en el layout.
- Avatar + chat — presencia de avatar con el panel clásico de chat/voz.
- Facturación — los minutos de voz con avatar cobran la tarifa normal de minuto de conversación más un recargo de avatar (actualmente +80 créditos/min). Consulta Cómo se facturan los minutos y Usage en la app.
- Sin
ai_avataren el plan, el editor muestra una puerta de actualización y la API rechaza activar la presencia de avatar.
Formulario previo al chat
En Widgets → abre un conector → activa Formulario previo al chat. Los visitantes completan campos antes de que empiece la sesión.- Las sugerencias provienen de los campos de contacto (nombre, correo electrónico, teléfono), las variables de entrada del asistente seleccionado y los atributos de Audience del espacio de trabajo. También puedes agregar claves personalizadas.
- Los valores enviados se convierten en variables de entrada de la llamada (
{{variable_key}}), actualizan el lead de Audience cuando hay campos de identidad presentes, y aparecen en Historial dentro de Formulario previo al chat / Variables de entrada. - La configuración se guarda en el conector del widget (
theme.preform) y se expone en la configuración pública del widget; el endpoint del token valida los campos obligatorios.
Antes de publicar, revisa esto
1
Añade al menos un origen permitido
Lista cada sitio que incrustará el widget. Sin orígenes, los hosts de terceros no pueden cargar la configuración ni emitir tokens.
2
Primero prueba el asistente con llamadas desde el navegador
El widget usa la misma ruta de llamada web que la llamada de prueba del editor de asistentes — si esa funciona bien, el widget también funcionará.
3
Ten en cuenta los permisos de micrófono
Los navegadores exigen HTTPS para acceder al micrófono. La página anfitriona no debe bloquear el micrófono con
Permissions-Policy. Los embeds script / web component configuran allow="microphone" en el iframe automáticamente.4
Actualiza tu política de privacidad
Las conversaciones de voz se procesan como llamadas (transcripciones, grabación opcional con flujo de consentimiento). Menciona el widget en tu política de privacidad.
API & MCP
Gestiona widgets con la API REST pública (/api/v1/widget-connectors) y las herramientas MCP (create_widget_connector, update_widget_connector, …). allowed_origins es opcional (vacío/omitido bloquea hosts de terceros). Ámbito: assistants:write. Plan: web_widget (presencia de avatar también necesita ai_avatar).