Setu Recipes: reusable workflows across every app.Browse templates

Integrations / monday.com

monday.com

Work management: boards, items, column values and updates (GraphQL API).

10 actions OAuth 2 5 read4 write1 destructive Calls api.monday.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "monday" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
me:readIdentify the connected monday.com account
boards:readRead your boards, groups, columns and items
boards:writeCreate, change, archive and delete items on your boards
updates:readRead updates (comments) on items
updates:writePost updates (comments) on items

Actions

Archive itemwritemonday.archive_itemArchive an item and its subitems (hides it from the board; monday.com keeps archived items).

Needs scope: boards:write

InputTypeDescription
item_idstringRequiredItem ID
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.archive_item",
  input: {
    "item_id": "<item_id>"
  },
});
Create itemwritemonday.create_itemCreate an item on a board, optionally in a group and with initial column values given as a JSON string keyed by column ID (see get_board).

Needs scope: boards:write

InputTypeDescription
board_idstringRequiredBoard ID
group_idstringOptionalGroup ID from get_board (default: the first group)
item_namestringRequiredItem name
column_valuesstringOptionalJSON object string keyed by column ID, e.g. {"status": {"label": "Done"}, "date4": {"date": "2023-05-25"}}
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.create_item",
  input: {
    "board_id": "<board_id>",
    "item_name": "<item_name>"
  },
});
Post update on itemwritemonday.create_updatePost an update (a comment) on an item.

Needs scope: updates:write

InputTypeDescription
item_idstringRequiredItem ID
bodystringRequiredUpdate text (HTML allowed)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.create_update",
  input: {
    "item_id": "<item_id>",
    "body": "<body>"
  },
});
Delete itemdestructivemonday.delete_itemDelete an item and its subitems from a board.

Needs scope: boards:write

InputTypeDescription
item_idstringRequiredItem ID
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.delete_item",
  input: {
    "item_id": "<item_id>"
  },
  confirm: true,
});
Get board structurereadmonday.get_boardGet a board's columns (IDs, titles, types) and groups. Use it to learn the column IDs needed to create or update items.

Needs scope: boards:read

InputTypeDescription
board_idstringRequiredBoard ID from list_boards
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.get_board",
  input: {
    "board_id": "<board_id>"
  },
});
Get items by IDreadmonday.get_itemsGet up to 100 specific items by ID, including their board, group, URL and column values as text.

Needs scope: boards:read

InputTypeDescription
idsarray of stringRequiredItem IDs (up to 100)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.get_items",
  input: {
    "ids": []
  },
});
List boardsreadmonday.list_boardsList the boards the user can access (most recently used first) with their IDs, names and state.

Needs scope: boards:read

InputTypeDescription
limitintegerOptionalHow many boards to return (default 25)
pageintegerOptionalPage number, starting at 1
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.list_boards",
  input: {},
});
List items on a boardreadmonday.list_itemsList items on a board with their group and column values as text. Returns one page and a cursor; pass the cursor back to get the next page.

Needs scope: boards:read

InputTypeDescription
board_idstringRequiredBoard ID from list_boards
limitintegerOptionalItems per page (default 25, maximum 500)
cursorstringOptionalCursor from the previous page
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.list_items",
  input: {
    "board_id": "<board_id>"
  },
});
List item updatesreadmonday.list_updatesList the updates (comments) on an item, newest first, as plain text with author and time.

Needs scope: updates:read

InputTypeDescription
item_idstringRequiredItem ID
limitintegerOptionalHow many updates to return (default 25, maximum 100)
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.list_updates",
  input: {
    "item_id": "<item_id>"
  },
});
Update item columnswritemonday.update_item_columnsChange several column values of an item at once. column_values is a JSON string keyed by column ID, e.g. {"status": {"index": 1}}.

Needs scope: boards:write

InputTypeDescription
board_idstringRequiredID of the board that contains the item
item_idstringRequiredItem ID
column_valuesstringRequiredJSON object string keyed by column ID, e.g. {"status":{"index":1},"date4":{"date":"2021-01-01"}}
TypeScript
await setu.execute({
  userId: "user_1",
  action: "monday.update_item_columns",
  input: {
    "board_id": "<board_id>",
    "item_id": "<item_id>",
    "column_values": "<column_values>"
  },
});