Shown in the step panel as Add/Upsert Contact. Execution history may call it Add To Contacts.
What it does: makes sure the run has a contact. It takes the name, email and WhatsApp number that came with the trigger, then:
- If the run already has a contact, it does nothing and continues.
- Otherwise it looks for an existing contact with the same email or WhatsApp number and links it, filling in any missing name, email or number.
- If none exists, it creates a new contact.
For WhatsApp, it also attaches the existing conversation to the contact, so the chat history and notifications move to the contact.
Settings: none. It reads everything from the trigger.
When you MUST use it (as the first step):
- Message Received via WhatsApp, before any step that sends, tags, updates, assigns, scores or unsubscribes, and before any contact condition. A message from a number that is not yet a contact starts the run without a contact. Every one of those steps then fails with "…requires a contact context".
- Store and website event triggers (mixed), before contact steps.
It is harmless when the contact already exists, so put it first in every message-received workflow.
Not needed: Message Received via Email (only known contacts trigger it), External Integration Event Received (Peikly links the contact automatically), and the contact triggers.
Fails when: the trigger carried no name, email or WhatsApp number ("Add To Contacts requires customer identity data…").