Skip to content
MCP Servers
Skill

/data-cleanup

Check your CRM board's health and clean up messy data — run a scored health check (missing fields, stalled deals, abandoned columns, automation gaps) as a report, or fix data in bulk (phone formats, missing emails, country codes, unowned deals, stale dates). Use when someone

BOOST
From plugin
mcp
4309 skills1 command1 MCP
Install
$ npx -y skills add mondaycom/mcp --skill data-cleanup --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/data-cleanup

Context preview

The summary Claude sees to decide when to auto-load this skill.

Check your CRM board's health and clean up messy data — run a scored health check (missing fields, stalled deals, abandoned columns, automation gaps) as a report, or fix data in bulk (phone formats, missing emails, country codes, unowned deals, stale dates). Use when someone

SKILL.md

data-cleanup.SKILL.md
name: data-cleanup
description: Check your CRM board's health and clean up messy data — run a scored health check (missing fields, stalled deals, abandoned columns, automation gaps) as a report, or fix data in bulk (phone formats, missing emails, country codes, unowned deals, stale dates). Use when someone says "clean my CRM", "fix my data", "normalize my phone numbers", "fill in missing owners", "run a board health check", "audit my CRM board", "what's broken in my CRM", "what are the data gaps on my board", "board is messy", or "clean up before my kickoff call".
argument-hint: "[optional: board name or ID]"
user-invocable: true
allowed-tools: [Read, AskUserQuestion, mcp__monday__get_user_context, mcp__monday__list_workspaces, mcp__monday__search, mcp__monday__get_board_info, mcp__monday__get_column_type_info, mcp__monday__get_board_items_page, mcp__monday__board_insights, mcp__monday__get_board_activity, mcp__monday__change_item_column_values, mcp__monday__create_doc, mcp__monday__create_update, mcp__monday__create_notification, mcp__monday__list_users_and_teams, mcp__monday__all_monday_api]

Data Cleanup

Two jobs in one skill for the recurring "my CRM is messy" pain (Sidekick's #1 negative-sentiment JTBD):

  • **Health check (report-only):** a scored structural audit of a CRM board — missing-data patterns, stalled groups, abandoned columns, automation gaps, and a 0–100 data-quality score — published as a diagnosis doc. No writes.
  • **Cleanup (fix):** audit the board for data gaps, let the user pick which to fix, then run a bounded, idempotent write loop.

Flow (report): **Trigger → Gather → Score (5 strands) → Publish diagnosis doc → offer to fix**. Flow (fix): **Trigger → Audit → User picks gaps → Plan writes → Execute (bounded, idempotent) → Summary**.

Input

  • Optional: board name/ID via argument.
  • Optional: pre-declared mode (Default / Silent / Proactive).

Output

  • **α (default):** Bounded write loop on the chosen board. Normalizes phone/country/email; can also batch-set owner / source / last-touch / stage when the user explicitly picks those gap types and signals are clean. A `Hygiene fix — <Mon DD>` doc lists every change with `Generated by Claude` footer + `<!-- claude-skill-id: data-cleanup -->`.
  • **β (opt-in):** A "before/after" snapshot doc (preserves the prior state for ~30 days, in case a pass over-corrected). User is asked at Step 4.
  • **Proactive extension:** Out of scope — data-cleanup is *already* a write skill; proactive doesn't change its behavior. Default mode + batched confirm is the only write surface.

Knowledge

  • Gap taxonomy + audit rules (§ Step 3).
  • Normalization recipes (§ Step 5).
  • Shared artifact conventions (§ Shared patterns).

Tools (MCP)

  • `get_user_context`, `list_workspaces`, `search`, `get_board_info`, `get_column_type_info`, `get_board_items_page`, `board_insights` — Gather.
  • `list_users_and_teams` — enumerate users for bulk-assign owner step.
  • `change_item_column_values` — the core write. Loop with bounded concurrency.
  • `create_doc` / `create_update` — publish summary + before/after snapshot.
  • `all_monday_api` — escape hatch for column types not exposed by `change_item_column_values`. For `country` columns, use: `change_multiple_column_values` with `column_values: {"<country_col_id>": {"countryCode": "<ISO2>", "countryName": "<name>"}}`. Do not freeform the mutation type — only this shape is supported for country columns.

Cross-skill handoffs

  • **From daily-briefing:** if the daily brief flags >N hygiene issues or >30% unowned deals, suggest this skill (health check first, then fix).
  • **From forecast / workspace-builder:** if forecast-critical fields are missing or a freshly built board needs a fill-rate audit, route here.
  • **To daily-briefing / forecast:** clean data feeds them — point the user there once cleanup is done.

---

Step 0: Connector check

**Goal:** Fail fast if the user has no monday MCP connection — no partial writes, no guessing.

1. Try `mcp__monday__get_user_context`. 2. If the tool is missing, returns an auth-style error, or the user has no accessible workspace: print *"I don't see the monday connector active on this session. Install it from https://monday.com/mcp, then run this skill again."* and stop. 3. If it works, cache `user.id` + `user.name` for artifact metadata.

---

Step 1: Detect mode

  • **Default** — confirm before each batch (not each item) of writes.
  • **Silent** — skip batch confirms; still publishes the summary doc.
  • **Proactive** — same as Default for this skill (proactive doesn't make sense — every write is intentional). If user pre-declared Proactive, treat it as Default and note in chat.

Hard safety rail regardless of mode: **no deletes, no amount-column writes, no cross-workspace moves, no normalization on columns the user didn't pick**. Stage / owner / source / last-touch edits ARE allowed when the user explicitly selected that gap type at Step 4 — data-cleanup is the canonical place for board-wide column rewrites that other skills point users at.

**Also detect report vs. fix intent:**

  • **Report** ("health check", "audit", "what's broken", "what are the data gaps", "board is messy") → run **Step 2.5: Health-check report** (report-only), publish the scored diagnosis doc, then offer to proceed to fixes.
  • **Fix** ("clean", "fix", "normalize", "fill in") → skip to Step 3.
  • Ambiguous → ask once: *"Want a read-only health check (scored report, no changes) or to clean up the data now?"*

---

Step 2: Resolve board

**Goal:** Land on a single `boardId` before reading any data.

1. If the user passed a board via argument: numeric → use as `boardId` directly; string → `mcp__monday__search` with `searchType: "BOARD"`. One match → use it; multiple → `AskUserQuestion`. 2. If no argument: `get_user_context` → scan `relevantBoards` + `favorites` for names matching `deals|opportunities|pipeline|leads|sales|contacts|accounts`. One candidate → use it; multiple → `AskUserQu

Read more
Ships withmcp

Enable AI agents to operate reliably within real workflows. This MCP is monday.com's open framework for connecting agents into your work OS - giving them secure access to structured data, tools to take action, and the context needed to make smart decisions.

Get the whole plugin

Other skills on mcp.

automate-crm
Skill

automate-crm

Set up, view, and manage automations on monday CRM boards using natural language — no block IDs or technical knowledge required.…

@mondaycom@mondaycomInstall Skill
forecast
Skill

forecast

Build a forecast dashboard in monday — committed, best-case, and pipeline views by close month, rendered as real dashboard…

@mondaycom@mondaycomInstall Skill