---
title: "11.21 Conditions: Contact Checks"
description: "All need a contact. On message and store triggers, put Add/Upsert Contact first, or the condition fails with \"…requires a contact context\". Output 1 =…"
url: "https://peikly.com/docs/conditions-contact-checks/"
updated: "2026-10-07"
category: Automation Workflows
tags:
  - Manual sync
---

# 11.21 Conditions: Contact Checks

All need a contact. On message and store triggers, put **Add/Upsert Contact** first, or the condition fails with "…requires a contact context". Output 1 = TRUE, output 2 = FALSE.

| Condition | TRUE when | Settings |
| --- | --- | --- |
| **Has Tag** | The contact has this tag (case-insensitive) | **Tag** |
| **Has Email** | The contact has a primary or secondary email | none |
| **Has WhatsApp** | The contact has a WhatsApp number or WhatsApp user ID | none |
| **Field Equals** | The chosen contact field equals the value exactly | **Field**, **Value**, **Ignore case** |
| **Field Contains** | The chosen contact field contains the value | **Field**, **Value**, **Ignore case** |
| **Created Within** | The contact was created within the last N hours | **Within (hours)**, default 24 |

**Typical uses:**

- **Has Tag** "customer" → TRUE: support reply; FALSE: sales reply.
- **Has Tag** "welcomed" → TRUE: end; FALSE: send the welcome, then **Add Tag** "welcomed". This sends the welcome only once per contact, even though Message Received fires on every message.
- **Has Email** before **Send Email**, so contacts without an address don't fail the run.
- **Created Within** 1 hour → only treat genuinely new contacts as new leads.

Fields available: Full Name, Company Name, Job Title, Department, Country, City, Language, Primary Email, Secondary Email, WhatsApp Number, Mobile Number, Alternate Phone, Owner User Id, Notes.
