A Contact in SabNode is an identity-resolved customer record. Each contact has a stable internal ID and a set of identifiers — phone numbers (E.164), emails, Instagram username, WhatsApp WA-ID, Shopify customer ID, custom external IDs. When a new event arrives carrying any of these identifiers, the resolver looks up the contact graph. Exact match merges into the existing record. Fuzzy match (similar email at same phone, same name and address) surfaces in a merge queue for human approval. No match creates a new contact. This happens transparently before the event hits any flow or inbox.
Every contact carries a full timeline. Inbound and outbound messages across WhatsApp, Instagram, Web Chat, Email; flow executions the contact was in; broadcasts the contact received; orders, payments, refunds from connected commerce; CRM stage changes; tag adds and removes; opt-in events; agent notes. The timeline is searchable, filterable by channel or event type, exportable. An agent who picks up a conversation tomorrow has the full context — last support ticket, last purchase, last marketing nudge — without leaving the contact page.
Custom fields turn contacts into structured records, not just chat partners. Define fields with types (text, number, date, boolean, JSON, file reference) and validation rules. Populate them via flows ("after KYC, set `kyc_verified=true`"), via CSV import, via the REST API, or manually. Fields drive segments, gate flow branches, personalise templates, and surface in agent UIs. The CRM scales from "chat with a customer" to "operate a regulated financial product" without rebuilding the data model.
Bulk operations are pragmatic for the real-world mess. Multi-select up to 50,000 contacts at a time. Edit a field, add a tag, move them through a Kanban stage, trigger a flow, export to CSV, opt out of a channel. Merge two or twenty duplicates with field-by-field conflict resolution. Filter by anything — last message older than 90 days, segment X minus segment Y, opt-in status false on WhatsApp but true on email. The CRM is built to be operated, not just admired.