Customer activity is not connecting
Fix missing, split, or incorrectly attributed customer timelines.
On this page
Use this guide when telemetry exists but is missing from a customer timeline, when one customer has multiple profiles, or when activity is attributed to the wrong person.
Ask your agent
"Find the customer
user_8842. Show me every identifier that resolves to that person, and read the timeline for the last hour."
| Job | MCP tool or action | CLI command |
|---|---|---|
| Find a customer by ID, or by a property stored in the clear (not by an email in the profile, which is stored redacted) | search_persons |
anectico persons search |
| Resolve any identifier to the one canonical person and its aliases | resolve_person |
anectico persons get |
| Read the customer's timeline | get_person_timeline |
anectico persons timeline |
| Preview or apply the separation of a wrongly linked alias | preview_identity_correction, correct_identity (read and write actions) |
anectico persons correct-identity |
The MCP results carry a link that opens the customer as a read-only
proof page. A person separates a wrongly linked alias in the Console, in
Privacy (/privacy); see Correct an identity link.
Confirm the exact ID
Compare the anectico.distinct_id on the raw signal with the ID passed to identify. IDs are
case-sensitive. Whitespace, prefixes, email changes, and environment-specific formatting create
different identities.
Use one immutable application ID everywhere.
Check when identity was established
Identity must be active before the span, error, log, event, replay, or LLM call begins. Establish it immediately after authentication and before starting the customer-facing operation.
Check server concurrency
Backends must use request-scoped identity. A process-wide identify call inside concurrent request
handlers can mix customers. Use framework middleware, Go context, or Python ContextVar scoping.
Check propagation
For a browser-to-backend or service-to-service path:
- the caller must inject W3C
traceparentandbaggage; - proxies and CORS must allow those headers;
- the receiving application must extract them; and
- identity baggage must be trusted only behind an authenticated boundary.
Inspect one request at each hop rather than assuming headers survived.
Check logout
Call reset when a session ends. If activity from the next user appears under the previous user,
reset was missing or ran after the new session began.
Check anonymous-to-known merge
The SDK must preserve its anonymous ID until the identify call so Anectico can join the earlier
activity. Clearing browser or application storage before identifying removes that link.
If both the anonymous ID and the ID you called identify with already belong to two different,
already-identified profiles, Anectico deliberately does not merge them: an alias that already
belongs to one known person is not treated as proof that the other known person is the same
individual, because the alias could have been reassigned. Both profiles stay separate by design.
There is no merge or alias endpoint to join them after the fact — use the same identified ID for
that person from the start to avoid the split. The reverse repair exists: an alias that is attached
to the wrong person can be separated, as described in
Correct an identity link.
After correcting instrumentation, run Verify your setup with a fresh test identity.