Privacy & GDPR
Built with privacy as a priority — full control over what data is collected, stored, and shared. The GDPR gate also doubles as a lead capture tool to collect contacts before the chat begins.
Privacy Principles
- Data stays on your server — Everything is stored locally in WordPress
- No proxy servers — No intermediary servers from the plugin
- Full control — You decide what gets logged and what doesn't
- Transparency — You know exactly what data is sent to AI providers
GDPR Consent — Two Modes
AxiaChat AI offers two ways to handle GDPR consent. Choose the one that fits your use case in AxiaChat AI → Settings → GDPR Consent.
Mode 1 — Classic Consent Message
The original flow. A consent notice appears as the first bot message with an Accept button. The user cannot type until they accept.
- When the chat opens, a consent message is shown
- The user clicks the Accept button
- A cookie records the preference
- The notice does not appear again on future visits
Configuration
- Go to AxiaChat AI → Settings → GDPR Consent
- Enable "Show GDPR consent"
- Select "Consent message with accept button"
- Write your consent text in the text area (HTML supported)
- Optionally change the button label
- Save
Mode 2 — Email Form (Lead Capture)
Instead of a plain accept button, the widget shows a small form that visitors must fill in before chatting. Their details are saved to your database as GDPR Contacts — with no usage limits.
What you can collect
| Field | Required? | Setting |
|---|---|---|
| Email address | Always required | — |
| Name | Optional toggle | Also require name |
| Phone number | Optional toggle | Also require phone |
Configuration
- Go to AxiaChat AI → Settings → GDPR Consent
- Enable "Show GDPR consent"
- Select "Require email/name before chatting"
- Write the form introduction text (shown above the fields)
- Set the submit button label (e.g. "Start Chat")
- Optionally enable Require name and set its placeholder text
- Optionally enable Require phone and set its placeholder text
- Save
How it works at runtime
- The chat widget opens and shows your custom intro text with the form fields
- The visitor fills in the required fields and clicks the button
- The contact is saved silently to your WordPress database
- The chat unlocks immediately — the visitor can start typing
- A cookie records the consent; on future visits the form is skipped
GDPR Contacts — Admin View
Every submission via the Email Form mode is stored in a dedicated table (wp_aichat_gdpr_contacts) that is completely separate from the bot-captured Leads.
Accessing your contacts
- Go to AxiaChat AI → Leads → GDPR Contacts
- The table shows: Email, Name, Phone, Bot, Date
- Use the search bar to filter by email, name, or phone
Available actions
| Action | How |
|---|---|
| Delete a single contact | Click the trash icon on the row |
| Bulk delete | Tick checkboxes → Delete selected |
| Export all contacts to CSV | Click Export CSV — downloads immediately |
Data Control
Conversation Logging
- Global ON/OFF toggle
- When OFF, no conversations are stored at all
- Chat still works normally — just without persistent records
IP Storage
- Only stored when per-IP usage limits are active
- Stored in binary format (VARBINARY) for efficiency
- Option for anonymization/hashing
- Disable entirely if you don't use per-user limits
What Gets Stored (when logging is ON)
| Data | When |
|---|---|
| User message | Always (if logging on) |
| Bot response | Always (if logging on) |
| Timestamps | Always (if logging on) |
| Bot slug | Always (if logging on) |
| Session ID | Always (if logging on) |
| WordPress user ID | If user is logged in |
| IP address | Only if per-IP limits enabled |
| GDPR contact (email/name/phone) | Only if Email Form mode is enabled |
Data Sent to AI Providers
When a user sends a message, the following is transmitted to the selected AI provider (OpenAI, Claude, or Gemini):
- The user's current message
- Limited conversation history (trimmed by token count)
- System instructions
- Selected context chunks (never full documents)
User Rights
Right of Access
Export a specific user's conversations. Identify users by session ID, WordPress user ID, or IP. GDPR contacts can be exported from Leads → GDPR Contacts → Export CSV.
Right to Erasure
- Delete conversations individually or in bulk by date range
- Delete GDPR contacts individually or in bulk from the GDPR Contacts tab
- Delete associated leads and appointments
Data Export
Export conversation logs to CSV or export GDPR contacts directly from Leads → GDPR Contacts.
Compliance Recommendations
- Update your Privacy Policy to mention:
- Use of an AI chatbot
- Which AI provider(s) are used
- What data is sent for processing
- Conversation retention period
- Contact data collected via the chat form (if using Email Form mode)
- Enable GDPR consent if you operate in the EU
- Use the Email Form mode when you want explicit consent linked to an identifiable contact
- Review contacts periodically and delete data you no longer need
- Disable logging if you don't need to review conversations
- Inform users they are talking to an AI
Legal Bases
Depending on your use case, the legal basis may be:
- Legitimate interest — Customer service, support
- Consent — When using either GDPR mode (classic or email form)
- Contract execution — If the chat is part of your service
Security Measures
- API keys encrypted in the database
- WordPress nonces for request validation
- Capability verification on all admin actions
- Prepared SQL queries (SQL injection prevention)
- HTML output escaping
- Local assets only (no external CDNs)
- Honeypot field for spam prevention
- Rate limiting and burst control
- GDPR contact endpoint validates email format before saving