Contact automations: triggers and actions on the record

Conversa Labs

Conversa Labs

Last updated on Aug 12, 2026

Overview

Contact automations let you react to changes on the contact record, not just on conversations. With them, the platform can tag a contact, log a note, write a custom attribute, create a new contact, or even open a new conversation β€” automatically, the moment the data changes.

Two groups of capabilities work together:

  • Contact triggers: contact created, contact updated, contact merged, and contact deleted. They evaluate the rule against the contact itself, with no open conversation required.
  • Contact and create actions: add/remove label, add note, set custom attribute, create contact, create conversation, and add private note β€” available in Automation rules, in Macros, and in the Flow Builder.

In Automation rules, the contact triggers created, updated, and merged are no longer limited to these actions: they now offer the whole catalog of contact-anchored actions β€” CRM, tasks, calendar, charges, subscriptions, follow-ups, contracts, engagement, and WhatsApp group actions β€” described in the "The full catalog on the contact" section below.

Prerequisites

  • Admin permission to create rules, macros, and flows with contact actions.
  • At least one contact on the record, so contact triggers have something to evaluate.
  • For the create conversation action, you must pick a destination inbox.
  • For conditions on a contact custom attribute, the attributes must be defined on the account (they appear automatically in the pickers).

Step by step

Example: when a contact is updated AND the custom attribute plan equals premium, add the premium-customer label.

  1. Under Settings, open the Automation area and create a new rule.
  2. For the trigger, choose Contact updated.
  3. Add the condition: select the custom attribute plan, the operator equal to, and the value premium. The possible values are loaded automatically in the picker β€” you don't type free text.
  4. For actions, choose Add contact label and select premium-customer.
  5. Save and activate the rule. Update a test contact to confirm the behavior.

To use the same actions elsewhere: in a Macro, add the contact action to the sequence the agent runs with one click; in the Flow Builder, use the Contact action node (or the matching action inside the action node) β€” see the Flow Builder native-actions article.

Settings & options

Actions available in all three places (Automations, Macros, and the Flow Builder):

Action Key What it does
Add contact label add_contact_label Tags the contact with one or more labels.
Remove contact label remove_contact_label Removes labels from the contact record.
Add contact note add_contact_note Logs an internal note on the contact.
Set contact attribute set_contact_custom_attribute Writes a value into a custom attribute.
Create contact create_contact Creates a contact with name, email, and phone (inbox optional).
Create conversation create_conversation Opens a conversation in an inbox, with optional status and first message.
Add private note add_private_note Writes a private note on the conversation.
  • Create contact: provide name, email, and phone, and optionally the inbox. Creation goes through the native contact builder, which deduplicates by identifier, email, or phone β€” if the contact already exists, it is reused instead of duplicated.
  • Create conversation: pick the inbox (required) and, if you want, the initial status (open, pending, or snoozed) and a first message. The conversation is created for the resolved contact.
  • Condition auto-load: in the condition pickers, the contact's custom attributes and their values are loaded automatically β€” no free-text boxes to guess.
  • Account webhooks: besides contact created and updated, you can subscribe to the contact.merged and contact.deleted events to notify external systems.

The full catalog on the contact

In Automation rules, beyond the actions in the table above, the contact triggers created, updated, and merged now offer every action that has the contact as its anchor:

  • CRM: create a deal already linked to the contact, move a stage, set value/priority, and assign an owner.
  • Tasks and calendar: create a task or an appointment tied to the contact.
  • Payments: send charges and subscriptions to the contact.
  • Follow-ups, contracts, and engagement: enroll the contact in sequences, send contracts, and run engagement actions.
  • WhatsApp groups: group actions where the default participant is the contact itself.
  • Webhook and mass flow run: notify external systems and launch published flows.

Conversation actions do not apply on these triggers β€” assign agent/team, resolve, send message/note/attachment, SLA, AI/Maestro, and WhatsApp template all need a conversation, which does not exist in this context. To chain them: use Create conversation in the contact rule itself and build the second step on a conversation trigger (the "Create conversation to chain" pattern).

Contact deleted is the exception: because the record no longer exists, that trigger offers only webhook and fully parameter-driven actions.

Use cases

  • Automatic segmentation: when a contact is updated and the plan attribute becomes premium, add the premium-customer label.
  • Record hygiene: when contacts are merged, log a note with the merge origin.
  • Onboarding: when a contact is created from a form, open a welcome conversation in a specific inbox.
  • Context for the team: write an attribute (for example, source = campaign-x) to guide routing and reports.

Tips, limits & best practices

  • Loop safety: contact actions honor loop protections β€” avoid rules that fire in a chain (an update that triggers another update). Keep each rule focused.
  • Create contact deduplicates: don't worry about duplicates β€” the same person (same email, phone, or identifier) is reused.
  • Create conversation needs an inbox: with no inbox selected, the action won't run.
  • Admins only: these actions require admin permission to be configured.
  • Variables in action fields: when an action field shows the { } button, it can receive a variable ({{ contact.name }}, {{ contact.custom_attribute.quote_value }}…) in flows, automations, and macros. The hint under the field tells you when the option is available.
  • Amounts, dates and links never guess: when a variable does not exist β€” or the text is not a valid amount, date, or link β€” a compatible action does not write an invented value such as 0 or an empty date. A deal silently worth 0 is worse than an action that did not run.
  • Document for the team what each contact automation does β€” it makes maintenance easier.

Troubleshooting

  • The contact rule didn't fire: confirm the trigger (created/updated/merged/deleted) and that all conditions are true; check the rule is active.
  • Create conversation didn't work: confirm an inbox was selected on the action.
  • Did I create a duplicate contact?: the action deduplicates by email/phone/identifier; if it still looks duplicated, check that the key data matches exactly.
  • The condition value doesn't appear: custom attributes and their values are loaded from account data β€” confirm the attribute exists and has recorded values.
  • The action did not store the amount/date I expected: confirm the variable exists for that contact (a custom attribute that was never filled resolves to empty). In a flow, the reason appears in the step output. In an automation or macro, the conversation activity records the number of declined actions, and the audit identifies the action and field to review.
  • The merged/deleted webhook didn't arrive: check the endpoint subscribes to contact.merged / contact.deleted and responds successfully.

See also