clickmax-activities
Use when the user asks about the team's Activities queue (follow-up tasks and booked appointments together), such as what is late, what is scheduled for a day or week, workload per attendant, closing
SKILL.mdskills/clickmax-activities/SKILL.md
GitHubWhen this applies
Use for the Activities screen's data: the ONE queue of follow-up tasks (a reminder with a deadline, hung on an opportunity card) plus booked appointments (a real slot with start and end). Typical asks: late items, a day/week/month view, workload of an attendant or pipeline, finding an item by contact e-mail or phone, closing a selection.
Not this skill:
- the raw event timeline of a contact or card (things that happened) ->
clickmax-leads-activity-analysis. Same word, different thing: that is an event log, this is work someone owes or booked - creating an appointment, or editing one appointment's details -> the
scheduled_calls_*operations (clickmax-pipelinescovers the card side); follow-up tasks and cadences ARE covered below - pipeline/kanban analytics ->
clickmax-pipelines
Key assumptions
mcp__plugin_clickmax_clickmax__activities_listitems are{ kind: task | appointment }with the FULL row of each side; ids of tasks and appointments live in different tables, so identify an item bykind+ id, never id alonetypesmixes both worlds:call,whatsapp,meeting,taskare TASK types;appointmentis a booked appointmentbuckets:ongoing= task open/scheduled or appointment scheduled/confirmed;done= task resolved/cancelled or appointment completed/cancelled/no_show- filters are ANDed.
prioritiesandwithoutDeadlineexist only on tasks: filling either EXCLUDES appointments from the result - date range = task DEADLINE and appointment START. Tasks without a deadline match no range;
withoutDeadline = trueadds them (and drops appointments) - LATE (
overdue = true) = still ongoing and its END has passed (task deadline + its duration; appointment end). An all-day task is late only after its day ends. Send the caller clock (overdueBefore= now,allDayStart= today at local midnight); without it the server uses its own now and all-day tasks due today can be miscounted searchmatches task title/description, appointment subject/notes, card title, pipeline, attendant AND the contact name, e-mail or phone (a pasted formatted phone works)- items of LOST or deleted opportunity cards are excluded; an appointment with no card is included
- a plain attendant only ever gets its OWN items (the filter is overridden); owner/admin see the team and can filter by
attendantIds(+includeUnassigned, ORed) mcp__plugin_clickmax_clickmax__activities_summary={ total, ongoing, done, overdue }for the same filters; its task overdue can be lower thantasks_summary.overdue(that one compares the bare deadline)mcp__plugin_clickmax_clickmax__activities_calendarneedsstartDate,endDate,timeZone(IANA) andperDay; it caps items PER DAY, returns only days with activity, andtotalis the real day count. Tasks without deadline never appear there- there is no bulk endpoint: a batch is one call per item
- automatic follow-up = a
whatsapptask withautomationand a deadline: the system sends it to the card's primary contact at the deadline. Sent → task resolved by itself; failed →automation.status = failed+ reason, task stays OPEN for a person.stopOnReply(default on) cancels pending automatic steps when the contact writes on any channel; the task stays as a manual one - 24h WhatsApp window is checked AT SEND TIME: free text (
message) only reaches a contact who wrote in the last 24h then; a step days ahead needs an APPROVED template (templateId+ one value perpositionParamslabel)
Thought process
- Counting or ranking question ->
activities_summary(numbers) beforeactivities_list(rows). - "What is on day/week X" ->
activities_calendarfor the grid;activities_listwith that range when the full rows of one day matter. - "Late" always means the rule above: use
overdue = true+ the clock, not a date range up to now. - Batch close/cancel is a write on many people's work: confirm the exact selection first.
Execute guide
- Headline:
mcp__plugin_clickmax_clickmax__activities_summarywith the filters (attendant, pipeline, range, types). Do not passoverdue = trueunless the whole selection should be only late items. - Rows:
mcp__plugin_clickmax_clickmax__activities_list(keepperPagesmall — appointment rows are heavy; default 10, max 2000; whenmetasays there are more pages and the answer needs the full set, consume every page). Ordered earliest due/start first, no-deadline last. - Calendar:
mcp__plugin_clickmax_clickmax__activities_calendarwith a range, the user's IANAtimeZone, andperDay(a month cell needs few, a single day can take up to 200). When a day'stotalexceeds its items, read that day withactivities_listand a one-day range. - Find an item by contact: put the e-mail, phone or name in
search; combine withtypesorbuckets = ongoingto narrow. - Close a batch, per item after the selection is confirmed: TASK done ->
mcp__plugin_clickmax_clickmax__tasks_updatewithstatus = resolved,outcome = true; TASK not done -> same withoutcome = falseand the reason inoutcomeNote; APPOINTMENT done ->mcp__plugin_clickmax_clickmax__scheduled_calls_updatewithstatus = completed; APPOINTMENT cancelled ->mcp__plugin_clickmax_clickmax__scheduled_calls_cancelwithreason(this also e-mails the participants and removes the calendar event). Run them a few at a time, keep going past a failure (an item outside the caller's scope answers not-found), and report succeeded vs failed. - Only
ongoingitems are worth closing;doneones already have an outcome. - Follow-up cadence ("WhatsApp now, call tomorrow, WhatsApp again in 3 days"): resolve the card (
clickmax-pipelines), the attendant (attendants_list) and, for automatic steps, a live number withmcp__plugin_clickmax_clickmax__channel_instances_list+ an approved template of THAT number withmcp__plugin_clickmax_clickmax__gupshup_templates_list(checkpositionParams). Then ONE call tomcp__plugin_clickmax_clickmax__tasks_create_cadence:steps1-20,waitMinutesCUMULATIVE fromstartAt(gap since the previous step, not an absolute date), automatic steps needtype = whatsapp. All-or-nothing: an invalid step or an unreachable number/template saves nothing. Confirm steps, texts and timing with the user before creating — automatic steps message the contact later with nobody clicking. - Cancel ONE automatic step:
mcp__plugin_clickmax_clickmax__tasks_updatewithautomation = null(task stays as manual). Alreadysent/runningcannot be changed (409). A single automatic task:mcp__plugin_clickmax_clickmax__tasks_create_cadencewith ONE step —tasks_create,tasks_updateand the batch tool never arm an automatic send, so every automatic WhatsApp goes through the user's approval. - Preferred order: summary -> list/calendar -> (confirm) -> per-item close -> re-read summary.
Report
- Open with the scope assumed: whose items (own vs team, attendant), range and timezone, types.
- Lead with the numbers (
ongoing,overdue,done), then the worst offenders: oldest late items first, with contact, attendant, pipeline and how late. - Group by day for calendar answers; state when a day is truncated (
+N more). - For a batch close: selection size split by kind (tasks vs appointments), then succeeded/failed, then any item left open and why.
- For a cadence: list the steps with their computed date/time, channel and whether each is automatic or a manual reminder; then the
cadenceId. - Follow-up writes are opt-in only.
Warnings
- Cancelling an appointment notifies its participants; closing a task as not done records the reason on the card. Neither is silent.
- A failed automatic step does not retry; it is a visible open task with the reason. Free-text automatic steps far in the future are the usual cause (outside the 24h window).
- Mixed selections mean different things per kind: "done" is a positive outcome for a task and status completed for an appointment; say so before acting.
mcp__plugin_clickmax_clickmax__activities_listdoes not include items whose opportunity is lost or deleted; if a count looks short, that is a likely reason.- A plain-attendant session cannot see or close colleagues' items.
Anti-patterns
- Using a date range "up to now" instead of
overdue = trueto find late items. - Answering a headline question by paging rows.
- Closing a batch without confirming the selection, or stopping at the first failed item.
- Treating the contact event timeline as this queue (or the reverse).
- Reading a truncated calendar day as the full day.
Clickmax skill revision: 30bc1243c2ed