Monday.com v2
Provides integration with monday.com, a work management platform where teams organize projects, tasks and processes on boards. Each board holds items (rows) and columns such as status, owner and due date, plus updates, files, users, workspaces and docs.
The Node reads and changes monday.com data from a Workflow through the monday.com GraphQL API, using templates generated from your account's schema. Use it to read boards and items into other systems, to create or update items and column values from incoming data, and to attach files to items and updates.
Revision History
0.0.0.3 - Initial release.
Connection
The Connection holds the API token, the optional API version and the request timeout. It also stores the GraphQL schema that templates and document validation use.
| Property | Type | Description |
|---|---|---|
ApiToken |
Masked | A monday.com personal API token, or an app access token issued outside Flowgear. It is sent unchanged as the Authorization header. |
ApiVersion |
String | Optional API version in YYYY-MM form, for example 2026-10. Leave it empty to use monday.com's current version. A value in another format fails before any request is sent. |
TimeoutSeconds |
Integer | Seconds each monday.com request may take, from 1 to 3600. The default is 100. Increase it for large file uploads. |
Schema |
String | The GraphQL schema cached by Acquire Metadata. It is managed by Flowgear and hidden in the designer. |
Setup Notes
- In monday.com, open your avatar menu, select
Developers→My access tokens, and then copy your personal API token. The token has the same access as your monday.com user. - Create the
Connection, paste the token intoApiToken, and test theConnection. The test reads your own user profile. - Run
Acquire Metadataon theConnection.QueryandMutateand their templates need the cached schema. Run it again after you changeApiVersion, or when monday.com adds fields you want to use. - If you use an app access token instead of a personal token, grant the scopes your operations need, for example
boards:read,boards:writeandupdates:write. A missing scope fails withmissingRequiredPermissions.
Free monday.com accounts are limited to 1,000 API calls a day.
This Node runs on Cloud Runtimes.
Methods
The Node exposes one Method for GraphQL queries, one for GraphQL mutations, and one for file uploads. Query and Mutate templates are generated from the cached schema, one per monday.com root field, except deprecated fields.
Query
Runs a GraphQL query document that selects exactly one root field and returns one row per item. Paging is automatic.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | monday.com Connection with a cached schema. |
Query |
String | GraphQL document with one root query field. Templates populate it. Do not add page, limit or cursor to fields the Node pages, because the Node rejects them. |
Variables |
Object | Optional GraphQL variables. Lists can be supplied as comma-separated values. Search and filter fields in templates show examples but are not applied until you set them. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One row per returned item, shaped as monday.com returns it. Lists of objects give one row per element. A list of scalar values gives one row holding the list as comma-separated text. An object result such as me gives one row. A scalar result gives one row holding that field. |
- List fields with
pageandlimit, such asboards,items,usersandupdates, are read 100 rows at a time until a page returns fewer rows. - To read a board's items, select exactly one board, for example
boards(ids: [123]) { items_page { items { id name } } }. A document that readsitems_pagefor any other number of boards is rejected. Each item becomes a row, and board fields are not included.items_pageanditems_page_by_column_valuesare read 500 items at a time, following monday.com's cursor. - An empty result returns no rows and is not an error.
- The document must contain one
queryoperation and is validated against the cached schema before any request is sent. - The first page is read before the step completes, so an invalid document, an authentication failure or a monday.com error on the first page fails the step. A failure on a later page fails the step after the rows already returned. The Node also stops with an error after 10,000 pages, or if monday.com returns the same cursor twice.
Mutate
Runs a GraphQL mutation document that selects exactly one root field, once for each Items row.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | monday.com Connection with a cached schema. |
Query |
String | GraphQL document with one root mutation field. Templates populate it. |
Items |
Array | One GraphQL variables object per request. When the document's only variable is an input object, its fields form the row directly. To run a mutation without variables, send one empty row {}. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One row per Items row: the fields monday.com returned, plus a Flowgear object with IsSuccess, Message and Request. Request is a copy of the input row. Failed rows also include monday.com's errors when monday.com returns them. |
- A monday.com error for one row, such as an invalid board ID or column value, produces a failed row, and later rows still run. The
Messageuses the form<code>: <message>, for exampleInvalidBoardIdException: The board does not exist. Please check your board ID and try again. - A server error or rate limiting that persists after retries also produces a failed row, and later rows still run. A row with an invalid comma-separated list value produces a failed row without being sent.
- The first row runs before the step completes, so a timeout or network failure on it fails the step. From the second row on, a timeout or network failure produces a failed row instead; because the change may or may not have been applied, check the item before retrying it.
- An authentication failure, or reaching the monday.com daily call limit, stops the output.
- An empty
Itemsinput returns no rows and sends no requests. - Mutations that take a file, such as
add_file_to_columnandadd_file_to_update, are not available here; useUploadFile.
UploadFile
Uploads one file to an item's file column or to an update.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | monday.com Connection. |
OperationId |
String | add_file_to_column or add_file_to_update. Templates populate it. |
Options |
Object | ItemId and ColumnId for add_file_to_column, or UpdateId for add_file_to_update, plus FileName, the name monday.com shows for the file. |
Content |
Stream | The file to upload, up to 500 MB. |
| Return | Type | Description |
|---|---|---|
Response |
Object | The uploaded file's id, name, url, public_url, file_extension, file_size and created_at, plus a Flowgear object with IsSuccess, Message and Request. Request contains Options only; file content is never included. |
url requires monday.com access to the board. public_url is valid for one hour.
If monday.com rejects the upload, the Node returns a failed row with monday.com's errors. Missing Options values, an invalid OperationId, an authentication failure, the daily call limit, a timeout or a network failure fail the step instead. Rate-limited uploads are retried only when the Content stream can be read again from the start.
Usage Notes
- Lists of values are comma-separated text in templates, inputs and outputs. Wrap a value that contains a comma or quote in double quotes, and double any quotes inside it. Spaces are kept as entered. An empty value is an empty list, and
""is a list holding one empty value. Number and Boolean values must parse exactly, and Booleans must be lowercasetrueorfalse. Lists of objects stay as arrays. - Templates remove paging arguments and select
idandnameon the returned row type where it has them. Templates select only the first fields of each type; edit theQuerydocument to select others. - Templates leave out nested paged lists, such as a board's
updates_page, because the Node does not page lists inside a row. Select the plain list instead, for exampleupdates, which returns monday.com's first page. - The schema marks
idson theitemsfield as optional, but monday.com requires it. SetidsinVariables, or read a board's items throughboardsanditems_page. - monday.com rate limits apply. Rate-limited and locked requests are retried up to three times, waiting as monday.com asks for up to 60 seconds each time, or 1 second when monday.com gives no wait time. The daily call limit is not retried.
- An ID in
boards(ids:)that is not a number returns no boards rather than an error. - Some root fields fail on accounts without the related product or permission, for example
departmentswithUSER_UNAUTHORIZED. The Node returns monday.com's error.
Known Issues
- Fields that use their own paging objects, such as
audit_logs,board_automations,app_subscriptionsandnotifications, return their first page only. Lists nested inside a row, such as a board'sactivity_logs, are not paged either. - An upload to an update that does not exist returns a failed row with
DOWNSTREAM_SERVICE_ERROR: Internal server error, rather than a not-found message. - monday.com does not document how long an
items_pagecursor stays valid. A very slow downstream Workflow might outlive a cursor, in which case monday.com's error is returned.