How to create a Flow with a condition based on a contact's custom attribute

Vitor

Vitor

Last updated on Oct 16, 2026

To create a Flow that automatically branches a contact's journey based on custom attributes — such as contracted plan, city, or interest — use the Papo Flow editor and insert a condition node configured to check “Contact attribute.” Based on the values stored in the CRM, the flow can send specific messages, add tags, or route the lead to the right team, all automatically and without manual intervention.

With this automation, each contact receives a unique treatment based on information your company already has. This increases communication relevance, improves customer experience, and optimizes the work of marketing, sales, and support teams.

Flow summary with attribute condition

Element Function Example
Flow (Flows/Chatbot) Visual sequence that automates interactions “Onboarding by plan” Flow
Custom attribute Extra field in the contact profile (text, number, date, or list) plan (Basic, Pro, Enterprise), city (SP, RJ, BH)
“Contact attribute” condition node Checks an attribute value to decide the path If plan equals “Pro,” follow the special offer branch
Actions per branch What happens in each condition result Send WhatsApp template, apply “VIP” tag, notify manager

How it works: step by step

  1. Prepare the custom attribute
    Before creating the Flow, the data you want to use must be available in the CRM. Go to Settings → Custom Attributes and create fields such as “Contracted Plan” (List type), “City” (Text), or “Last Purchase” (Date). Then populate the contact values — manually, by import, or via integrations (API, webhooks).

  2. Create the Flow with the right trigger
    In Papo's side menu, click Flows / Chatbot and add a new flow. Replace the default trigger with the event that will start the journey, such as “Contact created,” “Message received,” “Tag added,” or another available option.

  3. Insert the condition node
    After the trigger, click the “+” icon and choose the condition option. Inside the condition, select the “Contact attribute” type. In the configuration, choose the desired custom attribute and define the rule: “equals,” “contains,” “is greater than,” depending on the field type. You can combine more than one rule using “AND” and “OR” operators.

  4. Create the journey branches
    For each value or range of values you want to treat differently, configure a branch. Practical example:

    • If plan is “Pro” → path A (premium customer)
    • If plan is “Basic” → path B (standard customer)
    • If the attribute is empty → fallback path to request a profile update
  5. Add actions to each branch
    In each branch, insert the appropriate action nodes: Send Message (WhatsApp, email), Add tag, Create Kanban task, Send internal notification, etc. Personalize the messages using contact variables, including the attribute itself (e.g., {{contact.city}}).

  6. Activate the Flow
    Review the entire logic, save, and change the status to Active. The flow will process all contacts that meet the trigger, branching instantly based on the actual values of the CRM attributes.

Whenever a branch includes a pause longer than WhatsApp's 24-hour window, the next message must be a Message Template (HSM) approved by Meta, which Papo lets you select directly in the send node.

Who is this strategy for?

  • SaaS or subscription companies that want different onboardings according to the contracted plan.
  • E-commerce businesses that segment offers by city, interest, or customer spending range.
  • Educational institutions that personalize communications by course or student campus.
  • B2B sales teams that prioritize leads from a certain region or with a certain job title in the CRM.
  • Any operation that already collects structured data and wants to turn it into automatic, relevant communication.

Frequently asked questions

Do I need to create the attribute before building the Flow?

Yes. The custom attribute must exist in Settings → Custom Attributes before it can be used as a condition. Contacts must also have the field filled in — manually, by import, or via integrations.

What comparison types can I use?

They depend on the attribute type. For Text, you can use “equals” or “contains.” For Number, “equals,” “greater than,” “less than.” For Date, “is before,” “is after.” List fields let you directly select one of the predefined options.

How do I personalize the message in the branch with the attribute value?

Inside any action node, use the contact variable corresponding to the attribute (e.g., {{contact.plan}}) in the text field. The system automatically replaces it with each lead's actual value.

What if the contact doesn't have the attribute filled in?

You can configure a specific branch for “empty value” in the condition. This way, those contacts follow an alternative route, such as receiving a message asking them to complete their profile or being routed to an agent.

Can I combine multiple attributes in the same condition?

Yes. The condition node supports multiple rules with the logical operators “AND” and “OR,” allowing segmentations such as “city contains São Paulo” AND “plan equals Pro.”

Does it work with data updated automatically via integration?

Yes. Attributes populated by API, webhook, or any Papo module are reflected in real time in the Flow. When the trigger is fired, the condition will use the contact's most recent value.

Read also


Start creating Flows with custom attributes →

The first Papo user is free and doesn't require a credit card — ideal for testing attribute conditions in your Flows before scaling.