sdk.memories.batch_create() with many documents at once. Because this data is historical and processed in the background, long-range is the natural default.
Use bootstrap ingestion whenever you need to load a significant volume of existing data:
- Migrating from another system: a custom memory solution, a competing product, or an in-house knowledge base.
- Loading historical conversations: past chat logs, support tickets, or email threads.
- Seeding product documentation: docs, FAQs, help center articles, internal wikis.
- Backfilling customer data: CRM records, customer profiles, organizational context.
- Populating shared knowledge: company policies, SOPs, reference material at customer or client scope.
Bootstrap loads run at
BOOTSTRAP priority in the ingestion queue, which processes below real-time but above maintenance tasks. Your live agent keeps operating normally while historical data is processed. You do not need to finish bootstrapping before going live. The two paths can run simultaneously without competing for resources.The batch ingestion method
sdk.memories.batch_create() accepts multiple documents in a single call, reducing per-call overhead and enabling server-side throughput optimizations. Each document is a CreateMemoryRequest supporting the same fields as sdk.memories.create().
Each
CreateMemoryRequest supports the same fields as a single create call, including document_id for idempotency and document_created_at for temporal accuracy.
Key considerations
1
Preserve original timestamps
Always set
document_created_at to the document’s original creation time. Without it, Synap defaults to the ingestion time, which distorts temporal ordering. If a user later asks “What did we discuss last March?”, accurate timestamps are essential for correct retrieval.2
Use document IDs for idempotency
Assign a unique
document_id to every document, ideally derived from your source system’s primary key (e.g. migration_{source_id}). If a batch is interrupted, you can safely retry it: already-ingested documents are skipped, preventing duplicates and making it easy to trace memories back to their source.3
Use long-range mode for historical data
Bootstrap data benefits from thorough extraction.
long-range (the default for batch) performs deep entity resolution, relationship mapping, and preference detection. The extra processing time is fine for background loads.4
Validate and organize before loading
Clean your historical data first: drop empty conversations, strip PII you should not store, ensure timestamps are ISO 8601, and confirm each document carries the correct scope. Incorrect scoping is difficult to fix later: you would have to re-ingest. Start with a small test batch and verify scoping, timestamps, and entity resolution before the full load.
5
Monitor ingestion progress
For large loads, track progress with
sdk.memories.status():