clickmax-list-segments
Use when the user wants to create, inspect, update, reload, or use manual lists and dynamic segments to group leads in Clickmax.
SKILL.mdskills/clickmax-list-segments/SKILL.md
GitHubWhen this applies
Use this skill when the user wants manual list operations or dynamic segment logic: create/update/delete lists, manage list membership, build or replace segment filters, preview segment size, reload segments, or inspect list/segment leads.
Not this skill:
- raw lead filtering without creating reusable grouping ->
clickmax-leads - tag-based cohort labeling ->
clickmax-tags
Key assumptions
- manual lists and dynamic segments are different grouping models
- segment updates also affect the synced backing list metadata and lead membership lifecycle
- upserting segment filters replaces the full tree
- segment filters are a FLAT ARRAY of
{id, order, operator, field, negation, parentId?, value*}items, not nested objects — nesting comes from each item'sparentIdpointing at its parent GROUP item's ownid; group items usefield: 'children'+operator: 'childrenAnd'/'childrenOr'. Preserve every existing item (byid) when replacing, not just the branch being edited. - reload queues recomputation; it is not just a cosmetic refresh
lists_createmakes an EMPTY list. To make a list from the contacts of opportunity cards useopportunities_bulk_create_list(seeclickmax-pipelines): it creates AND fills the list, and itsaffectedcounts contacts.suspectedFraud(operator: equals,valueBool) is a segment field: flags possible card testing (e-mail unrelated to the name AND suspicious document), derived at read time — it works in saved segments and combines with any other item;false= contacts not flagged.emailEngagement(block, JSON invalueString) filters by opened / clicked / received-and-did-not-open, in the last N days or on one campaign, or by opened at least N of the last M campaigns received (openedCount), counting people only (bots excluded). A saved segment with a day window is recalculated about once a day; a broadcast to it recalculates the audience when created or scheduled, other uses read the daily list — re-measure withsegments_preview_countright before using it. Shape in filter model.segments_categories_metricsalso returns origin × sub-origin and a visitor journey (channels, UTM sources, referrers, landing pages, devices) that counts only contacts linked to a tracked visitor — say so when reporting "how they arrived"; Temperature × Score health islead_indicators_metrics.- Read filter model before building non-trivial segment logic.
Thought process
- Decide whether the user needs one-off discovery or reusable grouping.
- Prefer manual lists for explicit curated membership.
- Prefer segments for filter-defined dynamic cohorts.
- Preview count before broad destructive changes when the filter tree is uncertain.
Execute guide
- Manual list lifecycle: use
mcp__plugin_clickmax_clickmax__lists_createto create the list, thenmcp__plugin_clickmax_clickmax__lists_update_leadsto add or remove explicit lead IDs, thenmcp__plugin_clickmax_clickmax__lists_get_leadsto verify the resulting membership. - List inspection and maintenance: use
mcp__plugin_clickmax_clickmax__lists_listto browse lists,mcp__plugin_clickmax_clickmax__lists_getto inspect one list, andmcp__plugin_clickmax_clickmax__lists_updatewhen the user wants to rename the list or change its emoji. - Dynamic segment lifecycle: use
mcp__plugin_clickmax_clickmax__segments_createto create the segment shell,mcp__plugin_clickmax_clickmax__segments_preview_countto estimate cohort size from a candidate filter tree, andmcp__plugin_clickmax_clickmax__segments_upsert_filtersto replace the segment's full filter definition. - For nested AND/OR or negation, model the filter tree from filter model, preview the count, then upsert the complete tree.
- Segment inspection and recomputation: use
mcp__plugin_clickmax_clickmax__segments_getfor the segment record,mcp__plugin_clickmax_clickmax__segments_get_filtersfor the current filter tree,mcp__plugin_clickmax_clickmax__segments_reloadwhen the user wants membership recomputed, andmcp__plugin_clickmax_clickmax__segments_get_leadsto inspect the resulting cohort. - Analytics follow-up: use
mcp__plugin_clickmax_clickmax__segments_timeseriesormcp__plugin_clickmax_clickmax__segments_categories_metricswhen the user wants trend, category or entry-channel breakdowns for a segment instead of only raw membership. - Order of operations: manual list = create or inspect list -> update explicit lead IDs -> verify visible leads. Dynamic segment = inspect current definition -> preview broad or uncertain logic -> replace the full filter tree -> reload when refreshed membership matters -> inspect resulting leads.
Report
- Start with
Assumption: manual listorAssumption: dynamic segmentwhen the user's goal could fit both models. - For lists: report the list name, membership change, current visible count, and show up to 10 notable leads followed by
+N morewhen needed. - For segments: report the filter logic, preview size, reload state, and current visible count; call out broad conditions that may over-select the cohort.
- Treat follow-up mutations as opt-in: suggest update, reload, or delete only after showing the current state or impact.
Warnings
- Segment filter replacement is full replacement, not append/patch.
- Deleting a segment cascades filters, synced list, and membership.
- Filter-order-only changes may not trigger meaningful recomputation.
Anti-patterns
- Using lists when the user clearly needs a self-updating segment.
- Replacing segment filters without previewing the impact when the logic is broad.
- Treating a synced segment-backed list like an arbitrary manual list.
Clickmax skill revision: 30bc1243c2ed