Purpose of this policy
Godia.ai publishes conversational agents. The platform includes a secure client portal, agents available through a widget, link or QR code, automations (rules, service emails, request forms) and an optional module, Godia Pilot, which connects at the client's request to its Gmail or Microsoft 365 mailboxes to suggest reply drafts, with nothing sent without human validation.
This document describes the technical and organisational measures that ensure the confidentiality, integrity and availability of our clients' data and that of their users. Data of the core services is hosted and processed in the European Union.
Hosting and infrastructure
- Application: Railway, europe-west4 region (Amsterdam, Netherlands), SOC 2 certified provider.
- Database: PostgreSQL managed by Neon, AWS eu-central-1 region (Frankfurt, Germany), SOC 2 Type II, ISO 27001 and ISO 27701 certified provider.
- Knowledge search engine: operated by Godia.ai at Railway, in the Netherlands.
- Language models: Mistral AI SAS, called through its European endpoint. Training on our data disabled; zero retention of conversation content; no API that stores data at Mistral AI (agents, conversations, batch processing, files).
- Service emails: Mailjet (Sinch), European Union, ISO 27001 certified provider.
- Google or Microsoft sign-in and Godia Pilot module: Google LLC (United States) and Microsoft Corporation (EU and United States), Standard Contractual Clauses, only upon activation by the client. Scopes requested:
gmail.modifyfor Gmail,Mail.ReadandMail.Sendfor Microsoft Graph; sign-in through the Authorization Code flow with PKCE.
Governance and organisation
- Data protection contact: legal@godia.ai (no data protection officer appointed, as the conditions of Article 37 GDPR are not met).
- Security contact: legal@godia.ai (reply within 4 hours for a critical incident).
- Security responsibility: technical management.
- Confidentiality: persons authorised to access data are bound by confidentiality; every support access is logged.
Access control
- Two-factor authentication (TOTP)
Enabled for Godia.ai administrator accounts. Each client can require it for all accounts of its organisation; it can also be enabled individually (Profile, Security). 6-digit code at each login, compatible with common authenticator apps, 10 backup codes generated at activation. For Google or Microsoft sign-in, two-factor authentication is that of the organisation's identity provider.
- Single sign-on (SSO)
OAuth 2.0 / OpenID Connect with Google and Microsoft, Authorization Code flow with PKCE.
- Roles and permissions
Three roles: Owner (full access), Admin (administration and configuration), Member (operational use), complemented by 8 granular permissions (canViewAnalytics, canManageAgents, canViewConversations, canViewProspects, canManageTeam, canManageBilling, canExportData, canViewCopilot). The
canExportDatapermission is checked server-side for every export (HTTP 403 refusal). - Inactive accounts
Daily job: warning after 60 days of inactivity (
INACTIVITY_WARNINGevent), revocation of all sessions after 90 days. Each event is timestamped in the audit log.
Encryption
- In transit
All connections are encrypted with HTTPS (TLS). HSTS enabled (
max-age=31536000; includeSubDomains; preload); any HTTP request is redirected to HTTPS. The connection between the application and the database is also encrypted. - At rest
OAuth tokens, integration credentials, secrets and two-factor keys: application-level AES-256-GCM encryption before storage. Passwords: bcrypt hashing (12 rounds). Database: encryption at rest by the hosting provider. Encrypted backups.
- Session tokens
Signed with RS256, with automatic rotation of signing keys and immediate revocation of invalidated tokens. Never transmitted in clear text.
- Master key
AES-256-GCM master key (32 bytes, scrypt-derived) kept as an environment secret at the hosting provider, never in the code. Planned annual rotation and immediate rotation upon a security event.
- API keys
Format
godia_live_<32 bytes base64url>(orgodia_test_). Only the SHA-256 hash is stored; the key is shown only once, at creation.
Protection of agent visitors
- No account, no advertising or analytics cookie in the widget.
- Random visitor identifiers, with no browser fingerprinting.
- IP address truncated before storage; the full address is only used in memory, to limit abuse.
- Approximate country derived from the browser time zone, with no third-party geolocation service.
- No third-party script loaded by the widget.
- Automatic deletion of conversations, technical copies included, according to the period set by the client.
- "AI-generated replies" notice available per agent, in the visitor's language.
Separation between clients
Three cumulative levels:
- Client identifier on every table, mandatory filter on every query.
- Authentication middleware checking the client identifier on every call, before any data access.
- Ownership check on every endpoint: immediate HTTP 403 refusal on any attempt to access another client's data.
Any attempt to breach this separation triggers a real-time alert (TENANT_VIOLATIONS).
Network and API security
- Rate limiting
Global: 3,000 requests per 15 minutes per IP address. Login: 5 attempts per 15 minutes, then a 30-minute block. API v1: 1,000 requests per hour per key. Audit log exports: 10 per hour per organisation. Godia Pilot module: 60 changes per minute per IP address. Agent messages: per-visitor hourly cap.
- Security headers
HSTS,
X-Content-Type-Options: nosniff,Referrer-Policy: strict-origin-when-cross-origin, Content-Security-Policy withdefault-src 'self',object-src 'none',base-uri 'self'andframe-ancestors('self'on the portal, open on widget routes for embedding in clients' websites).unsafe-inlineis still tolerated for the portal; a move to a nonce-based policy is planned.X-Frame-Options: DENYon the portal and API. RestrictivePermissions-Policy(camera, geolocation, payment and USB disabled; microphone reserved for the optional voice agent). - CSRF protection
Synchroniser token checked server-side on every route that changes data; session regenerated at login.
- CORS
Strict allow-list of origins; only the widget APIs are open, so that it can be embedded in clients' websites.
Artificial intelligence
- Provider and data
Mistral AI models called through its European endpoint; training on our data disabled; experimental models disabled; zero retention of conversation content at Mistral AI.
- Control of replies
Replies grounded in the knowledge base validated by each client; automatic check of sensitive facts (opening hours, deadlines, contact details) before display; a barrier that blocks any attempt to make an agent reveal its internal instructions.
- Degraded mode
In case of an error on a model, automatic switch between Mistral models (small, medium, large). No silent switch to another provider.
Logging and monitoring
- Audit logs
Four tables that cannot be modified from the interface: auth_events (logins, two-factor authentication, revocations), 90 days; access_logs (access to sensitive data, administrator actions), 90 days; client_activity_logs (portal actions), 30 days; alert_history (security alerts), 90 days.
- Export
JSON or CSV export from the portal, filtered by period and event type, limited to the organisation and subject to the
canExportDatapermission, compatible with common SIEM tools. - Alerts
Five active rules: brute-force login attempts, CSRF violations, breaches of client separation, invalid tokens, suspicious activity; plus daily detection of inactive accounts. Immediate email notification.
Vulnerability management
- Dependencies
npm auditon every code change and every week (workflowsecurity-audit.yml); the pipeline fails on any high or critical vulnerability. - Remediation times
Critical: 48 hours. High: 7 days. Medium: 30 days. Low: next release.
- OWASP audit
Internal audit against the OWASP Top 10:2025 and the OWASP Top 10 for large language model applications (February 2026, updated April 2026). Report available upon request, under a confidentiality undertaking.
- Penetration testing
Internal security testing at each major release. A penetration test by an independent external provider is part of our planned improvements.
- Responsible disclosure
Programme described on our dedicated page. Report to legal@godia.ai, reply within 48 hours.
Secure development
- Input validation
Zod schemas on API routes; non-conforming data is rejected.
- SQL injection
Parameterised queries through the Drizzle ORM.
- Change verification
Every sensitive change (authentication, client separation, cryptography, agent behaviour) is independently verified and tested before going to production, with immediate rollback available.
- Secrets
Hosting provider environment variables, never in the code or the repository.
- Environments
Production and development are separated (distinct databases and variables). A dedicated staging environment is planned.
Resilience
- Recovery
Contractual recovery time: 4 hours at most. Maximum data loss: 24 hours, with point-in-time restore. Automatic application restart for common incidents.
- Availability
99.5 % per month, guaranteed; 99.9 % by contract. See our SLA. Real-time status: status.godia.ai.
- Backups
Daily encrypted backups, managed by the database provider, replicated within the European Union.
Incident management
- Process
Detection through alerts, qualification, information of affected clients (within 4 hours for a critical incident), remediation, post-incident report.
- Post-incident reports
Available in the client portal, with timeline, impact and corrective measures.
- Breach notification
For data processed on behalf of a client, Godia.ai informs the client without undue delay and provides the information it needs to notify its supervisory authority within 72 hours (Article 33 GDPR). For processing for which Godia.ai is the controller, notification is made to the CNPD.
- Support
Level 1: ticket from the portal. Level 2: support@godia.ai. Level 3: technical management. Security emergency: legal@godia.ai (4 hours for a critical incident).
Compliance
- Impact assessment (Article 35 GDPR)
DPIA-GODIA-2026-001, version 1.2 (October 2026): six processing operations described (conversations, collection of requests, visitor files, accounts and logs, API keys, connected mailboxes), risks assessed before and after measures, healthcare and public sector section. Available upon request. Next review: October 2027.
- Data processing agreement (Article 28 GDPR)
Available before any contractual relationship: DPA, signed version upon request at legal@godia.ai.
- Financial sector clients (DORA)
Register of ICT providers, post-incident reports and audit log export available to clients subject to the DORA regulation.
- Exit
Complete data export upon request within 30 days of termination, permanent deletion within 60 days, unless a legal obligation applies. Data exportable in JSON or CSV, standard PostgreSQL format.
Contacts
- Vulnerability reports: legal@godia.ai (48 hours). See our responsible disclosure programme.
- Critical incidents: legal@godia.ai (4 hours).
- Data protection, DPA: legal@godia.ai.
- Technical support: support@godia.ai.