> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Monday.com connector

Connect to Monday.com. Manage boards, tasks, workflows, teams, and project collaboration

**Authentication:** OAuth 2.0
**Categories:** Project Management
1. ### Install the SDK

   
     ### Node.js

```bash frame="terminal"
npm install @scalekit-sdk/node
```

     ### Python

```bash frame="terminal"
pip install scalekit
```

   

   Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

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 showLineNumbers=false title=".env"
SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
SCALEKIT_CLIENT_ID=<your-client-id>
SCALEKIT_CLIENT_SECRET=<your-client-secret>
```

3. ### Set up the connector

   Register your Monday.com credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

   ## Dashboard setup steps

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://monday.com/developers/apps).

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:///sso/v1/oauth//callback`.

      > Image: Copy redirect URI from Scalekit dashboard

    - In the [Monday.com Developer Center](https://monday.com/developers/apps), 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://monday.com/developers/apps), 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-scopes))

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

4. ### Authorize and make your first call

   ### Node.js

```typescript title="quickstart.ts"

const scalekit = new ScalekitClient(
  process.env.SCALEKIT_ENV_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)
process.stdout.write('Press Enter after authorizing...')
await new Promise(r => process.stdin.once('data', r))

// 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)
```

  ### Python

```python title="quickstart.py"

from scalekit.client import ScalekitClient
from dotenv import load_dotenv
load_dotenv()

scalekit_client = ScalekitClient(
    env_url=os.getenv("SCALEKIT_ENV_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)
```

## What you can do

Connect this agent connector to let your agent:

- **Create board, notification, item** — Create a new board in Monday.com
- **List docs, updates, workspaces** — List documents (monday Docs) in your account
- **Delete group, column, board** — Permanently delete a group from a board
- **Update edit, board, delete** — Edit the text of an existing update/comment
- **Duplicate item, group, board** — Create a copy of an item on the same board
- **Board item move to** — Transfer an item to a different board

## Common workflows

export const sectionTitle = 'Common 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

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_list',
  toolInput: {},
});
console.log(result);
```

  ### Python

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

## Tool list

Use the exact tool names from the **Tool list** below when you call `execute_tool`. If you're not sure which name to use, list the tools available for the current user first.

## Tool list

### `monday_board_archive`

Archive a board in Monday.com.

Parameters:

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

### `monday_board_create`

Create a new board in Monday.com.

Parameters:

- `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

### `monday_board_delete`

Permanently delete a board from Monday.com.

Parameters:

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

### `monday_board_duplicate`

Create a copy of an existing board.

Parameters:

- `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

### `monday_board_subscribers_add`

Subscribe users to a board so they receive notifications.

Parameters:

- `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

### `monday_board_update`

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

Parameters:

- `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

### `monday_boards_list`

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

Parameters:

- `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

### `monday_column_create`

Add a new column to a Monday.com board.

Parameters:

- `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

### `monday_column_delete`

Permanently delete a column from a board.

Parameters:

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

### `monday_column_title_change`

Rename a column on a board.

Parameters:

- `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

### `monday_docs_list`

List documents (monday Docs) in your account.

Parameters:

- `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

### `monday_group_archive`

Archive a group on a board.

Parameters:

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

### `monday_group_create`

Create a new group on a Monday.com board.

Parameters:

- `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

### `monday_group_delete`

Permanently delete a group from a board.

Parameters:

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

### `monday_group_duplicate`

Create a copy of a group on a board.

Parameters:

- `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

### `monday_group_update`

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

Parameters:

- `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

### `monday_item_archive`

Archive an item on a Monday.com board.

Parameters:

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

### `monday_item_column_value_change`

Update the value of a single column on an item.

Parameters:

- `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

### `monday_item_column_values_change`

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

Parameters:

- `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

### `monday_item_create`

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

Parameters:

- `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

### `monday_item_delete`

Permanently delete an item from a Monday.com board.

Parameters:

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

### `monday_item_duplicate`

Create a copy of an item on the same board.

Parameters:

- `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

### `monday_item_move_to_board`

Transfer an item to a different board.

Parameters:

- `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

### `monday_item_move_to_group`

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

Parameters:

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

### `monday_items_list`

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

Parameters:

- `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)

### `monday_items_search`

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

Parameters:

- `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

### `monday_me_get`

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

### `monday_notification_create`

Send a notification to a user in Monday.com.

Parameters:

- `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

### `monday_subitem_create`

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

Parameters:

- `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

### `monday_tag_create_or_get`

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

Parameters:

- `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

### `monday_tags_list`

Retrieve tags from Monday.com.

Parameters:

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

### `monday_team_users_add`

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

Parameters:

- `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

### `monday_team_users_remove`

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

Parameters:

- `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

### `monday_teams_list`

List teams in your Monday.com account.

Parameters:

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

### `monday_update_create`

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

Parameters:

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

### `monday_update_delete`

Delete an update/comment from an item.

Parameters:

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

### `monday_update_edit`

Edit the text of an existing update/comment.

Parameters:

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

### `monday_updates_list`

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

Parameters:

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

### `monday_users_list`

List users in your Monday.com account.

Parameters:

- `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

### `monday_webhook_create`

Register a new webhook for a board event.

Parameters:

- `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)

### `monday_webhook_delete`

Delete a webhook registration.

Parameters:

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

### `monday_webhooks_list`

List all webhooks registered for a board.

Parameters:

- `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

### `monday_workspace_create`

Create a new workspace in Monday.com.

Parameters:

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

### `monday_workspaces_list`

List all workspaces in your Monday.com account.

Parameters:

- `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


---

## 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 |
