I IngestAI docs

Run your workspace

Conversation export

Bulk-export your workspace's conversations as CSV or JSON for retention, analytics, or compliance handover. Admin and Owner roles only.

How it works

  1. Admin POSTs to /app/conversation-exports with format (csv or json) and optional filters (agent_id, from, to).
  2. A ConversationExport row is inserted with status=pending and BuildConversationExportJob is queued.
  3. The job runs in the background, streaming conversations in chunks of 200 to a private-disk file at storage/app/private/exports/conversations/{uuid}.{format}.
  4. On completion, status=ready, the file size + row count are stamped, and expires_at is set 7 days out.
  5. The requesting admin downloads from /app/conversation-exports/{id}/download. The endpoint streams the file with the right MIME and rejects the request if the export is not ready, expired, or belongs to another workspace.

What's in the export

Each row carries the conversation's lifecycle metadata, the visitor's lead profile (email / phone / name / status), and every message in the conversation. CSV format flattens the transcript to first_user_message + last_assistant_message for spreadsheet use; JSON keeps the full message array per conversation.

Retention

Exports expire 7 days after they're created. The conversations:prune-exports Artisan command runs nightly at 02:15 UTC and deletes both the DB row and the file. Re-trigger the export if you need it again after expiry.

Tenant isolation

The build job only reads conversations whose agent_id belongs to the requesting workspace. Download requests verify workspace_id match before streaming. A leaked export id is harmless without an authed session in the right workspace.

Limits

The job has a 600-second hard timeout. Workspaces with very large conversation volume should narrow with date / agent filters; we'll lift the timeout if buyers ask. The export file is held on the application's local private disk; very large files may push the disk usage warning thresholds on shared hosts.