Skip to main content
When you have existing chat history to import (Slack exports, support logs, past sessions), batch processing ingests it efficiently. This guide covers the data format, a sync importer that parallelizes across conversations, retries, and resumable checkpoints.

Prerequisites

Data format

Everything is a session of messages. Each message names its speaker with sender_id. A one-on-one conversation uses the user’s id plus "assistant"; a group conversation uses several ids. Same format either way.
timestamp must be unix milliseconds (>= 1_000_000_000_000). Seconds are the most common cause of a 422 on import. Multiply by 1000.

Convert your data

Map your source export into the session format. Sort chronologically, because EverOS uses timestamps for boundary detection.

Batch importer

The importer sends each conversation in chunks (the add endpoint takes up to 500 messages per call), retries transient failures, and flushes at the end so extraction starts promptly. Conversations are imported in parallel with a thread pool; chunks within a conversation go in order to preserve the timeline.
Writes are asynchronous server-side. Add returns as soon as messages are accepted, and extraction runs in the background. The flush at the end accelerates extraction for that session; it isn’t required for the data to be processed.

Resumable imports

For large jobs, checkpoint completed sessions so a re-run skips them.

Best practices

Always sort messages chronologically before importing. Boundary detection depends on it. Include real timestamps (in ms) so historical time-based recall works.
Keep chunks at or below the 500-message limit. 100–200 is a good balance of throughput and per-request size.
Parallelize across conversations with the thread pool; keep chunks within a conversation ordered. If you hit 429, lower max_workers. The retry helper already backs off.
Read one file at a time (as the importer does) rather than loading every export into memory at once.

Next steps

Python Integration

Client management, error handling, and concurrency patterns.

Multi-Party Conversations

Work with imported group chat memories.