> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spojit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Monday.com

> Boards, items, columns, updates, and workspaces via GraphQL API.

The Monday.com connector lets your workflows manage boards, items, updates, and workspaces through the Monday.com GraphQL API.

<Note>
  For the full API reference, see the [Monday.com API documentation](https://developer.monday.com/api-reference/).
</Note>

<Snippet file="connection-note.mdx" />

## Connection setup

<Steps>
  <Step title="Get your API token">
    In Monday.com, click your avatar in the bottom-left corner and go to **Developers > My Access Tokens**. Copy your personal API token (or create a new one for your integration).
  </Step>

  <Step title="Add the connection in Spojit">
    Go to **Connections** in Spojit, click **Add Connection**, select **Monday.com**, and enter:

    * **API Token**: Your Monday.com API token
  </Step>
</Steps>

<Note>
  Monday.com uses a GraphQL API. All tools translate to GraphQL queries and mutations under the hood.
</Note>

## Tools

### Boards

<AccordionGroup>
  <Accordion title="list-boards: List boards">
    <ParamField body="limit" type="number" default="25">
      Number of boards to return.
    </ParamField>

    <ParamField body="page" type="number" default="1">
      Page number for pagination.
    </ParamField>

    <ParamField body="workspace_id" type="number">
      Filter by workspace ID.
    </ParamField>

    <ParamField body="board_kind" type="string">
      Filter by board type: `public`, `private`, or `share`.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "limit": 3
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "boards": [
          {
            "id": "1234567890",
            "name": "Project Tracker",
            "state": "active",
            "board_kind": "public",
            "columns": [
              { "id": "status", "title": "Status", "type": "status" },
              { "id": "person", "title": "Owner", "type": "people" },
              { "id": "date4", "title": "Due Date", "type": "date" }
            ],
            "groups": [
              { "id": "new_group", "title": "To Do" },
              { "id": "group_2", "title": "In Progress" },
              { "id": "group_3", "title": "Done" }
            ]
          },
          {
            "id": "1234567891",
            "name": "Bug Reports",
            "state": "active",
            "board_kind": "public",
            "columns": [
              { "id": "status", "title": "Priority", "type": "status" },
              { "id": "text0", "title": "Description", "type": "text" }
            ],
            "groups": [
              { "id": "new_group", "title": "Open" },
              { "id": "group_2", "title": "Closed" }
            ]
          }
        ]
      }
    }
    ```
  </Accordion>

  <Accordion title="get-board: Get a board by ID">
    Returns board details including columns and groups.

    <ParamField body="id" type="number" required>
      Board ID.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "id": 1234567890
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "boards": [
          {
            "id": "1234567890",
            "name": "Project Tracker",
            "state": "active",
            "columns": [
              { "id": "status", "title": "Status", "type": "status" },
              { "id": "person", "title": "Owner", "type": "people" },
              { "id": "date4", "title": "Due Date", "type": "date" },
              { "id": "numbers", "title": "Story Points", "type": "numbers" }
            ],
            "groups": [
              { "id": "new_group", "title": "To Do" },
              { "id": "group_2", "title": "In Progress" },
              { "id": "group_3", "title": "Done" }
            ],
            "items_page": {
              "cursor": "MSw1LGl0ZW1faWQ...",
              "items": [
                {
                  "id": "9876543210",
                  "name": "Design new landing page",
                  "column_values": [
                    { "id": "status", "text": "Working on it", "value": "{\"index\":1}" },
                    { "id": "date4", "text": "2024-07-15", "value": "{\"date\":\"2024-07-15\"}" }
                  ]
                }
              ]
            }
          }
        ]
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### Items

<AccordionGroup>
  <Accordion title="list-items: List items on a board">
    <ParamField body="board_id" type="number" required>
      Board ID to list items from.
    </ParamField>

    <ParamField body="limit" type="number" default="25">
      Number of items to return.
    </ParamField>

    <ParamField body="page" type="number" default="1">
      Page number for pagination.
    </ParamField>

    <ParamField body="group_id" type="string">
      Filter by group ID within the board.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "board_id": 1234567890,
      "limit": 2
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "boards": [
          {
            "items_page": {
              "cursor": "MSw1LGl0ZW1faWQ...",
              "items": [
                {
                  "id": "9876543210",
                  "name": "Design new landing page",
                  "column_values": [
                    { "id": "status", "text": "Working on it", "value": "{\"index\":1}" },
                    { "id": "person", "text": "Alice", "value": "{\"personsAndTeams\":[{\"id\":12345}]}" },
                    { "id": "date4", "text": "2024-07-15", "value": "{\"date\":\"2024-07-15\"}" }
                  ],
                  "group": { "id": "group_2", "title": "In Progress" }
                },
                {
                  "id": "9876543211",
                  "name": "Write API documentation",
                  "column_values": [
                    { "id": "status", "text": "Done", "value": "{\"index\":2}" },
                    { "id": "person", "text": "Bob", "value": "{\"personsAndTeams\":[{\"id\":12346}]}" },
                    { "id": "date4", "text": "2024-07-10", "value": "{\"date\":\"2024-07-10\"}" }
                  ],
                  "group": { "id": "group_3", "title": "Done" }
                }
              ]
            }
          }
        ]
      }
    }
    ```
  </Accordion>

  <Accordion title="get-item: Get an item by ID">
    Returns item details including column values.

    <ParamField body="id" type="number" required>
      Item ID.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "id": 9876543210
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "items": [
          {
            "id": "9876543210",
            "name": "Design new landing page",
            "board": { "id": "1234567890", "name": "Project Tracker" },
            "column_values": [
              { "id": "status", "title": "Status", "text": "Working on it", "value": "{\"index\":1}", "type": "status" },
              { "id": "person", "title": "Owner", "text": "Alice", "value": "{\"personsAndTeams\":[{\"id\":12345}]}", "type": "people" },
              { "id": "date4", "title": "Due Date", "text": "2024-07-15", "value": "{\"date\":\"2024-07-15\"}", "type": "date" },
              { "id": "numbers", "title": "Story Points", "text": "5", "value": "\"5\"", "type": "numbers" }
            ],
            "updates": [
              {
                "id": "111222333",
                "text_body": "Mockups are ready for review",
                "created_at": "2024-07-08T10:30:00Z",
                "creator": { "id": "12345", "name": "Alice Johnson" }
              }
            ]
          }
        ]
      }
    }
    ```
  </Accordion>

  <Accordion title="create-item: Create a new item">
    <ParamField body="board_id" type="number" required>
      Board ID to create the item in.
    </ParamField>

    <ParamField body="item_name" type="string" required>
      Item name.
    </ParamField>

    <ParamField body="group_id" type="string">
      Group ID within the board. Uses the first group if not specified.
    </ParamField>

    <ParamField body="column_values" type="object">
      Column values as a JSON object. Keys are column IDs, values follow Monday.com column value format.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "board_id": 1234567890,
      "item_name": "Fix login button on mobile",
      "group_id": "new_group",
      "column_values": {
        "status": { "label": "Working on it" },
        "person": { "personsAndTeams": [{ "id": 12345, "kind": "person" }] },
        "date4": { "date": "2024-07-20" }
      }
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "create_item": {
          "id": "9876543212",
          "name": "Fix login button on mobile"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="update-item: Update an item's column values">
    <ParamField body="board_id" type="number" required>
      Board ID the item belongs to.
    </ParamField>

    <ParamField body="id" type="number" required>
      Item ID.
    </ParamField>

    <ParamField body="column_values" type="object" required>
      Column values to update. Keys are column IDs.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "board_id": 1234567890,
      "id": 9876543210,
      "column_values": {
        "status": { "label": "Done" },
        "numbers": "8"
      }
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "change_multiple_column_values": {
          "id": "9876543210",
          "name": "Design new landing page"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="delete-item: Delete an item">
    <ParamField body="id" type="number" required>
      Item ID.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "id": 9876543212
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "delete_item": {
          "id": "9876543212"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### Updates

<AccordionGroup>
  <Accordion title="create-update: Post an update on an item">
    <ParamField body="item_id" type="number" required>
      Item ID to post the update on.
    </ParamField>

    <ParamField body="body" type="string" required>
      Update body text (HTML supported).
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "item_id": 9876543210,
      "body": "Completed the design review. Moving to development next week."
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "create_update": {
          "id": "111222334",
          "text_body": "Completed the design review. Moving to development next week."
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### Workspaces

<AccordionGroup>
  <Accordion title="list-workspaces: List workspaces">
    <ParamField body="limit" type="number" default="25">
      Number of workspaces to return.
    </ParamField>

    <ParamField body="page" type="number" default="1">
      Page number for pagination.
    </ParamField>

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "workspaces": [
          {
            "id": "444555",
            "name": "Engineering",
            "kind": "open",
            "description": "Engineering team workspace"
          },
          {
            "id": "444556",
            "name": "Marketing",
            "kind": "open",
            "description": "Marketing campaigns and content"
          }
        ]
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### Advanced

<AccordionGroup>
  <Accordion title="raw-graphql: Execute arbitrary GraphQL">
    Run any GraphQL query or mutation against the Monday.com API.

    <ParamField body="query" type="string" required>
      GraphQL query or mutation string.
    </ParamField>

    <ParamField body="variables" type="object">
      GraphQL variables.
    </ParamField>

    **Example request:**

    ```json theme={null}
    {
      "query": "query { users { id name email } }"
    }
    ```

    **Example response:**

    ```json theme={null}
    {
      "data": {
        "users": [
          {
            "id": "12345",
            "name": "Alice Johnson",
            "email": "alice@example.com"
          },
          {
            "id": "12346",
            "name": "Bob Williams",
            "email": "bob@example.com"
          }
        ]
      }
    }
    ```
  </Accordion>
</AccordionGroup>
