Integración con Next.js
Añade un chatbot con IA a tu app de Next.js
Carga el widget de intoCHAT una sola vez en tu layout raíz con next/script. Se mantiene durante la navegación en el cliente, y el agente responde con los contenidos con los que lo entrenas.
Última actualización:
Cómo funciona intoCHAT en Next.js
El widget de intoCHAT es un único script que lee el ID de tu agente de su atributo data-chatbot-id y añade una burbuja de chat a la página. Next.js pasa los atributos data del componente Script al elemento script final, así que te basta con el componente next/script de siempre. Ponlo en el layout raíz y Next.js lo carga una sola vez, aunque los visitantes cambien de ruta. Los colores, la posición y el mensaje de bienvenida vienen de intoCHAT, así que no hace falta volver a desplegar para cambiarlos.
Instalar intoCHAT en Next.js
Crea y entrena tu agente
Regístrate en intoCHAT, crea un agente y añade tu web en la pestaña Knowledge. El rastreo renderiza las páginas que dependen de JavaScript antes de leerlas, así que las rutas renderizadas en el cliente se leen tal como las ven los visitantes.
Copia el ID de tu agente
Abre la pestaña Share. El código de Bubble Chat incluye el ID de tu agente en el atributo data-chatbot-id.
Añade Script a tu layout raíz
En app/layout.tsx, importa Script desde next/script y añádelo dentro de body, después de children, con la URL del embed, el ID de tu agente y strategy en lazyOnload.
Despliega y comprueba
Abre cualquier ruta. La burbuja de chat aparece en la esquina inferior y se queda ahí mientras navegas entre páginas.
app/layout.tsx
import Script from 'next/script'
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
{children}
<Script
src="https://www.intochat.ai/api/embed.js"
data-chatbot-id="YOUR_AGENT_ID"
strategy="lazyOnload"
/>
</body>
</html>
)
}Next.js pasa data-chatbot-id al elemento script, y así es como el widget encuentra tu agente. El layout puede seguir siendo un Server Component, porque este Script no tiene manejadores de eventos.
Qué puede hacer el agente en tu app de Next.js
Acciones en el cliente
Registra funciones en tu página con window.IntoChatActions.register y el agente podrá llamarlas durante el chat, por ejemplo para leer el estado de la página o abrir un formulario.
Acciones de API propias
Deja que el agente llame a tus propios endpoints HTTP, con autenticación bearer, basic, clave de API o cabeceras propias. Importa una petición desde cURL y elige qué campos de la respuesta ve el modelo.
Lee páginas renderizadas en el cliente
El rastreo de la web renderiza las páginas que dependen de JavaScript antes de leerlas, encuentra hasta 500 URL en el sitemap y los enlaces y te permite excluir rutas con patrones.
Respuestas fundamentadas
Búsqueda híbrida semántica y por palabras clave en tus contenidos, con reglas que ciñen las respuestas a tus fuentes, resisten la inyección de prompts y avisan cuando la respuesta no está.
Captación de leads
Pide un email o un teléfono en el chat, de forma manual, por reglas o cuando la IA lo decida. Los leads te llegan por email y se exportan a CSV.
Estilo desde el panel
Los colores, el avatar, el icono del botón, la posición y el mensaje de bienvenida se configuran en la pestaña Appearance, no en tu código.
Preguntas frecuentes
¿El widget ralentiza mi app de Next.js?
Con strategy en lazyOnload, Next.js añade el script cuando el navegador está inactivo, después de cargar el resto de recursos de la página, así que no frena ni el renderizado ni la hidratación. La ventana del chat funciona en su propio iframe servido por intoCHAT, separado del JavaScript de tu app.
¿Uso lazyOnload o afterInteractive?
Los dos funcionan. afterInteractive, el valor por defecto, carga el script antes, justo después de parte de la hidratación, así que la burbuja aparece antes, mientras que lazyOnload espera a que el navegador esté inactivo. En ambos casos Next.js crea el elemento script con tu atributo data-chatbot-id, que el widget necesita.
¿Funciona con el Pages Router?
Sí. Añade el mismo componente Script en pages/_app para que se cargue en todas las páginas. Next.js también pasa los atributos data en el Pages Router.
¿Puedo mostrar el chat solo en algunas rutas?
Puedes poner el Script en un layout anidado en lugar del layout raíz, y se carga cuando se abre una ruta de ese layout. Una vez cargada, la burbuja vive en la propia página, así que sigue visible tras navegar en el cliente a otras rutas hasta la siguiente carga completa de la página.
Mi app tiene una Content Security Policy. ¿Qué debo permitir?
Permite www.intochat.ai en script-src para el script, en connect-src para cargar los ajustes del agente y en frame-src para la ventana del chat. Si tu política usa nonces, pasa también el nonce al componente Script.
¿Tengo que volver a desplegar cuando cambio el agente?
No. El código solo lleva el ID de tu agente. Los colores, la posición, el mensaje de bienvenida, las preguntas sugeridas y el conocimiento se cargan desde intoCHAT en cada carga de página, así que los cambios aparecen sin un nuevo despliegue.
Míralo responder con tu propia web
Pega la dirección de tu web y chatea con un agente creado a partir de tus páginas. Tarda alrededor de un minuto.
Crea tu agente gratisPlan gratuito, sin tarjeta de crédito.