Skip to content

Conversation Example

A normalized conversation imported from Claude, demonstrating the PAM conversation schema. This corresponds to conv-001 in the Complete Memory Store example.

{
"schema": "portable-ai-memory-conversation",
"schema_version": "1.0",
"id": "conv-001",
"provider": {
"name": "claude",
"conversation_id": "28d595a3-5db0-492d-a49a-af74f13de505",
"account_id": "acc-uuid",
"export_format_version": "2025.01"
},
"title": "Initial setup and infrastructure discussion",
"temporal": {
"created_at": "2024-06-01T10:00:00Z",
"updated_at": "2024-06-01T16:00:00Z"
},
"participants": [
{
"role": "user",
"name": "User"
},
{
"role": "assistant",
"name": "Claude"
}
],
"messages": [
{
"id": "msg-001",
"provider_message_id": "uuid-from-claude",
"role": "user",
"content": {
"type": "text",
"text": "Preciso configurar a infraestrutura de rede do datacenter com isolamento VLAN e BGP."
},
"created_at": "2024-06-01T10:00:00Z",
"parent_id": null,
"children_ids": [
"msg-002"
],
"model": null,
"is_thought": false,
"token_count": 18,
"attachments": [],
"citations": [],
"tool_calls": [],
"raw_metadata": {}
},
{
"id": "msg-002",
"provider_message_id": "uuid-from-claude-2",
"role": "assistant",
"content": {
"type": "text",
"text": "Vamos definir a topologia de rede começando pelo isolamento de VLANs por tenant e a configuração BGP para upstream."
},
"created_at": "2024-06-01T10:01:00Z",
"parent_id": "msg-001",
"children_ids": [],
"model": "claude-3-opus-20240229",
"is_thought": false,
"token_count": 52,
"attachments": [],
"citations": [],
"tool_calls": [],
"raw_metadata": {}
}
],
"model": "claude-3-opus-20240229",
"system_instruction": null,
"is_archived": false,
"tags": [
"infrastructure",
"networking",
"datacenter"
],
"import_metadata": {
"importer": "pam-converter/1.0.0",
"importer_version": "claude-importer/2025.01",
"imported_at": "2026-02-15T22:00:00Z",
"source_file": "conversations.json",
"source_checksum": "sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
}
}

Identifies the source platform (claude), the original conversation ID as assigned by Claude (28d595a3-…), and the export format version (2025.01). The export_format_version is used by importers to select the correct parsing logic, since provider export formats may change over time.

Two participants with normalized roles: user and assistant. PAM normalizes provider-specific role values (Claude exports use human/assistant; ChatGPT uses user/assistant) into a consistent vocabulary.

Two messages demonstrating the thread structure:

  • msg-001 — User message with parent_id: null (root message) and children_ids: ["msg-002"] linking to the reply. The user message has model: null since it was not generated by a model.
  • msg-002 — Assistant reply with parent_id: "msg-001" pointing back to the user message, model: "claude-3-opus-20240229" identifying the model that generated it, and empty children_ids indicating it is a leaf node.

Claude conversations are linear (no branching), so parent_id/children_ids form a simple chain. For branching conversations (like ChatGPT), a message may have multiple children, each representing a different conversation fork. The PAM conversation schema supports both linear and DAG structures using the same fields.

Records the importer version (claude-importer/2025.01), source file (conversations.json), and a SHA-256 checksum of the source file for traceability. This allows re-import detection and auditing of which source export a conversation was derived from.