Create a segment
Learn how to describe an audience in plain language and let maxinja build a saved, reusable contact filter for your space.
On this page
A segment turns a campaign idea into a reusable group of people: shoppers due for a repeat purchase, or new users who need help creating their first project. Describe who qualifies, let maxinja generate the condition, then inspect the matching contacts before saving.
Objects and events provide the evidence; the result is contacts from one schema. “Customers with two completed orders” returns each qualifying shopper, not their Order records. “Users with no projects of their own” must follow the creator's identity, not count every project in a shared account.
What a segment is
A segment is a named, AI-defined filter bound to one contact schema, such as Customer or Subscriber. It answers a single question: which contacts in this schema match this description?
Every segment stores three things:
- Your requirements: the plain-language prompt that describes the audience. You refine it over time.
- A condition description: a readable summary of exactly what the segment matches, written for you to review.
- The underlying logic: generated and held by maxclicks. You never see or write the raw code.
You work entirely with the requirements and the description. maxclicks keeps the generated logic behind them, so refining a segment means adjusting your words, not editing code. This is the same generated-logic pattern maxclicks uses across the app, described in meet maxinja, your AI assistant.
Because a segment is bound to one contact schema, it only ever matches contacts of that schema. If you message two different kinds of people, for example Customers and Subscribers, you build a segment for each schema.
Create a segment
You build a segment on the Segments page. There you describe the audience to maxinja in the prompt box, and maxinja turns your description into a saved filter.
- Open Segments and start a new one
Open Segments from the top navigation and create a new segment. Give it a clear name you will recognize later, such as Active trial users.
- Bind it to a contact schema
Choose the contact schema the segment filters, such as Customer. The segment matches only contacts of that schema, and this binding stays fixed for the life of the segment.
- Describe your audience
In the prompt box, which reads "Describe your segment" while it is empty, write who you want in plain language, for example "customers who signed up in the last 30 days and have not placed an order". Name the attributes and values that matter, then send the prompt.
- Review what maxinja generated
maxinja produces a readable condition description and matching preview. Check a known inclusion, a known exclusion and a missing-data case, then choose Create segment. A description alone does not establish that the returned people are correct.
Use actual fields, identifiers and time windows. For repeat purchase, specify the customer/order match keys, which order status counts and which timestamp defines the latest purchase. More fields alone do not make the audience correct. If you have not built out your schema, start with create your first contact schema and add attributes to a schema.
Review the condition and the live preview
Before you rely on a segment, confirm it matches the people you actually mean. maxclicks gives you two ways to check, both available before you save.
The condition description
The condition description is maxinja's plain-language account of what the segment matches. It is precise but readable, which is how the logic is verified without seeing any code. Read it as a sentence and ask whether it is exactly what you intended. If the description says "customers created in the last 30 days" but you meant "in the last 7 days", the prompt needs another pass.
The description is the thing you review and share. The description explains the intended condition. Check the actual matching count and contacts too: a readable summary alone does not prove the generated filter matches your intent.
The live matching count and contact table
Alongside the description, maxclicks shows a live count of how many contacts currently match, and a paginated table of the actual matching contacts. Use both as a reality check:
- A successful count of zero means no contacts currently match. Check the selected schema, supplied values, date window and relationship before changing the rule.
- Unable to count contacts is an unresolved check, not a zero audience.
- If the count is surprising, inspect a known inclusion and exclusion. A wrong match key can produce a plausible total.
- For a scheduled evaluated attribute, check Data through. Empty is not zero, and refreshing this preview does not rerun its background calculation.
A segment queries the available data when used. First-page requests refresh the count; subsequent pages reuse it. Search narrows the displayed matches, not the saved rule. Consent and sending checks still happen later, so this count is not a delivery promise.
Refine with follow-up prompts
You rarely get a segment perfect on the first prompt, and you do not have to. Segments are built to be refined.
When you send a follow-up prompt, maxinja treats it as a refinement of your existing requirements, not a replacement. It reads what the segment already means, applies your new instruction, and regenerates the condition and preview. Changes layer conversationally:
- "Also exclude anyone tagged
internal." - "Only include contacts who have opened an email in the last 90 days."
- "Change the window from 30 days to 14 days."
After each prompt, re-read the condition description and watch how the live count moves. A refinement that drops the count to zero, or barely changes it, is a signal that maxinja read your instruction differently than you meant. Rephrase and try again. Because every generation is an AI action, each refinement uses credits.
Build on existing segments
A segment can reference another segment, so audiences compose instead of repeating the same conditions.
For example, if you already have a High-value customers segment, you can describe a new one as "high-value customers who are also in a trial", and maxinja can build on the existing segment rather than re-deriving what "high-value" means. Keep your building-block segments well named and clearly described, since their descriptions are what make them reusable.
There is one consequence to know: once a segment is referenced by another, it is in use and cannot be deleted until the reference is removed. The same protection applies wherever a segment is used, which use segments in broadcasts and workflows covers in full.
Edit a segment
Open the saved segment to rename it or, where dependencies permit, generate a refined condition. A saved segment referenced by an attribute, another segment, a broadcast, workflow step or webhook cannot have its condition rewritten. Its name and description can still change. Integration-owned segments are managed by their integration.
- Open the segment
Open Segments and select the segment you want to change. Its condition description and live preview load.
- Refine or rename
Send another prompt to adjust the condition, or edit the segment's name. Once a condition exists the box invites you to refine the audience rather than describe it. maxinja regenerates the description and preview. Recheck the matches, then Apply to save the change; an unsubmitted instruction does not update the segment.
When a definition change is blocked by a dependency, create a new segment and move the intended consumers to it. A broadcast seals an audience for its send; editing a segment does not add recipients to that sealed audience. Review the consuming feature's execution rules before changing a shared audience.
One thing you cannot change is the contact schema a segment is bound to. If you need the same audience concept on a different schema, create a new segment on that schema instead.
Segments and other generated logic
Segments are the most visible example of maxclicks generating logic from a description, but they are not the only one. Broadcast audiences, workflow step conditions, evaluated attributes, and webhook filters all use the same flow: you describe what you want, maxinja generates the logic, and you review a readable description with a live preview. Learning to write a good segment prompt makes you better at all of them.
The difference is that a segment is a named, saved, reusable filter, while a broadcast's custom audience filter or a workflow condition belongs to that one entity alone. When an audience is worth reusing, save it as a segment. Use segments in broadcasts and workflows explains when to reach for each.
Frequently asked questions
Why does my segment count change without editing it?
The saved filter runs against available data when used. Source records and on-demand relationships can change. A scheduled measure reads its selected publication. Inspect the records and Data through, then distinguish a successful empty result from an unavailable or expired calculation.
Does saving a segment start a workflow?
No. Configure and publish the appropriate workflow trigger. A saved filter is an audience definition, not an independent listener for every possible change in membership.
Why is a contact in my segment but not receiving email?
Segment membership is separate from sending eligibility. Check email validity, channel consent, any selected topic, suppressions and the actual broadcast or workflow send evidence.
Did this article answer your question?