GDPR and data ownership
NaviBot should be privacy-first by default. The widget is public, but secrets and private rules must stay server-side.
Data categories
| Data | Where it belongs |
|---|---|
| Visitor messages | backend database |
| Operator replies | backend database |
| OpenAI API keys | encrypted integration credentials or env |
| Notion API keys | encrypted integration credentials |
| Widget public config | safe public values only |
| RAG document content | backend database |
| Analytics events | backend analytics table |
Consent and disclosure
The site should disclose:
- chat / assistant usage
- cookies or storage if used
- analytics events
- lead form consent
- retention rules
- who owns the data
Self-hosted boundary
For self-hosted deployments, the client controls:
- server location
- database
- Redis
- backups
- OpenAI key mode
- Notion / SeaTable integration credentials
Do not expose secrets
Never put OpenAI, Notion, SeaTable, CRM, or Telegram secrets in public widget config, page source, or client-side environment variables.