Activity Insights
Flow: Trigger → Connector check → Resolve board → Build query → Fetch insights → Synthesize.
Input
- Optional: argument describing the analysis (e.g., "rep activity this week", "call breakdown for the team").
- Optional: rep name, date range, or grouping preference.
Output
A synthesized summary with specific numbers and rep-level breakdowns. Never raw JSON.
Knowledge
get-activity-insightsreturns aggregated counts — not individual activity records. For activity history with content, useget-timeline-items.- Default time range is 7 days — no need to pass a date if the user asks about "recent" or "this week".
- groupBy accepts 1–2 fields:
["type"]for activity breakdown;["userId", "type"]for per-rep breakdown;["userId"]for rep totals only. board_idis required — always resolve it before calling the tool.- Present results as natural language insights — never dump the raw results array.
Tools (MCP)
get-activity-insights— aggregated activity stats (counts, duration) grouped by rep, type, or item.get_user_context— user identity and account info.search/get_board_info/get_board_items_page— resolve boards and items.list_users_and_teams— resolve rep names to user IDs for filtering.get-timeline-items— fallback for item-level activity detail (content, not aggregates).
When to use each groupBy
| User says | groupBy | Notes |
|---|---|---|
| "How many calls did each rep make?" | ["userId", "type"] |
Per-rep breakdown |
| "What's the activity breakdown this week?" | ["type"] |
Team totals by type |
| "Who's the most active rep?" | ["userId"] |
Rep totals only |
| "How many emails did John send?" | ["type"] |
+ userIds filter |
| "Activity on the Acme deal?" | ["type"] |
+ itemIds filter — or use get-timeline-items for content |
| "Compare rep performance last month" | ["userId", "type"] |
Set fromDate/toDate |
Step 0: Connector check
- Call
mcp__monday__get_user_context. On error → print connector install prompt, stop.
Step 1: Resolve board
get-activity-insights requires a board_id.
- If a board name is clear from the argument →
mcp__monday__searchormcp__monday__get_board_infoto resolve the ID. - If multiple CRM boards exist → ask: "Which board should I analyze — Deals, Contacts, or Leads?"
- No board context →
mcp__monday__search({ query: "deals" })to find the most likely CRM board. Still ambiguous → ask.
Step 2: Build query parameters
Parse the argument:
groupBy:
- Reps, "who", "by rep", "each rep" →
["userId", "type"] - "breakdown", "by type", "what kind" →
["type"] - Default →
["userId", "type"]
Date range:
- "this week" → 7-day default (no params needed)
- "last month" →
fromDate: 30 days ago - "today" →
fromDate: start of today - Explicit dates → parse and pass
fromDate/toDate
Filters:
- Rep name mentioned → resolve via
mcp__monday__list_users_and_teams, passuserIds - Item/deal name mentioned → resolve item ID, pass
itemIds(or redirect toget-timeline-itemsfor content)
aggregationType: default count. Use sum / avg for duration questions ("how long were the calls").
Step 3: Fetch and synthesize
- Call
mcp__monday__get-activity-insightswith resolved parameters. - If
total_results === 0: "No activities found on <board> in the last <window>. The team may not have logged activities yet, or try a wider date range." - Synthesize results:
- Lead with the headline: "Your team logged 92 activities this week."
- Break down by type: "42 emails, 28 calls, 15 meetings, and 7 notes."
- Call out top performers if grouped by rep: "Alex led with 34 activities, followed by Sam (28) and Jordan (19)."
- Flag low activity if relevant: "4 reps logged fewer than 5 activities this week."
Cross-skill handoffs
- To log-activity: insights show a rep with zero activity → "Want to log a recent call or meeting for them?"
- To run-sequence: low outreach volume → suggest enrolling contacts in a sequence.
- From daily-briefing: briefing surfaces activity gaps → this skill provides the full breakdown.
- To get-timeline-items: user asks for actual content (what was said, meeting notes) rather than counts.
Error handling reference
| Failure | Behavior |
|---|---|
| Connector missing | Stop; print install prompt. |
| Board not resolved | Ask user to specify the board. |
| Tool unavailable | "Activity insights aren't available on the connector for your account yet." |
| No results | Confirm date range; suggest widening. |
| Rep name not found | Ask for clarification or list available reps via list_users_and_teams. |
| Item-level content request | Redirect to get-timeline-items; get-activity-insights operates at board level. |
Completion criteria
- Connector check passed.
-
board_idresolved before calling the tool. - Query parameters derived from context — not hardcoded defaults.
- Results synthesized into natural language — no raw JSON.
- Zero-result case handled gracefully.
- Item-level content requests redirected to
get-timeline-items.