Map external records to Message
Keep a stable, workspace-scoped mapping when synchronizing another system.
Store both identifiers
Keep the source system, source account, source record ID and Message resource ID in your connector’s durable mapping table. Include the Message workspace in the key so two companies cannot share a mapping accidentally.
Contact lookup is not an upsert
The Contacts API offers list/search, create and update. Search is not a unique external-ID lookup, and a create request is not an atomic upsert. Validate an exact match and serialize or deduplicate work before creating records.
Optional source context
You can store selected source references in a Contact’s customFields, but there is no automatic uniqueness constraint or external-ID search contract for arbitrary customFields. Keep your connector’s authoritative mapping separately.
Identity and private data
The shipped widget does not provide a public identify, signout or userHash login API. Browser continuity and a pre-chat email are not proof of account ownership. Use the connector’s supported customer-verification flow before disclosing private order information.