Board
Access and manage boards via the client.board resource.
Methods
query
Retrieves boards from your account.
client.board.query(args: {}, select: DEFAULT_SELECT)Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args | Hash | {} | Query arguments (see boards query) |
select | Array | ["id", "name", "description"] | Fields to retrieve |
Returns: Monday::Response
Common args:
ids- Array of board IDslimit- Number of results (default: 25)page- Page numberstate-:active,:archived,:deleted, or:allboard_kind-:public,:private, or:shareworkspace_ids- Array of workspace IDsorder_by-:created_ator:used_at
Example:
response = client.board.query(
args: { ids: [123, 456], state: :active },
select: ["id", "name", "url"]
)
boards = response.body.dig("data", "boards")GraphQL: query { boards { ... } }
create
Creates a new board.
client.board.create(args: {}, select: DEFAULT_SELECT)Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args | Hash | {} | Creation arguments (required) |
select | Array | ["id", "name", "description"] | Fields to retrieve |
Required args:
board_name- Stringboard_kind- Symbol (:public,:private, or:share)
Optional args:
description- Stringworkspace_id- Integerfolder_id- Integertemplate_id- Integer
Returns: Monday::Response
Example:
response = client.board.create(
args: {
board_name: "New Board",
board_kind: :public
}
)
board = response.body.dig("data", "create_board")GraphQL: mutation { create_board { ... } }
update
Updates a board's attributes.
client.board.update(args: {})Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args | Hash | {} | Update arguments (required) |
Required args:
board_id- Integerboard_attribute- Symbol (:name,:description, or:communication)new_value- String
Returns: Monday::Response
The response body contains a JSON string at response.body["data"]["update_board"] that must be parsed:
result = JSON.parse(response.body["data"]["update_board"])
# => { "success" => true, "undo_data" => "..." }Example:
response = client.board.update(
args: {
board_id: 123,
board_attribute: :name,
new_value: "Updated Name"
}
)
result = JSON.parse(response.body["data"]["update_board"])GraphQL: mutation { update_board { ... } }
duplicate
Duplicates an existing board.
client.board.duplicate(args: {}, select: DEFAULT_SELECT)Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args | Hash | {} | Duplication arguments (required) |
select | Array | ["id", "name", "description"] | Fields to retrieve |
Required args:
board_id- Integerduplicate_type- Symbol
Duplicate types:
:duplicate_board_with_structure- Structure only:duplicate_board_with_pulses- Structure + items:duplicate_board_with_pulses_and_updates- Structure + items + updates
Optional args:
board_name- Stringworkspace_id- Integerfolder_id- Integerkeep_subscribers- Boolean
Returns: Monday::Response
The duplicated board is nested under board:
board = response.body.dig("data", "duplicate_board", "board")Example:
response = client.board.duplicate(
args: {
board_id: 123,
duplicate_type: :duplicate_board_with_structure
}
)
board = response.body.dig("data", "duplicate_board", "board")GraphQL: mutation { duplicate_board { board { ... } } }
See: monday.com duplicate_board
archive
Archives a board.
client.board.archive(board_id, select: ["id"])Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_id | Integer | - | Board ID to archive (required) |
select | Array | ["id"] | Fields to retrieve |
Returns: Monday::Response
Example:
response = client.board.archive(123)
board = response.body.dig("data", "archive_board")GraphQL: mutation { archive_board { ... } }
delete
Permanently deletes a board.
client.board.delete(board_id, select: ["id"])Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_id | Integer | - | Board ID to delete (required) |
select | Array | ["id"] | Fields to retrieve |
Returns: Monday::Response
Permanent Deletion
This operation cannot be undone. All board data will be permanently lost.
Example:
response = client.board.delete(123)
board = response.body.dig("data", "delete_board")GraphQL: mutation { delete_board { ... } }
items_page
Retrieves paginated items from a board using cursor-based pagination.
client.board.items_page(
board_ids:,
limit: 25,
cursor: nil,
query_params: nil,
select: DEFAULT_PAGINATED_SELECT
)Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_ids | Integer or Array | - | Board ID(s) to query (required) |
limit | Integer | 25 | Items per page (max: 500) |
cursor | String | nil | Pagination cursor |
query_params | Hash | nil | Query filters with rules and operators |
select | Array | ["id", "name"] | Item fields to retrieve |
Returns: Monday::Response
The response contains items and cursor:
items_page = response.body.dig("data", "boards", 0, "items_page")
items = items_page["items"]
cursor = items_page["cursor"]Example:
# First page
response = client.board.items_page(
board_ids: 123,
limit: 50
)
items_page = response.body.dig("data", "boards", 0, "items_page")
cursor = items_page["cursor"]
# Next page
response = client.board.items_page(
board_ids: 123,
cursor: cursor
)GraphQL: query { boards { items_page { ... } } }
See:
delete_subscribers
Deprecated
This method is deprecated and will be removed in v2.0.0. Use client.user.delete_from_board instead.
Deletes subscribers from a board.
client.board.delete_subscribers(board_id, user_ids, select: ["id"])Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_id | Integer | - | Board ID (required) |
user_ids | Integer[] | - | User IDs to remove (required) |
select | Array | ["id"] | Fields to retrieve |
Returns: Monday::Response
GraphQL: mutation { delete_subscribers_from_board { ... } }
Response Structure
All methods return a Monday::Response object. Access data using:
response.success? # => true/false
response.status # => 200
response.body # => Hash with GraphQL responseTypical Response Pattern
response = client.board.query(args: { ids: [123] })
if response.success?
boards = response.body.dig("data", "boards")
# Work with boards
else
# Handle error
endConstants
DEFAULT_SELECT
Default fields returned by query, create, and duplicate:
["id", "name", "description"]DEFAULT_PAGINATED_SELECT
Default fields returned by items_page:
["id", "name"]Error Handling
See the Error Handling guide for common errors and how to handle them.