Skip to main content
A contact is one customer of your workspace. It holds four kinds of data:

Where a contact comes from

There are two sources, and they write the same records. A customer writes to you. Kai makes a contact for the sender the first time a conversation arrives, and links the conversation to it. The contact holds the channel handle as an identity, and the name that the channel reports. You push a contact. The API creates the contact, or updates the contact that already holds one of the identities in the request. See Identity. A customer that writes to you after you push their phone number lands on the contact that you pushed. The record is one record.

How a write changes a contact

A write follows one rule:
  • a key that you do not send keeps its stored value;
  • a key set to null clears the value.
This is what makes a partial sync safe. A nightly job that syncs only the package attribute leaves the name, the note and the other attributes as they are. Attributes merge in the same way. Kai applies the keys in the request and leaves the other keys untouched:

The note

note is free text for teammates. It shows on the contact profile and beside the conversation in the inbox. Kai does not send the note to a customer, and does not give it to the model that writes replies. Answers come from the Brain, which your team reviews.

Delete

A delete removes the profile. The conversations of that customer stay in the inbox, and they lose their link to the profile.
A delete through the API does not erase message history. To erase raw conversations and the map that reverses their redactions, use Settings → Data controls in Kai.