Preguntas frecuentes
¿Los usuarios necesitan instalar algo?
No. Los usuarios solo pegan una etiqueta script en su HTML — sin paquetes npm, sin pasos de compilación, sin dependencias. Las funciones adicionales se cargan automáticamente desde el mismo origen.
¿Entrará en conflicto con mi CSS?
No. El widget se renderiza dentro de un Shadow DOM, aislando por completo sus estilos de tu página.
¿Es compatible con aplicaciones de página única (React, Vue, Next.js)?
Sí. El script se carga una vez y persiste a través de los cambios de ruta. Para React/Next.js, coloca el script en tu layout raíz.
// app/layout.tsx (App Router)
import Script from 'next/script';
import { ReactNode } from 'react';
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html lang="en">
<body>
{children}
<Script id="respondo-init" strategy="afterInteractive">
{`
window.Respondo = window.Respondo || {};
Respondo.init = Respondo.init || function(c) { window.RespondoAIConfig = c; };
Respondo.q = Respondo.q || [];
Respondo.identify = Respondo.identify || function(d) { Respondo.q.push(['identify', d]); };
Respondo.init({
agentId: 'YOUR_AGENT_ID',
channelId: 'YOUR_CHANNEL_ID'
});
`}
</Script>
<Script src="https://api.respondo.ai/widget/widget.js" strategy="afterInteractive" />
</body>
</html>
);
}¿Qué ocurre cuando se resuelve una conversación?
Un nuevo mensaje tras la resolución abre automáticamente una conversación de seguimiento vinculada a la anterior (mostrada como "Continued from #N" en tu bandeja de entrada). El contexto, como el idioma y la transcripción previa, se conserva, y el visitante ve un único chat continuo. Si un compañero estaba gestionando la conversación resuelta, el seguimiento se enruta de vuelta a tu equipo en lugar de a la IA; de lo contrario, la IA lo retoma.
¿Cómo se carga el widget?
El widget se carga de forma asíncrona (async), por lo que nunca bloquea el renderizado de la página. El bundle principal es de ~180KB (~50KB con gzip); las funciones opcionales (campañas, tours de producto) se cargan como chunks diferidos separados después de montarse el widget, de modo que el renderizado inicial de la página nunca se bloquea.
¿Cómo funciona el escalado?
Los usuarios pueden hacer clic en el botón "Talk to human", escribir una frase pidiendo un humano, o la IA transfiere por sí sola cuando no puede responder a partir de tu base de conocimiento. Una vez escalada, la IA deja de responder y todos los mensajes posteriores se reenvían a tu equipo de soporte. Consulta la sección Escalado y transferencia para más detalles.
¿Pueden los usuarios seguir chateando con la IA tras el escalado?
Sí. El widget muestra un botón "Continue with AI" que permite al usuario descartar el escalado y reanudar la conversación con la IA.
Base de conocimiento y rastreo del sitio web#
¿Por qué está bloqueado el rastreo de mi sitio web?
«Bloqueado» significa que el sitio — o su capa de protección (Cloudflare, un WAF, un plugin antibots) — rechazó a nuestro rastreador: la página inicial o robots.txt respondieron en cada intento con un error de acceso o un desafío de «comprobando su navegador», o bien robots.txt prohíbe explícitamente a nuestro rastreador. Las páginas importadas antes se conservan intactas, y una resincronización fallará igual hasta que el sitio nos deje entrar. Pida al propietario del sitio que permita el User-Agent RespondoAI-Crawler (cadena completa: Mozilla/5.0 (compatible; RespondoAI-Crawler/1.0; +https://respondo.ai/bot)) en la configuración de protección — en Cloudflare es Security → WAF → Custom rules — y, si la causa es robots.txt, que añada una regla de permiso para User-agent: RespondoAI-Crawler. Respondo no publica una dirección IP fija del rastreador: permita por User-Agent; si el error mostrado en la fuente menciona una IP, permítala también. Si el sitio no se puede modificar, añada el mismo contenido como archivos o texto pegado.
El rastreo terminó pero solo encontró unas pocas páginas
Descubrimos páginas a partir del sitemap del sitio (la línea Sitemap: de robots.txt o ubicaciones habituales como /sitemap.xml) y siguiendo enlaces desde la URL inicial — hasta 10 saltos de enlace de profundidad y hasta 5.000 páginas por fuente. Solo se importan páginas del mismo sitio y bajo la ruta de la URL inicial: un rastreo iniciado en https://example.com/help omite /blog, así que empiece desde la raíz o añada rutas a incluir. Las páginas a las que no apunta ningún enlace ni sitemap, las prohibidas por robots.txt y las que están tras un inicio de sesión no se encuentran. Las páginas casi duplicadas (versiones para imprimir, variantes con parámetros de seguimiento) se fusionan en una. Las páginas cuyo contenido se dibuja por completo con JavaScript se detectan y se renderizan con un mecanismo de respaldo basado en navegador, así que un número bajo de páginas suele indicar un problema de alcance o de sitemap, no de renderizado.
¿Cómo limito el rastreo a una sección del sitio?
Abra Advanced en el diálogo de añadir sitio web y rellene Only crawl paths starting with (rastrear solo rutas que empiecen por) y/o Skip paths starting with (omitir rutas que empiecen por) — una ruta por línea, hasta 50 por campo. La coincidencia es por segmentos completos de ruta: /docs coincide con /docs y /docs/getting-started, pero no con /docs-archive; la barra final se ignora y puede pegar una URL completa — solo se usa su ruta. Las reglas de omisión prevalecen sobre las de inclusión. Las mismas reglas se aplican al sitemap y a cada resincronización posterior de esa fuente.
¿Con qué frecuencia vuelve Respondo a rastrear mi sitio web?
Cada fuente de tipo sitio web tiene una programación Auto-refresh en su panel de páginas: Off (desactivado), Daily (cada 24 horas) o Weekly (cada 7 días). Un rastreo programado es incremental: las páginas cuyo lastmod del sitemap es anterior al rastreo previo se omiten, las páginas sin cambios no se reindexan, las modificadas se reindexan y las desaparecidas se eliminan. Para actualizar de inmediato, use Re-sync en el menú de la fuente o Re-sync all en la página Knowledge.
«No pudimos leer el sitio esta vez»: ¿qué ocurrió?
Es el fallo genérico: el sitio no respondió a tiempo, el dominio no se resolvió, el servidor devolvió un error, la página inicial no tenía texto legible o la dirección no se encontró. El detalle se muestra en la fuente. Compruebe que la URL se abre en una ventana privada del navegador, que no hay erratas en el dominio y que la página inicial es una página de contenido real y no una pantalla de inicio de sesión. Las redes sociales y plataformas de mensajería (Facebook, Instagram, LinkedIn, X, YouTube y similares) no se pueden importar en absoluto: se rechazan antes de iniciar el rastreo. Sus páginas existentes se conservan; una fuente programada lo reintenta en su próxima ejecución; si no, resincronice cuando el sitio vuelva a estar accesible.
¿Qué significan «nuestro índice de búsqueda está lleno» y «no pudimos indexar esta fuente»?
Ambos aparecen después de leer el contenido correctamente. Índice lleno significa que el índice de búsqueda al que se copia esta fuente no tiene espacio en el lado de Respondo — un límite de Respondo, no un problema con su contenido. Las páginas están guardadas, todo lo ya indexado sigue respondiendo, nuestro equipo recibe aviso automáticamente y la fuente se indexará en cuanto haya espacio; resincronizar antes fallará igual. No pudimos indexar esta fuente significa que la construcción del índice de búsqueda falló esta vez — un error temporal de nuestro lado; los datos existentes están intactos y la tarea se reintenta automáticamente. Si cualquiera de los mensajes persiste, use «Preguntar a Copilot» en el error.
¿Las páginas largas se responden solo desde su inicio?
No. Cada página rastreada se divide en fragmentos solapados de unos 1.600 caracteres, cada uno indexado por separado con el título de la página adjunto, de modo que una respuesta puede venir de cualquier parte de un artículo largo. Las citas siguen mostrando un enlace por página. Las páginas importadas antes de este cambio se vuelven a dividir en sus siguientes resincronizaciones.
¿Cómo consigo ayuda con un error de rastreo?
Cada error de rastreo o indexación en la página Knowledge viene con un botón Preguntar a Copilot. Abre Copilot con el error adjunto, y Copilot responde a partir de la propia documentación de ayuda de Respondo con pasos concretos para su caso. Esta ayuda es gratuita: no cuenta para sus solicitudes de IA. Si los pasos no lo resuelven, dígalo: basta con «no ayudó». Copilot entonces ofrece una tarjeta que entrega el problema al equipo de Respondo: la tarjeta indica exactamente qué se envía, nada sale hasta que usted lo confirme, y su respuesta llega en el mismo hilo de Copilot. Si no es posible derivarlo desde aquí, Copilot lo dice claramente en lugar de callar.
Mensajes que no llegan al cliente#
Una respuesta muestra «Not delivered»: ¿qué significa y qué hago primero?
Todo mensaje saliente en la bandeja lleva un indicador de entrega: Queued (en cola: las respuestas escritas seguidas se agrupan y salen como un solo correo en un par de minutos), Sending…, Sent, Delivered o un fallo en rojo. Los fallos tienen tres formas: Not delivered — el canal rechazó el mensaje; Bounced con el subtipo de rebote al lado — el servidor de correo del destinatario rechazó el correo; y Marked as spam — el destinatario lo denunció. Pase el cursor por la etiqueta o haga clic en ella: la información emergente recoge las palabras literales del proveedor, incluido el diagnóstico SMTP en bruto de un rebote. Junto a ella hay hasta dos acciones: Retry / Send again, que reenvía de verdad, y Ask Copilot, que abre Copilot con el error adjunto. Si no hay ningún botón de reintento, la dirección está bloqueada y volver a enviar fallaría igual. Un Sent o Delivered que lleva al lado N files not delivered significa que el texto llegó pero un adjunto no: ese canal no pudo transportar el archivo.
¿Por qué mi correo no llegó al cliente?
Son cuatro cosas distintas, y la etiqueta las diferencia. Un rebote permanente significa que la dirección no existe o rechaza el correo: no hay botón de reintento y la dirección pasa a la lista de supresión. Un rebote temporal es un buzón lleno o un problema pasajero en el servidor receptor; se ofrece Send again y suele funcionar más tarde. Un rebote cuyo diagnóstico menciona SPF, DKIM, DMARC o 5.7.515 es otra cosa: el sistema de correo del destinatario rechazó el mensaje porque su dominio de envío no superó la comprobación de autenticación. Una respuesta nueva rebotará exactamente igual hasta que se arregle el dominio, así que responda mientras tanto por otro canal y repare los registros DNS del canal de correo en Settings → Channels. Por último, Marked as spam significa que el destinatario pulsó «denunciar spam»: la dirección queda suprimida y dejamos de enviarle. El informe de una campaña puede mostrar además The email provider rejected this message — un rechazo definitivo antes incluso de que el correo saliera, normalmente un dominio de envío sin verificar o una dirección mal formada — y The email provider rejected our credentials, que es un problema de configuración del espacio de trabajo y no tiene nada que ver con ese contacto en concreto.
¿Qué es la lista de supresión y cómo se saca de ella una dirección?
Es una lista, privada de su espacio de trabajo, de direcciones de correo a las que Respondo se niega a enviar. Una dirección entra en ella cuando un mensaje rebota de forma dura (un rechazo permanente), cuando alguien denuncia uno de sus correos como spam, o cuando se bloquea manualmente. Los rebotes blandos nunca suprimen una dirección. Mientras el bloqueo está activo, las entregas de campaña a esa dirección se omiten con This address is blocked after an earlier bounce or complaint, y una respuesta desde la bandeja se rechaza antes de salir. Solo se suprime al destinatario real del mensaje: una notificación de rebote no puede bloquear una dirección cualquiera. En el panel no hay pantalla para la lista: un propietario o administrador puede consultarla con GET https://api.respondo.ai/api/v1/integrations/email/suppressions y levantar una entrada con DELETE https://api.respondo.ai/api/v1/integrations/email/suppressions/<email>, o pedírselo al soporte de Respondo. Levante un rebote duro solo cuando sepa que el buzón se arregló de verdad: volver a enviar a una dirección muerta daña la reputación de su dominio.
WhatsApp no acepta mi respuesta: la ventana de 24 horas
WhatsApp permite a una empresa enviar mensajes de texto libre solo dentro de las 24 horas siguientes al último mensaje del cliente; Meta rechaza cualquier cosa posterior con el error 131047. Respondo lleva esa ventana por persona y, cuando sabe que ha expirado, detiene la respuesta antes de enviarla. Cuando Respondo no tiene ningún registro de la ventana — un contacto importado, o un número que nunca le ha escrito — no bloquea: el mensaje va a Meta y decide Meta. Hay exactamente dos salidas. Esperar a que el cliente vuelva a escribir — su mensaje reabre la ventana otras 24 horas y su respuesta pasa entonces — o enviar una template (plantilla) aprobada por Meta. Las plantillas no se pueden enviar desde el redactor de la conversación. Se gestionan en Outbound → WhatsApp templates: Sync trae lo que ya está registrado en su número y New template envía una a Meta, cuya revisión tarda un día o más. Después envíe la plantilla aprobada mediante una campaña outbound dirigida a ese contacto. Una plantilla llega igual a personas dentro y fuera de la ventana, pero solo mientras su estado sea approved.
«That channel is disconnected» / «That channel is not connected»
Disconnected significa que la integración existe pero ya no está activa: su token de acceso se revocó o caducó, o alguien la desconectó. Not connected significa que detrás del punto de contacto no hay ninguna integración. Ambos se arreglan en Settings → Channels, donde los canales desconectados se agrupan bajo su propio encabezado con un botón Reconnect en cada tarjeta; vuelva a conectar y reintente el mensaje. Hay dos casos vecinos que se parecen pero no son lo mismo: un canal de correo cuyo dominio de envío no está verificado no se puede poner en Live y no envía nada hasta que DKIM y SPF estén confirmados, y un canal de solo recepción rechaza los mensajes salientes por diseño, así que Retry nunca funcionará ahí.
«No channel to reach this person on» / «No email address on this contact»
Ambos aparecen en el informe de entrega de una campaña, no en la bandeja. El primero significa que ninguno de los puntos de contacto coincidía con los canales por los que envía la campaña; si su único punto de contacto está en un canal de solo recepción, eso se informa aparte como una omisión deliberada. El segundo significa que la campaña envía correo y el contacto no tiene ninguna dirección registrada. Telegram tiene su propia variante: si la persona nunca ha escrito a su bot no hay chat al que escribir, porque la Bot API prohíbe que un bot escriba primero — el primer mensaje tiene que enviarlo ella. Se resuelve añadiendo la dirección que falta al contacto, ampliando los canales a los que apunta la campaña, o dejando que recurra al correo.
El contacto se dio de baja: ¿qué puedo enviarle?
They had already unsubscribed significa que el contacto tiene una baja global: puesta desde el enlace de baja de uno de sus correos, traída en una importación o activada por un compañero. Las campañas y las series omiten esos contactos en todos los canales, no solo en el correo, y la entrega se registra como omisión y no como fallo. Una respuesta uno a uno de un compañero dentro de una conversación deliberadamente no queda bloqueada por ella: la baja va de envíos masivos, y responder a alguien que le ha escrito es una decisión humana. El estado se muestra en el contacto como Outbound: Subscribed / Unsubscribed, la lista de contactos se puede filtrar por él, y el botón Re-subscribe del contacto lo revierte — úselo solo cuando la persona se lo haya pedido.
¿Cuántas veces se reintenta el envío y es seguro pulsar Retry?
Una respuesta desde la bandeja pasa a una cola que hace hasta cinco intentos, esperando unos 3, 10, 30 y 30 minutos entre ellos. Solo se reintentan los fallos transitorios: tiempos de espera agotados, conexiones rechazadas, límites de tasa, errores del propio servidor del proveedor. Un rechazo permanente (dirección desconocida, dominio de envío sin verificar, credenciales rechazadas) se marca como fallido de inmediato, porque repetirlo devolvería la misma respuesta. Las entregas de campaña corren en su propia cola con hasta seis intentos y esperas más cortas — 5 segundos, 30 segundos, 2 minutos, 10 minutos; cuando se agotan, la entrega se cierra con Delivery kept failing and was stopped after several attempts en lugar de quedarse en «queued» para siempre. Pulsar Retry a mano es seguro. Actúa solo sobre un mensaje que está realmente en estado fallido y, en el caso del correo, primero pregunta al proveedor qué fue del original: si ese correo sí salió, la fila pasa a entregado en vez de enviar una segunda copia, y un reenvío real sale con una clave de idempotencia nueva. Donde una segunda copia sería un error — un rebote duro, una denuncia de spam, un envío todavía en curso — el botón no aparece o el reintento se rechaza indicando el motivo.
La causa sigue sin estar clara: ¿cómo consigo ayuda?
Cada mensaje fallido lleva al lado un botón Ask Copilot. Abre Copilot con el error, el canal y la conversación adjuntos, y Copilot responde a partir de la propia documentación de ayuda de Respondo con pasos para ese fallo concreto. Esta ayuda es gratuita: no cuenta para sus solicitudes de IA. Si los pasos no lo resuelven, dígalo: basta con «no ayudó». Copilot entonces ofrece una tarjeta que entrega el problema al equipo de Respondo: la tarjeta indica exactamente qué se envía, nada sale hasta que usted lo confirme, y su respuesta llega en el mismo hilo de Copilot. Si no es posible derivarlo desde aquí, Copilot lo dice claramente en lugar de callar.