---
title: "11.11 Activity: Add/Upsert Contact"
description: Shown in the step panel as Add/Upsert Contact. Execution history may call it Add To Contacts.
url: "https://peikly.com/docs/activity-add-upsert-contact/"
updated: "2026-10-07"
category: Automation Workflows
tags:
  - Manual sync
---

# 11.11 Activity: Add/Upsert Contact

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:

1. If the run already has a contact, it does nothing and continues.
2. 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.
3. 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…").
