Customize the Path Based on Contact Group

“Split by Group Membership” lets you route contacts based on the groups they belong to. It’s one of the simplest ways to personalize a journey, prevent duplicates (like restarting onboarding), and ensure contacts only see messages that match their status.

Route contacts by group (and prevent repeats)

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

  1. Decide which group(s) represent status (Completed / Eligible / Priority)
  2. Add a Split by Group Membership node at the right “gate” point
  3. Build the “already in group” branch (confirm + exit or next flow)
  4. Build the “not in group” branch (run the process, then add to group)
  5. Keep membership accurate (manual updates or flow actions)

This pattern keeps journeys personalized and avoids duplicated onboarding or repeated prompts.

Step-by-Step Process

1
Decide which group(s) will control the routing

Before adding the split, define the group logic you want. Common examples:

  • “Completed Registration” (avoid repeating onboarding)
  • “High Priority” (send faster escalation messages)
  • “Region: Dakar” vs “Region: Saint-Louis” (localize content)
  • “Eligible” vs “Not Eligible” (program rules)

[CAPTURE: Group list view showing an example group like “Completed Registration”.]

💡
Tip: Use group names that describe a status (“Completed Registration”) rather than a vague label (“Done”). It makes the flow readable months later.

2
Add a “Split by Group Membership” node
  1. Open your flow in the flow editor.
  2. Add a new split node and select Split by Group Membership.
  3. Choose the group you want to test (example: Completed Registration).
  4. Save the split setup.

[CAPTURE: Split by Group Membership configuration showing a group dropdown with “Completed Registration” selected.]

⚙️
Technical Detail: This split evaluates whether the active contact is currently a member of the selected group and routes them into the matching category.

3
Build the “in group” path (already completed)

For contacts who are already in the group:

  1. Route them to a message confirming their status (example: “You’ve already completed registration.”).
  2. Optionally provide next steps (example: “Reply MENU to see available options.”).
  3. End the flow or route them to an appropriate next flow.

[CAPTURE: Branch showing “In group” category connected to a Send Message node confirming completion.]

⚠️
Warning: If you let these contacts continue into the full registration logic, you can create duplicate records, repeated prompts, or inconsistent segmentation.

4
Build the “not in group” path (continue normally)

For contacts who are not members of the group:

  1. Continue the standard process (e.g., collect data, update contact fields, etc.).
  2. At the end (or at the right milestone), add an action to add the contact to the group.

[CAPTURE: “Not in group” branch continuing the flow and later adding the contact to “Completed Registration”.]

💡
Tip: A clean pattern is: Split by group → run flow → Add to group at completion → confirmation message.

5
Keep group membership updated (manual or via flows)

You can change group membership in two main ways:

  • Manually (from contacts/groups management)
  • Automatically in a flow (Add to Group / Remove from Group actions)

[CAPTURE: Flow node showing “Add Contact to Group” action.]

⚙️
Technical Detail: Groups are often used as “state flags” (e.g., completed, eligible, escalated). Keeping those flags accurate makes future routing reliable.

Common Issues & Quick Fixes

Contacts who already completed a flow keep restarting it

Problem: Users repeat onboarding/registration even though you want a single pass.

Fix:

  • Add a Split by Group Membership at the start (e.g., “Completed Registration”).
  • Ensure the contact is added to that group at the successful end of the flow.
  • Send a different message to “already completed” contacts and exit.
Contacts are routed wrong because the group isn’t up to date

Problem: The split logic is correct, but membership doesn’t reflect reality.

Fix:

  • Verify your flow actually adds/removes the contact from the group at the correct step.
  • Avoid placing “Add to group” too early (before completion).
  • If groups are managed manually, confirm operators are updating the right group.
My flow is getting messy with many groups

Problem: You have too many group-based splits and the canvas becomes hard to read.

Fix:

  • Use a single “status gate” group first (e.g., Completed / Not Completed).
  • Move rare paths into a child flow and return afterward.
  • Add sticky notes near splits to document the business logic.