---
title: "3rd-Party Memory Integration"
---

> Documentation Index
> Fetch the complete documentation index at: https://truememory-docs.mvstg.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 3rd-Party Memory Integration

Use TIE's memory as a standalone service from any backend — even if your users never sign in to TIE and your app runs its own LLM. Two endpoints cover the whole loop: **write** facts into a user's knowledge graph, and **retrieve** a prompt-ready context block with the same recall quality as TIE's own chat agents.

## Before You Start

| What | Where to get it |
|------|----------------|
| **AUTH_SECRET** | Issued by the TIE team — see [Service accounts](/authentication/service-accounts/). |
| **Stable user IDs** | Any string identifier from your own system (database ID, CRM ID). TIE derives a deterministic user UUID from it — no TIE sign-up needed. |

Send your user's ID in the `X-External-User-Id` header on every call. The value is **case-sensitive** and must stay stable — see the [header rules](/authentication/service-accounts/#acting-for-users-with-external-ids).

## Step 1 — Write memories

Push facts into the user's knowledge graph whenever something worth remembering happens in your app — a profile update, an onboarding answer, a meaningful conversation turn.

```bash
curl -X POST https://your-tie-host/memories/graph \
  -H "Authorization: Bearer $AUTH_SECRET" \
  -H "X-External-User-Id: crm-user-8841" \
  -H "Content-Type: application/json" \
  -d '{
    "data": "User runs a bakery in Penang and wants to automate invoicing.",
    "type": "text",
    "agent_id": "chatbot",
    "source_description": "CRM profile sync"
  }'
```

Returns `202` immediately; entity extraction runs in the background. Pass `"wait": true` to block until ingestion completes (useful in tests). Extraction quality depends on how you phrase the data — write declarative statements, not questions. See [Formatting Data for Extraction](/memory/add-data/#formatting-data-for-extraction).

## Step 2 — Retrieve context for your LLM

Before each of your own LLM calls, fetch the user's memory context:

```bash
curl -X POST https://your-tie-host/memories/retrieve \
  -H "Authorization: Bearer $AUTH_SECRET" \
  -H "X-External-User-Id: crm-user-8841" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "how can I save time on paperwork?",
    "agent_id": "chatbot",
    "display_name": "Aisha"
  }'
```

This runs the **exact pipeline TIE uses for automatic memory injection** in its own chat endpoint — a cached session-context block plus a per-message graph search. The response includes two rendered prompt strings; append them to your system prompt as-is:

```python
context = response["context"]["prompt"]      # "## Known Entities ... ## Known Facts ..."
retrieval = response["retrieval"]["prompt"]  # "## Relevant memories for this message ..."
system_prompt = f"{your_instructions}\n\n{context}\n\n{retrieval}"
```

Full request/response reference: [Retrieve Memory Context](/memory/retrieval/#retrieve-memory-context). If you only want raw ranked facts to format yourself, use [Search Memory](/memory/retrieval/#search-memory) instead.

## Optional — warm the cache on app open

The context block is cached for 5 minutes per user. To make the first retrieve of a session fast, [warm the cache](/memory/retrieval/#warming-the-user-cache) when the user opens your app. Note the warm endpoint takes the **derived UUID** in its path, not your external ID — in practice it's simpler to let the first `retrieve` call warm the cache itself.

## Good to know

- **One ID, one graph — everywhere.** The same external ID always maps to the same user, across all apps sharing the TIE instance. Namespace app-local IDs (`myapp:42`) if they aren't globally meaningful.
- **Case-sensitivity.** `Alice` and `alice` are different users. Canonicalize before sending.
- **Writes are eventually consistent.** A `202` means accepted, not ingested — allow a few seconds before expecting new facts in retrieval, or use `"wait": true`.

Source: https://truememory-docs.mvstg.com/platform/memory-integration/index.mdx
