> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Monday.com

The Monday.com connector lets your AI agent act in each user's Monday.com account. Each user signs in to Monday.com once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 73 tools.

**Authentication:** OAuth 2.0
**Categories:** Project Management, Collaboration, Productivity
**Tools:** 73: 14 read, 49 write, 10 destructive
**Users sign in with:** OAuth
**OAuth app:** Your own Monday.com app
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=MONDAY)

## What you can do

- **Manage boards**: create, update, archive, duplicate, and delete boards across workspaces
- **Manage items**: create, update, move, duplicate, archive, and delete items (rows) on any board
- **Update column values**: set single or multiple column values including status, date, people, and custom types
- **Manage groups**: create, rename, reorder, duplicate, archive, and delete groups within a board
- **Post updates**: add, edit, and delete comments and activity updates on items
- **Manage structure**: create and delete columns, manage subitems, webhooks, workspaces, teams, and tags

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Monday.com connection

   In **AgentKit > Connections**, create a Monday.com connection and copy its redirect URI. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Register an OAuth app

   Monday.com connections use your own OAuth app. Register one with Monday.com and add the redirect URI you copied.

   Then enter the app's Client ID and Client Secret on the Monday.com connection.

   **Console steps with screenshots:**

   Register your Scalekit environment with the Monday.com connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. You'll need your app credentials from the [Monday.com Developer Center](https://developer.monday.com/).

   1. ### Set up auth redirects

       - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**.

       - Find **Monday.com** from the list of providers and click **Create**. Copy the redirect URI. It looks like `https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback`.

         > Image: Copy redirect URI from Scalekit dashboard

       - In the [Monday.com Developer Center](https://developer.monday.com/), open your app and go to the **OAuth** tab.

       - Add the copied URI under **Redirect URLs** and save.

         > Image: Add redirect URL in Monday.com Developer Center

   2. ### Get client credentials

       - In the [Monday.com Developer Center](https://developer.monday.com/), open your app and go to the **Basic Information** tab:
         - **Client ID** — listed under **Client ID**
         - **Client Secret** — listed under **Client Secret**

   3. ### Add credentials in Scalekit

       - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** and open the connection you created.

       - Enter your credentials:
         - Client ID (from your Monday.com app)
         - Client Secret (from your Monday.com app)
         - Permissions — select the scopes your app needs (see [Monday.com OAuth scopes](https://developer.monday.com/apps/docs/oauth))

         > Image: Add credentials in Scalekit dashboard
       - Click **Save**.

5. ### Authorize a user and make your first call

   **Node.js**

     ```typescript title="quickstart.mts"
     import { ScalekitClient } from '@scalekit-sdk/node'
     import 'dotenv/config'
     import { createInterface } from 'node:readline/promises'

     const scalekit = new ScalekitClient(
       process.env.SCALEKIT_ENVIRONMENT_URL,
       process.env.SCALEKIT_CLIENT_ID,
       process.env.SCALEKIT_CLIENT_SECRET,
     )
     const actions = scalekit.actions

     const connector = 'monday'
     const identifier = 'user_123'

     // Generate an authorization link for the user
     const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
     console.log('Authorize Monday:', link)
     const rl = createInterface({ input: process.stdin, output: process.stdout })
     await rl.question('Press Enter after authorizing...')
     rl.close()

     // Make your first API call through the proxy
     const result = await actions.request({
       connectionName: connector,
       identifier,
       path: '/v2',
       method: 'POST',
       body: JSON.stringify({ query: '{ boards (limit: 5) { id name } }' }),
     })
     console.log(result)
     ```

     ```bash
     npx tsx quickstart.mts
     ```

     **Python**

     ```python title="quickstart.py"
     import os
     import json
     from scalekit import ScalekitClient
     from dotenv import load_dotenv
     load_dotenv()

     scalekit_client = ScalekitClient(
         env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
         client_id=os.getenv("SCALEKIT_CLIENT_ID"),
         client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
     )
     actions = scalekit_client.actions

     connection_name = "monday"
     identifier = "user_123"

     # Generate an authorization link for the user
     link_response = actions.get_authorization_link(
         connection_name=connection_name,
         identifier=identifier,
     )
     print("Authorize Monday:", link_response.link)
     input("Press Enter after authorizing...")

     # Make your first API call through the proxy
     result = actions.request(
         connection_name=connection_name,
         identifier=identifier,
         path="/v2",
         method="POST",
         body=json.dumps({"query": "{ boards (limit: 5) { id name } }"}),
     )
     print(result)
     ```

     ```bash
     python quickstart.py
     ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Getting resource IDs

Most Monday.com tools require one or more resource IDs. Run list/read tools first to discover real IDs — never guess them.

| Resource | Tool to get ID | Field in response |
|----------|---------------|-------------------|
| Board ID | `monday_boards_list` | `data.boards[].id` |
| Item ID | `monday_items_list` (requires `board_id`) | `data.boards[].items_page.items[].id` |
| Group ID | `monday_items_list` | `data.boards[].items_page.items[].group.id` |
| Column ID | `monday_items_list` | `data.boards[].items_page.items[].column_values[].id` |
| User ID | `monday_users_list` or `monday_me_get` | `data.users[].id` / `data.me.id` |
| Workspace ID | `monday_workspaces_list` | `data.workspaces[].id` |
| Update ID | `monday_updates_list` | `data.updates[].id` |
| Tag ID | `monday_tags_list` | `data.tags[].id` |
| Team ID | `monday_teams_list` | `data.teams[].id` |
| Webhook ID | `monday_webhooks_list` (requires `board_id`) | `data.webhooks[].id` |
| Doc ID | `monday_docs_list` | `data.docs[].id` |
| Subitem ID | `monday_subitem_create` response | `data.create_subitem.id` |

> tip: Find column IDs for value updates
>
> When calling `monday_item_column_value_change` or `monday_item_column_values_change`, you need the column's `id` (not its title). Run `monday_items_list` and read `column_values[].id` from any item on the board. Common built-in column IDs are `name`, `status`, `person`, `date`, and `files` — custom columns have generated IDs like `color_abc123`.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'monday_board_activity_logs_list',
  toolInput: {
    board_id: '<board_id>',
  },
  connector: 'monday',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="monday_board_activity_logs_list",
    tool_input={
        "board_id": "<board_id>",
    },
    connection_name="monday",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `monday_board_activity_logs_list`

List Board Activity Logs · Read-only

Query a board's activity log: who changed what column, item, or group and when. Filterable by user, item, column, group, and time range. Maximum 10,000 records; narrow with filters or a date range for large boards.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_id` (`string`, required): ID of the board to fetch activity logs for
- `column_ids` (`array`, optional): Filter to activity on these column IDs
- `from` (`string`, optional): Only return activity at or after this ISO 8601 timestamp
- `group_ids` (`array`, optional): Filter to activity on these group IDs
- `item_ids` (`array`, optional): Filter to activity on these item IDs
- `limit` (`integer`, optional): Maximum number of activity log entries to return (default 25)
- `page` (`integer`, optional): Page number for pagination
- `to` (`string`, optional): Only return activity at or before this ISO 8601 timestamp
- `user_ids` (`array`, optional): Filter to activity performed by these user IDs

Example input: `{"board_id":"<board_id>"}`

### `monday_boards_list`

List Boards · Read-only

Retrieve a list of boards from your Monday.com account with optional filtering.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_kind` (`string`, optional): Filter by kind: public, private, share
- `limit` (`integer`, optional): Number of boards to return (default 10)
- `order_by` (`string`, optional): Sort order: created_at or used_at
- `page` (`integer`, optional): Page number for pagination
- `state` (`string`, optional): Filter by state: active, archived, deleted, all
- `workspace_ids` (`array`, optional): Filter by workspace IDs

Example input: `{}`

### `monday_docs_list`

List Docs · Read-only

List documents (monday Docs) in your account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ids` (`array`, optional): Filter by specific doc IDs
- `limit` (`integer`, optional): Number of docs to return
- `page` (`integer`, optional): Page number for pagination
- `workspace_ids` (`array`, optional): Filter by workspace IDs

Example input: `{}`

### `monday_items_get`

Get Items By ID · Read-only

Fetch one or more items directly by ID, without going through their board. Returns item metadata and column values.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ids` (`array`, required): IDs of the items to fetch
- `exclude_nonactive` (`boolean`, optional): Exclude archived/deleted items
- `limit` (`integer`, optional): Maximum number of items to return (default 25)
- `newest_first` (`boolean`, optional): Return newest items first
- `page` (`integer`, optional): Page number to fetch (1-indexed)

Example input: `{"ids":[]}`

### `monday_items_list`

List Items · Read-only

Retrieve items from a Monday.com board. Returns items with their column values, group, and creator details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_id` (`string`, required): ID of the board to list items from
- `cursor` (`string`, optional): Pagination cursor from a previous response
- `group_id` (`string`, optional): Filter by group ID
- `limit` (`integer`, optional): Number of items to return per page (max 500)

Example input: `{"board_id":"<board_id>"}`

### `monday_items_search`

Search Items by Column Values · Read-only

Search for items on a board filtered by specific column values.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_id` (`string`, required): ID of the board to search
- `column_id` (`string`, required): ID of the column to filter by
- `column_value` (`string`, required): Value to search for in the column
- `cursor` (`string`, optional): Pagination cursor from a previous response
- `limit` (`integer`, optional): Number of items to return per page

Example input: `{"board_id":"<board_id>","column_id":"<column_id>","column_value":"<column_value>"}`

### `monday_me_get`

Get Current User · Read-only

Retrieve the profile of the currently authenticated Monday.com user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `monday_search`

Universal Search · Read-only

Full-text search across your monday.com account: items, boards, docs, users, workspaces, updates, and Emails & Activities timeline items, all in one call via the namespaced `search` query. Distinct from monday_items_search, which only filters items on a single board by column value.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `query` (`string`, required): Search term to match across items, boards, docs, users, workspaces, updates, and timeline items
- `limit` (`integer`, optional): Maximum number of results to return per entity type (e.g. up to this many boards, up to this many items, etc)

Example input: `{"query":"<query>"}`

### `monday_tags_list`

List Tags · Read-only

Retrieve tags from Monday.com.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ids` (`array`, optional): Filter by specific tag IDs

Example input: `{}`

### `monday_teams_list`

List Teams · Read-only

List teams in your Monday.com account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ids` (`array`, optional): Filter by specific team IDs

Example input: `{}`

### `monday_updates_list`

List Updates · Read-only

Retrieve updates (comments/activity posts) from Monday.com.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, optional): Filter updates by item ID
- `limit` (`integer`, optional): Number of updates to return
- `page` (`integer`, optional): Page number for pagination

Example input: `{}`

### `monday_users_list`

List Users · Read-only

List users in your Monday.com account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `emails` (`array`, optional): Filter by email addresses
- `ids` (`array`, optional): Filter by specific user IDs
- `kind` (`string`, optional): User kind: all, non_guests, guests, non_pending
- `limit` (`integer`, optional): Number of users to return
- `name` (`string`, optional): Filter by name (partial match)
- `newest_first` (`boolean`, optional): Sort newest users first
- `page` (`integer`, optional): Page number for pagination

Example input: `{}`

### `monday_webhooks_list`

List Webhooks · Read-only

List all webhooks registered for a board.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_id` (`string`, required): ID of the board to list webhooks for
- `app_webhooks_only` (`boolean`, optional): Return only webhooks created by the current app

Example input: `{"board_id":"<board_id>"}`

### `monday_workspaces_list`

List Workspaces · Read-only

List all workspaces in your Monday.com account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `ids` (`array`, optional): Filter by specific workspace IDs
- `kind` (`string`, optional): Workspace kind: open or closed
- `limit` (`integer`, optional): Number of workspaces to return
- `page` (`integer`, optional): Page number for pagination
- `state` (`string`, optional): Workspace state: all, active, archived, deleted

Example input: `{}`

### `monday_board_archive`

Archive Board · Write

Archive a board in Monday.com.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to archive

Example input: `{"board_id":"<board_id>"}`

### `monday_board_create`

Create Board · Write

Create a new board in Monday.com.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_kind` (`string`, required): Board type: public, private, or share
- `board_name` (`string`, required): Name for the new board
- `description` (`string`, optional): Description for the board
- `folder_id` (`integer`, optional): Folder ID to place the board in
- `template_id` (`integer`, optional): Template ID to base the board on
- `workspace_id` (`integer`, optional): ID of the workspace to create the board in

Example input: `{"board_kind":"<board_kind>","board_name":"<board_name>"}`

### `monday_board_duplicate`

Duplicate Board · Write

Create a copy of an existing board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to duplicate
- `duplicate_type` (`string`, required): What to duplicate: duplicate_board_with_structure, duplicate_board_with_pulses, or duplicate_board_with_pulses_and_updates
- `board_name` (`string`, optional): Name for the duplicated board
- `keep_subscribers` (`boolean`, optional): Whether to keep board subscribers
- `workspace_id` (`string`, optional): Destination workspace ID

Example input: `{"board_id":"<board_id>","duplicate_type":"<duplicate_type>"}`

### `monday_board_hierarchy_update`

Update Board Hierarchy · Write

Move a board to a different workspace, folder, or account product. Provide at least one of workspace_id, folder_id, or account_product_id.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_id` (`string`, required): ID of the board to relocate
- `account_product_id` (`string`, optional): ID of the account product (e.g. CRM, work management) to move the board into
- `folder_id` (`string`, optional): ID of the folder to move the board into
- `workspace_id` (`string`, optional): ID of the workspace to move the board into

Example input: `{"board_id":"<board_id>"}`

### `monday_board_permission_set`

Set Board Permission · Write

Set a board's default access role, controlling what non-owner members can do on the board by default.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `basic_role_name` (`string`, required): Default role: contributor, editor, or viewer. One of: `contributor`, `editor`, `viewer`.
- `board_id` (`string`, required): ID of the board to set permissions on
- `cross_product_collaborative` (`boolean`, optional): Whether the board allows cross-product collaboration

Example input: `{"basic_role_name":"contributor","board_id":"<board_id>"}`

### `monday_board_subscribers_add`

Add Subscribers to Board · Write

Subscribe users to a board so they receive notifications.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to add subscribers to
- `user_ids` (`array`, required): Array of user IDs to subscribe
- `kind` (`string`, optional): Role: subscriber or owner

Example input: `{"board_id":"<board_id>","user_ids":[]}`

### `monday_board_subscribers_remove`

Remove Subscribers From Board · Write

Unsubscribe users from a board so they stop receiving its notifications. Complements monday_board_subscribers_add.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `board_id` (`string`, required): ID of the board to remove subscribers from
- `user_ids` (`array`, required): IDs of the users to unsubscribe

Example input: `{"board_id":"<board_id>","user_ids":[]}`

### `monday_board_update`

Update Board · Write

Update a board's name, description, or communication settings.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_attribute` (`string`, required): Attribute to update: name, description, or communication
- `board_id` (`string`, required): ID of the board to update
- `new_value` (`string`, required): New value for the attribute

Example input: `{"board_attribute":"<board_attribute>","board_id":"<board_id>","new_value":"<new_value>"}`

### `monday_column_create`

Create Column · Write

Add a new column to a Monday.com board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to add the column to
- `column_type` (`string`, required): Column type: text, long_text, numbers, status, dropdown, date, timeline, people, checkbox, email, phone, link, file, color_picker, rating, time_tracking, formula, auto_number, etc.
- `title` (`string`, required): Title/name for the new column
- `after_column_id` (`string`, optional): Column ID to insert this column after
- `defaults` (`string`, optional): JSON of default settings for the column
- `description` (`string`, optional): Optional description for the column

Example input: `{"board_id":"<board_id>","column_type":"<column_type>","title":"<title>"}`

### `monday_column_title_change`

Change Column Title · Write

Rename a column on a board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board
- `column_id` (`string`, required): ID of the column to rename
- `title` (`string`, required): New title for the column

Example input: `{"board_id":"<board_id>","column_id":"<column_id>","title":"<title>"}`

### `monday_column_update`

Update Column · Write

Comprehensively update a board column's title, description, width, or type-specific settings. Requires the column's current revision number for optimistic concurrency control (read it via monday_boards_list or a columns query first).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board the column belongs to
- `column_id` (`string`, required): ID of the column to update
- `column_type` (`string`, required): The column's type (must match its existing type)
- `revision` (`string`, required): Current revision number of the column, for concurrency control
- `description` (`string`, optional): New description for the column
- `settings` (`string`, optional): JSON-encoded type-specific settings for the column
- `title` (`string`, optional): New title for the column
- `width` (`integer`, optional): New width for the column, in pixels

Example input: `{"board_id":"<board_id>","column_id":"<column_id>","column_type":"<column_type>","revision":"<revision>"}`

### `monday_doc_add_markdown_content`

Add Markdown Content to Doc · Write

Add markdown content to an existing monday Doc. The markdown is parsed and converted into the doc's native block structure (headings, lists, quotes, bold/italic/code, etc).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `doc_id` (`string`, required): ID of the doc to add content to
- `markdown` (`string`, required): Markdown content to convert and add to the doc
- `after_block_id` (`string`, optional): ID of the block to insert the new content after. If omitted, content is added at the end of the doc.

Example input: `{"doc_id":"<doc_id>","markdown":"<markdown>"}`

### `monday_doc_create`

Create Doc · Write

Create a new monday Doc, either attached to an item's doc-type column on a board, or as a standalone doc directly inside a workspace. Provide either (item_id and column_id) for the board placement, or (workspace_id and name) for the workspace placement.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `column_id` (`string`, optional): ID of the doc-type column on the item (board placement mode). Requires item_id to also be set.
- `item_id` (`string`, optional): ID of the item containing the doc-type column (board placement mode). Requires column_id to also be set.
- `kind` (`string`, optional): Visibility kind for the new doc when created in a workspace, e.g. private.
- `name` (`string`, optional): Name for the new doc (workspace placement mode only).
- `workspace_id` (`string`, optional): ID of the workspace to create the doc directly in (workspace placement mode). Requires name to also be set.

Example input: `{}`

### `monday_doc_update_name`

Rename Doc · Write

Rename an existing monday Doc.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `doc_id` (`integer`, required): ID of the doc to rename
- `name` (`string`, required): New name for the doc

Example input: `{"doc_id":1,"name":"<name>"}`

### `monday_group_archive`

Archive Group · Write

Archive a group on a board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board
- `group_id` (`string`, required): ID of the group to archive

Example input: `{"board_id":"<board_id>","group_id":"<group_id>"}`

### `monday_group_create`

Create Group · Write

Create a new group on a Monday.com board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to add the group to
- `group_name` (`string`, required): Name of the group to create
- `position_relative_method` (`string`, optional): Positioning: before_at or after_at
- `relative_to` (`string`, optional): Group ID to position this group relative to

Example input: `{"board_id":"<board_id>","group_name":"<group_name>"}`

### `monday_group_duplicate`

Duplicate Group · Write

Create a copy of a group on a board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board
- `group_id` (`string`, required): ID of the group to duplicate
- `add_to_top` (`boolean`, optional): Whether to add the duplicate at the top of the board

Example input: `{"board_id":"<board_id>","group_id":"<group_id>"}`

### `monday_group_update`

Update Group · Write

Update a group's name, color, or position on a board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `attribute` (`string`, required): Attribute to update: title or color
- `board_id` (`string`, required): ID of the board
- `group_id` (`string`, required): ID of the group to update
- `new_value` (`string`, required): New value for the attribute

Example input: `{"attribute":"<attribute>","board_id":"<board_id>","group_id":"<group_id>","new_value":"<new_value>"}`

### `monday_item_archive`

Archive Item · Write

Archive an item on a Monday.com board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `item_id` (`string`, required): ID of the item to archive

Example input: `{"item_id":"<item_id>"}`

### `monday_item_column_simple_value_change`

Change Simple Column Value · Write

Update a single column's value on an item using a plain text string, instead of the JSON shape required by monday_item_column_value_change. Simpler for text-like columns, but not all column types support simple string values.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board the item belongs to
- `column_id` (`string`, required): ID of the column to update
- `item_id` (`string`, required): ID of the item to update
- `create_labels_if_missing` (`boolean`, optional): Auto-create labels if they don't exist (status/dropdown columns)
- `value` (`string`, optional): Plain text value to set on the column

Example input: `{"board_id":"<board_id>","column_id":"<column_id>","item_id":"<item_id>"}`

### `monday_item_column_value_change`

Change Column Value · Write

Update the value of a single column on an item.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board the item belongs to
- `column_id` (`string`, required): ID of the column to update (e.g., status, date4, text)
- `item_id` (`string`, required): ID of the item to update
- `value` (`string`, required): New value as a JSON string. Format varies by column type.
- `create_labels_if_missing` (`boolean`, optional): Auto-create labels if they don't exist

Example input: `{"board_id":"<board_id>","column_id":"<column_id>","item_id":"<item_id>","value":"<value>"}`

### `monday_item_column_values_change`

Change Multiple Column Values · Write

Update multiple column values on an item in a single request (up to 50 columns).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board the item belongs to
- `column_values` (`string`, required): JSON object mapping column IDs to their new values
- `item_id` (`string`, required): ID of the item to update
- `create_labels_if_missing` (`boolean`, optional): Auto-create labels if they don't exist

Example input: `{"board_id":"<board_id>","column_values":"<column_values>","item_id":"<item_id>"}`

### `monday_item_create`

Create Item · Write

Create a new item (row) on a Monday.com board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to create the item on
- `item_name` (`string`, required): Name of the item to create
- `column_values` (`string`, optional): JSON string of column values to set
- `create_labels_if_missing` (`boolean`, optional): Auto-create status/dropdown labels if they don't exist
- `group_id` (`string`, optional): ID of the group to add the item to

Example input: `{"board_id":"<board_id>","item_name":"<item_name>"}`

### `monday_item_description_set`

Set Item Description · Write

Set an item's description content, using markdown formatting.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): ID of the item to update
- `markdown` (`string`, required): Description content, as markdown

Example input: `{"item_id":"<item_id>","markdown":"<markdown>"}`

### `monday_item_duplicate`

Duplicate Item · Write

Create a copy of an item on the same board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board the item belongs to
- `item_id` (`string`, required): ID of the item to duplicate
- `with_updates` (`boolean`, optional): Whether to copy the item's updates/comments

Example input: `{"board_id":"<board_id>","item_id":"<item_id>"}`

### `monday_item_move_to_board`

Move Item to Board · Write

Transfer an item to a different board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the destination board
- `group_id` (`string`, required): ID of the group on the destination board
- `item_id` (`string`, required): ID of the item to move
- `columns_mapping` (`string`, optional): JSON array mapping source column IDs to destination column IDs

Example input: `{"board_id":"<board_id>","group_id":"<group_id>","item_id":"<item_id>"}`

### `monday_item_move_to_group`

Move Item to Group · Write

Move an item to a different group on the same board.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `group_id` (`string`, required): ID of the destination group
- `item_id` (`string`, required): ID of the item to move

Example input: `{"group_id":"<group_id>","item_id":"<item_id>"}`

### `monday_item_position_change`

Change Item Position · Write

Move an item to a new position within the same board -- to the top of a group, or immediately before/after another item.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `item_id` (`string`, required): ID of the item to reposition
- `group_id` (`string`, optional): Move the item to this group before repositioning
- `group_top` (`boolean`, optional): Move the item to the top of its group
- `position_relative_method` (`string`, optional): Whether to place the item before or after relative_to. One of: `before_at`, `after_at`.
- `relative_to` (`string`, optional): ID of the item to position relative to

Example input: `{"item_id":"<item_id>"}`

### `monday_notification_create`

Create Notification · Write

Send a notification to a user in Monday.com.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `target_id` (`string`, required): ID of the target item or board for context
- `target_type` (`string`, required): Target type: Project (board) or Post (item)
- `text` (`string`, required): Notification message text
- `user_id` (`string`, required): ID of the user to notify

Example input: `{"target_id":"<target_id>","target_type":"<target_type>","text":"<text>","user_id":"<user_id>"}`

### `monday_subitem_create`

Create Subitem · Write

Create a subitem (child item) under a parent item.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `item_name` (`string`, required): Name of the subitem
- `parent_item_id` (`string`, required): ID of the parent item
- `column_values` (`string`, optional): JSON object of column values to set on creation
- `create_labels_if_missing` (`boolean`, optional): Auto-create labels if they don't exist

Example input: `{"item_name":"<item_name>","parent_item_id":"<parent_item_id>"}`

### `monday_tag_create_or_get`

Create or Get Tag · Write

Create a new tag or retrieve an existing one by name.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `tag_name` (`string`, required): Name of the tag to create or retrieve
- `board_id` (`string`, optional): ID of the board to associate the tag with

Example input: `{"tag_name":"<tag_name>"}`

### `monday_team_users_add`

Add Users to Team · Write

Add one or more users to a Monday.com team.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `team_id` (`string`, required): ID of the team to add users to
- `user_ids` (`array`, required): Array of user IDs to add to the team

Example input: `{"team_id":"<team_id>","user_ids":[]}`

### `monday_team_users_remove`

Remove Users from Team · Write

Remove one or more users from a Monday.com team.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `team_id` (`string`, required): ID of the team to remove users from
- `user_ids` (`array`, required): Array of user IDs to remove from the team

Example input: `{"team_id":"<team_id>","user_ids":[]}`

### `monday_update_create`

Create Update · Write

Post a comment or update on a Monday.com item.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Content of the update/comment (HTML supported)
- `item_id` (`string`, required): ID of the item to post the update on

Example input: `{"body":"<body>","item_id":"<item_id>"}`

### `monday_update_edit`

Edit Update · Write

Edit the text of an existing update/comment.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): New content for the update
- `id` (`string`, required): ID of the update to edit

Example input: `{"body":"<body>","id":"<id>"}`

### `monday_update_like`

Like Update · Write

Add a like reaction to an update (comment) from the connected user.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `update_id` (`string`, required): ID of the update to like

Example input: `{"update_id":"<update_id>"}`

### `monday_update_pin`

Pin Update · Write

Pin an update to the top of its item's update thread.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `update_id` (`string`, required): ID of the update to pin
- `item_id` (`string`, optional): ID of the item the update belongs to

Example input: `{"update_id":"<update_id>"}`

### `monday_update_unlike`

Unlike Update · Write

Remove the connected user's like reaction from an update (comment).

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `update_id` (`string`, required): ID of the update to unlike

Example input: `{"update_id":"<update_id>"}`

### `monday_update_unpin`

Unpin Update · Write

Remove an update from the pinned position at the top of its item's update thread.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `update_id` (`string`, required): ID of the update to unpin
- `item_id` (`string`, optional): ID of the item the update belongs to

Example input: `{"update_id":"<update_id>"}`

### `monday_user_role_update`

Update Users' Role · Write

Change the account role for up to 200 users at once, using either a default role or a custom role ID.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_ids` (`array`, required): IDs of the users to update (max 200)
- `new_role` (`string`, optional): Default role to assign. One of: `ADMIN`, `GUEST`, `MEMBER`, `VIEW_ONLY`.
- `role_id` (`string`, optional): Custom role ID to assign, instead of a default role

Example input: `{"user_ids":[]}`

### `monday_users_activate`

Activate Users · Write

Reactivate up to 200 previously deactivated user accounts on the monday.com account.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_ids` (`array`, required): IDs of the users to reactivate (max 200)

Example input: `{"user_ids":[]}`

### `monday_users_invite`

Invite Users · Write

Invite one or more people to join the monday.com account by email. Invitees remain pending until they accept.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `emails` (`array`, required): Email addresses to invite
- `product` (`string`, optional): Product area to invite the users into. One of: `crm`, `dev`, `forms`, `knowledge`, `service`, `whiteboard`, `workflows`, `work_management`.
- `user_role` (`string`, optional): Role to grant the invited users. One of: `GUEST`, `MEMBER`, `VIEW_ONLY`.

Example input: `{"emails":[]}`

### `monday_webhook_create`

Create Webhook · Write

Register a new webhook for a board event.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to watch
- `event` (`string`, required): Event to trigger on: change_column_value, create_item, delete_item, create_update, change_status_column_value, change_subitem_column_value, create_subitem, move_item_to_group, etc.
- `url` (`string`, required): URL to send webhook payloads to
- `config` (`string`, optional): Optional JSON configuration for the event (e.g., specific column filter)

Example input: `{"board_id":"<board_id>","event":"<event>","url":"<url>"}`

### `monday_workspace_create`

Create Workspace · Write

Create a new workspace in Monday.com.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `kind` (`string`, required): Workspace type: open or closed
- `name` (`string`, required): Name for the new workspace
- `description` (`string`, optional): Optional description for the workspace

Example input: `{"kind":"<kind>","name":"<name>"}`

### `monday_workspace_teams_add`

Add Teams To Workspace · Write

Grant one or more teams access to a workspace, as an owner or subscriber.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `team_ids` (`array`, required): IDs of the teams to add
- `workspace_id` (`string`, required): ID of the workspace to add teams to
- `kind` (`string`, optional): Access level to grant: owner or subscriber. One of: `owner`, `subscriber`.

Example input: `{"team_ids":[],"workspace_id":"<workspace_id>"}`

### `monday_workspace_teams_remove`

Remove Teams From Workspace · Write

Remove one or more teams' access to a workspace.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `team_ids` (`array`, required): IDs of the teams to remove
- `workspace_id` (`string`, required): ID of the workspace to remove teams from

Example input: `{"team_ids":[],"workspace_id":"<workspace_id>"}`

### `monday_workspace_update`

Update Workspace · Write

Update a workspace's name, description, or account product.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`string`, required): ID of the workspace to update
- `account_product_id` (`string`, optional): Account product to associate with the workspace
- `description` (`string`, optional): New description for the workspace
- `name` (`string`, optional): New name for the workspace

Example input: `{"workspace_id":"<workspace_id>"}`

### `monday_workspace_users_add`

Add Users To Workspace · Write

Grant one or more users access to a workspace, as an owner or subscriber.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `user_ids` (`array`, required): IDs of the users to add
- `workspace_id` (`string`, required): ID of the workspace to add users to
- `kind` (`string`, optional): Access level to grant: owner or subscriber. One of: `owner`, `subscriber`.

Example input: `{"user_ids":[],"workspace_id":"<workspace_id>"}`

### `monday_workspace_users_remove`

Remove Users From Workspace · Write

Remove one or more users' access to a workspace.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_ids` (`array`, required): IDs of the users to remove
- `workspace_id` (`string`, required): ID of the workspace to remove users from

Example input: `{"user_ids":[],"workspace_id":"<workspace_id>"}`

### `monday_board_delete`

Delete Board · Destructive

Permanently delete a board from Monday.com.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board to delete

Example input: `{"board_id":"<board_id>"}`

### `monday_column_delete`

Delete Column · Destructive

Permanently delete a column from a board.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board
- `column_id` (`string`, required): ID of the column to delete

Example input: `{"board_id":"<board_id>","column_id":"<column_id>"}`

### `monday_doc_delete`

Delete Doc · Destructive

Permanently delete a monday Doc.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `doc_id` (`string`, required): ID of the doc to delete

Example input: `{"doc_id":"<doc_id>"}`

### `monday_group_delete`

Delete Group · Destructive

Permanently delete a group from a board.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `board_id` (`string`, required): ID of the board
- `group_id` (`string`, required): ID of the group to delete

Example input: `{"board_id":"<board_id>","group_id":"<group_id>"}`

### `monday_item_delete`

Delete Item · Destructive

Permanently delete an item from a Monday.com board.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `item_id` (`string`, required): ID of the item to delete

Example input: `{"item_id":"<item_id>"}`

### `monday_item_updates_clear`

Clear Item Updates · Destructive

Permanently remove all updates (including replies and likes) from an item. This cannot be undone.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `item_id` (`string`, required): ID of the item whose updates should be cleared

Example input: `{"item_id":"<item_id>"}`

### `monday_update_delete`

Delete Update · Destructive

Delete an update/comment from an item.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ID of the update to delete

Example input: `{"id":"<id>"}`

### `monday_users_deactivate`

Deactivate Users · Destructive

Deactivate up to 200 user accounts on the monday.com account, revoking their access.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `user_ids` (`array`, required): IDs of the users to deactivate (max 200)

Example input: `{"user_ids":[]}`

### `monday_webhook_delete`

Delete Webhook · Destructive

Delete a webhook registration.

Read only: no. Destructive: yes. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): ID of the webhook to delete

Example input: `{"id":"<id>"}`

### `monday_workspace_delete`

Delete Workspace · Destructive

Permanently delete a workspace and remove it from the account. This is a destructive operation.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `workspace_id` (`string`, required): ID of the workspace to delete

Example input: `{"workspace_id":"<workspace_id>"}`

## Workflows

**Proxy API call**

  **Node.js**

  ```typescript
  const result = await actions.request({
    connectionName: 'monday',
    identifier: 'user_123',
    path: '/v2',
    method: 'POST',
    body: JSON.stringify({ query: '{ boards (limit: 5) { id name } }' }),
  });
  console.log(result);
  ```

  **Python**

  ```python
  import json

  result = actions.request(
      connection_name='monday',
      identifier='user_123',
      path="/v2",
      method="POST",
      body=json.dumps({"query": "{ boards (limit: 5) { id name } }"})
  )
  print(result)
  ```

**Execute a tool**

  **Node.js**

  ```typescript
  const result = await actions.executeTool({
    connector: 'monday',
    identifier: 'user_123',
    toolName: 'monday_boards_list',
    toolInput: {},
  });
  console.log(result);
  ```

  **Python**

  ```python
  result = actions.execute_tool(
      connection_name='monday',
      identifier='user_123',
      tool_name='monday_boards_list',
      tool_input={},
  )
  print(result)
  ```

## Related

Other ways to connect Monday.com:

- [MCP server](/agentkit/connectors/mondaymcp/): Vendor MCP, OAuth, 94 tools

Other Project Management connectors ([all 31](/agentkit/connectors/?category=project-management)):

- [Notion](/agentkit/connectors/notion/): Scalekit connector, OAuth, 51 tools
- [Linear](/agentkit/connectors/linear/): Scalekit connector, OAuth, 62 tools
- [Airtable](/agentkit/connectors/airtable/): Scalekit connector, OAuth, 26 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
