🇪🇸 Español 🇬🇧 English 🇧🇷 Português

Trigger: Contact Created

Automate welcome actions and tagging every time a new contact is created.

Jul 11, 2026

What it is

Fires whenever a new contact is created in Omnifox — manually, via API, bulk import, an inbound message, or the webchat widget.

When to use it

  • Automatic welcome sequences for new leads.
  • Tag contacts and then check the real source from the contact record.
  • Sync the new contact to an external CRM via outbound webhook.

Requirements

  • At least one channel or form that generates contacts.
  • Workflows enabled.

Available variables

  • $contact.id, first_name, last_name, display_name, email, phone, company, job_title, city, country, tags
  • $contact.source — ⚠️ today it can only be user, system, api, or customer_reply; it never takes the values manual, import, whatsapp_incoming, or webchat_signup/contact_merge even though the filter offers them as options. In practice, a contact created from an inbound WhatsApp message typically arrives as system (not whatsapp_incoming). The real, detailed source of the contact (WhatsApp, import, API, etc.) is stored on the contact record, but it doesn't flow through this variable.
  • $contact.source_channel_id — the channel that created it
  • $contact.created_at

Configuration (filters)

  • Source: the picker shows manual, API, bulk import, WhatsApp inbound message, webchat widget, contact merge — but since $contact.source can only ever be user/system/api/customer_reply, picking any of those other options means the filter will never match and the workflow won't fire.
  • Source channel type.

How to set it up

  1. Open Workflows → create a new workflow.
  2. Open the "Contacts" category in the trigger palette.
  3. Drag "Contact created" onto the canvas.
  4. If you use the Source filter, only pick user, system, api, or customer_reply (the other values in the picker don't match anything today).
  5. Connect actions: add a tag, send a welcome message, create a task.
  6. Save and activate the workflow.

Example

Someone messages your WhatsApp for the first time. The contact is created automatically (in practice $contact.source arrives as system, not whatsapp_incoming), and the workflow tags it "New lead" and replies with a welcome template using $contact.first_name, without filtering by Source.

Tips

Don't use the Source filter to distinguish "WhatsApp" from "bulk import" — that's not how it works today. If you need to separate those cases, filter on another available signal (e.g. source channel) or wait until this variable is fixed.

Troubleshooting

  • If the workflow never fires with a Source filter other than user/system/api/customer_reply: that's a known issue, those values are never produced today.
  • If the workflow doesn't run on bulk import, try removing the Source filter — the "import" value never gets generated.
Was this helpful?

Related articles