Restricción de contenido
Restringe temas específicos para los visitantes anónimos (no autenticados) del widget. Los usuarios autenticados con identidad verificada ven las respuestas completas.
Descripción general#
La restricción de contenido te permite definir temas que solo deberían tratarse con usuarios autenticados. Cuando un visitante anónimo pregunta sobre un tema restringido, la IA responde con un mensaje personalizado en lugar de la respuesta real.
Esto es útil para proteger información sensible como:
- Detalles de precios y estructuras de descuentos
- Funciones enterprise o roadmap interno
- Documentación de la API o especificaciones técnicas
- Información específica de partners
Configuración#
La restricción por temas se configura actualmente a través de la API de ajustes del agente. Actualiza tu agente con tres claves de settings:
gated_enabled(boolean) — activa o desactiva la restricción por temasgated_topics(array de cadenas) — los temas a restringir. Sé específico — por ejemplo, usa "niveles de precios enterprise" en lugar de solo "precios" para evitar falsos positivos.gated_message(string) — el mensaje que ven los usuarios anónimos al preguntar sobre un tema restringido. Si está vacío, el valor por defecto es: "This information is available to registered users. Please sign in or contact us for details."
curl -X PATCH https://api.respondo.ai/api/v1/agents/<agent-uuid> \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"settings": {
"gated_enabled": true,
"gated_topics": ["enterprise pricing tiers", "internal roadmap"],
"gated_message": "This information is available to registered users. Please sign in or contact our sales team for details."
}
}'La restricción de contenido también requiere identificación de usuarios para distinguir a los visitantes autenticados de los anónimos. Consulta la documentación de Identificación de usuarios para las instrucciones de configuración.
Cómo funciona#
Cuando llega un mensaje desde el widget, el sistema comprueba si el usuario tiene una identidad verificada:
| Tipo de usuario | Campos de identidad | Temas restringidos |
|---|---|---|
| Autenticado | Tiene userId o email (verificado con HMAC cuando identity_secret está configurado) | Respuestas completas — sin restricciones |
| Anónimo | Solo visitorId, o sin identidad alguna | Ve el mensaje de respuesta restringida |
| HMAC fallido | Tiene userId pero un userHash inválido | Se trata como anónimo — ve la respuesta restringida |
identity_secret configurado, cualquier userId/email pasado a identify() cuenta como autenticado sin verificación — un visitante puede autoidentificarse desde la consola del navegador y desbloquear los temas restringidos. Configura identity_secret y pasa userHash para que la autenticación sea verificable; consulta Verificación de identidad (HMAC). La fila "HMAC fallido" de arriba solo se aplica cuando identity_secret está configurado.Requisito de identidad#
Para que la restricción de contenido funcione, necesitas pasar la identidad del usuario al inicializar el widget. Aquí tienes un ejemplo mínimo:
<!-- Para usuarios autenticados -->
<script>
Respondo.init({ agentId: 'YOUR_AGENT_ID' });
Respondo.identify({
userId: 'user-123',
email: 'user@example.com',
userHash: 'HMAC_SHA256_HASH' // Requerido si identity_secret está configurado
});
</script>
<!-- Para visitantes anónimos — solo init sin identify -->
<script>
Respondo.init({ agentId: 'YOUR_AGENT_ID' });
// Sin llamada a identify() — el usuario es anónimo, los temas restringidos se limitarán
</script>Para la configuración de la verificación HMAC, consulta Verificación de identidad (HMAC).
Restricción de contenido vs Temas a evitar
Temas a evitar bloquea temas para todos los usuarios — tanto autenticados como anónimos. Úsalo para temas que el agente nunca debería tratar (por ejemplo, comparaciones con la competencia, asesoría legal).
Content Gate bloquea temas solo para los usuarios anónimos. Los usuarios autenticados ven las respuestas completas. Úsalo para información que quieras compartir con los clientes pero no con el público (por ejemplo, precios, funciones internas).