Security First: How We Protect Your Data
An inside look at our security practices, encryption methods, and commitment to data privacy.

When you entrust your customer conversations and business data to Chatsy, security isn't just a feature ā it's a foundational principle. Here's how we protect your data at every layer.
Our Security Philosophy
Defense in Depth: We don't rely on a single security measure. Multiple overlapping controls ensure that if one fails, others provide protection.
Least Privilege: Every system, user, and process has only the minimum access required to function.
Zero Trust: We verify every request, even from internal systems. Trust is earned, not assumed.
Data Encryption
At Rest
All data is encrypted using AES-256:
- Database: PostgreSQL with Transparent Data Encryption (TDE)
- File Storage: S3 with server-side encryption (SSE-S3)
- Backups: Encrypted with customer-specific keys
In Transit
All communications use TLS 1.3:
- API Traffic: HTTPS only, HSTS enabled
- Internal Services: mTLS between microservices
- Database Connections: SSL required, certificate validation
Encryption Key Management
- Keys stored in AWS KMS
- Automatic key rotation every 90 days
- Separate keys per customer (Enterprise tier)
Access Controls
Multi-Tenant Isolation
Every query includes tenant validation:
typescript// Every database query includes tenant check const documents = await prisma.document.findMany({ where: { chatbotId, chatbot: { userId: session.user.id // Always scoped to authenticated user } } });
Role-Based Access Control (RBAC)
Owner ā Full access, billing, team management
Admin ā Full access except billing
Member ā Create/edit chatbots, view analytics
Viewer ā Read-only access
Authentication
- Password: bcrypt with cost factor 12
- Sessions: Secure, HttpOnly cookies with 24-hour expiry
- OAuth: Support for Google, GitHub SSO
- API Keys: Scoped, rotatable, rate-limited
AI Safety
Prompt Injection Protection
We sanitize all user inputs before they reach the LLM:
typescriptfunction sanitizeInput(input: string): string { // Remove potential injection patterns return input .replace(/\b(ignore|disregard|forget)\s+(previous|above|all)\b/gi, '') .replace(/\bsystem\s*:/gi, '') .replace(/\buser\s*:/gi, '') .trim(); }
Content Filtering
- Profanity and harmful content detection
- PII redaction in logs
- Configurable response boundaries
Hallucination Prevention
- Responses cite sources from your knowledge base
- Confidence scoring with fallback to "I don't know"
- Human escalation for uncertain queries
Infrastructure Security
Network Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Cloudflare ā
ā (DDoS Protection) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā WAF Rules ā
ā (OWASP, Custom Rules) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Load Balancer ā
ā (SSL Termination) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Private VPC ā
ā āāāāāāāāāāā āāāāāāāāāāā āāāāāāāāāāā ā
ā ā App Pod ā ā App Pod ā ā App Pod ā ā
ā āāāāāāāāāāā āāāāāāāāāāā āāāāāāāāāāā ā
ā ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā Database (Private) ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Monitoring & Alerting
- Real-time anomaly detection
- Failed authentication alerts
- Unusual access pattern detection
- 24/7 on-call incident response
Compliance
| Framework | Status |
|---|---|
| SOC 2 Type II | In Progress |
| GDPR | Compliant |
| CCPA | Compliant |
| HIPAA | Available (Enterprise) |
Data Residency
- Default: US (AWS us-east-1)
- EU option: Frankfurt (AWS eu-central-1)
- Enterprise: Custom regions available
Data Retention
- Conversation logs: 90 days default (configurable)
- Analytics: 1 year
- Audit logs: 7 years
- Right to deletion: Honored within 30 days
Vulnerability Management
Bug Bounty Program
We maintain an active bug bounty program:
- Critical: $1,000 - $5,000
- High: $500 - $1,000
- Medium: $100 - $500
Penetration Testing
- Annual third-party penetration tests
- Continuous automated security scanning
- Immediate patching of critical vulnerabilities
Your Responsibilities
Security is a shared responsibility:
- Use strong passwords: 12+ characters, unique per service
- Enable 2FA: When available (coming soon!)
- Review access regularly: Remove unused team members
- Report concerns: security@chatsy.app
Questions?
Security is an ongoing conversation. If you have questions about our practices or need specific compliance documentation, reach out to security@chatsy.app.
Related Articles
RAG vs Fine-Tuning: Which is Right for Your AI Chatbot?
Should you use Retrieval-Augmented Generation or fine-tune a model for your chatbot? We break down the pros, cons, and best use cases for each approach.
The Complete Guide to Building AI Chatbots in 2026
Everything you need to know about building, training, and deploying AI chatbots for customer support. From choosing the right AI model to measuring success.
Customer Support Automation: The Complete 2026 Strategy Guide
Learn how to automate customer support without sacrificing quality. From AI chatbots to workflow automation, reduce costs while improving customer satisfaction.
Ready to try Chatsy?
Build your own AI customer support agent in minutes.
Start Free Trial