Creating and Saving Member Filters
Member filters let you target a specific group of members based on labels, data fields, activity, and more. Saved filters can be reused across routines, reports, and campaigns.
Steps
1. Navigate to the Members view
Go to the Members page in your workspace.
2. Open the filter editor
Above the member list you will see an input-styled row showing either a syntax-highlighted sentence that summarises the active filter conditions, or the placeholder text No conditions when no conditions have been set. Click anywhere in that row (or the Edit button on the right) to expand the inline query builder below it.
3. Build your filter conditions
With the editor expanded, add and configure conditions using the predicate builder. Each condition row lets you:
- Field: pick a field from the category palette (see the table below for available categories).
- Operator: choose how to match (e.g. "contains," "any of," "greater than," "is empty").
- Value: enter or select the value to match against (text input, multi-select dropdown, date picker, etc., depending on the field type).
All conditions are combined with AND logic — a member must match every condition to be included.
The sentence preview at the top of the editor updates live as you work. When a condition is incomplete (e.g. operator selected but no value yet), the row shows a red ring; the filter is not sent to the server until all conditions are valid.
Available field categories
| Category | Fields |
|---|---|
| Profile | Name, UUID, Date of birth, Age, Member since (created), Member type, Role, Terms accepted, Can log in, Labels |
| Contact | Email, Phone, Phone type |
| Notifications | SMS notifications enabled, Email notifications enabled, Voice notifications enabled |
| Communications | Latest SMS delivery failed, Has forwarded call, Needs response, Message content |
| Workflows | In workflow (see operators below) |
| Calendar | Calendar events (via the calendar relation) |
| Member Fields | Custom member field keys defined in your workspace |
| Forms | Fields from each Form (DataType) defined in your workspace |
Workflow filter operators
The In workflow field has several operators that differ in an important way — what counts as a member being "in" a workflow. This matters most when you use a filter to drive a routine that calls or messages members, because the routine re-evaluates the filter on every run:
| Operator | Includes members who… | Use it for |
|---|---|---|
| Entered any / Entered all | have ever been in the selected workflow(s) | reporting on participation |
| Not currently in | have no active assignment right now (a completed or canceled one does not exclude them) | recurring routines that should reach a member again after a prior run finished |
| Never entered | have never been in the workflow at all (any past attempt — completed or canceled — keeps them excluded) | one-shot campaigns where each member should be contacted exactly once |
| Date condition → not entered in last N days | have not entered the workflow within the last N days (a rolling window — eligible again after it passes) | rate-limited outreach, e.g. "at most one attempt per 24 hours" |
Important for one-shot calling/SMS campaigns: use Never entered, not Not currently in. A call or text workflow often finishes within minutes (e.g. on a busy or no-answer result), so with Not currently in the member becomes eligible again and the routine will contact them repeatedly on each run. Never entered keeps them excluded once they have entered.
4. Review the filtered list
The member list updates in real time as you add conditions. Check the member count and spot-check a few entries to confirm the filter captures the audience you intend. The sentence preview at the top of the editor shows a readable summary of your current conditions.
5. Save the filter
Click Save in the filter editor row. An inline name editor will appear.
6. Name the filter
Enter a descriptive name for the filter (e.g., "Enrolled — Diabetes Management" or "Active patients without recent activity"). Press Enter or click the checkmark to confirm.
The filter is now saved and available for use in routines and other features.
Converting a legacy rule-based filter
Older filters may use the classic rule builder (a separate panel with individual rule rows) instead of the inline query builder. When a legacy filter is active, the toolbar shows a Convert to new query format button (arrows icon).
Clicking it runs a dry-run conversion on the server and opens a preview of the translated query sentence in the inline editor. You can:
- Review the converted conditions before committing — the member list updates live so you can confirm the result matches your expectations.
- Save to permanently replace the legacy rules with the new query format.
- Cancel to discard the preview and return to the legacy rule editor — the original rules are not changed until you save.
The conversion is reversible at the preview stage; once saved, the filter is stored in the new format only.
Managing Saved Filters
- Load a saved filter: Click the Select Filter dropdown to see all saved filters. Click one to apply it.
- Pin a filter: Click the star icon next to a filter to pin it for quick access. Pinned filters appear at the top of the dropdown.
- Edit a filter: Load a saved filter, click Edit in the filter editor row, modify the conditions, and click Save to update it. Click Cancel to discard unsaved changes.
- Delete a filter: Click the trash icon next to a saved filter and confirm deletion.
Tips
- Filters resolve dynamically — the member list is evaluated at the time of use (e.g., when a routine fires), not when the filter is saved.
- Use the member count displayed in the filter results to sanity-check your criteria before using the filter in a campaign.
- Combine Labels with Latest SMS delivery failed to target members who match a program AND haven't received recent messages successfully.