- El widget web de chat (burbuja de texto; el mismo script sin
mode="voice"). - Las llamadas telefónicas a Twilio o Ringover.
- Las campañas de voz (
POST /functions/v1/notify/voice).
https://widget.lovi.ai/iawidget.js con mode="voice". El repo voice-widget-lovi es un prototipo (sin iframe de Lovi). No lo copies.
Cómo integrarlo
Pégalo antes de</body>. mode="voice" carga voz en lugar del chat:
Orden del loader: primero
mode="voice", luego WhatsApp full, luego chat. Si hay voz y WhatsApp full, carga voz.
No hay dom para voz: el iframe es position:fixed; bottom:0. El dom del chat no aplica.
No hay npm ni window.startVoice. El visitante pulsa la cápsula.
Qué ve el visitante
- Aparece el control (esquina, fijo).
- Con un clic real, el navegador pide el micrófono (
getUserMediadentro del iframe de Lovi). - Oye al agente y puede colgar.
- Tras colgar, feedback 👍/👎.
localhost.
Si tu página mete el widget en un iframe de otro origen, ese iframe necesita allow="microphone" y, si usas Permissions-Policy, permitir microphone hacia https://widget.lovi.ai. El iframe de Lovi ya lleva allow="microphone; autoplay".
Aspecto
Colores, posición y animación salen deGET /functions/v1/voice-widget (Voice-config). En el HTML solo fuerzas idioma con language-lovi.
Audio y paso a humano (lo hace el iframe)
No llames estos endpoints desde tu página. El iframe:GET …/functions/v1/voice-widget— solo apariencia (Voice-config). No es la sesión de audio.GET …/functions/v1/voice-widget/signed-url— sesión ElevenLabs ConvAI (URL firmada + SDK).- También usa:
POST …/voice-widget/search, feedback,POST …/voice-widget/handoff,POST …/voice-widget/handoff/end,GET …/voice-widget/chat-by-conversation.
transferring / waiting_agent / with_human, LiveKit). No es una API pública para el JavaScript de tu web.
Requisitos técnicos (página anfitriona)
La página debe poder llamar al menos a:https://widget.lovi.aihttps://cloud.lovi.aihttps://api.elevenlabs.ioywss://api.elevenlabs.iowss://livekit.rtc.elevenlabs.iohttps://cloud-api.livekit.iohttps://cdn.jsdelivr.net
iawidget.js ni widget.lovi.ai envían Content-Security-Policy. Esta lista es para tu CSP / firewall.
