monday-automation
npx machina-cli add skill davepoon/buildwithclaude/monday-automation --openclawMonday.com Automation via Rube MCP
Automate Monday.com work management workflows including board creation, item management, column value updates, group organization, subitems, and update/comment threads through Composio's Monday toolkit.
Toolkit docs: composio.dev/toolkits/monday
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Monday.com connection via
RUBE_MANAGE_CONNECTIONSwith toolkitmonday - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitmonday - If connection is not ACTIVE, follow the returned auth link to complete Monday.com OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Boards
When to use: User wants to create a new board, list existing boards, or set up workspace structure.
Tool sequence:
MONDAY_GET_WORKSPACES- List available workspaces and resolve workspace ID [Prerequisite]MONDAY_LIST_BOARDS- List existing boards to check for duplicates [Optional]MONDAY_CREATE_BOARD- Create a new board with name, kind, and workspace [Required]MONDAY_CREATE_COLUMN- Add columns to the new board [Optional]MONDAY_CREATE_GROUP- Add groups to organize items [Optional]MONDAY_BOARDS- Retrieve detailed board metadata [Optional]
Key parameters:
board_name: Name for the new board (required)board_kind: "public", "private", or "share" (required)workspace_id: Numeric workspace ID; omit for default workspacefolder_id: Folder ID; must be withinworkspace_idif both providedtemplate_id: ID of accessible template to clone
Pitfalls:
board_kindis required and must be one of: "public", "private", "share"- If both
workspace_idandfolder_idare provided, the folder must exist within that workspace template_idmust reference a template the authenticated user can access- Board IDs are large integers; always use the exact value from API responses
2. Create and Manage Items
When to use: User wants to add tasks/items to a board, list existing items, or move items between groups.
Tool sequence:
MONDAY_LIST_BOARDS- Resolve board name to board ID [Prerequisite]MONDAY_LIST_GROUPS- List groups on the board to get group_id [Prerequisite]MONDAY_LIST_COLUMNS- Get column IDs and types for setting values [Prerequisite]MONDAY_CREATE_ITEM- Create a new item with name and column values [Required]MONDAY_LIST_BOARD_ITEMS- List all items on the board [Optional]MONDAY_MOVE_ITEM_TO_GROUP- Move an item to a different group [Optional]MONDAY_ITEMS_PAGE- Paginated item retrieval with filtering [Optional]
Key parameters:
board_id: Board ID (required, integer)item_name: Item name, max 256 characters (required)group_id: Group ID string to place the item in (optional)column_values: JSON object or string mapping column IDs to values
Pitfalls:
column_valuesmust use column IDs (not titles); get them fromMONDAY_LIST_COLUMNS- Column value formats vary by type: status uses
{"index": 0}or{"label": "Done"}, date uses{"date": "YYYY-MM-DD"}, people uses{"personsAndTeams": [{"id": 123, "kind": "person"}]} item_namehas a 256-character maximum- Subitem boards are NOT supported by
MONDAY_CREATE_ITEM; use GraphQL viaMONDAY_CREATE_OBJECT
3. Update Item Column Values
When to use: User wants to change status, date, text, or other column values on existing items.
Tool sequence:
MONDAY_LIST_COLUMNSorMONDAY_COLUMNS- Get column IDs and types [Prerequisite]MONDAY_LIST_BOARD_ITEMSorMONDAY_ITEMS_PAGE- Find the target item ID [Prerequisite]MONDAY_CHANGE_SIMPLE_COLUMN_VALUE- Update text, status, or dropdown with a string value [Required]MONDAY_UPDATE_ITEM- Update complex column types (timeline, people, date) with JSON [Required]
Key parameters for MONDAY_CHANGE_SIMPLE_COLUMN_VALUE:
board_id: Board ID (integer, required)item_id: Item ID (integer, required)column_id: Column ID string (required)value: Simple string value (e.g., "Done", "Working on it")create_labels_if_missing: true to auto-create status/dropdown labels (default true)
Key parameters for MONDAY_UPDATE_ITEM:
board_id: Board ID (integer, required)item_id: Item ID (integer, required)column_id: Column ID string (required)value: JSON object matching the column type schemacreate_labels_if_missing: false by default; set true for status/dropdown
Pitfalls:
- Use
MONDAY_CHANGE_SIMPLE_COLUMN_VALUEfor simple text/status/dropdown updates (string value) - Use
MONDAY_UPDATE_ITEMfor complex types like timeline, people, date (JSON value) - Column IDs are lowercase strings with underscores (e.g., "status_1", "date_2", "text"); get them from
MONDAY_LIST_COLUMNS - Status values can be set by label name ("Done") or index number ("1")
create_labels_if_missingdefaults differ: true for CHANGE_SIMPLE, false for UPDATE_ITEM
4. Work with Groups and Board Structure
When to use: User wants to organize items into groups, add columns, or inspect board structure.
Tool sequence:
MONDAY_LIST_BOARDS- Resolve board ID [Prerequisite]MONDAY_LIST_GROUPS- List all groups on a board [Required]MONDAY_CREATE_GROUP- Create a new group [Optional]MONDAY_LIST_COLUMNSorMONDAY_COLUMNS- Inspect column structure [Required]MONDAY_CREATE_COLUMN- Add a new column to the board [Optional]MONDAY_MOVE_ITEM_TO_GROUP- Reorganize items across groups [Optional]
Key parameters:
board_id: Board ID (required for all group/column operations)group_name: Name for new group (CREATE_GROUP)column_type: Must be a valid GraphQL enum token in snake_case (e.g., "status", "text", "long_text", "numbers", "date", "dropdown", "people")title: Column display titledefaults: JSON string for status/dropdown labels, e.g.,'{"labels": ["To Do", "In Progress", "Done"]}'
Pitfalls:
column_typemust be exact snake_case values; "person" is NOT valid, use "people"- Group IDs are strings (e.g., "topics", "new_group_12345"), not integers
MONDAY_COLUMNSaccepts an array ofboard_idsand returns column metadata including settingsMONDAY_LIST_COLUMNSis simpler and takes a singleboard_id
5. Manage Subitems and Updates
When to use: User wants to view subitems of a task or add comments/updates to items.
Tool sequence:
MONDAY_LIST_BOARD_ITEMS- Find parent item IDs [Prerequisite]MONDAY_LIST_SUBITEMS_BY_PARENT- Retrieve subitems with column values [Required]MONDAY_CREATE_UPDATE- Add a comment/update to an item [Optional]MONDAY_CREATE_OBJECT- Create subitems via GraphQL mutation [Optional]
Key parameters for MONDAY_LIST_SUBITEMS_BY_PARENT:
parent_item_ids: Array of parent item IDs (integer array, required)include_column_values: true to include column data (default true)include_parent_fields: true to include parent item info (default true)
Key parameters for MONDAY_CREATE_OBJECT (GraphQL):
query: Full GraphQL mutation stringvariables: Optional variables object
Pitfalls:
- Subitems can only be queried through their parent items
- To create subitems, use
MONDAY_CREATE_OBJECTwith acreate_subitemGraphQL mutation MONDAY_CREATE_UPDATEis for adding comments/updates to items (Monday's "updates" feature), not for modifying item valuesMONDAY_CREATE_OBJECTis a raw GraphQL endpoint; ensure correct mutation syntax
Common Patterns
ID Resolution
Always resolve display names to IDs before operations:
- Board name -> board_id:
MONDAY_LIST_BOARDSand match by name - Group name -> group_id:
MONDAY_LIST_GROUPSwithboard_id - Column title -> column_id:
MONDAY_LIST_COLUMNSwithboard_id - Workspace name -> workspace_id:
MONDAY_GET_WORKSPACESand match by name - Item name -> item_id:
MONDAY_LIST_BOARD_ITEMSorMONDAY_ITEMS_PAGE
Pagination
Monday.com uses cursor-based pagination for items:
MONDAY_ITEMS_PAGEreturns acursorin the response for the next page- Pass the
cursorto the next call;board_idandquery_paramsare ignored when cursor is provided - Cursors are cached for 60 minutes
- Maximum
limitis 500 per page MONDAY_LIST_BOARDSandMONDAY_GET_WORKSPACESuse page-based pagination withpageandlimit
Column Value Formatting
Different column types require different value formats:
- Status:
{"index": 0}or{"label": "Done"}or simple string "Done" - Date:
{"date": "YYYY-MM-DD"} - People:
{"personsAndTeams": [{"id": 123, "kind": "person"}]} - Text/Numbers: Plain string or number
- Timeline:
{"from": "YYYY-MM-DD", "to": "YYYY-MM-DD"}
Known Pitfalls
ID Formats
- Board IDs and item IDs are large integers (e.g., 1234567890)
- Group IDs are strings (e.g., "topics", "new_group_12345")
- Column IDs are short strings (e.g., "status_1", "date4", "text")
- Workspace IDs are integers
Rate Limits
- Monday.com GraphQL API has complexity-based rate limits
- Large boards with many columns increase query complexity
- Use
limitparameter to reduce items per request if hitting limits
Parameter Quirks
column_typefor CREATE_COLUMN must be exact snake_case enum values; "people" not "person"column_valuesin CREATE_ITEM accepts both JSON string and object formatsMONDAY_CHANGE_SIMPLE_COLUMN_VALUEauto-creates missing labels by default;MONDAY_UPDATE_ITEMdoes notMONDAY_CREATE_OBJECTis a raw GraphQL interface; use it for operations without dedicated tools (e.g., create_subitem, delete_item, archive_board)
Response Structure
- Board items are returned as arrays with
id,name, andstatefields - Column values include both raw
value(JSON) and renderedtext(display string) - Subitems are nested under parent items and cannot be queried independently
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List workspaces | MONDAY_GET_WORKSPACES | kind, state, limit |
| Create workspace | MONDAY_CREATE_WORKSPACE | name, kind |
| List boards | MONDAY_LIST_BOARDS | limit, page, state |
| Create board | MONDAY_CREATE_BOARD | board_name, board_kind, workspace_id |
| Get board metadata | MONDAY_BOARDS | board_ids, board_kind |
| List groups | MONDAY_LIST_GROUPS | board_id |
| Create group | MONDAY_CREATE_GROUP | board_id, group_name |
| List columns | MONDAY_LIST_COLUMNS | board_id |
| Get column metadata | MONDAY_COLUMNS | board_ids, column_types |
| Create column | MONDAY_CREATE_COLUMN | board_id, column_type, title |
| Create item | MONDAY_CREATE_ITEM | board_id, item_name, column_values |
| List board items | MONDAY_LIST_BOARD_ITEMS | board_id |
| Paginated items | MONDAY_ITEMS_PAGE | board_id, limit, query_params |
| Update column (simple) | MONDAY_CHANGE_SIMPLE_COLUMN_VALUE | board_id, item_id, column_id, value |
| Update column (complex) | MONDAY_UPDATE_ITEM | board_id, item_id, column_id, value |
| Move item to group | MONDAY_MOVE_ITEM_TO_GROUP | item_id, group_id |
| List subitems | MONDAY_LIST_SUBITEMS_BY_PARENT | parent_item_ids |
| Add comment/update | MONDAY_CREATE_UPDATE | item_id, body |
| Raw GraphQL mutation | MONDAY_CREATE_OBJECT | query, variables |
Powered by Composio
Source
git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/monday-automation/SKILL.mdView on GitHub Overview
Automate Monday.com work management workflows including board creation, item management, column value updates, group organization, subitems, and update threads through Composio's Monday toolkit. Always search for current tool schemas first using Rube MCP (RUBE_SEARCH_TOOLS).
How This Skill Works
This skill connects Rube MCP to Monday, fetches current schemas with RUBE_SEARCH_TOOLS, then executes a sequence of MONDAY_* calls (e.g., MONDAY_CREATE_BOARD, MONDAY_CREATE_COLUMN, MONDAY_CREATE_GROUP, MONDAY_CREATE_ITEM, MONDAY_MOVE_ITEM_TO_GROUP) to build and maintain boards. It targets the toolkit named 'monday' and requires an ACTIVE connection before running workflows.
When to Use It
- When you need to create a new Monday board with a defined workspace, kind (public/private/share), and initial structure (columns, groups).
- When adding tasks by creating items on a board, with proper column values and optional grouping for workflow stages.
- When reorganizing work by moving items between groups or retrieving paginated items for reporting.
- When auditing or exporting board structure and metadata by listing workspaces, boards, groups, and columns.
- When subitems or updates are required, using GraphQL via MONDAY_CREATE_OBJECT for subitems since MONDAY_CREATE_ITEM does not support subitems.
Quick Start
- Step 1: Add https://rube.app/mcp as an MCP server and verify RUBE_SEARCH_TOOLS is available.
- Step 2: Run RUBE_MANAGE_CONNECTIONS with toolkit 'monday' and complete OAuth if prompted; ensure status is ACTIVE.
- Step 3: Execute a small workflow, for example MONDAY_GET_WORKSPACES followed by MONDAY_CREATE_BOARD with a basic structure.
Best Practices
- Always call RUBE_SEARCH_TOOLS first to obtain current tool schemas and avoid schema drift.
- Resolve IDs (workspace_id, board_id, group_id, column IDs) with preliminary MONDAY_LIST_* calls before creating or updating items.
- Validate required parameters: board_name, board_kind (must be public/private/share), and ensure IDs exist in the target workspace.
- Use column_ids rather than column titles when setting column_values; adapt values to the correct format per column type (e.g., status, date, people).
- Ensure the Monday connection status is ACTIVE before executing workflows and handle errors gracefully with retries.
Example Use Cases
- Create a new project board in a chosen workspace with a predefined set of columns and groups, then add initial items with proper column values.
- List boards to check for duplicates, create a board if none exists, and clone a template via template_id for rapid setup.
- Move an item from 'Backlog' to 'In Progress' by using MONDAY_MOVE_ITEM_TO_GROUP after evaluating current group IDs.
- Retrieve detailed board metadata with MONDAY_BOARDS to audit structure and confirm workspace alignment.
- When needing subitems, switch to GraphQL via MONDAY_CREATE_OBJECT to create subitems under a parent item.
Frequently Asked Questions
Related Skills
github-initiative-pulse
athola/claude-night-market
'Outputs markdown digests and CSV exports for GitHub issues and PRs.
basecamp-automation
davepoon/buildwithclaude
Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.
clickup-automation
davepoon/buildwithclaude
Automate ClickUp project management including tasks, spaces, folders, lists, comments, and team operations via Rube MCP (Composio). Always search tools first for current schemas.
coda-automation
davepoon/buildwithclaude
Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.
jira-automation
davepoon/buildwithclaude
Automate Jira tasks via Rube MCP (Composio): issues, projects, sprints, boards, comments, users. Always search tools first for current schemas.
linear-automation
davepoon/buildwithclaude
Automate Linear tasks via Rube MCP (Composio): issues, projects, cycles, teams, labels. Always search tools first for current schemas.