Monday.com
Overview
Section titled “Overview”The Monday.com nodes connect your workflows to Monday.com through its GraphQL API. Use them to automate work management: create an item when an order comes in, update a column’s status as a process advances, add an update (comment) with the result, or read an item to process it.
Unlike a classic REST API, Monday has a single GraphQL endpoint: POST https://api.monday.com/v2. Every operation is a query or mutation.
There are six nodes:
| Node | Operation | GraphQL |
|---|---|---|
Monday: Create item (mondayCreateItem) | Create an item in a board | create_item mutation |
Monday: Get item (mondayGetItem) | Read an item by its id | items query |
Monday: Update item (mondayUpdateItem) | Update column values | change_multiple_column_values mutation |
Monday: Delete item (mondayDeleteItem) | Delete an item | delete_item mutation |
Monday: Add update (mondayAddUpdate) | Add an update/comment | create_update mutation |
Monday: GraphQL query (mondayQuery) | Run raw GraphQL | any query/mutation |
Credential
Section titled “Credential”The nodes use a Monday credential. Create it in Credentials → Add → Monday with this field:
| Field | Description |
|---|---|
| token | The personal token, from Monday → Avatar → Developers → My access tokens (or Admin → API). Never shown in logs. |
Monday authentication sends the token in the Authorization header as-is (no Bearer prefix). The nodes also add the API-Version: 2024-10 header. You can verify the credential with the Test button, which runs the { me { name } } query.
Important: GraphQL, ids, column_values and 200 errors
Section titled “Important: GraphQL, ids, column_values and 200 errors”- A single GraphQL endpoint. There are no REST routes: everything goes as a query/mutation to
https://api.monday.com/v2. - Monday returns HTTP 200 even when there are errors. A GraphQL error (missing column, invalid argument, complexity limit) still arrives with status
200and the detail inerrors[]. The nodes detecterrors[]and propagate the error with its message, instead of accepting an item that was never created. column_valuesis a stringified JSON, not an object. In the editor you enter it as normal JSON (e.g.{"status":{"label":"Done"}}) and the node converts it to a string before sending it as aJSONGraphQL variable.- ids are numeric:
board_id,item_id,group_id. You get a board id from the board’s URL in Monday; an item id when you open it. - Complexity limit (429). Monday charges each query by its “complexity”: past the budget, it returns
ComplexityException/ rate limit. The nodes treat it as retryable and honorRetry-After.
Monday: Create item (mondayCreateItem)
Section titled “Monday: Create item (mondayCreateItem)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | Monday credential |
| board_id | text | Yes | numeric board id |
| group_id | text | No | group id inside the board |
| item_name | text | Yes | Item name |
| column_values | JSON | No | Column values, e.g. {"status":{"label":"Done"}} (sent as stringified JSON) |
Output: the created item, with its id and name.
Monday: Get item (mondayGetItem)
Section titled “Monday: Get item (mondayGetItem)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | Monday credential |
| item_id | text | Yes | numeric item id |
Output: the item with its column_values (id, text, value).
Monday: Update item (mondayUpdateItem)
Section titled “Monday: Update item (mondayUpdateItem)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | Monday credential |
| board_id | text | Yes | numeric board id |
| item_id | text | Yes | numeric item id |
| column_values | JSON | Yes | Values to update, e.g. {"status":{"label":"Working on it"}} |
Monday: Delete item (mondayDeleteItem)
Section titled “Monday: Delete item (mondayDeleteItem)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | Monday credential |
| item_id | text | Yes | numeric id of the item to delete |
Monday: Add update (mondayAddUpdate)
Section titled “Monday: Add update (mondayAddUpdate)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | Monday credential |
| item_id | text | Yes | numeric item id |
| body | text | Yes | Update/comment text |
Monday: GraphQL query (mondayQuery)
Section titled “Monday: GraphQL query (mondayQuery)”Escape hatch for everything the nodes above don’t cover (create boards, subitems, columns, webhooks, complex queries…).
| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | Monday credential |
| query | text | Yes | GraphQL query or mutation |
| variables | JSON | No | Operation variables |
Output: the full res.data Monday returns.
Example
Section titled “Example”Create an item from a form:
- Node: Monday: Create item
- board_id:
1234567890 - item_name:
Order: {{data.customer}} - column_values:
{"status":{"label":"New"},"text":"{{data.details}}"}
Output:
{ "id": "9876543210", "name": "Order: ACME Inc."}Error handling
Section titled “Error handling”Each node classifies errors so the engine knows whether a retry makes sense. Remember Monday returns 200 with errors[]: the node detects them and classifies by the extensions.code.
| Situation | Retryable | What to do |
|---|---|---|
Validation (GraphQL errors[]) | No | Monday returns the reason (missing column, invalid column_values, invalid board_id). Fix the data. |
Authentication (UserUnauthorizedException / 401/403) | No | Invalid token or no permission. Check the credential. |
Complexity / rate limit (ComplexityException / 429) | Yes | Retry-After is honored and retried automatically. |
| Server (5xx) | Yes | Temporary Monday error; retried automatically. |
| Network / Timeout | Yes | Transient issue; retried automatically. |
See also
Section titled “See also”- HubSpot and Salesforce — CRM integrations.
- Jira (Atlassian), Asana, Trello, Notion and ClickUp — other work-management integrations.
- Retry queue (DLQ) — how failed executions are retried.
- HTTP node — for calls you want to build by hand (though for Monday the
mondayQuerynode is preferable).