Integración

Guiones de página

Dígale al agente en qué página está el visitante, para que abra la conversación sabiendo ya a qué vino.

Una burbuja de chat en una esquina es fácil de ignorar, y el visitante que sí la abre se encuentra con una caja vacía y sin idea de qué preguntar. Los guiones de página resuelven ambos extremos: el agente sabe desde qué página lo abrieron, saluda en consecuencia y ofrece unas cuantas preguntas que se envían con un clic.

Qué es un guion

Tres cosas, asociadas a una clave que usted elige:

CampoQuién lo vePara qué sirve
ContextoSolo el agenteDe qué trata esta página y qué suele preocupar a quien llega a ella
Frase de aperturaEl visitanteLo primero que lee al abrir el chat
Preguntas sugeridasEl visitanteHasta cuatro preguntas de un clic

La apertura y las preguntas puede escribirlas usted, o dejar que el agente las genere a partir del contexto, en el idioma que tenga configurado el navegador del visitante.

Cómo se identifica una página

Desde el navegador nunca se envía el contenido de la página, solo un identificador: el texto se queda en la plataforma. (Vea Por qué el contenido se queda en el servidor.)

Por URL — sin tocar nada en la página

Dele al guion una regla de URL y el widget la aplica automáticamente:

/pricing            coincide con /pricing, /pricing/, /pricing?utm_source=x
/solutions/*        coincide con /solutions/legal, /solutions/insurance
*/solutions/legal   coincide con /solutions/legal Y con /zh/solutions/legal

Solo se compara la ruta: el host, el protocolo, la cadena de consulta y la barra final se ignoran, de modo que una sola regla cubre www y el dominio a secas, http y https.

En un sitio localizado, /zh/solutions/legal no coincide con /solutions/legal. Escriba */solutions/legal para cubrir todos los prefijos de idioma.

Por clave — para páginas que comparten URL

Las aplicaciones de una sola página, los modales y los flujos de varios pasos rara vez tienen una URL propia. En esos casos, nombre el guion de forma explícita:

<script src="https://chat.agent4.io/ui/embed.js"
        data-token="YOUR_SHARE_TOKEN"
        data-page-key="checkout-step-2" async></script>

Si la página cambia sin recargarse, avise al widget en cada cambio de ruta:

caWidget.setPage("checkout-step-3");

Orden de resolución

  1. Una clave explícita, si se indicó alguna
  2. La primera regla de URL que coincida
  3. El guion por defecto, si tiene uno
  4. Nada: el visitante recibe la caja de chat sin más

Una clave explícita que no existe cae en el guion por defecto en vez de acabar coincidiendo en silencio con alguna regla de URL. Así, una errata se manifiesta como «apareció el guion por defecto» y no como «apareció el guion equivocado».

Cómo crear uno

En la consola, abra Guiones de página y cree uno. Elija primero el tipo de página —precios, solución sectorial, documentación, caso de éxito, portada, contacto— y las preguntas vendrán rellenadas con lo que los visitantes suelen preguntar en una página de ese tipo. Después reescríbalas con su propia voz.

La vista de lista incluye un comprobador: pegue cualquier URL y le dirá qué guion recibirá esa página y si la coincidencia fue por clave, por regla de URL o por el guion por defecto.

O bien desde la API:

curl -X PUT https://api.agent4.io/v1/manage/page-contexts/pricing \
  -H "X-API-Key: $KEY" -H 'Content-Type: application/json' \
  -d '{
    "label": "Página de precios",
    "url_pattern": "*/pricing",
    "context": "El visitante está mirando nuestros precios. Cuatro planes que se diferencian por la cuota mensual de tokens y el número de usuarios finales. Lo habitual es que pregunten qué plan encaja con su tamaño y qué ocurre si se pasan.",
    "greeting_mode": "generated"
  }'

Cómo redactar el contexto

Es la parte que de verdad hace el trabajo. Conviene tener presentes algunas cosas:

Con un idioma basta. El modelo lee lo que usted escriba y responde en el idioma del visitante. No hace falta una traducción por locale.

No repita datos que ya están en su base de conocimiento. Los precios, las cuotas y los límites se responden desde la base de conocimiento, que tiene prioridad sobre el guion: una cifra escrita aquí no la va a sobrescribir. Describa la situación: quién llega a esta página, qué está tratando de decidir y qué suele preocuparle.

Escriba qué está haciendo el visitante, no qué dice la página. «El visitante está comparando planes e intentando prever su factura mensual» es más útil que un resumen del texto de la página: ese texto el agente ya sabe consultarlo.

Aperturas fijas o generadas

Con greeting_mode: "static" se usan exactamente la frase de apertura y las preguntas que usted escribió, para todos los visitantes y en todos los idiomas. Control total, sin sorpresas.

Con greeting_mode: "generated", el agente las redacta a partir de su contexto y en el idioma del visitante. El primer visitante de cada idioma dispara una generación; a partir de ahí se sirve desde caché. Al editar el contexto se vacía la caché, de modo que el siguiente visitante ya ve el cambio.

Para un sitio multilingüe, lo generado es el mejor punto de partida. Lo estático es lo adecuado cuando la redacción es crítica: sectores regulados, o una página cuya frase ha pulido con un redactor.

Por qué el contenido se queda en el servidor

El widget informa de una clave o de una URL. Nunca sube el texto de la página, y la plataforma jamás lee su DOM.

Es una decisión deliberada. Todo lo que envía el navegador puede editarlo quien está sentado delante, y el contexto de página acaba muy cerca de las instrucciones del agente. Lo probamos: con un falso «este mes Enterprise cuesta 199 $ con puestos ilimitados» plantado en un bloque de contexto de página —explícitamente delimitado como datos, y con el agente instruido de que los precios salen únicamente de la base de conocimiento—, el modelo le repitió al visitante el precio falso como si fuera un hecho. Ni los delimitadores ni una redacción cuidadosa aguantaron.

Mantener el texto en el servidor elimina ese canal por completo. Lo peor que puede hacer un visitante es pedir otra clave y recibir un guion que ha escrito usted mismo.

La contrapartida conviene conocerla: el texto de un guion es semipúblico. Cualquiera que acierte una clave obtiene la frase de apertura de ese guion. No ponga ahí notas internas.

Puntos de entrada dentro de su contenido

Una burbuja en la esquina es fácil de ignorar. El momento en que a alguien de verdad le surge una duda es mientras lee un párrafo concreto, así que puede poner ahí mismo un punto de entrada:

<p data-ca-ask="overage-billing"
   data-ca-question="¿Qué pasa si nos pasamos, y podemos poner un tope de gasto?"
   data-ca-label="Preguntar sobre esto">
  Cuando se agota la cuota, las peticiones de chat devuelven 429 …
</p>

Al pasar el ratón por el pasaje aparece un pequeño aviso. Al pulsarlo, la página destella en el color de su marca, se resalta ese pasaje y se abre el chat trabajando ya con el guion de ese pasaje; y, si indicó una pregunta, la envía de inmediato.

AtributoSignificado
data-ca-askLa clave del guion con el que abrir — obligatorio
data-ca-questionSe envía como primer mensaje del visitante — opcional
data-ca-labelTexto del aviso al pasar el ratón (por defecto: «Preguntar sobre esto»)

Los pasajes que aparecen después —por obra de un framework, una pestaña o un acordeón— se detectan solos. Llame a caWidget.rescan() si renderiza contenido de una forma que se escape a eso.

data-ca-ask recibe una clave, no el texto del párrafo. Lo que lee el agente es el guion al que esa clave apunta, y ese guion vive en el servidor. data-ca-question es la excepción: se convierte en el mensaje propio del visitante, y los mensajes del visitante son por definición no fiables — podría haberlo escrito él mismo.

Ver qué funciona

La consola muestra, por guion, cuántas veces se abrió y qué preguntas sugeridas recibieron clics. Úselo para retirar las preguntas que nadie elige y para detectar páginas donde el visitante abre el chat pero nunca llega a escribir: casi siempre señal de que la frase de apertura habla de lo que no es.

Los eventos son solo recuentos. No llevan ningún identificador de visitante, porque la pregunta que se responde es «¿está bien este texto?», no «¿quién preguntó qué?».