Test the Existence of Data in the Contact Record

“Split by Contact Field” helps you decide what to do next based on what you already know about a contact. It’s especially useful for avoiding repeated questions (like asking for a name every time) while making sure missing fields get collected and stored when needed.

Route smarter using what you already know

If you just need the essentials, follow this quick path:

  1. Choose the contact field you want to check
  2. Add a Split by Contact Field node
  3. Use a “has data” rule (and keep Other as the empty path)
  4. Build two clean branches: present vs missing

Done: your flow can skip repeated questions, collect only what’s missing, and stay clean as it grows.

Step-by-Step Process

1
Identify the contact field you want to check

  1. Before building the split, decide:

    • Which field you need (example: Name, Email, Location, ID)
    • What counts as “complete” (any text, a valid email, a number range, etc.)

[CAPTURE: Flow editor showing a Split Action type dropdown with “Split by Contact Field” visible.]

💡
Tip: Use contact field checks at the start of a flow to personalize the conversation immediately (and reduce friction).

2
Add a “Split by Contact Field” node

  1. Open your flow in the flow editor.
  2. Add a new split node and select Split by Contact Field.
  3. In the field selector, choose the contact field you want to evaluate (example: Name).

[CAPTURE: Split by Contact Field configuration showing the field dropdown with “Name” selected.]

⚙️
Technical Detail: Contact field values are referenced internally as @contact.<field_name>. The split lets you choose the field from a dropdown instead of typing the variable manually.

3
Choose the rule that defines “has data”

  1. To check whether a field is filled, a common approach is:

    • Response rule: Has some text
  2. Set the response rule to Has some text.
  3. Name the “field is filled” category something clear, like Has Name.
  4. Keep Other as the “field is empty or invalid” path.

[CAPTURE: Split by Contact Field showing rule “Has some text”, category “Has Name”, and catch-all “Other”.]

💡
Tip: Name categories by meaning (“Has Name”, “Missing Email”) rather than by rule name. It makes the canvas easier to scan.

4
Build the two branches (field present vs missing)

  1. Branch A — Field is present (example: “Has Name”):

    1. Continue the flow without asking again.
    2. Optionally personalize the next message using the stored value.

    [CAPTURE: “Has Name” branch leading to a Send Message node using a contact variable.]

  2. Branch B — Field is missing (Other):

    1. Ask the contact for the missing value (Send Message).
    2. Add Wait for Response to collect it.
    3. Add Update Contact to store the answer in the contact record.
    4. Continue the flow.

    [CAPTURE: “Other” branch showing Ask → Wait for Response → Update Contact flow pattern.]

⚠️
Warning: If you collect the value but forget Update Contact, the field stays empty and the contact may be asked again next time.

Common Issues & Quick Fixes

The contact has a value, but they still go through “Other”

Problem: The field looks filled, but the split routes as if it’s empty.

Fix:

  • Confirm you selected the correct field in the dropdown (e.g., Name vs First Name).
  • If the field contains spaces or unexpected formatting, consider trimming/normalizing the value using an expression-based approach before splitting.
  • Check whether the value is stored in a different place (flow result vs contact field). If it’s in @results.*, save it first with Update Contact.
I keep asking the same questions in multiple flows

Problem: Contacts get repeatedly asked for the same info across journeys.

Fix:

  • Add a Split by Contact Field at the start of each flow for key profile data (name, location, ID).
  • Standardize field names across your workspace so all flows reuse the same fields.
  • Save the data once, then always reference it via contact fields.
My flow becomes messy after adding many field checks

Problem: The canvas gets cluttered by repeated split patterns.

Fix:

  • Create a short “profile completion” child flow and call it when data is missing.
  • Use sticky notes to document the purpose of each check.
  • Keep the “Has data” branch straight down and the “Missing data” branch off to the side (consistent layout).