Data export
Hydra can produce three different exports:
- Contacts, leads & former customers — the entire
customerstable for your workspace, as CSV or JSON. - Conversations — every conversation in your workspace with its messages, replies, and internal notes, as JSON.
- Single contact — everything Hydra holds about one person, suitable for a GDPR subject-access request.
All three are Admin-only. Every export writes an entry to the audit log so there is a permanent record of who exported what, when.
Where to find it
Settings → Data export (Admins and Owners only).
The single-contact export lives on the contact's detail page — open any contact or lead and click Export data.
Contacts, leads & former customers
One row per customer in your workspace. Includes leads, contacts, former customers, and anonymous widget visitors captured by a bot.
Columns: id, type, email, name, company, job_title, phone, source, external_id, account_id, source_bot_id, source_conversation_id, notes, metadata, churn_reasons, created_at, last_seen_at, promoted_at, churned_at.
- CSV is suitable for spreadsheets or CRM imports. Values containing commas, quotes, or newlines are escaped per RFC 4180. JSON-typed columns (
metadata,churn_reasons) are embedded as serialized JSON strings. - JSON preserves nested structures as objects. Good when you are piping the export into another system.
Conversations
JSON only. Each conversation includes:
- Its own row (id, status, subject, summary, channel_id, bot_id, widget_id, assigned_agent_id, created_at, updated_at, etc.)
messages— every bot-facing chat message (role =user|assistant|tool).replies— every teammate reply and every internal note. Internal notes are flagged withis_internal: true; customer-facing replies haveis_internal: false.
The file is a JSON array streamed in batches of 200 conversations so large tenants don't time out.
Single contact (GDPR)
From a contact or lead detail page, click Export data. You get a single JSON file containing:
- The customer row itself.
- Every conversation the contact appears on, with messages and replies.
- Every ticket the contact is attached to, with ticket replies and internal ticket notes.
This is the document you'd typically attach to a subject-access request response.
Last-export timestamps
The Data page shows when each bulk export was last downloaded. The timestamp refreshes a second or two after the download starts. The single-contact export does not update these timestamps — it has its own audit-log entry instead, with the contact's id as the target.
Formats at a glance
| Export | Format | Streaming | Permission |
|---|---|---|---|
| Contacts bulk | CSV / JSON | Yes, 1000-row batches | Admin |
| Conversations bulk | JSON | Yes, 200-conv batches | Admin |
| Single contact | JSON | Loaded in one pass | Admin |
What exports do NOT include
- Attachments (images, files uploaded in conversations) — files live in Supabase Storage and are not in scope for a data-row export. Contact support if you need a bulk attachments dump.
- Knowledge base content — managed separately under Knowledge.
- Mini-app configurations, flow definitions, bot configurations — these are workspace config, not tenant data.
- Any record belonging to another tenant.
Troubleshooting
- "Unauthorized" or no buttons visible — the Data page and all export endpoints require the Admin or Owner role. Members cannot export.
- The download never starts — browsers occasionally block downloads from origins that don't match. Check your browser's download manager; if blocked, allow downloads from
hydra-help.comand retry. - The CSV opens with garbled accents in Excel — the file is UTF-8 encoded. In Excel, use Data → From Text/CSV and choose UTF-8 when importing instead of double-clicking to open.
