Skip to main content
Where to find Cohorts: In the left sidebar, click Patients > Cohorts.
Prerequisites: You need Patients in the system before creating cohorts.
A cohort is a saved group of patients defined by filters — location, provider, tags, and other patient attributes. Cohorts are reusable across multiple blasts, so you can define your audience once and send to it whenever you need to. Filters are organized into categories: demographics (age, gender, location), communication preferences (opted out of SMS/email, marketing opt-in status), engagement (notes, active chats, medication count), scheduling (appointment history, cancellations), billing (total spent, memberships, packages), and more.

Create a Cohort

1

Go to the Cohorts Page

Navigate to Patients > Cohorts.
2

Click New Cohort

Click the New Cohort button. Give it a name and optional description.
3

Add Filters

Use the filter builder to define which patients belong to this cohort. You can filter by location, provider, tags, marketing opt-in status, and many other patient attributes.
4

Save

Click Save. You can preview the matching patients before saving.

Build a Cohort from a Contact List

Instead of filters, you can build a cohort from a specific list of people you already have — for example, a list exported from another tool or collected at an event.
1

Start a new cohort

On the Cohorts page, click New Cohort. On the prompt screen, click paste a contact list.
2

Add the contacts

In the Create Custom Cohort window, paste emails or phone numbers (one per line) into the box, or drop a .csv/.txt file or click Upload .csv or .txt. The window shows how many contacts it detected as you go.
3

Name and save

Give the cohort a name, then save. Decoda matches the contacts to existing patients and builds the cohort from the ones it finds.
A custom-list cohort shows a Custom list · N contacts chip instead of filter pills. To change who’s in it, reopen the cohort and edit the pasted list.

Appointment Date Filters

Four filters in the Appointments category target patients by when their appointments fall:
  • Has Appointment Between — patients whose appointment is scheduled within a date range, past or future. Click Limit to specific services to count only certain services, and Limit to specific statuses to count only certain statuses. Use it to reach everyone coming in next week, or everyone booked for a particular service.
  • Has No Appointment Between and Has Appointment Between are opposites while you leave both of them alone: every patient falls into one or the other for a given window. Narrow either one to specific services or statuses and that stops being true — see Which appointments count.
  • Completed Appointment Between — patients who completed an appointment within a date range you set. Click Limit to specific services to limit it to certain services; otherwise it counts any appointment.
  • Appointment Created Between — patients whose appointment was booked within a date range, regardless of when the visit itself is. Use this to target people who booked during a promotion, or to reach everyone whose appointment was created since your last blast.
  • Has No Appointment Between — patients with no appointment in a date range. Pair it with either of the two filters above to find, for example, everyone who came in last spring but hasn’t booked this spring.
All four filters require a date range; narrowing to specific services is optional.

Which appointments count

Has Appointment Between and Has No Appointment Between count every appointment in the window except cancelled ones. A patient who booked and then cancelled does not count as having an appointment, so they fall into Has No Appointment Between instead. Unpaid online booking holds — where a patient picked a time online but never paid the booking fee — do count. To change that, click Limit to specific statuses on Has Appointment Between. It opens showing is not Cancelled, which is the rule it was already using. From there you can either name the statuses you want with is, or keep excluding statuses with is not — click the small is / is not button beside a status to switch it. Picking is Pending on its own is the quickest way to reach everyone who has an upcoming appointment but hasn’t confirmed it yet. Picking is not Cancelled, No Show reaches everyone still expected to come in. Once you narrow by status, the two filters stop covering everyone between them. Has No Appointment Between has no status setting — it always means “no appointment at all in the window, cancelled ones aside.” So a patient who no-showed in the window is left out of Has Appointment Between · is Pending and out of Has No Appointment Between as well. If you need everyone accounted for, leave the status setting alone.

Time Since Last Appointment

The Time Since Last Appointment filter (in the Appointments category) targets patients by how long it has been since their last visit. Enter a number and choose the unit — days, weeks, months, or years — so you can think in whatever cadence fits, for example “at least 4 months.” Click For specific services to measure the time against one or more services only. This is useful for recall: to reach Botox patients about 4 months after their last Botox, set the filter to 4 months and limit it to Botox. A patient who came in for a facial last week still counts as due, because only their Botox visits are considered. Leave the services empty to measure against any appointment. Because the filter is relative to today, it re-checks every time the cohort runs — so a recurring recall blast automatically picks up whoever has newly crossed the threshold. You can switch the unit at any time; the number rounds to a whole value of whichever unit you pick, so a threshold like 45 days reads as about 2 months.

Membership Filters

Three filters in the Billing category target patients by their membership plans. Each one lets you click Limit to specific memberships to narrow the results to certain plans; leave that empty to count any plan.
  • Membership Enrolled — patients who started a membership within a date range you set. What counts is the sign-up date, not where the membership stands today: someone who joined in March and cancelled in May still shows up for March. Use it to check how one month’s sign-ups are holding up.
  • Membership Anniversary — the same sign-up date, but matched on the month and day only, ignoring the year. Someone who joined on August 12 lands in an August anniversary cohort every year after. Use it for anniversary offers. It gives you the same choices as the Birthday filter: is between a fixed month/day range, is in the next or is in the past a rolling number of days, or is today, is this week, is this month, is next month.
  • Membership Status — patients whose membership is in a status you pick, such as Active, Cancelled, Frozen, or Delinquent. Narrowing it to a plan answers questions like “who cancelled the Gold plan,” which the status on its own can’t.
Neither date filter cares what the membership is doing now, so an anniversary cohort still includes people who have since cancelled. To reach only current members, add the Membership Status filter set to Active and limit both filters to the same plan. The filters work independently, so combining them finds patients who joined during one window and are in a given status now — not necessarily on the same membership.

Sending anniversary offers every month

Is this month, is this week, and the rolling-day options recalculate every time the cohort runs, so the anniversary cohort is never out of date. Save it once and pair it with a repeating sequence so the offer goes out on its own:
  • Is this month with a Monthly sequence — one send at the start of each month to everyone with an anniversary that month.
  • Is in the next 7 days with a Weekly sequence — a smaller, closer-to-the-date send.
Without the repeating schedule the cohort gets messaged once and next month’s anniversaries never hear from you.

Discount Filters

Three more filters in the Billing category find patients by the discounts attached to them:
  • Discount Type — the kind of discount, so you can separate, say, staff pricing from a seasonal promotion.
  • Discount Template — a specific saved discount, for when you want the patients on one named offer.
  • Has Discount For (Item) — patients whose discount applies to a particular service or product.
Use these to reach the people already on an offer — a reminder to book before a promotional rate ends, for example — or to leave them out of a campaign advertising a discount they’re already getting.

Birthday Filters

The Birthday filter (in the General category) targets patients by the month and day of their birthday, ignoring the year. It offers several ways to pick the window:
  • is between — a fixed month/day range you choose (for example, all June birthdays).
  • is in the next / is in the past — a rolling number of days before or after today.
  • is today, is this week, is this month, is next month — today’s date, or the current or upcoming calendar period.
The last four options recalculate every time the cohort runs, so a cohort set to is this month always covers the current month’s birthdays. Save it once and reuse it for a recurring monthly birthday blast — there’s no need to edit the dates each month.

Marketing Opt-In Filters

The SMS Marketing and Email Marketing opt-in filters each offer three choices:
  • Yes — patients who have explicitly opted in.
  • No — patients who have explicitly opted out.
  • Not Set — patients who have never made a choice either way.
Not Set is helpful when you want to reach people who haven’t been asked yet without also messaging the ones who have already declined.

Using AI to Build Filters

Instead of manually selecting filters, you can describe the audience you want in plain language. The AI filter builder translates your description into the appropriate filters. For example, you could type “patients at the downtown location who haven’t visited in 6 months” and the system will set the matching filters for you.

Editing a Cohort

Click any cohort in the list to open it. You can update the name, description, or filters, then click Save. Any future blasts that target this cohort will use the updated filters.

Exporting a Cohort

Download a cohort’s patients as a spreadsheet when you need the list outside Decoda — for a mail merge, an upload to an ad platform, or checking it against another system. There are two places to start an export. In the cohorts list, click the actions menu at the end of a cohort’s row and choose Export. Inside a cohort, click Export at the top of the page. Either way, a panel opens where you choose CSV or Excel and pick which columns to include — first and last name, date of birth, gender, email, phone, address, primary location, marketing opt-in status, and created date. Exporting from inside a cohort covers only the patients shown in the Patients list on that page, so any filters you applied there carry through to the file. Exporting from the actions menu always gives you the whole cohort. Exporting needs the Export Patients permission. Without it, Export still appears but cannot be clicked.

Deleting a Cohort

Open a cohort and click Delete. This does not affect any blasts that have already been sent to this cohort — it only removes the saved filter group.