From monday CRM
Builds a Salesforce-style forecast dashboard natively in monday.com using pipeline data grouped by close month and stage, rendered as monday dashboard widgets.
How this skill is triggered — by the user, by Claude, or both
Slash command
/monday-crm:forecast-dashboard [optional: board name or ID + period, e.g. 'Deals Q2' or '10046221612'][optional: board name or ID + period, e.g. 'Deals Q2' or '10046221612']This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Builds a native monday dashboard that renders the pipeline as a forecast — committed / best-case / pipeline / closed-won, grouped by stage × close month. Replaces the "export to CSV and pivot it" pattern that sales ops leaders do manually every Monday.
Builds a native monday dashboard that renders the pipeline as a forecast — committed / best-case / pipeline / closed-won, grouped by stage × close month. Replaces the "export to CSV and pivot it" pattern that sales ops leaders do manually every Monday.
Flow: Trigger → Gather → Synthesize → Publish (α, default) → Share (β, opt-in) → Proactive extension (opt-in, hygiene fix).
create_dashboard with widgets per bucket + URL.all_monday_api + create_notification.change_item_column_values (with batched user confirm) to set a placeholder OR post a prompt update asking the owner to fill it. Missing-amount items are flagged in the dashboard description and a hygiene update is posted on the item, but the amount column itself is never written (forecast integrity rail).get_user_context, list_workspaces, search — board resolution.get_board_info, get_column_type_info — schema + column types (stage/amount/close-date/forecast-category).get_board_items_page — paginated pull.board_insights — aggregate fallback.create_dashboard, create_widget — α publish.create_doc — fallback for non-admins (see Error handling).create_notification, list_users_and_teams — β share.create_column — add a forecast-category column only if required to render the dashboard.change_item_column_values — proactive hygiene fix.all_monday_api — escape hatch for dashboard permissions + doc updates./monday-crm:board-diagnosis before publishing.Goal: Fail fast if monday connector is missing.
Call mcp__monday__get_user_context. On success, continue. On connection error / tool not found, print the standard install prompt and stop.
Goal: Know write-confirmation policy AND lock the forecast window.
AskUserQuestion: "Which period? (a) this quarter, (b) next 90 days, (c) custom." Store period_start, period_end.Goal: Land on one (or user-confirmed multi) board. Same resolution path as morning-briefing Step 2. Use mcp__monday__get_user_context → list_workspaces → search("deal").
Goal: Resolve columns by type — stage (status), amount (numbers with $), close date (date with "close"/"expected"), forecast category (status with commit/best-case/pipeline labels, if present).
get_board_info(boardId).get_column_type_info for any ambiguous column.Forecast Category column (Commit / Best-case / Pipeline / Omit). OK?" Only create via create_column in Proactive mode or after explicit user approval.Goal: Paginated pull over the forecast window.
get_board_items_page with filters = close_date in [period_start, period_end]. Paginate via cursor up to 2K items (same cap as morning-briefing). Same 429 / rate-limit handling.
Goal: Group deals into forecast buckets × close month.
Buckets:
is_done: true (won label).Group by close month within the period. Compute Σ amount per (bucket × month).
TODO: see spec §5.2 — sub-buckets (stage detail within each bucket), user segmentation (owner/region filter), formatter for forecast widget types.
Goal: Produce a native monday dashboard with widgets per bucket, not a markdown brief.
TODO: see spec §5.2 Publish (α). Core call pattern:
create_dashboard(workspaceId, name: "Forecast — <period>", description: "Generated by Claude · <ISO timestamp> · <!-- claude-skill-id: forecast-dashboard -->").create_widget(dashboardId, type: "chart" | "number" | "table", data: <aggregated>).Forecast — <period> dashboard whose description contains <!-- claude-skill-id: forecast-dashboard -->. If found, update widgets via dashboard ID instead of duplicating.Non-admin users can't call create_dashboard. On permission error, ask:
I can't create dashboards on this workspace (your account lacks admin rights). Want me to: (a) publish a doc-version with the same forecast (summary tables), (b) stop so you can ask your admin to install the dashboard, or (c) try a different board?
Route to create_doc on option (a).
Goal: Grant dashboard viewer permission + notify.
TODO: see spec §5.2 Share (β):
list_users_and_teams → resolve sales leader.all_monday_api GraphQL mutation to grant viewer permission on the dashboard.create_notification({ userId, itemId: <dashboard ref>, text: "Forecast dashboard for <period>" }).Goal: Fix hygiene gaps on deals blocking forecast accuracy — WITHOUT editing stage or amount.
Hygiene gap = deal in a non-closed stage that's missing either close date or amount.
Core pattern:
change_item_column_values — set a placeholder (e.g., end-of-current-quarter) OR post a prompt update asking the owner to fill it. Stage edits also OK here when a clear signal exists (e.g., user said "move all of these to qualifying"), inside the batched-confirm plan.Forecast hygiene — <period> review doc (with <!-- claude-skill-id: forecast-dashboard --> in body) rather than 20 individual writes.Goal: Summary line with dashboard URL + counts.
Print: Published Forecast — <period>. <N> deals, <N> widgets, <N> hygiene gaps flagged.
Generated by Claude · <ISO timestamp> footer and the embedded <!-- claude-skill-id: forecast-dashboard --> HTML comment in dashboard descriptions and doc bodies.Same table as morning-briefing with additions:
create_dashboard → ask (a) doc version, (b) stop, (c) different board.create_widget partially fails → keep the dashboard, list failed widgets, let user retry.Generated by Claude · <ISO timestamp> + <!-- claude-skill-id: forecast-dashboard -->.npx claudepluginhub mondaycom/mcp --plugin monday-crmReads monday.com deals board, ranks deals by activity and stall age, and publishes a timestamped Morning Briefing update inside monday.com.
Generates weighted sales forecasts with best/likely/worst scenarios, commit/upside breakdowns, and gap-to-quota analysis from CRM pipeline CSVs or manual deal inputs.
Generates self-contained interactive HTML dashboards with KPI cards, charts, filters, and tables from queries, CSVs, or samples for reports and monitoring.