Skip to content

Monday.com

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:

NodeOperationGraphQL
Monday: Create item (mondayCreateItem)Create an item in a boardcreate_item mutation
Monday: Get item (mondayGetItem)Read an item by its iditems query
Monday: Update item (mondayUpdateItem)Update column valueschange_multiple_column_values mutation
Monday: Delete item (mondayDeleteItem)Delete an itemdelete_item mutation
Monday: Add update (mondayAddUpdate)Add an update/commentcreate_update mutation
Monday: GraphQL query (mondayQuery)Run raw GraphQLany query/mutation

The nodes use a Monday credential. Create it in Credentials → Add → Monday with this field:

FieldDescription
tokenThe 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 200 and the detail in errors[]. The nodes detect errors[] and propagate the error with its message, instead of accepting an item that was never created.
  • column_values is 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 a JSON GraphQL 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 honor Retry-After.
ParameterTypeRequiredDescription
credentials_idcredentialYesMonday credential
board_idtextYesnumeric board id
group_idtextNogroup id inside the board
item_nametextYesItem name
column_valuesJSONNoColumn values, e.g. {"status":{"label":"Done"}} (sent as stringified JSON)

Output: the created item, with its id and name.

ParameterTypeRequiredDescription
credentials_idcredentialYesMonday credential
item_idtextYesnumeric item id

Output: the item with its column_values (id, text, value).

ParameterTypeRequiredDescription
credentials_idcredentialYesMonday credential
board_idtextYesnumeric board id
item_idtextYesnumeric item id
column_valuesJSONYesValues to update, e.g. {"status":{"label":"Working on it"}}
ParameterTypeRequiredDescription
credentials_idcredentialYesMonday credential
item_idtextYesnumeric id of the item to delete
ParameterTypeRequiredDescription
credentials_idcredentialYesMonday credential
item_idtextYesnumeric item id
bodytextYesUpdate/comment text

Escape hatch for everything the nodes above don’t cover (create boards, subitems, columns, webhooks, complex queries…).

ParameterTypeRequiredDescription
credentials_idcredentialYesMonday credential
querytextYesGraphQL query or mutation
variablesJSONNoOperation variables

Output: the full res.data Monday returns.

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."
}

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.

SituationRetryableWhat to do
Validation (GraphQL errors[])NoMonday returns the reason (missing column, invalid column_values, invalid board_id). Fix the data.
Authentication (UserUnauthorizedException / 401/403)NoInvalid token or no permission. Check the credential.
Complexity / rate limit (ComplexityException / 429)YesRetry-After is honored and retried automatically.
Server (5xx)YesTemporary Monday error; retried automatically.
Network / TimeoutYesTransient issue; retried automatically.