> For the complete documentation index, see [llms.txt](https://help.gleantap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.gleantap.com/flows/enrolling-and-removing-people-from-a-flow.md).

# Enrolling & Removing People from a Flow

Flows put contacts through a multi-step, multi-channel journey. This page covers how contacts get in, how they get out, and — most importantly — how to figure out **why** for any specific person.

## How contacts enter a flow

There are five ways someone can enter a flow.

### 1. Segment-based enrollment (most common)

When you build a flow (Step 4 of *Creating a Flow*), you select a target audience segment. From that point:

* **Dynamic segment** — anyone who *newly* matches the segment criteria is auto-enrolled. This is what powers most "when someone becomes a lead" style journeys.
* **Static segment** — only the contacts in the list at the time of enrollment are added. New matches later are **not** enrolled.

If enrollment isn't happening for someone you'd expect, the first thing to check is whether the segment is dynamic and whether the contact actually matches it. Open the contact's profile and confirm segment membership.

### 2. Manual enrollment

You can add a contact to a flow one at a time.

**Step 1** — Open the contact's profile. Three ways to get there:

* Use the search bar at the top of the page to look them up by name, email, or phone.
* Navigate to **Audience → Contacts** and click the contact's name.
* Open the **Sales Pipeline** and click the contact's card.

**Step 2** — On the contact profile, click the **three-dot menu (⋮)** at the top right.

**Step 3** — Select **Enroll in Flow**.

**Step 4** — In the window that opens, check the flow(s) you want to enroll them in and click **Save**.

<figure><img src="https://312952119-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaFKpjLzPT7iDAWD0tQXo%2Fuploads%2FzDCRImtNPFsEeh1Y9vdB%2FScreenshot%202023-10-10%20at%209.30.37%20AM.png?alt=media&#x26;token=a2ccfed2-2749-49f8-90c3-00e2352fa128" alt="" width="401"><figcaption><p>The enrollment window lists any Active Flows the contact is already in and the list of Available Flows to add.</p></figcaption></figure>

### 3. Sync-triggered enrollment (from integrations)

When a contact syncs in from an integration and matches a dynamic segment used by an active flow, they're enrolled automatically. Timing depends on the source system:

| Integration   | Sync method                                    | Typical time to enrollment |
| ------------- | ---------------------------------------------- | -------------------------- |
| **Mindbody**  | Webhook (push) + hourly polling reconciliation | Within minutes             |
| **ClubReady** | Webhook (push) + hourly polling reconciliation | Within minutes             |
| **ABC**       | Polling only, every 30–60 minutes              | Up to 1 hour               |

If enrollment is taking longer than these windows, jump to [Troubleshooting](#troubleshooting-why-didnt-this-happen) below.

### 4. Form-triggered enrollment

Any Gleantap form can trigger a flow on submission. Set this up on the form itself under **Trigger Flows or Campaigns**. See [Trigger Flows or Campaigns](/forms/trigger-flows-or-campaigns.md).

### 5. API-triggered enrollment

Contacts can be enrolled programmatically via the Gleantap API. See the [API Reference](/settings/api.md) for endpoint details.

***

## How contacts leave a flow

There are three ways a contact can leave a flow. Two of them are logged as unenrollments; the third is completion.

### 1. Unenroll criteria (the main way)

When building a flow, you can define **unenroll criteria** on the flow settings. Unenroll criteria are structured as a list of **Criteria groups**:

* **Within a single Criteria group**, all rules must match (**AND**).
* **Across Criteria groups**, matching any one group unenrolls the contact (**OR**).

So a flow that has three unenroll criteria groups behaves like:

> Unenroll if `(Criteria 1 rule A AND rule B)` **OR** `(Criteria 2 rule C)` **OR** `(Criteria 3 rule D AND rule E)`

Gleantap evaluates unenroll criteria continuously. The moment any group matches, the contact is unenrolled and any pending steps are cancelled.

**Common patterns:**

* "Unenroll new-member nurture flow when they've booked their first class"
* "Unenroll lead-follow-up flow when they've become a paying member"
* "Unenroll re-engagement flow when they reply to any message"

### 2. Manual removal

You can remove someone from a flow the same way you added them.

Open the contact profile → three-dot menu (⋮) → **Enroll in Flow**. In the **Active Flows** section of the window, click the trash icon next to the flow you want to remove them from, then click **Save**.

### 3. Flow completion

Once a contact reaches the end of the flow, they exit naturally. This is **not** recorded as an unenrollment — it's a completion. Completions don't show a "reason" because there isn't one; they finished the journey.

***

## How to see why a specific contact was (or wasn't) enrolled or unenrolled

Every enrollment and unenrollment event is logged. There are two places to look, depending on whether you're investigating a specific person or a whole flow.

### Investigating one contact — Contact Profile → Activities

1. Open the contact profile.
2. Click the **Activities** tab.
3. Scroll through the timeline. Every flow enrollment and unenrollment is listed with a timestamp.
4. **Unenrollment events show the reason** — the specific criteria group that matched.

This is the fastest way to answer "why was this person unenrolled on April 25th?"

### Investigating a whole flow — Marketing → Flows

1. Navigate to **Marketing → Flows**.
2. Click into the flow you want to inspect.
3. Scroll to the list of people and their status.
4. Anyone who was unenrolled shows the specific reason inline.

Use this view when you want to spot patterns — e.g., "most people are being unenrolled by Criteria 2, is that expected?"

***

## Troubleshooting: "Why didn't this happen?"

### "They should be in this flow, but they're not"

Walk through this checklist:

1. **Is the flow published?** Draft flows don't enroll anyone.
2. **Is the target segment dynamic or static?** Static segments don't pick up new members after enrollment starts.
3. **Does the contact actually match the segment?** Open the contact and check their segment memberships. If they don't match the entry segment, they won't enroll.
4. **If sync-based, are you inside the expected window?** Mindbody / ClubReady: within minutes. ABC: up to 1 hour. Wait, then re-check.
5. **Are the unenroll criteria matching immediately?** If a contact matches an unenroll criteria group at the moment of entry, they'll unenroll instantly. Check the flow's unenroll criteria and cross-reference with the contact's attributes.

### "The flow fired later than expected"

* Check **Quiet Hours**. They're set on the **Configure Email** and **Configure SMS** pages (gear icon at the top → Configure Email or Configure SMS). Messages are held until quiet hours end. See [Configure Email](/getting-started/configure-email.md) and [Configure SMS](/getting-started/configure-sms.md).
* Check the flow's **Delay** steps — a 12-hour delay step will look like a "12-hour delay bug" from the outside.
* For ABC-sourced contacts, add 30–60 minutes to your expected time.

### "They got unenrolled and I don't know why"

* Open the contact profile → **Activities** tab. The unenroll reason is on the event.
* Or Marketing → Flows → the flow → scroll to the people list. Reason shows inline.

### "A contact left a flow, but I don't see an unenroll reason"

* **They may have completed the flow.** Completion is not an unenroll; there's no reason field. Check whether they reached the last step.
* **They may have been removed manually.** Check the Activities tab — manual removals are logged with the teammate's name.

### "The contact matches unenroll Criteria 1 rule A but not rule B — why weren't they unenrolled?"

Rules within a single Criteria group are AND'd together. If rule B doesn't match, the whole group doesn't match. Either move rule B into its own Criteria group (making the logic OR) or remove it if it wasn't intended.

***

## FAQ

For quick questions, see the [Flows FAQ](/flows/faqs.md).

Related pages:

* [Creating a Flow](/flows/creating-a-flow.md)
* [Editing Ongoing Flows](/flows/editing-ongoing-flows.md)
* [Flow Report](/flows/flow-report.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.gleantap.com/flows/enrolling-and-removing-people-from-a-flow.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
