> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nedzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Contact created trigger

> Start a workflow when a new contact is added to your workspace, whether created manually, via the API, synced from GoHighLevel, or from an inbound call.

Fires whenever a new contact is added to your workspace. This includes contacts created manually in the dashboard, imported via the API, synced from GoHighLevel, or created automatically by an incoming call or message.

## When it fires

The trigger fires once per new contact, immediately after the contact record is created. It does not fire when an existing contact is updated.

## Configuration

### Filters

Narrow down which new contacts should trigger the workflow. Click **Add Filter** to add conditions.

| Filter field | Operators                                                          | Description                                          |
| ------------ | ------------------------------------------------------------------ | ---------------------------------------------------- |
| Email        | equals, not equals, contains, not contains, is empty, is not empty | Match against the contact's email address            |
| Phone        | equals, not equals, contains, not contains, is empty, is not empty | Match against the contact's phone number             |
| Has tag      | equals, not equals                                                 | Check if the contact was created with a specific tag |
| DNC          | equals, not equals                                                 | Check if the contact is on the Do Not Call list      |

All filters use AND logic — every filter must match for the workflow to run.

**No filters:** If you don't add any filters, the workflow runs for every new contact.

### Examples

**Only contacts with an email:**

* Filter: Email → is not empty

**Only contacts with a US phone number:**

* Filter: Phone → starts with → `+1`

**Exclude DNC contacts:**

* Filter: DNC → not equals → `true`

## Data available

When this trigger fires, the following data is available as variables in your workflow:

| Variable           | Description                  | Example             |
| ------------------ | ---------------------------- | ------------------- |
| `{{contactId}}`    | The contact's unique ID      | `a1b2c3d4-e5f6-...` |
| `{{firstName}}`    | First name                   | `John`              |
| `{{lastName}}`     | Last name                    | `Doe`               |
| `{{phone}}`        | Phone number in E.164 format | `+14155551234`      |
| `{{email}}`        | Email address                | `john@example.com`  |
| `{{businessName}}` | Company name                 | `Acme Inc`          |

## Deduplication

Uses the contact ID as the dedup key. Default window: 1 minute. This means if the same contact is somehow created twice rapidly (e.g., race condition from two API calls), the workflow only runs once.

## Use case examples

### Welcome call to new leads

A new contact is added → wait 5 minutes for them to settle in → call with your sales agent.

1. **Trigger:** Contact created
2. **Action:** [Wait](/workflows/actions/wait) — 5 minutes
3. **Action:** [Voice call](/workflows/actions/voice-call) — Sales agent

### Sync new contacts to your CRM

Every new contact is pushed to your external CRM via webhook.

1. **Trigger:** Contact created
2. **Action:** [Send webhook](/workflows/actions/send-webhook) — POST to your CRM API
   ```json theme={null}
   {
     "name": "{{firstName}} {{lastName}}",
     "phone": "{{phone}}",
     "email": "{{email}}",
     "source": "nedzo"
   }
   ```

### Welcome SMS

Send a personalized text the moment a contact is created.

1. **Trigger:** Contact created
2. **Action:** [Send SMS](/workflows/actions/send-sms)
   * Message: *"Hi `{{firstName}}`, thanks for reaching out! We'll be in touch shortly."*
