Content Gate
Beperk specifieke onderwerpen voor anonieme (niet-geauthenticeerde) widgetbezoekers. Geauthenticeerde gebruikers met een geverifieerde identiteit zien volledige antwoorden.
Overzicht#
Met Content Gate kun je onderwerpen definiëren die alleen met geauthenticeerde gebruikers mogen worden besproken. Wanneer een anonieme bezoeker naar een afgeschermd onderwerp vraagt, reageert de AI met een aangepast bericht in plaats van het eigenlijke antwoord.
Dit is handig om gevoelige informatie te beschermen, zoals:
- Prijsdetails en kortingsstructuren
- Enterprise-functies of interne roadmap
- API-documentatie of technische specificaties
- Partnerspecifieke informatie
Configuratie#
Onderwerpafscherming wordt momenteel geconfigureerd via de agentinstellingen-API. Werk je agent bij met drie instellingssleutels:
gated_enabled(boolean) — zet onderwerpafscherming aan of uitgated_topics(array van strings) — de te beperken onderwerpen. Wees specifiek — gebruik bijvoorbeeld "enterprise-prijsniveaus" in plaats van alleen "prijzen" om valse positieven te vermijden.gated_message(string) — het bericht dat anonieme gebruikers zien wanneer ze naar een afgeschermd onderwerp vragen. Indien leeg is de standaardwaarde: "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."
}
}'Content Gate vereist daarnaast gebruikersidentificatie om geauthenticeerde van anonieme bezoekers te onderscheiden. Zie de documentatie over Gebruikersidentificatie voor installatie-instructies.
Hoe het werkt#
Wanneer een bericht vanuit de widget binnenkomt, controleert het systeem of de gebruiker een geverifieerde identiteit heeft:
| Gebruikerstype | Identiteitsvelden | Afgeschermde onderwerpen |
|---|---|---|
| Geauthenticeerd | Heeft userId of email (HMAC-geverifieerd wanneer identity_secret is geconfigureerd) | Volledige antwoorden — geen beperkingen |
| Anoniem | Alleen visitorId, of helemaal geen identiteit | Ziet het afgeschermde antwoordbericht |
| HMAC mislukt | Heeft userId maar ongeldige userHash | Behandeld als anoniem — ziet afgeschermd antwoord |
identity_secret telt elke userId/e-mail die aan identify() wordt doorgegeven zonder verificatie als geauthenticeerd — een bezoeker kan zichzelf vanuit de browserconsole identificeren en afgeschermde onderwerpen ontgrendelen. Stel identity_secret in en geef userHash door om authenticatie verifieerbaar te maken; zie Identiteitsverificatie (HMAC). De rij "HMAC mislukt" hierboven geldt alleen wanneer identity_secret is ingesteld.Identiteitsvereiste#
Om Content Gate te laten werken, moet je gebruikersidentiteit doorgeven bij het initialiseren van de widget. Hier is een minimaal voorbeeld:
<!-- Voor geauthenticeerde gebruikers -->
<script>
Respondo.init({ agentId: 'YOUR_AGENT_ID' });
Respondo.identify({
userId: 'user-123',
email: 'user@example.com',
userHash: 'HMAC_SHA256_HASH' // Vereist als identity_secret is ingesteld
});
</script>
<!-- Voor anonieme bezoekers — alleen init zonder identify -->
<script>
Respondo.init({ agentId: 'YOUR_AGENT_ID' });
// Geen identify()-aanroep — gebruiker is anoniem, afgeschermde onderwerpen worden beperkt
</script>Voor het instellen van HMAC-verificatie, zie Identiteitsverificatie (HMAC).
Content Gate vs. Te vermijden onderwerpen
Te vermijden onderwerpen blokkeert onderwerpen voor alle gebruikers — zowel geauthenticeerd als anoniem. Gebruik dit voor onderwerpen die de agent nooit mag bespreken (bijv. vergelijkingen met concurrenten, juridisch advies).
Content Gate blokkeert onderwerpen alleen voor anonieme gebruikers. Geauthenticeerde gebruikers zien volledige antwoorden. Gebruik dit voor informatie die je met klanten wilt delen maar niet met het publiek (bijv. prijzen, interne functies).