From 565058107d4f3e257ce0a6061350a5627cc3e667 Mon Sep 17 00:00:00 2001 From: Lorenzo Paoliani Date: Thu, 10 Jul 2025 14:38:49 +0100 Subject: [PATCH 1/7] Add change item position tool to MCP --- .../core/tools/platform-api-tools/index.ts | 2 ++ .../src/monday-graphql/generated/graphql.ts | 23 ++++++++++++++ .../src/monday-graphql/queries.graphql.ts | 23 ++++++++++++++ .../src/monday-graphql/schema.graphql | 30 +++++++++++++++++++ 4 files changed, 78 insertions(+) diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts index b8398894..7f7ed1f0 100644 --- a/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/index.ts @@ -1,6 +1,7 @@ import { AllMondayApiTool } from './all-monday-api-tool'; import { BaseMondayApiToolConstructor } from './base-monday-api-tool'; import { ChangeItemColumnValuesTool } from './change-item-column-values-tool'; +import { ChangeItemPositionTool } from './change-item-position-tool'; import { CreateBoardTool } from './create-board-tool'; import { CreateColumnTool } from './create-column-tool'; import { CreateCustomActivityTool } from './create-custom-activity-tool'; @@ -26,6 +27,7 @@ export const allGraphqlApiTools: BaseMondayApiToolConstructor[] = [ GetBoardSchemaTool, GetUsersTool, ChangeItemColumnValuesTool, + ChangeItemPositionTool, MoveItemToGroupTool, CreateBoardTool, CreateColumnTool, diff --git a/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts b/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts index 70954ddc..ff965725 100644 --- a/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts +++ b/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts @@ -2151,6 +2151,8 @@ export type Mutation = { change_column_title?: Maybe; /** Change an item's column value. */ change_column_value?: Maybe; + /** Change the position of an item in a board. */ + change_item_position?: Maybe; /** Changes the column values of a specific item. */ change_multiple_column_values?: Maybe; /** Change an item's column with simple value. */ @@ -2422,6 +2424,16 @@ export type MutationChange_Column_ValueArgs = { }; +/** Update your monday.com data. */ +export type MutationChange_Item_PositionArgs = { + group_id?: InputMaybe; + group_top?: InputMaybe; + item_id: Scalars['ID']['input']; + position_relative_method?: InputMaybe; + relative_to?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationChange_Multiple_Column_ValuesArgs = { board_id: Scalars['ID']['input']; @@ -4812,6 +4824,17 @@ export type CreateTimelineItemMutationVariables = Exact<{ export type CreateTimelineItemMutation = { __typename?: 'Mutation', create_timeline_item?: { __typename?: 'TimelineItem', id?: string | null, title?: string | null, content?: string | null, created_at: any, custom_activity_id?: string | null, type?: string | null } | null }; +export type ChangeItemPositionMutationVariables = Exact<{ + item_id: Scalars['ID']['input']; + relative_to?: InputMaybe; + position_relative_method?: InputMaybe; + group_id?: InputMaybe; + group_top?: InputMaybe; +}>; + + +export type ChangeItemPositionMutation = { __typename?: 'Mutation', change_item_position?: { __typename?: 'Item', id: string, group?: { __typename?: 'Group', id: string } | null } | null }; + export type FetchCustomActivityQueryVariables = Exact<{ [key: string]: never; }>; diff --git a/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts b/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts index 29845863..cc7e18f9 100644 --- a/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts +++ b/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts @@ -417,6 +417,29 @@ export const createTimelineItem = gql` } `; +export const changeItemPosition = gql` + mutation changeItemPosition( + $item_id: ID! + $relative_to: ID + $position_relative_method: PositionRelative + $group_id: String + $group_top: Boolean + ) { + change_item_position( + item_id: $item_id + relative_to: $relative_to + position_relative_method: $position_relative_method + group_id: $group_id + group_top: $group_top + ) { + id + group { + id + } + } + } +`; + export const fetchCustomActivity = gql` query fetchCustomActivity { custom_activity { diff --git a/packages/agent-toolkit/src/monday-graphql/schema.graphql b/packages/agent-toolkit/src/monday-graphql/schema.graphql index 6a87c1f7..694fe079 100644 --- a/packages/agent-toolkit/src/monday-graphql/schema.graphql +++ b/packages/agent-toolkit/src/monday-graphql/schema.graphql @@ -4701,6 +4701,36 @@ type Mutation { value: String ): Item + """ + Change the position of an item in a board. + """ + change_item_position( + """ + The item's unique identifier. + """ + item_id: ID! + + """ + The ID of the item to position relative to. + """ + relative_to: ID + + """ + The position relative method to another item (before_at / after_at). + """ + position_relative_method: PositionRelative + + """ + The group's unique identifier to move the item to. + """ + group_id: String + + """ + Whether to position the item at the top of the group. + """ + group_top: Boolean + ): Item + """ Clear an item's updates. """ From 287e10cf87a1d3d9228dbdbb5eca9be93d5c64ef Mon Sep 17 00:00:00 2001 From: Lorenzo Paoliani Date: Thu, 10 Jul 2025 14:39:37 +0100 Subject: [PATCH 2/7] Add tool description --- .../change-item-position-tool.ts | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts new file mode 100644 index 00000000..bacd7327 --- /dev/null +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts @@ -0,0 +1,101 @@ +import { z } from 'zod'; +import { + ChangeItemPositionMutation, + ChangeItemPositionMutationVariables, + PositionRelative, +} from '../../../monday-graphql/generated/graphql'; +import { changeItemPosition } from '../../../monday-graphql/queries.graphql'; +import { ToolInputType, ToolOutputType, ToolType } from '../../tool'; +import { BaseMondayApiTool, createMondayApiAnnotations } from './base-monday-api-tool'; + +export const changeItemPositionToolSchema = { + itemId: z.number().describe('The ID of the item to be moved'), + relativeTo: z + .number() + .optional() + .describe('The ID of the item to position relative to (required when using position_relative_method)'), + positionRelativeMethod: z + .enum(['after_at', 'before_at']) + .optional() + .describe('The position relative method to another item (after_at / before_at)'), + groupId: z + .string() + .optional() + .describe('The group ID to move the item to (required when using group_top)'), + groupTop: z + .boolean() + .optional() + .describe('Whether to position the item at the top of the group (true) or bottom (false)'), +}; + +export const changeItemPositionInBoardToolSchema = { + boardId: z.number().describe('The ID of the board that contains the item to be moved'), + ...changeItemPositionToolSchema, +}; + +export type ChangeItemPositionToolInput = + | typeof changeItemPositionToolSchema + | typeof changeItemPositionInBoardToolSchema; + +export class ChangeItemPositionTool extends BaseMondayApiTool { + name = 'change_item_position'; + type = ToolType.WRITE; + annotations = createMondayApiAnnotations({ + title: 'Change Item Position', + readOnlyHint: false, + destructiveHint: false, + idempotentHint: true, + }); + + getDescription(): string { + return 'Change the position of an item in a monday.com board. You can move an item relative to another item (before/after) or to the top/bottom of a group.'; + } + + getInputSchema(): ChangeItemPositionToolInput { + if (this.context?.boardId) { + return changeItemPositionToolSchema; + } + + return changeItemPositionInBoardToolSchema; + } + + protected async executeInternal( + input: ToolInputType, + ): Promise> { + const boardId = + this.context?.boardId ?? (input as ToolInputType).boardId; + + // Validate the input based on the positioning method + if (input.positionRelativeMethod && !input.relativeTo) { + throw new Error('relativeTo is required when using positionRelativeMethod'); + } + + if (input.groupTop !== undefined && !input.groupId) { + throw new Error('groupId is required when using groupTop'); + } + + if (!input.positionRelativeMethod && !input.groupId) { + throw new Error('Either positionRelativeMethod with relativeTo or groupId with groupTop must be provided'); + } + + const variables: ChangeItemPositionMutationVariables = { + item_id: input.itemId.toString(), + relative_to: input.relativeTo?.toString(), + position_relative_method: input.positionRelativeMethod as PositionRelative, + group_id: input.groupId, + group_top: input.groupTop, + }; + + const res = await this.mondayApi.request(changeItemPosition, variables); + + if (!res.change_item_position) { + throw new Error('Failed to change item position'); + } + + return { + content: `Item ${res.change_item_position.id} successfully moved to new position${ + res.change_item_position.group?.id ? ` in group ${res.change_item_position.group.id}` : '' + }`, + }; + } +} \ No newline at end of file From 68f5a43a5bc967ec72ff9f4ac8a0d0b4361f4737 Mon Sep 17 00:00:00 2001 From: Lorenzo Paoliani Date: Thu, 10 Jul 2025 14:41:14 +0100 Subject: [PATCH 3/7] prettier fix --- .../platform-api-tools/change-item-position-tool.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts index bacd7327..ba891a06 100644 --- a/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts @@ -18,10 +18,7 @@ export const changeItemPositionToolSchema = { .enum(['after_at', 'before_at']) .optional() .describe('The position relative method to another item (after_at / before_at)'), - groupId: z - .string() - .optional() - .describe('The group ID to move the item to (required when using group_top)'), + groupId: z.string().optional().describe('The group ID to move the item to (required when using group_top)'), groupTop: z .boolean() .optional() @@ -59,9 +56,7 @@ export class ChangeItemPositionTool extends BaseMondayApiTool, - ): Promise> { + protected async executeInternal(input: ToolInputType): Promise> { const boardId = this.context?.boardId ?? (input as ToolInputType).boardId; @@ -98,4 +93,4 @@ export class ChangeItemPositionTool extends BaseMondayApiTool Date: Fri, 11 Jul 2025 15:22:58 +0100 Subject: [PATCH 4/7] Switch MCP to using the dev version of the API to always get latest changes --- packages/agent-toolkit/fetch-schema.sh | 4 +- .../src/monday-graphql/schema.graphql | 14953 +++++++++------- 2 files changed, 8498 insertions(+), 6459 deletions(-) diff --git a/packages/agent-toolkit/fetch-schema.sh b/packages/agent-toolkit/fetch-schema.sh index 7b3e822b..4697f1d9 100755 --- a/packages/agent-toolkit/fetch-schema.sh +++ b/packages/agent-toolkit/fetch-schema.sh @@ -1,2 +1,4 @@ #!/bin/bash - curl "https://api.monday.com/v2/get_schema?format=sdl&version=stable" -o src/monday-graphql/schema.graphql \ No newline at end of file +API_VERSION="dev" +SCHEMA_PATH="src/monday-graphql/schema.graphql" +curl --fail "https://api.monday.com/v2/get_schema?format=sdl&version=${API_VERSION}" -o ${SCHEMA_PATH} \ No newline at end of file diff --git a/packages/agent-toolkit/src/monday-graphql/schema.graphql b/packages/agent-toolkit/src/monday-graphql/schema.graphql index 694fe079..55759cda 100644 --- a/packages/agent-toolkit/src/monday-graphql/schema.graphql +++ b/packages/agent-toolkit/src/monday-graphql/schema.graphql @@ -1,3052 +1,5751 @@ -""" -Exposes a URL that specifies the behavior of this scalar. -""" -directive @specifiedBy( - """ - The URL that specifies the behavior of this scalar. +directive @policy(policies: [[policy__Policy!]!]!) on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM + +"""Get your data from monday.com""" +type Query { """ - url: String! -) on SCALAR + Retrieve audit logs for your Monday account. You can + filter logs by event types, user ID, IP address and start and end date. + + Here is an example audit log query: + + query { + audit_logs( + user_id: "1234567890" + events: ["login", "logout"] + ip_address: "123.123.123.123" + start_time: "2021-01-01T00:00:00Z" + end_time: "2021-01-01T23:59:59Z" + limit: 100 + page: 1 + ) { + logs { + timestamp + event + ip_address + user { + id + name + email + } + activity_metadata + } + pagination { + page + page_size + has_more_pages + next_page_number + } + } + } + + To get the list of all possible event types, you should use the audit_event_catalogue query like this: + + query { + audit_event_catalogue { + name + description + metadata_details + } + } + """ + audit_logs( + """Number of items to get, the default is 25.""" + limit: Int = 25 -""" -Indicates exactly one field must be supplied and this field must not be `null`. -""" -directive @oneOf on INPUT_OBJECT + """Page number to get, starting at 1.""" + page: Int = 1 -""" -Your monday.com account -""" -type Account { - """ - The number of active member users in the account - """ - active_members_count: Int + """ + Filter logs by this user ID (which appears as an integer value). If you have an email + address, you can get the user ID by looking up the user's email address through the + Users API. + """ + user_id: ID - """ - The account's country two-letter code in ISO3166 format - """ - country_code: String + """ + Filter logs by specific event types. Returns + logs that match any of the event types in the provided list. + """ + events: [String!] - """ - The first day of the week for the account (sunday / monday) - """ - first_day_of_the_week: FirstDayOfTheWeek! + """Filter logs that have this IP address""" + ip_address: String - """ - The account's unique identifier. - """ - id: ID! + """ + Filter for logs from this date and time onwards. + Timestamps must be in ISO 8601 format and are in the UTC timezone. + """ + start_time: ISO8601DateTime - """ - The account's logo. - """ - logo: String + """ + Filter for logs up to this date and time. + Timestamps must be in ISO 8601 format and are in the UTC timezone. + """ + end_time: ISO8601DateTime + ): AuditLogPage """ - The account's name. + Lists all the audit event types that can be logged and information about them. + + Example query: + + query { + audit_event_catalogue { + name + description + metadata_details + } + } """ - name: String! + audit_event_catalogue: [AuditEventCatalogueEntry!] - """ - The account's payment plan. - """ - plan: Plan + """Get workflow by ID""" + get_live_workflow( + """Workflow numeric ID (supports both integer and bigint)""" + id: String! + ): Workflow - """ - The account's active products - """ - products: [AccountProduct] + """Get list of live workflows with pagination""" + get_live_workflows( + """Host instance ID (e.g., board ID) to filter workflows""" + hostInstanceId: String! - """ - Show weekends in timeline - """ - show_timeline_weekends: Boolean! + """Host type for filtering workflows""" + hostType: HostType! - """ - The product the account signed up to first. - """ - sign_up_product_kind: String + """Pagination parameters""" + pagination: PaginationInput + ): [Workflow!] - """ - The account's slug. - """ - slug: String! + """List of all supported workflow variable kinds with their json schemas""" + get_workflow_variable_schemas: [WorkflowVariableSchema!]! """ - The account's tier. + List of all supported workflow block next mapping kinds with their json schemas """ - tier: String -} + get_workflow_block_next_mapping_schemas: [WorkflowBlockNextMappingSchema!]! -""" -The product a workspace is used in. -""" -type AccountProduct { """ - The account product default workspace id + Get blocks for the current user. + + Engine usage when building live workflows: + • Always invoke this query first to retrieve the catalogue of workflow steps available to the account. + • Each element in `blocks.blocks` contains an `id` – this is the canonical `blockReferenceId` that must be supplied inside `WorkflowBlockInput.blockReferenceId` when calling `create_live_workflow`. + • The `kind` field tells you whether the block is a TRIGGER, ACTION or CONDITION, which helps decide its placement in the workflow. """ - default_workspace_id: ID + blocks( + """Input parameters for getting blocks""" + input: GetBlocksInput + ): BlocksResult """ - The account product id + Fetch remote options for a field type. + + Engine usage when building live workflows: + • Certain block fields declare that their value must be chosen from a dynamic (remote) list – for example, status labels, column identifiers, users, etc. + • Before constructing the corresponding `WorkflowVariableInput`, call this query with the proper context parameters (fieldTypeReferenceId, boardId, columnId, etc.). + • Inspect the returned array and pick the desired option's `value`; place that value in `WorkflowVariableInput.sourceMetadata.value` and mark the variable's `sourceKind` as `REMOTE`. + • This ensures the workflow always references an up-to-date, valid option. """ - id: ID + remote_options(input: RemoteOptionsInput!): RemoteOptionsResponse """ - The account product kind (core / marketing / crm / software / - projectManagement / project_management / service / forms / whiteboard). + Returns connections for the authenticated user. Supports filtering, pagination, ordering, and partial-scope options. """ - kind: String -} + connections( + """Include connections that have automations attached.""" + withAutomations: Boolean -""" -A role in the account -""" -type AccountRole { - """ - The ID of the role - """ - id: ID + """Filter connections by their state (e.g., active, inactive).""" + connectionState: String - """ - The name of the role - """ - name: String + """Validate connection state before returning the result.""" + withStateValidation: Boolean - """ - The type of the role - """ - roleType: String -} + """Page index for offset-based pagination (starting from 1).""" + page: Int -""" -Error that occurred during activation. -""" -type ActivateUsersError { - """ - The error message. - """ - message: String + """ + Number of records to return per page when using offset-based pagination. + """ + pageSize: Int - """ - The error code. - """ - code: ActivateUsersErrorCode + """Ordering of returned connections (e.g., "createdAt", "-createdAt").""" + order: String - """ - The id of the user that caused the error. - """ - user_id: ID -} + """Include connections created with partial scopes.""" + withPartialScopes: Boolean -""" -Error codes for activating users. -""" -enum ActivateUsersErrorCode { - EXCEEDS_BATCH_LIMIT - INVALID_INPUT - USER_NOT_FOUND - CANNOT_UPDATE_SELF - FAILED -} + """ + Cursor-based pagination parameters: specify "limit" and optionally "lastId". + """ + pagination: PaginationInput + ): [Connection!] -""" -Result of activating users. -""" -type ActivateUsersResult { - """ - The users that were activated. - """ - activated_users: [User!] + """Returns connections that belong to the authenticated user.""" + user_connections( + """Include connections that have automations attached.""" + withAutomations: Boolean - """ - Errors that occurred during activation. - """ - errors: [ActivateUsersError!] -} + """Validate connection state before returning the result.""" + withStateValidation: Boolean -""" -An activity log event -""" -type ActivityLogType { - account_id: String! - created_at: String! + """Page index for offset-based pagination (starting from 1).""" + page: Int - """ - The item's column values in string form. - """ - data: String! - entity: String! - event: String! - id: String! - user_id: String! -} + """ + Number of records to return per page when using offset-based pagination. + """ + pageSize: Int -type AppFeatureType { - id: ID! - created_at: Date - updated_at: Date + """Ordering of returned connections (e.g., "createdAt", "-createdAt").""" + order: String - """ - The name of the app feature - """ - name: String + """ + Cursor-based pagination parameters: specify "limit" and optionally "lastId". + """ + pagination: PaginationInput + ): [Connection!] - """ - The app feature app id - """ - app_id: ID + """Returns all connections for the account. Requires admin privileges.""" + account_connections( + """Include connections that have automations attached.""" + withAutomations: Boolean - """ - The type of the app feature - """ - type: String + """Validate connection state before returning the result.""" + withStateValidation: Boolean - """ - The data of the app feature - """ - data: JSON -} + """Page index for offset-based pagination (starting from 1).""" + page: Int -""" -An app install details. -""" -type AppInstall { - """ - The app's unique identifier. - """ - app_id: ID! + """ + Number of records to return per page when using offset-based pagination. + """ + pageSize: Int - """ - An app installer's account details. - """ - app_install_account: AppInstallAccount! + """Ordering of returned connections (e.g., "createdAt", "-createdAt").""" + order: String - """ - An app installer's user details - """ - app_install_user: AppInstallUser! + """ + Cursor-based pagination parameters: specify "limit" and optionally "lastId". + """ + pagination: PaginationInput + ): [Connection!] - """ - The app's version details - """ - app_version: AppVersion + """Fetch a single connection by its unique ID.""" + connection( + """Unique identifier of the connection.""" + id: Int! + ): Connection - """ - The required and approved scopes for an app install. - """ - permissions: AppInstallPermissions + """Get board IDs that are linked to a specific connection.""" + connection_board_ids( + """Unique identifier of the connection.""" + connectionId: Int! + ): [Int!] """ - Installation date + Retrieves the JSON schema definition for a specific create view type. + Use this query before calling create_view mutation to understand the structure and validation rules for the settings parameter. + The schema defines what properties are available when creating views of a specific type. """ - timestamp: String -} + get_view_schema_by_type( + """ + Specifies which view type to retrieve the schema for. Valid values include + "DashboardBoardView", "TableBoardView", "FormBoardView", "AppBoardView", etc. Each type has different available properties and validation rules. + """ + type: ViewKind! -""" -An app installer's account details -""" -type AppInstallAccount { - """ - The app's installer account id. - """ - id: ID! -} + """ + Specifies the type of mutation to retrieve the schema for. Valid values include + "create" or "update". + """ + mutationType: ViewMutationKind! + ): JSON + updates( + """Number of items to get, the default is 25.""" + limit: Int = 25 -""" -The required and approved scopes for an app install. -""" -type AppInstallPermissions { - """ - The scopes approved by the account admin - """ - approved_scopes: [String!]! + """Page number to get, starting at 1.""" + page: Int = 1 - """ - The scopes required by the latest live version - """ - required_scopes: [String!]! -} + """A list of items unique identifiers.""" + ids: [ID!] -""" -An app installer's user details -""" -type AppInstallUser { - """ - The app's installer user id. - """ - id: ID -} + """ + Filter updates created from this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm). + """ + from_date: String -""" -The app monetization status for the current account -""" -type AppMonetizationStatus { - """ - Is apps monetization is supported for the account - """ - is_supported: Boolean! -} + """ + Filter updates created up to this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm). + """ + to_date: String + ): [Update!] + custom_activity( + """The ids of the custom activities to fetch""" + ids: [String!] -""" -The app monetization information for the current account -""" -type AppsMonetizationInfo { - """ - The number of seats in the account, across all products, used to match the - app’s subscription among apps that utilize the seats-based monetization method - """ - seats_count: Int -} + """The name of the custom activity, case insensitive and partial match""" + name: String -""" -The account subscription details for the app. -""" -type AppSubscription { - """ - The type of the billing period [monthly/yearly]. - """ - billing_period: String + """The icon of the custom activity""" + icon_id: CustomActivityIcon - """ - The number of days left until the subscription ends. - """ - days_left: Int + """The color of the custom activity""" + color: CustomActivityColor + ): [CustomActivity!] + timeline_item( + """The id of the timeline item to delete""" + id: ID! + ): TimelineItem - """ - Is the subscription a trial - """ - is_trial: Boolean + """Fetches timeline items for a given item""" + timeline( + """The id of the item""" + id: ID! + ): TimelineResponse - """ - Maximum number of units for current subscription plan. - """ - max_units: Int + """Get the entity snapshots""" + get_entity_snapshots( + """The id of the migration job.""" + migrationJobId: String! - """ - The subscription plan id (on the app's side). - """ - plan_id: String! + """The statuses to filter by""" + snapshotStatuses: [SnapshotStatus!] - """ - The pricing version of subscription plan. - """ - pricing_version: Int + """The ids of the entities to filter by""" + entityIds: [String!] + ): [GetSnapshotsQueryResults!] + get_entities_for_migration(migrationJobId: String!): [GetEntitiesForMigrationResult!] - """ - The subscription renewal date. - """ - renewal_date: Date! -} + """Get managed column data.""" + managed_column( + """The managed column ids.""" + id: [String!] -""" -Subscription object -""" -type AppSubscriptionDetails { - """ - The ID of an account - """ - account_id: Int! + """The state of the managed column.""" + state: [ManagedColumnState!] + ): [ManagedColumn!] """ - The ID of a pricing plan + Retrieves the JSON schema definition for a specific column type. Use this query before calling update_column mutation to understand the structure and validation rules for the defaults parameter. The schema defines what properties are available when updating columns of a specific type. """ - plan_id: String! + get_column_type_schema( + """ + Specifies which column type to retrieve the schema for. Valid values include "text", "status", "date", "numbers", etc. Each type has different available properties and validation rules. + """ + type: ColumnType! + ): JSON - """ - The ID of a pricing version - """ - pricing_version_id: Int! + """Get the required column IDs for a board""" + validations( + id: ID! - """ - The monthly price of the product purchased in the given currency, after applying discounts - """ - monthly_price: Float! + """The type of entity for validations the default is board""" + type: ValidationsEntityType = board + ): Validations - """ - The currency, in which the product was purchased - """ - currency: String! - period_type: SubscriptionPeriodType! + """Get all personal list items by list ID""" + favorites: [HierarchyObjectItem!] + marketplace_app_discounts( + """The id of an app""" + app_id: ID! + ): [MarketplaceAppDiscount!]! + app_subscriptions( + """The ID of an app""" + app_id: ID! + status: SubscriptionStatus - """ - The date the active subscription is set to renew. Equals to null for inactive subscriptions - """ - renewal_date: String + """The ID of an account""" + account_id: Int - """ - The date the the inactive subscription ended. Equals to null for active subscriptions - """ - end_date: String - status: SubscriptionStatus! - discounts: [SubscriptionDiscount!]! + """ + The value, which identifies the exact point to continue fetching the subscriptions from + """ + cursor: String - """ - The number of days left until the subscription ends - """ - days_left: Int! -} + """The size of the requested page""" + limit: Int + ): AppSubscriptions! -""" -The Operations counter response for the app action. -""" -type AppSubscriptionOperationsCounter { - """ - The account subscription details for the app. - """ - app_subscription: AppSubscription + """Search for marketplace apps using vector similarity""" + marketplace_vector_search( + """ + The input for the marketplace search, including the search query, limit, and offset + """ + input: MarketplaceSearchInput! + ): MarketplaceSearchResults! - """ - The new counter value. - """ - counter_value: Int + """Search for marketplace apps using full-text search""" + marketplace_fulltext_search( + """ + The input for the marketplace search, including the search query, limit, and offset + """ + input: MarketplaceSearchInput! + ): MarketplaceSearchResults! """ - Operations name. + Search for marketplace apps using a combination of vector and full-text search """ - kind: String! + marketplace_hybrid_search( + """ + The input for the marketplace search, including the search query, limit, and offset + """ + input: MarketplaceSearchInput! + ): MarketplaceSearchResults! - """ - Window key. - """ - period_key: String -} + """Search for marketplace apps using AI""" + marketplace_ai_search( + """ + The input for the marketplace search, including the search query, limit, and offset + """ + input: MarketplaceAiSearchInput! + ): MarketplaceAiSearchResults! -type AppSubscriptions { - subscriptions: [AppSubscriptionDetails!]! + """Get an app by ID.""" + app( + """The ID of the app""" + id: ID! + ): AppType - """ - Total number of subscriptions matching the given parameters - """ - total_count: Int! + """Get the connected account's information.""" + account: Account - """ - The value, which identifies the exact point to continue fetching the subscriptions from - """ - cursor: String -} + """Get a collection of installs of an app.""" + app_installs( + """The id of an account to filter app installs by.""" + account_id: ID -type AppType { - id: ID! - created_at: Date - updated_at: Date + """The id of an application.""" + app_id: ID! - """ - the app name - """ - name: String + """Number of items to get, the default is 25. Max: 100""" + limit: Int = 25 - """ - the api app id - """ - api_app_id: ID + """Page number to get, starting at 1.""" + page: Int = 1 + ): [AppInstall] """ - the api app id + Get the current app subscription. Note: This query does not work in the playground """ - client_id: String + app_subscription: [AppSubscription] - """ - the app kid - """ - kind: String + """Get operations counter current value""" + app_subscription_operations( + """ + Operation name. A string of up to 14 characters containing alphanumeric characters and the symbols -_ + """ + kind: String = "global" + ): AppSubscriptionOperationsCounter - """ - the app state - """ - state: String + """Get apps monetization information for an account""" + apps_monetization_info: AppsMonetizationInfo - """ - the app user id - """ - user_id: ID + """Get apps monetization status for an account""" + apps_monetization_status: AppMonetizationStatus - """ - The apps' features - """ - features( - """ - Number of items to get, the default is 25. - """ + """Get a collection of assets by ids.""" + assets( + """Ids of the assets/files you want to get""" + ids: [ID!]! + ): [Asset] + + """Get a collection of boards.""" + boards( + """The board's kind (public / private / share)""" + board_kind: BoardKind + + """A list of boards unique identifiers.""" + ids: [ID!] + + """Boolean that brings the latest data""" + latest: Boolean + + """Number of items to get, the default is 25.""" limit: Int = 25 + """Property to order by (created_at / used_at).""" + order_by: BoardsOrderBy + + """Page number to get, starting at 1.""" + page: Int = 1 + """ - Page number to get, starting at 1. + The state of the board (all / active / archived / deleted), the default is active. """ - page: Int = 1 - ): [AppFeatureType!] -} + state: State = active -""" -An app's version details. -""" -type AppVersion { - """ - The app's major version. - """ - major: Int! + """A list of workspace ids the boards are contained in.""" + workspace_ids: [ID] + ): [Board] - """ - The app's minor version. - """ - minor: Int! + """Get the complexity data of your queries.""" + complexity: Complexity - """ - The app's patch version. - """ - patch: Int! + """Get a collection of docs.""" + docs( + """A list of document unique identifiers.""" + ids: [ID!] - """ - The app's version text - """ - text: String! + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - The app's version type. - """ - type: String -} + """A list of associated board or object’s unique identifier.""" + object_ids: [ID!] -""" -A file uploaded to monday.com -""" -type Asset { - """ - The file's creation date. - """ - created_at: Date + """Property to order by (created_at / used_at).""" + order_by: DocsOrderBy - """ - The file's extension. - """ - file_extension: String! + """Page number to get, starting at 1.""" + page: Int = 1 - """ - The file's size in bytes. - """ - file_size: Int! + """A list of workspace ids the documents are contained in.""" + workspace_ids: [ID] + ): [Document] """ - The file's unique identifier. + Get a collection of folders. Note: This query won't return folders from closed workspaces to which you are not subscribed """ - id: ID! + folders( + """A list of folders unique identifiers.""" + ids: [ID!] - """ - The file's name. - """ - name: String! + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - original geometry of the asset. - """ - original_geometry: String + """Page number to get, starting at 1.""" + page: Int = 1 - """ - public url to the asset, valid for 1 hour. - """ - public_url: String! + """ + A list of workspace unique identifiers to filter folders by workspaces. (pass null to include Main Workspace) + """ + workspace_ids: [ID] + ): [Folder] - """ - The user who uploaded the file. - """ - uploaded_by: User! + """Get a collection of items.""" + items( + """Excludes items that are inactive, deleted or belong to deleted items""" + exclude_nonactive: Boolean - """ - url to view the asset. - """ - url: String! + """A list of items unique identifiers.""" + ids: [ID!] - """ - url to view the asset in thumbnail mode. Only available for images. - """ - url_thumbnail: String -} + """Number of items to get, the default is 25.""" + limit: Int = 25 -""" -The source of the asset -""" -enum AssetsSource { - """ - Assets from file columns and item's files gallery - """ - all + """Get the recently created items at the top of the list""" + newest_first: Boolean - """ - Assets only from file columns - """ - columns + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Item] - """ - Assets only from item's files gallery - """ - gallery -} + """Search items by multiple columns and values.""" + items_page_by_column_values( + """The board's unique identifier.""" + board_id: ID! -""" -Error that occurred while changing team owners. -""" -type AssignTeamOwnersError { - """ - The error message. - """ - message: String + """One or more columns, and their values to search items by.""" + columns: [ItemsPageByColumnValuesQuery!] - """ - The error code. - """ - code: AssignTeamOwnersErrorCode + """ + An opaque token representing the position in the result set from which to + resume fetching items. Use this to paginate through large result sets. + """ + cursor: String - """ - The id of the user that caused the error. - """ - user_id: ID -} + """ + The maximum number of items to fetch in a single request. Use this to + control the size of the result set and manage pagination. Maximum: 500. + """ + limit: Int! = 25 + ): ItemsResponse! -""" -Error codes that can occur while changing team owners. -""" -enum AssignTeamOwnersErrorCode { - VIEWERS_OR_GUESTS - USER_NOT_MEMBER_OF_TEAM - EXCEEDS_BATCH_LIMIT - INVALID_INPUT - USER_NOT_FOUND - CANNOT_UPDATE_SELF - FAILED -} + """Get the connected user's information.""" + me: User -""" -Result of changing the team's ownership. -""" -type AssignTeamOwnersResult { - """ - The team for which the owners were changed. - """ - team: Team + """Get next pages of board's items (rows) by cursor.""" + next_items_page( + """ + An opaque token representing the position in the result set from which to + resume fetching items. Use this to paginate through large result sets. + """ + cursor: String! - """ - Errors that occurred while changing team owners. - """ - errors: [AssignTeamOwnersError!] -} + """ + The maximum number of items to fetch in a single request. Use this to + control the size of the result set and manage pagination. Maximum: 500. + """ + limit: Int! = 25 + ): ItemsResponse! -""" -The role of the user. -""" -enum BaseRoleName { - PORTAL_USER - GUEST - VIEW_ONLY - MEMBER - ADMIN -} + """Get a collection of tags.""" + tags( + """A list of tags unique identifiers.""" + ids: [ID!] + ): [Tag] -""" -Result of an batch operation -""" -type BatchExtendTrialPeriod { - """ - Details of operations - """ - details: [ExtendTrialPeriod!] + """Get a collection of teams.""" + teams( + """A list of teams unique identifiers.""" + ids: [ID!] + ): [Team] - """ - Reason of an error - """ - reason: String + """Get a collection of users.""" + users( + """A list of users' emails.""" + emails: [String] - """ - Result of a batch operation - """ - success: Boolean! -} + """A list of users' unique identifiers.""" + ids: [ID!] -""" -A monday.com board. -""" -type Board { - """ - The unique identifier of the board. - """ - id: ID! + """The kind to search users by (all / non_guests / guests / non_pending).""" + kind: UserKind - """ - The board's updates. - """ - updates( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """Number of users to get.""" + limit: Int - """ - Page number to get, starting at 1. - """ - page: Int = 1 + """Allows to fuzzy search by name""" + name: String - """ - A list of items unique identifiers. - """ - ids: [ID!] - ): [Update!] + """Get the recently created users at the top of the list""" + newest_first: Boolean - """ - The board log events. - """ - activity_logs( - """ - Column ids to filter - """ - column_ids: [String] + """Return non active users in the account.""" + non_active: Boolean - """ - From timestamp (ISO8601) - """ - from: ISO8601DateTime + """Page number to get, starting at 1.""" + page: Int + ): [User] - """ - Group ids to filter - """ - group_ids: [String] + """Get a collection of webhooks for the board""" + webhooks( + """Filters webhooks that were created by the app initiating the request""" + app_webhooks_only: Boolean - """ - Item id to filter - """ - item_ids: [ID!] + """Board unique identifier.""" + board_id: ID! + ): [Webhook] - """ - Number of items to get, the default is 25. - """ + """Get a collection of workspaces.""" + workspaces( + """A list of workspace unique identifiers.""" + ids: [ID!] + + """The workspace's kind (open / closed / template)""" + kind: WorkspaceKind + + """Number of items to get, the default is 25.""" limit: Int = 25 - """ - Page number to get, starting at 1. - """ + """Property to order by (created_at).""" + order_by: WorkspacesOrderBy + + """Page number to get, starting at 1.""" page: Int = 1 """ - To timestamp (ISO8601) + The state of the workspace (all / active / archived / deleted), the default is active. """ - to: ISO8601DateTime + state: State = active + ): [Workspace] + notifications( + """The last notification id to get.""" + cursor: ID - """ - User ids to filter. - """ - user_ids: [ID!] - ): [ActivityLogType] + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - The board's folder unique identifier. - """ - board_folder_id: ID + """Whether to get only unread notifications.""" + filter_read: Boolean - """ - The board's kind (public / private / share). - """ - board_kind: BoardKind! + """ + Filter notifications created from this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm). + """ + since: ISO8601DateTime + ): [Notification!] """ - The board's visible columns. + Retrieves the current user's notification settings across all available channels. """ - columns( + notifications_settings( """ - A list of column unique identifiers. + notification settings scope types. Options: account user defaults or user private settings. """ - ids: [String] + scope_type: ScopeType! """ - A list of column types. + Relevant when using scopeType: user. The userId of the user whose notification settings you want to retrieve. By default, the current user is used. """ - types: [ColumnType!] - ): [Column] + scope_id: Int - """ - The board's columns namespace. - """ - columns_namespace: String + """ + Filter results to specific notification setting types by their names. Leave empty to retrieve all settings. + """ + setting_kinds: [String!] - """ - Get the board communication value - typically meeting ID - """ - communication: JSON + """Return results for a specific notification channel type""" + channels: [ChannelType!] + ): [NotificationSetting!] - """ - The creator of the board. - """ - creator: User! + """Get mute board notification settings for the current user""" + mute_board_settings( + """The IDs of the boards to get mute settings for""" + board_ids: [ID!]! + ): [BoardMuteSettings!] """ - The board's description. + Retrieves a list of available object types that can be created or queried. Each object type is uniquely identified by an 'object_type_unique_key'. This key is required for mutations like 'create_object' and for filtering in the 'objects' query. Use this query to discover what types of objects are available in the system (e.g., 'workflows', 'projects') and get their corresponding unique keys. The structure of unique key is 'app_slug::app_feature_slug'. """ - description: String + object_types_unique_keys: [ObjectTypeUniqueKey!] """ - The board's visible groups. + Retrieves a list of objects from the Monday.com Objects Platform based on specified filters. This query can return any type of object (board, doc, dashboard, workflow, etc.) depending on the filter criteria. Use object_type_unique_keys to filter for specific object types. """ - groups( + objects( """ - A list of group unique identifiers. + The unique identifier for the object type, formatted as 'app_slug::app_feature_slug' """ - ids: [String] - ): [Group] - - """ - The Board's item nickname, one of a predefined set of values, or a custom user value - """ - item_terminology: String - - """ - The number of items on the board - """ - items_count: Int - - """ - The maximum number of items this board can have - """ - items_limit: Int + object_type_unique_keys: [String!] - """ - The board's items (rows). - """ - items_page( """ - An opaque token representing the position in the result set from which to - resume fetching items. Use this to paginate through large result sets. + Filter by specific object ID(s). Use this when you need to retrieve one or more specific objects by their unique identifiers. """ - cursor: String + ids: [ID!] """ - The maximum number of items to fetch in a single request. Use this to - control the size of the result set and manage pagination. Maximum: 500. + Maximum number of objects to return in the response. Default is 25, but can be increased to retrieve more objects at once. """ - limit: Int! = 25 + limit: Int + + """Specifies the order in which objects are returned.""" + order_by: OrderBy + + """Filter objects by their state.""" + state: ObjectState + + """Filter objects by their kind/visibility setting.""" + privacy_kind: PrivacyKind """ - A set of parameters to filter, sort, and control the scope of the items - query. Use this to customize the results based on specific criteria. + Filter objects by workspace ID(s). Returns only objects that belong to the specified workspace(s). Use null or omit for objects in the main workspace. """ - query_params: ItemsQuery - ): ItemsResponse! + workspace_ids: [ID!] + ): [Object!] - """ - The board's name. - """ - name: String! + """Get the API version in use""" + version: Version! - """ - The owner of the board. - """ - owner: User! - @deprecated(reason: "This field returned creator of the board. Please use 'creator' or 'owners' fields instead.") + """Get a list containing the versions of the API""" + versions: [Version!] - """ - List of user board owners - """ - owners: [User]! + """Platform API data.""" + platform_api: PlatformApi """ - The board's permissions. + A query to search across all boards in the account. Returns raw json results. """ - permissions: String! + search_benchmark( + """A query to search for.""" + query: String! - """ - The board's state (all / active / archived / deleted). - """ - state: State! + """The board id to search in.""" + boardId: String - """ - The board's subscribers. - """ - subscribers: [User]! + """Version of the search to use.""" + version: String! + ): SearchBenchmarkResults """ - The board's specific tags. + A query to search across all boards in the account. Returns raw json results. """ - tags: [Tag] + search_cross_board( + """A query to search for.""" + query: String! + ): SearchAllResult + + """Get all roles for the account""" + account_roles: [AccountRole!] """ - List of team board owners + Returns all available widget schemas for documentation and validation purposes """ - team_owners( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 - - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Team!] + all_widgets_schema: [WidgetSchemaInfo!] """ - The board's team subscribers. + Fetch a form by its token. The returned form includes all the details of the form such as its settings, questions, title, etc. Use this endpoint when you need to retrieve complete form data for display or processing. Requires that the requesting user has read access to the associated board. """ - team_subscribers( + form( """ - Number of items to get, the default is 25. + The unique identifier token for the form. This token is used to securely access the form and can be found in the form URL. """ - limit: Int = 25 + formToken: String! + ): ResponseForm +} - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Team!] +"""Update your monday.com data.""" +type Mutation { + """Create a new live workflow.""" + create_live_workflow(workflow: WorkflowInput!): CreateWorkflowResult - """ - The top group at this board. - """ - top_group: Group! + """Update live workflow""" + update_live_workflow(workflow: UpdateWorkflowInput!): UpdateWorkflowResult - """ - The board object type. - """ - type: BoardObjectType + """Update live workflow metadata""" + update_live_workflow_metadata(workflow: UpdateWorkflowMetadataInput!): UpdateWorkflowResult - """ - The last time the board was updated at. - """ - updated_at: ISO8601DateTime + """Delete a live workflow""" + delete_live_workflow( + """ID of the workflow to delete""" + id: Int + ): DeleteWorkflowResult - """ - The Board's url - """ - url: String! + """Create a new table view""" + create_view_table( + """The ID of the board""" + board_id: ID! - """ - The board's views. - """ - views( - """ - A list of view unique identifiers. - """ - ids: [ID!] + """The name of the view""" + name: String - """ - The view's type - """ - type: String - ): [BoardView] + """User ID to filter by""" + filter_user_id: Int - """ - The workspace that contains this board (null for main workspace). - """ - workspace: Workspace + """Team ID to filter by""" + filter_team_id: Int - """ - The board's workspace unique identifier (null for main workspace). - """ - workspace_id: ID -} + """The rule filters to apply to the board view""" + filters: ItemsQueryGroup -""" -The board attributes available. -""" -enum BoardAttributes { - """ - Object that contains available Video conferences on the board. - """ - communication + """The sort order to apply to the board view""" + sort: [ItemsQueryOrderBy!] - """ - Board description. - """ - description + """Tags to apply for board view""" + tags: [String!] - """ - Board name. - """ - name -} + """View settings configuration for the table board view""" + settings: TableViewSettingsInput + ): BoardView -""" -A board duplication -""" -type BoardDuplication { - """ - The new board created by the duplication - """ - board: Board! + """Create a view""" + create_view( + """The ID of the board""" + board_id: ID! - """ - Was the board duplication performed asynchronously - """ - is_async: Boolean! -} + """The type of view to create""" + type: ViewKind! -""" -The board kinds available. -""" -enum BoardKind { - """ - Private boards. - """ - private + """The name of the view""" + name: String - """ - Public boards. - """ - public + """User ID to filter by""" + filter_user_id: Int - """ - Shareable boards. - """ - share -} + """Team ID to filter by""" + filter_team_id: Int -""" -The board object types. -""" -enum BoardObjectType { - """ - Parent Board. - """ - board + """The rule filters to apply to the board view""" + filters: ItemsQueryGroup - """ - Custom Object. - """ - custom_object + """The sort order to apply to the board view""" + sort: [ItemsQueryOrderBy!] - """ - Document. - """ - document + """Tags to apply for board view""" + tags: [String!] - """ - Sub Items Board. - """ - sub_items_board -} + """The settings for the view""" + settings: JSON + ): BoardView -type BoardRelationValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """Update an existing board table view""" + update_view_table( + """The ID of the view to update""" + view_id: ID! - """ - A string representing all the names of the linked items, separated by commas - """ - display_value: String! + """The ID of the board""" + board_id: ID! - """ - The column's unique identifier. - """ - id: ID! + """The name of the view""" + name: String - """ - The linked items IDs - """ - linked_item_ids: [ID!]! + """User ID to filter by""" + filter_user_id: Int - """ - The linked items. - """ - linked_items: [Item!]! + """Team ID to filter by""" + filter_team_id: Int - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """The rule filters to apply to the board view""" + filters: ItemsQueryGroup - """ - The column's type. - """ - type: ColumnType! + """The sort order to apply to the board view""" + sort: [ItemsQueryOrderBy!] - """ - The date when column value was last updated. - """ - updated_at: Date + """Tags to apply for board view""" + tags: [String!] - """ - The column's raw value in JSON format. - """ - value: JSON -} + """The settings for the view""" + settings: TableViewSettingsInput + ): BoardView -""" -Options to order by. -""" -enum BoardsOrderBy { - """ - The rank order of the board creation time (desc). - """ - created_at + """Update an existing view""" + update_view( + """The name of the view""" + name: String - """ - The last time the user making the request used the board (desc). - """ - used_at -} + """User ID to filter by""" + filter_user_id: Int -""" -The board subscriber kind. -""" -enum BoardSubscriberKind { - """ - Board owner. - """ - owner + """Team ID to filter by""" + filter_team_id: Int - """ - Board subscriber. - """ - subscriber -} + """The rule filters to apply to the board view""" + filters: ItemsQueryGroup -""" -A board's view. -""" -type BoardView { - """ - The view's unique identifier. - """ - id: ID! + """The sort order to apply to the board view""" + sort: [ItemsQueryOrderBy!] - """ - The view's name. - """ - name: String! + """Tags to apply for board view""" + tags: [String!] - """ - The view's settings in a string form. - """ - settings_str: String! + """The ID of the view to update""" + view_id: ID! - """ - The view's template id if it was duplicated from other view - """ - source_view_id: ID + """The ID of the board""" + board_id: ID! - """ - The view's type. - """ - type: String! + """The type of view to update""" + type: ViewKind! - """ - Specific board view data (supported only for forms) - """ - view_specific_data_str: String! -} + """The settings for the view""" + settings: JSON + ): BoardView -type ButtonValue implements ColumnValue { - """ - The button's color in hex value. - """ - color: String + """Delete an existing board subset/view""" + delete_view( + """The ID of the view to delete""" + view_id: ID! - """ - The column that this value belongs to. - """ - column: Column! + """The ID of the board""" + board_id: ID! + ): BoardView + like_update( + """The update identifier.""" + update_id: ID! - """ - The column's unique identifier. - """ - id: ID! + """The reaction type.""" + reaction_type: String + ): Update + unlike_update( + """The update identifier.""" + update_id: ID! + ): Update! + delete_update( + """The update's unique identifier.""" + id: ID! + ): Update + edit_update( + """The update's unique identifier.""" + id: ID! - """ - The button's label. - """ - label: String - text: String + """The update text.""" + body: String! + ): Update! + pin_to_top( + """The update's unique identifier.""" + id: ID! - """ - The column's type. - """ - type: ColumnType! + """The item unique identifier.""" + item_id: ID + ): Update! + unpin_from_top( + """The update's unique identifier.""" + id: ID! - """ - The column's raw value in JSON format. - """ - value: JSON -} + """The item unique identifier.""" + item_id: ID + ): Update! + create_update( + """ + The update text. Do not use @ to mention users, use the mentions field instead (if available). + """ + body: String! -""" -The result of adding users to / removing users from a team. -""" -type ChangeTeamMembershipsResult { - """ - The users that team membership update failed for - """ - failed_users: [User!] + """ + Mention users, teams, or boards in this update. Example: [{"id": "123", "type": "User"}, {"id": "456", "type": "Board"}] + """ + mentions_list: [UpdateMention] - """ - The users that team membership update succeeded for - """ - successful_users: [User!] -} + """ + The item's unique identifier on which the update will be created on. No need to set if you are using parent_id for replying to a post. + """ + item_id: ID -type CheckboxValue implements ColumnValue { - """ - The column's boolean value. - """ - checked: Boolean + """The parent post identifier. Use this to reply to a post.""" + parent_id: ID + ): Update + create_timeline_item( + """The item the timeline item will be created in.""" + item_id: ID! - """ - The column that this value belongs to. - """ - column: Column! + """The user who created the timeline item. Only for account admins.""" + user_id: Int - """ - The column's unique identifier. - """ - id: ID! - text: String + """The title of the timeline item.""" + title: String! - """ - The column's type. - """ - type: ColumnType! + """The creation time of the event.""" + timestamp: ISO8601DateTime! + summary: String + content: String - """ - The date when column value was last updated. - """ - updated_at: Date - value: JSON -} + """Location field value""" + location: String -type ColorPickerValue implements ColumnValue { - """ - The color in hex value. - """ - color: String + """Phone number field value""" + phone: String - """ - The column that this value belongs to. - """ - column: Column! + """URL field value""" + url: String - """ - The column's unique identifier. - """ - id: ID! - text: String + """The start and end time of the new timeline item.""" + time_range: TimelineItemTimeRange - """ - The column's type. - """ - type: ColumnType! + """The id of the custom activity of the timeline item.""" + custom_activity_id: String! + ): TimelineItem + delete_timeline_item( + """The id of the timeline item to delete""" + id: String! + ): TimelineItem + create_custom_activity( + """The name of the custom activity""" + name: String! - """ - The date when column value was last updated. - """ - updated_at: Date + """The icon of the custom activity""" + icon_id: CustomActivityIcon! - """ - The column's raw value in JSON format. - """ - value: JSON -} + """The color of the custom activity""" + color: CustomActivityColor! + ): CustomActivity + delete_custom_activity( + """The id of the custom activity""" + id: String! + ): CustomActivity -type Column { - """ - Is the column archived or not. - """ - archived: Boolean! + """Create a snapshot for a given entity in a migration job""" + create_entity_snapshot( + """The id of the migration job.""" + migrationJobId: String! - """ - The column's description. - """ - description: String + """The entity to snapshot.""" + entity: String! - """ - The column's unique identifier. - """ - id: ID! + """Whether to include descendants in the snapshot.""" + includeDescendants: Boolean = true + ): CreateEntitySnapshotResult - """ - The column's settings in a string form. - """ - settings_str: String! + """Create a new migration job""" + create_migration_job( + """The target account ID.""" + targetAccountId: Int! - """ - The column's title. - """ - title: String! + """The target user ID.""" + targetUserId: Int! + ): CreateMigrationJobResult - """ - The column's type. - """ - type: ColumnType! + """Create managed column of type dropdown mutation.""" + create_dropdown_managed_column( + """The column title.""" + title: String! - """ - The column's width. - """ - width: Int -} + """The column description.""" + description: String + settings: CreateDropdownColumnSettingsInput + ): DropdownManagedColumn -""" -An object defining a mapping of column between source board and destination board -""" -input ColumnMappingInput { - """ - The source column's unique identifier. - """ - source: ID! + """Create managed column of type status mutation.""" + create_status_managed_column( + """The column title.""" + title: String! - """ - The target column's unique identifier. - """ - target: ID -} + """The column description.""" + description: String + settings: CreateStatusColumnSettingsInput + ): StatusManagedColumn -""" -The property name of the column to be changed. -""" -enum ColumnProperty { - """ - the column description. - """ - description + """Update managed column of type dropdown mutation.""" + update_dropdown_managed_column( + """The column id.""" + id: String! - """ - the column title. - """ - title -} + """The column title.""" + title: String -union ColumnSettings = StatusColumnSettings | DropdownColumnSettings + """The column description.""" + description: String + settings: UpdateDropdownColumnSettingsInput -""" -The columns to create. -""" -enum ColumnType { - """ - Number items according to their order in the group/board - """ - auto_number + """The column revision.""" + revision: Int! + ): DropdownManagedColumn - """ - Connect data from other boards - """ - board_relation + """Update managed column of type status mutation.""" + update_status_managed_column( + """The column id.""" + id: String! - """ - Perform actions on items by clicking a button - """ - button + """The column title.""" + title: String - """ - Check off items and see what's done at a glance - """ - checkbox + """The column description.""" + description: String + settings: UpdateStatusColumnSettingsInput - """ - Manage a design system using a color palette - """ - color_picker + """The column revision.""" + revision: Int! + ): StatusManagedColumn - """ - Choose a country - """ - country + """Activate managed column mutation.""" + activate_managed_column( + """The column id.""" + id: String! + ): ManagedColumn - """ - Add the item's creator and creation date automatically - """ - creation_log + """Deactivate managed column mutation.""" + deactivate_managed_column( + """The column id.""" + id: String! + ): ManagedColumn - """ - Add dates like deadlines to ensure you never drop the ball - """ - date + """Delete managed column mutation.""" + delete_managed_column( + """The column id.""" + id: String! + ): ManagedColumn """ - Set up dependencies between items in the board + Updates a status column's properties including title, description, and status label settings. Status columns allow users to track item progress through customizable labels (e.g., "Working on it", "Done", "Stuck"). This mutation is specifically for status/color columns and provides type-safe updates. """ - dependency + update_status_column( + """The unique identifier of the board containing the column to update.""" + board_id: ID! - """ - Document your work and increase collaboration - """ - direct_doc + """The unique identifier of the status column to update.""" + id: String! - """ - Document your work and increase collaboration - """ - doc + """ + The new display title for the column. If not provided, the current title remains unchanged. + """ + title: String - """ - Create a dropdown list of options - """ - dropdown + """ + The new description text for the column. If not provided, the current description remains unchanged. + """ + description: String - """ - Email team members and clients directly from your board - """ - email + """ + Configuration object for status column settings including available status labels, their colors, positions, and other display properties. + """ + settings: UpdateStatusColumnSettingsInput - """ - Add files & docs to your item - """ - file + """ + The revision of the column, as returned by the column query. Used for optimistic concurrency control. + """ + revision: String! + ): StatusColumn """ - Use functions to manipulate data across multiple columns + Generic mutation for updating any column type with validation. Supports updating column properties like title, description, and type-specific defaults/settings. The mutation validates input against the column type's schema before applying changes. Use get_column_type_schema query to understand available properties for each column type. """ - formula - group + update_column( + """The unique identifier of the board containing the column to update.""" + board_id: ID! - """ - Add times to manage and schedule tasks, shifts and more - """ - hour + """The unique identifier of the column to update.""" + id: String! - """ - Integration is really cool... - """ - integration + """ + The new display title for the column. If not provided, the current title remains unchanged. + """ + title: String - """ - Show all item's assignees - """ - item_assignees + """ + The new description text for the column. If not provided, the current description remains unchanged. + """ + description: String - """ - Show a unique ID for each item - """ - item_id + """ + Type-specific configuration object containing column settings. The structure varies by column type - use get_column_type_schema query to see available properties. Examples: status column labels, dropdown options, number formatting rules, date display preferences. + """ + settings: JSON - """ - Add the person that last updated the item and the date - """ - last_updated + """ + The column type being updated (e.g., "text", "status", "date", "numbers"). Must match the existing column type. Determines which properties are valid in the defaults object. + """ + column_type: ColumnType! - """ - Simply hyperlink to any website - """ - link + """ + The revision of the column, as returned by the column query. Used for optimistic concurrency control. + """ + revision: String! + ): CommonColumn - """ - Place multiple locations on a geographic map - """ - location + """Add a required column to a board""" + add_required_column( + id: ID! + column_id: String! - """ - Add large amounts of text without changing column width - """ - long_text + """The type of entity for validations the default is board""" + type: ValidationsEntityType = board + ): RequiredColumns - """ - Show and edit columns' data from connected boards - """ - mirror + """Remove a required column from a board""" + remove_required_column( + id: ID! + column_id: String! - """ - Name is really cool... - """ - name + """The type of entity for validations the default is board""" + type: ValidationsEntityType = board + ): RequiredColumns """ - Add revenue, costs, time estimations and more + Bulk create multiple document blocks efficiently. Use this for creating multiple blocks at once instead of individual create_doc_block calls. Supports text, lists, images, tables, and more. Maximum 25 blocks per request. Example: Perfect for importing content, or bulk content creation. """ - numbers + create_doc_blocks( + """The document's unique identifier.""" + docId: ID! - """ - Assign people to improve team work - """ - people + """ + Insert the new blocks immediately after this block ID. If omitted, the blocks will be inserted based on their parentBlockId or appended at the end of the document in the provided order. + """ + afterBlockId: String - """ - Assign a person to increase ownership and accountability (deprecated) - """ - person + """ + An array of block inputs – each element must specify exactly one block type. + """ + blocksInput: [CreateBlockInput!]! + ): [DocumentBlockV2!] - """ - Call your contacts directly from monday.com - """ - phone + """Delete a document by its ID. Returns the deleted document.""" + delete_doc( + """The document's unique identifier.""" + docId: ID! + ): JSON """ - Show progress by combining status columns in a battery + Creates an exact copy of an existing monday.com document, including all of its content and structure, using the provided document ID. Returns the new document's ID on success. """ - progress + duplicate_doc( + """The document's unique identifier.""" + docId: ID! - """ - Rate or rank anything visually - """ - rating + """ + Specify how deep the duplication should go (with content only or with content and updates). + """ + duplicateType: DuplicateType + ): JSON """ - Get an instant overview of where things stand + Update a document's name/title. Changes are applied immediately and visible to all users with access to the document. """ - status + update_doc_name( + """The document's unique identifier. Use document ID from API responses""" + docId: ID! - """ - Use the subtasks column to create another level of tasks - """ - subtasks + """The new name for the document.""" + name: String! + ): JSON """ - Add tags to categorize items across multiple boards + Create document blocks from markdown content. Returns the creation result. """ - tags + add_content_to_doc_from_markdown( + """The document's unique identifier.""" + docId: ID! - """ - Assign a full team to an item - """ - team + """The markdown content to convert into document blocks.""" + markdown: String! - """ - Add textual information e.g. addresses, names or keywords - """ - text + """Optional block ID to insert the markdown content after.""" + afterBlockId: String + ): DocBlocksFromMarkdownResult """ - Easily track time spent on each item, group, and board + Export document content as markdown content. Optionally specify block IDs to export only specific blocks. """ - time_tracking + export_markdown_from_doc( + """The document's unique identifier.""" + docId: ID! - """ - Visualize your item’s duration, with a start and end date - """ - timeline + """ + Optional array of block IDs to export specific blocks from the document. + """ + blockIds: [String!] + ): ExportMarkdownResult - """ - Unsupported column type - """ - unsupported + """Add workspace object to favorites""" + create_favorite( + """The input for adding an object to the favorites""" + input: CreateFavoriteInput! + ): CreateFavoriteResultType - """ - Vote on an item e.g. pick a new feature or a favorite lunch place - """ - vote + """Remove an object from favorites""" + delete_favorite( + """The input for removing an object from favorites""" + input: DeleteFavoriteInput! + ): DeleteFavoriteInputResultType - """ - Select the week on which each item should be completed - """ - week + """Update the position of an object in favorites""" + update_favorite_position( + """The input for updating the favorite object position""" + input: UpdateObjectHierarchyPositionInput! + ): UpdateFavoriteResultType - """ - Keep track of the time anywhere in the world - """ - world_clock -} + """Deletes a widget.""" + delete_widget( + """The unique identifier of the widget to delete.""" + id: ID! + ): Widget + grant_marketplace_app_discount( + """The id of an app""" + app_id: ID! -interface ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """Slug of an account""" + account_slug: String! + data: GrantMarketplaceAppDiscountData! + ): GrantMarketplaceAppDiscountResult! + delete_marketplace_app_discount( + """The id of an app""" + app_id: ID! - """ - The column's unique identifier. - """ - id: ID! + """Slug of an account""" + account_slug: String! + ): DeleteMarketplaceAppDiscountResult! - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """Update an app feature.""" + updateAppFeature( + """The ID of the app feature to update.""" + id: ID! - """ - The column's type. - """ - type: ColumnType! + """The input data for updating the app feature.""" + input: UpdateAppFeatureInput! + ): AppFeatureType - """ - The column's raw value in JSON format. - """ - value: JSON -} + """Add a file to a column value.""" + add_file_to_column( + """The column to add the file to.""" + column_id: String! -scalar CompareValue + """The file to upload.""" + file: File! -""" -Complexity data. -""" -type Complexity { - """ - The remainder of complexity after the query's execution. - """ - after: Int! + """The item to add the file to.""" + item_id: ID! + ): Asset - """ - The remainder of complexity before the query's execution. - """ - before: Int! + """Add a file to an update.""" + add_file_to_update( + """The file to upload.""" + file: File! - """ - The specific query's complexity. - """ - query: Int! + """The update to add the file to.""" + update_id: ID! + ): Asset - """ - How long in seconds before the complexity budget is reset - """ - reset_in_x_seconds: Int! -} + """Add subscribers to a board.""" + add_subscribers_to_board( + """The board's unique identifier.""" + board_id: ID! -type Country { - """ - The country's two-letter code. - """ - code: String! + """Subscribers kind (subscriber / owner)""" + kind: BoardSubscriberKind = subscriber - """ - The country's name. - """ - name: String! -} + """User ids to subscribe to a board""" + user_ids: [ID!]! + ): [User] @deprecated(reason: "use add_users_to_board instead") -type CountryValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """Add teams subscribers to a board.""" + add_teams_to_board( + """The board's unique identifier.""" + board_id: ID! - """ - The country value. - """ - country: Country + """Subscribers kind (subscriber / owner)""" + kind: BoardSubscriberKind = subscriber - """ - The column's unique identifier. - """ - id: ID! + """Team ids to subscribe to a board""" + team_ids: [ID!]! + ): [Team] - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """Add teams to a workspace.""" + add_teams_to_workspace( + """Subscribers kind (subscriber / owner)""" + kind: WorkspaceSubscriberKind = subscriber - """ - The column's type. - """ - type: ColumnType! + """Team ids to subscribe to a workspace""" + team_ids: [ID!]! - """ - The date when column value was last updated. - """ - updated_at: Date + """The workspace's unique identifier.""" + workspace_id: ID! + ): [Team] - """ - The column's raw value in JSON format. - """ - value: JSON -} + """Add subscribers to a board.""" + add_users_to_board( + """The board's unique identifier.""" + board_id: ID! -input CreateDocBoardInput { - """ - Column id - """ - column_id: String! + """Subscribers kind (subscriber / owner)""" + kind: BoardSubscriberKind = subscriber - """ - Item id - """ - item_id: ID! -} + """User ids to subscribe to a board""" + user_ids: [ID!]! + ): [User] -input CreateDocInput { - board: CreateDocBoardInput - workspace: CreateDocWorkspaceInput -} + """Add users to team.""" + add_users_to_team( + """The team's unique identifier.""" + team_id: ID! -input CreateDocWorkspaceInput { - """ - Optional board folder id - """ - folder_id: ID + """User ids to add to/remove from the team""" + user_ids: [ID!]! + ): ChangeTeamMembershipsResult - """ - The doc's kind (public / private / share) - """ - kind: BoardKind + """Add users to a workspace.""" + add_users_to_workspace( + """Subscribers kind (subscriber / owner)""" + kind: WorkspaceSubscriberKind = subscriber - """ - The doc's name - """ - name: String! + """User ids to subscribe to a workspace""" + user_ids: [ID!]! - """ - Workspace id - """ - workspace_id: ID! -} + """The workspace's unique identifier.""" + workspace_id: ID! + ): [User] -input CreateDropdownColumnSettingsInput { - labels: [CreateDropdownLabelInput!]! -} + """Archive a board.""" + archive_board( + """The board's unique identifier""" + board_id: ID! + ): Board -input CreateDropdownLabelInput { - label: String! -} + """Archives a group in a specific board.""" + archive_group( + """The board's unique identifier.""" + board_id: ID! -input CreateStatusColumnSettingsInput { - labels: [CreateStatusLabelInput!]! -} + """The group's unique identifier.""" + group_id: String! + ): Group -input CreateStatusLabelInput { - label: String! - color: StatusColumnColors! - index: Int! - description: String - is_done: Boolean -} + """Archive an item.""" + archive_item( + """The item's unique identifier.""" + item_id: ID + ): Item -""" -Attributes of the team to be created. -""" -input CreateTeamAttributesInput { - """ - The team's name. - """ - name: String! + """Extends trial period of an application to selected accounts""" + batch_extend_trial_period( + """The accounts' slags. Max: 5""" + account_slugs: [String!]! - """ - Whether the team can contain guest users. - """ - is_guest_team: Boolean + """The id of an application.""" + app_id: ID! - """ - The parent team identifier. - """ - parent_team_id: ID + """The amount of days to extend a trial period. Max: 365""" + duration_in_days: Int! - """ - The team members. Must not be empty, unless allow_empty_team is set. - """ - subscriber_ids: [ID!] -} + """The id of a payment plan.""" + plan_id: String! + ): BatchExtendTrialPeriod -""" -Options for creating a team. -""" -input CreateTeamOptionsInput { - """ - Whether to allow a team without any subscribers. - """ - allow_empty_team: Boolean -} + """Change a column's properties""" + change_column_metadata( + """The board's unique identifier.""" + board_id: ID! -type CreationLogValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """The column's unique identifier.""" + column_id: String! - """ - The date when the item was created. - """ - created_at: Date! + """The property name of the column to be changed (title / description).""" + column_property: ColumnProperty - """ - User who created the item - """ - creator: User! + """The new description of the column.""" + value: String + ): Column - """ - ID of the user who created the item - """ - creator_id: ID! + """Change a column's title""" + change_column_title( + """The board's unique identifier.""" + board_id: ID! - """ - The column's unique identifier. - """ - id: ID! - text: String + """The column's unique identifier.""" + column_id: String! - """ - The column's type. - """ - type: ColumnType! + """The new title of the column.""" + title: String! + ): Column - """ - The column's raw value in JSON format. - """ - value: JSON -} + """Change an item's column value.""" + change_column_value( + """The board's unique identifier.""" + board_id: ID! -type CustomActivity { - id: ID - type: String - name: String - icon_id: CustomActivityIcon - color: CustomActivityColor -} + """The column's unique identifier.""" + column_id: String! -enum CustomActivityColor { - VIVID_CERULEAN - GO_GREEN - PHILIPPINE_GREEN - YANKEES_BLUE - CELTIC_BLUE - MEDIUM_TURQUOISE - CORNFLOWER_BLUE - MAYA_BLUE - SLATE_BLUE - GRAY - YELLOW_GREEN - DINGY_DUNGEON - PARADISE_PINK - BRINK_PINK - YELLOW_ORANGE - LIGHT_DEEP_PINK - LIGHT_HOT_PINK - PHILIPPINE_YELLOW -} + """ + Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) + """ + create_labels_if_missing: Boolean -enum CustomActivityIcon { - ASCENDING - CAMERA - CONFERENCE - FLAG - GIFT - HEADPHONES - HOMEKEYS - LOCATION - PAPERPLANE - PLANE - NOTEBOOK - PLIERS - TRIPOD - TWOFLAGS - UTENCILS -} + """The item's unique identifier.""" + item_id: ID -""" -The custom fields meta data for user profile. -""" -type CustomFieldMetas { - """ - The custom field meta's description. - """ - description: String + """The new value of the column.""" + value: JSON! + ): Item - """ - Is the custom field meta editable or not. - """ - editable: Boolean + """Change an item's position.""" + change_item_position( + """ + The group's unique identifier. When provided, the item will be moved to the + group. Mutually exclusive with 'relative_to'. + """ + group_id: ID - """ - The custom field meta's type. - """ - field_type: String + """ + Only allowed in combination with 'group_id'. Determines whether the item + will be placed at the top or bottom of the group. + """ + group_top: Boolean - """ - Is the custom field meta flagged or not. - """ - flagged: Boolean + """The item's unique identifier.""" + item_id: ID! - """ - The custom field meta's icon. - """ - icon: String + """ + Whether to place the item before or after the relative_to item. Only allowed with 'relative_to'. + """ + position_relative_method: PositionRelative - """ - The custom field meta's unique identifier. - """ - id: String + """ + The ID of an item in the same board to set the position relative to. Mutually exclusive with 'group_id'. + """ + relative_to: ID + ): Item - """ - The custom field meta's position in the user profile page. - """ - position: String + """Changes the column values of a specific item.""" + change_multiple_column_values( + """The board's unique identifier.""" + board_id: ID! - """ - The custom field meta's title. - """ - title: String -} + """The column values updates.""" + column_values: JSON! -""" -A custom field value for user profile. -""" -type CustomFieldValue { - """ - The custom field value's meta unique identifier. - """ - custom_field_meta_id: String + """ + Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) + """ + create_labels_if_missing: Boolean - """ - The custom field value. - """ - value: String -} + """The item's unique identifier.""" + item_id: ID + ): Item -""" -API usage data. -""" -type DailyAnalytics { - """ - Last time the API usage data was updated. - """ - last_updated: ISO8601DateTime + """Change an item's column with simple value.""" + change_simple_column_value( + """The board's unique identifier.""" + board_id: ID! - """ - API usage per day. - """ - by_day: [PlatformApiDailyAnalyticsByDay!]! + """The column's unique identifier.""" + column_id: String! - """ - API usage per app. - """ - by_app: [PlatformApiDailyAnalyticsByApp!]! + """ + Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) + """ + create_labels_if_missing: Boolean - """ - API usage per user. - """ - by_user: [PlatformApiDailyAnalyticsByUser!]! -} + """The item's unique identifier.""" + item_id: ID -""" -Platform API daily limit. -""" -type DailyLimit { - """ - Base daily limit. - """ - base: Int + """The new simple value of the column (pass null to empty the column).""" + value: String + ): Item - """ - Total daily limit. - """ - total: Int -} + """Clear an item's updates.""" + clear_item_updates( + """The item's unique identifier.""" + item_id: ID! + ): Item -""" -A date. -""" -scalar Date + """Get the complexity data of your mutations.""" + complexity: Complexity -type DateValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """Create a new board.""" + create_board( + """The board's kind (public / private / share)""" + board_kind: BoardKind! - """ - The column's date value. - """ - date: String + """The board's name""" + board_name: String! - """ - The string representation of selected icon. - """ - icon: String + """Optional board owner user ids""" + board_owner_ids: [ID!] - """ - The column's unique identifier. - """ - id: ID! + """Optional board owner team ids""" + board_owner_team_ids: [ID!] - """ - The formatted date and time in user time zone. - """ - text: String + """Optional board subscriber ids""" + board_subscriber_ids: [ID!] - """ - The column's time value. - """ - time: String + """Optional list of subscriber team ids""" + board_subscriber_teams_ids: [ID!] - """ - The column's type. - """ - type: ColumnType! + """Optional board's description""" + description: String - """ - The date when column value was last updated. - """ - updated_at: Date + """Optional flag to create an empty board (without any default items)""" + empty: Boolean = false - """ - The column's raw value in JSON format. - """ - value: JSON -} + """Optional board folder id""" + folder_id: ID -""" -Error that occurred during deactivation. -""" -type DeactivateUsersError { - """ - The error message. - """ - message: String + """Optional board template id""" + template_id: ID - """ - The error code. - """ - code: DeactivateUsersErrorCode + """Optional workspace id""" + workspace_id: ID + ): Board - """ - The id of the user that caused the error. - """ - user_id: ID -} + """Create a new column in board.""" + create_column( + """ + The column's unique identifier after which the new column will be inserted. + """ + after_column_id: ID -""" -Error codes for deactivating users. -""" -enum DeactivateUsersErrorCode { - EXCEEDS_BATCH_LIMIT - INVALID_INPUT - USER_NOT_FOUND - CANNOT_UPDATE_SELF - FAILED -} + """The board's unique identifier.""" + board_id: ID! -""" -Result of deactivating users. -""" -type DeactivateUsersResult { - """ - The users that were deactivated. - """ - deactivated_users: [User!] + """The type of column to create.""" + column_type: ColumnType! - """ - Errors that occurred during deactivation. - """ - errors: [DeactivateUsersError!] -} + """The new column's defaults.""" + defaults: JSON -type DeleteMarketplaceAppDiscount { - """ - Slug of an account - """ - account_slug: String! + """The new column's description.""" + description: String - """ - The id of an app - """ - app_id: ID! -} + """The column's user-specified unique identifier.""" + id: String -type DeleteMarketplaceAppDiscountResult { - deleted_discount: DeleteMarketplaceAppDiscount! -} + """The new column's title.""" + title: String! + ): Column -type DependencyValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """Create a new doc.""" + create_doc( + """new monday doc location""" + location: CreateDocInput! + ): Document - """ - A string representing all the names of the linked items, separated by commas - """ - display_value: String! + """Create new document block""" + create_doc_block( + """ + After which block to insert this one. If not provided, will be inserted first in the document + """ + after_block_id: String - """ - The column's unique identifier. - """ + """The block's content.""" + content: JSON! + + """The doc's unique identifier.""" + doc_id: ID! + + """The parent block id to append the created block under.""" + parent_block_id: String + + """The block's content type.""" + type: DocBlockContentType! + ): DocumentBlock + + """Creates a folder in a specific workspace.""" + create_folder( + """The folder's color.""" + color: FolderColor + + """The folder's custom icon.""" + custom_icon: FolderCustomIcon + + """The folder's font weight.""" + font_weight: FolderFontWeight + + """The folder's name""" + name: String! + + """The folder's parent folder unique identifier.""" + parent_folder_id: ID + + """The unique identifier of the workspace to create this folder in""" + workspace_id: ID + ): Folder + + """Creates a new group in a specific board.""" + create_group( + """The board's unique identifier.""" + board_id: ID! + + """A hex representing the group's color""" + group_color: String + + """The name of the new group.""" + group_name: String! + + """ + The group's position in the board. DEPRECATED! Replaced with relative position (position_relative_method, relative_to) + """ + position: String + + """The position relative method to another group (before_at / after_at)""" + position_relative_method: PositionRelative + + """The group to set the position next to.""" + relative_to: String + ): Group + + """Create a new item.""" + create_item( + """The board's unique identifier.""" + board_id: ID! + + """The column values of the new item.""" + column_values: JSON + + """ + Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) + """ + create_labels_if_missing: Boolean + + """The group's unique identifier.""" + group_id: String + + """The new item's name.""" + item_name: String! + + """The position relative method to another item (before_at / after_at)""" + position_relative_method: PositionRelative + + """The item to set the position next to.""" + relative_to: ID + ): Item + + """Create a new notification.""" + create_notification( + """The target's unique identifier.""" + target_id: ID! + + """The target's type (Project / Post)""" + target_type: NotificationTargetType! + + """The notification text.""" + text: String! + + """The user's unique identifier.""" + user_id: ID! + ): Notification + + """Create a new tag or get it if it already exists.""" + create_or_get_tag( + """ + The private board id to create the tag at (not needed for public boards) + """ + board_id: ID + + """The new tag's name.""" + tag_name: String + ): Tag + + """Create subitem.""" + create_subitem( + """The column values of the new item.""" + column_values: JSON + + """ + Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) + """ + create_labels_if_missing: Boolean + + """The new item's name.""" + item_name: String! + + """The parent item's unique identifier.""" + parent_item_id: ID! + ): Item + + """Create a new webhook.""" + create_webhook( + """The board's unique identifier.""" + board_id: ID! + + """The webhook config""" + config: JSON + + """The event to listen to""" + event: WebhookEventType! + + """The webhook URL.""" + url: String! + ): Webhook + + """Create a new workspace.""" + create_workspace( + """The account product's id""" + account_product_id: ID + + """The Workspace's description""" + description: String + + """The workspace's kind (open / closed / template)""" + kind: WorkspaceKind! + + """The Workspace's name""" + name: String! + ): Workspace + + """Delete a board.""" + delete_board( + """The board's unique identifier""" + board_id: ID! + ): Board + + """Delete a column.""" + delete_column( + """The board's unique identifier.""" + board_id: ID! + + """The column's unique identifier.""" + column_id: String! + ): Column + + """Delete a document block""" + delete_doc_block( + """The block's unique identifier.""" + block_id: String! + ): DocumentBlockIdOnly + + """Deletes a folder in a specific workspace.""" + delete_folder( + """The folder's unique identifier.""" + folder_id: ID! + ): Folder + + """Deletes a group in a specific board.""" + delete_group( + """The board's unique identifier.""" + board_id: ID! + + """The group's unique identifier.""" + group_id: String! + ): Group + + """Delete an item.""" + delete_item( + """The item's unique identifier.""" + item_id: ID + ): Item + + """Remove subscribers from the board.""" + delete_subscribers_from_board( + """The board's unique identifier.""" + board_id: ID! + + """User ids to unsubscribe from a board""" + user_ids: [ID!]! + ): [User] + + """Remove team subscribers from the board.""" + delete_teams_from_board( + """The board's unique identifier""" + board_id: ID! + + """Team ids to unsubscribe from a workspace""" + team_ids: [ID!]! + ): [Team] + + """Delete teams from a workspace.""" + delete_teams_from_workspace( + """Team ids to unsubscribe from a workspace""" + team_ids: [ID!]! + + """The workspace's unique identifier.""" + workspace_id: ID! + ): [Team] + + """Delete users from a workspace.""" + delete_users_from_workspace( + """User ids to unsubscribe from a workspace""" + user_ids: [ID!]! + + """The workspace's unique identifier.""" + workspace_id: ID! + ): [User] + + """Delete a new webhook.""" + delete_webhook( + """The webhook's unique identifier.""" + id: ID! + ): Webhook + + """Delete workspace.""" + delete_workspace( + """The workspace's unique identifier""" + workspace_id: ID! + ): Workspace + + """Duplicate a board.""" + duplicate_board( + """The board's unique identifier.""" + board_id: ID! + + """Optional the new board's name. If omitted then automatically generated""" + board_name: String + + """The duplication type.""" + duplicate_type: DuplicateBoardType! + + """ + Optional destination folder in destination workspace. Defaults to the original board folder. + """ + folder_id: ID + + """Duplicate the subscribers to the new board. Defaults to false.""" + keep_subscribers: Boolean + + """ + Optional destination workspace. Defaults to the original board workspace. + """ + workspace_id: ID + ): BoardDuplication + + """Duplicate a group.""" + duplicate_group( + """Should the new group be added to the top.""" + add_to_top: Boolean + + """The board's unique identifier.""" + board_id: ID! + + """The group's unique identifier.""" + group_id: String! + + """The group's title.""" + group_title: String + ): Group + + """Duplicate an item.""" + duplicate_item( + """The board's unique identifier.""" + board_id: ID! + + """The item's unique identifier. *Required""" + item_id: ID + + """Duplicate with the item's updates.""" + with_updates: Boolean + ): Item + + """Increase operations counter""" + increase_app_subscription_operations( + """Must be positive number.""" + increment_by: Int = 1 + + """ + Operation name. A string of up to 14 characters containing alphanumeric characters and the symbols -_ + """ + kind: String = "global" + ): AppSubscriptionOperationsCounter + + """Move an item to a different board.""" + move_item_to_board( + """The unique identifier of a target board.""" + board_id: ID! + + """Mapping of columns between the original board and target board""" + columns_mapping: [ColumnMappingInput!] + + """The unique identifier of a target group.""" + group_id: ID! + + """The unique identifier of an item to move.""" + item_id: ID! + + """Mapping of subitem columns between the original board and target board""" + subitems_columns_mapping: [ColumnMappingInput!] + ): Item + + """Move an item to a different group.""" + move_item_to_group( + """The group's unique identifier.""" + group_id: String! + + """The item's unique identifier.""" + item_id: ID + ): Item + + """Remove mock app subscription for the current account""" + remove_mock_app_subscription( + """The app id of the app to remove the mocked subscription for.""" + app_id: ID! + + """The last 10 characters of the app's signing secret.""" + partial_signing_secret: String! + ): AppSubscription + + """Remove users from team.""" + remove_users_from_team( + """The team's unique identifier.""" + team_id: ID! + + """User ids to add to/remove from the team""" + user_ids: [ID!]! + ): ChangeTeamMembershipsResult + + """ + Set or update the board's permission to specified role. This concept is also + known as default board role, general access or board permission set. + """ + set_board_permission( + """ + The basic role name to set. One of: editor (can edit structure and content), + contributor (can edit content only), viewer (read-only access). Note: + assigned_contributor is not yet supported. + """ + basic_role_name: BoardBasicRoleName! + + """The board's unique identifier""" + board_id: ID! + ): SetBoardPermissionResponse + + """Set mock app subscription for the current account""" + set_mock_app_subscription( + """The app id of the app to mock subscription for.""" + app_id: ID! + + """Billing period [monthly/yearly]""" + billing_period: String + + """Is the subscription a trial""" + is_trial: Boolean + + """Maximum number of units for the mocked plan""" + max_units: Int + + """The last 10 characters of the app's signing secret.""" + partial_signing_secret: String! + + """The plan id for the mocked plan""" + plan_id: String + + """Pricing plans version""" + pricing_version: Int + + """The subscription renewal date""" + renewal_date: Date + ): AppSubscription + + """Update item column value by existing assets""" + update_assets_on_item( + """The board's unique identifier.""" + board_id: ID! + + """The column's unique identifier.""" + column_id: String! + + """Array of files values.""" + files: [FileInput!]! + + """The item's unique identifier.""" + item_id: ID! + ): Item + + """Update Board attribute.""" + update_board( + """The board's attribute to update (name / description / communication)""" + board_attribute: BoardAttributes! + + """The board's unique identifier""" + board_id: ID! + + """The new attribute value.""" + new_value: String! + ): JSON + + """Update a board's position, workspace, or account product.""" + update_board_hierarchy( + """The position and location attributes to update""" + attributes: UpdateBoardHierarchyAttributesInput! + + """The board's unique identifier""" + board_id: ID! + ): UpdateBoardHierarchyResult + + """Update a document block""" + update_doc_block( + """The block's unique identifier.""" + block_id: String! + + """The block's content.""" + content: JSON! + ): DocumentBlock + + """Updates a folder.""" + update_folder( + """The target account product's ID to move the folder to""" + account_product_id: ID + + """The folder's color.""" + color: FolderColor + + """The folder's custom icon.""" + custom_icon: FolderCustomIcon + + """The folder's unique identifier""" + folder_id: ID! + + """The folder's font weight.""" + font_weight: FolderFontWeight + + """The folder's name""" + name: String + + """The folder's parent folder.""" + parent_folder_id: ID + + """The folder's position relative to another object""" + position: DynamicPosition + + """The workspace's unique identifier.""" + workspace_id: ID + ): Folder + + """Update an existing group.""" + update_group( + """The board's unique identifier.""" + board_id: ID! + + """ + The groups's attribute to update (title / color / position / relative_position_after / relative_position_before) + """ + group_attribute: GroupAttributes! + + """The Group's unique identifier.""" + group_id: String! + + """The new attribute value.""" + new_value: String! + ): Group + + """Update an existing workspace.""" + update_workspace( + """The attributes of the workspace to update""" + attributes: UpdateWorkspaceAttributesInput! + + """The workspace ID.""" + id: ID + ): Workspace + + """Use a template""" + use_template( + """The board's kind (public / private / share)""" + board_kind: BoardKind + + """Optional board owner user ids""" + board_owner_ids: [Int] + + """Optional board owner team ids""" + board_owner_team_ids: [Int] + + """Optional board subscriber ids""" + board_subscriber_ids: [Int] + + """Optional list of subscriber team ids""" + board_subscriber_teams_ids: [Int] + + """ + The callback URL to send the workspace, boards and dashboards IDs result, after its completed in the background + """ + callback_url_on_complete: String + + """The folder ID to duplicate the template to.""" + destination_folder_id: Int + + """ + The folder name to duplicate the template to, in case of multiple boards template + """ + destination_folder_name: String + + """The name of the instance""" + destination_name: String + + """ + The workspace ID to duplicate the template to, If not defined, it will be created in Main Workspace + """ + destination_workspace_id: Int + + """Skips target folder creation in multiple entities templates""" + skip_target_folder_creation: Boolean + + """Optional adding extra options""" + solution_extra_options: JSON + + """The template ID""" + template_id: Int! + ): Template + + """ + Convert an existing monday.com board into a project with enhanced project management capabilities. This mutation transforms a regular board by applying project-specific features and configurations through column mappings that define how existing board columns should be interpreted in the project context. The conversion process is asynchronous and returns a process_id for tracking completion. Optionally accepts a callback URL for notification when the conversion completes. Use this when you have an existing board with data that needs to be upgraded to a full project with advanced project management features like Resource Planner integration. + """ + convert_board_to_project(input: ConvertBoardToProjectInput!): ConvertBoardToProjectResult + + """ + Create a new project in monday.com from scratch. This mutation creates a project (board) with comprehensive customization options including: privacy settings (private/public/share), optional companions like Resource Planner for enhanced project management capabilities, workspace assignment for organizational structure, folder placement for better organization, and template selection for predefined project structures. Use this when you need to programmatically create a brand new project with specific configuration requirements. Returns the project ID upon successful creation. + """ + create_project(input: CreateProjectInput!): CreateProjectResult + + """Updates a notification setting's enabled status.""" + update_notification_setting( + """ + Notification settings scope types, the options are account user defaults or user private settings + """ + scope_type: ScopeType! + + """ + Relevant when using scopeType: user, the user id of the user whose notification settings you want to update, by default the current user is used + """ + scope_id: Int + + """ + The notification setting type to update. Must be one of the allowed notification setting kinds. + """ + setting_kind: String! + + """The channel type to update (Monday, Email, Slack, etc.)""" + channel: ChannelType! + + """Whether the notification setting should be enabled or disabled""" + enabled: Boolean! + ): [NotificationSetting!] + + """ + Update mute notification settings for a board. Allows muting all notifications for all users, only for the current user, or setting mentions/assigns-only. Returns the updated mute state for the board. Requires appropriate permissions for muting all users. + """ + update_mute_board_settings( + """ + The ID of the board to update mute settings for. Must be a valid board ID. + """ + board_id: String! + + """ + The desired mute state for the board. + - MUTE_ALL: Mute all notifications for all users (admin only). + - CURRENT_USER_MUTE_ALL: Mute all notifications for the current user only. + - MENTIONS_AND_ASSIGNS_ONLY: Only notify the current user on mentions or assigns. + - NOT_MUTED: Unmute notifications. + """ + mute_state: BoardMuteState! + ): [BoardMuteSettings!] + + """ + Creates a new object in the Monday.com Objects Platform. The type of object created is determined by the app_feature_reference_id parameter. This mutation can create boards, docs, dashboards, workflows, or specialized objects like CRM, capacity manager, etc. Under the hood, this creates a board with the specified app_feature_id. + """ + create_object( + """ + The name of the new object. This will be displayed in the Monday.com interface as the primary identifier for this object. + """ + name: String! + + """ + The kind/visibility setting of the object (private, public, share). Determines who can access it. + """ + privacy_kind: PrivacyKind! + + """ + The ID of the workspace containing this object. Null indicates the object is in the main workspace. + """ + workspace_id: ID + + """ + Optional description of the object, providing additional context about its purpose or contents. + """ + description: String + + """ + The ID of the folder to create the object in. Used for organizing objects in folders. visible in the left pane of the platform. Must be a valid and existing workspace id in monday.com. + """ + folder_id: ID + + """ + List of user IDs who will be assigned as owners of this object. Owners have full control permissions. + """ + owner_ids: [ID!] + + """ + List of team IDs who will be assigned as owners of this object. All members of these teams will have owner permissions. + """ + owner_team_ids: [ID!] + + """ + List of user IDs who will be added as subscribers to this object. Subscribers receive notifications about changes. + """ + subscriber_ids: [ID!] + + """ + List of team IDs who will be added as subscribers to this object. All members of these teams will receive notifications about changes. + """ + subscriber_teams_ids: [ID!] + + """ + The unique identifier for the object type, formatted as 'app_slug::app_feature_slug. To create an object you must provide this key. You can get a list of available keys by using the 'object_types_unique_keys' query. + """ + object_type_unique_key: String! + + """ + JSON of creation payload, that will include additional fields for the object creation + """ + payload: JSON + ): Object + + """ + Permanently deletes an object from the Monday.com Objects Platform. Unlike archiving, deletion is only reversible for 30 days and removes all associated data. This operation works for any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). WARNING: This operation cannot be undone after 30 days. + """ + delete_object( + """ + The unique identifier of the object to delete. Each object has a unique ID regardless of its type (board, doc, dashboard, etc.). WARNING: Deletion is only reversible for 30 days. + """ + id: ID! + ): Object + + """ + Archives an object in the Monday.com Objects Platform, changing its state to "archived" while preserving all data. Archived objects remain in the system but are hidden from regular views. This operation works for any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). Under the hood, this archives the board that represents this object. + """ + archive_object( + """ + The unique identifier of the object to archive. Each object has a unique ID regardless of its type (board, doc, dashboard, etc.). + """ + id: ID! + ): Object + + """ + Adds users to an existing object as either subscribers or owners. Subscribers receive notifications about object changes, while owners have full control permissions. Works with any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). Equivalent to the add_users_to_board mutation in the boards API. + """ + add_subscribers_to_object( + """ + The unique identifier of the object to add users to. Each object has a unique ID regardless of its type (board, doc, dashboard, etc.). + """ + id: ID! + + """ + List of user IDs to add to the object. These must be valid user IDs existing in the Monday.com platform. + """ + user_ids: [ID!]! + + """ + The role to assign to the users. "owner" grants full control permissions, while "subscriber" only provides notification access. If not specified, users will be added as subscribers. + """ + kind: SubscriberKind = SUBSCRIBER + ): Object + + """Updates an object.""" + update_object(id: String!, input: UpdateObjectInput!): Object + + """Connect project to portfolio""" + connect_project_to_portfolio( + """The ID of the project to connect""" + projectBoardId: ID! + + """The ID of the portfolio to connect to""" + portfolioBoardId: ID! + ): ConnectProjectResult + + """Create a new portfolio""" + create_portfolio(boardName: String!, boardPrivacy: String!, destinationWorkspaceId: Int): CreatePortfolioResult + + """Creates a new team.""" + create_team(input: CreateTeamAttributesInput!, options: CreateTeamOptionsInput): Team + + """Activates the specified users.""" + activate_users( + """The ids of the users to activate. (Limit: 200)""" + user_ids: [ID!]! + ): ActivateUsersResult + + """Deactivates the specified users.""" + deactivate_users( + """The ids of the users to deactivate. (Limit: 200)""" + user_ids: [ID!]! + ): DeactivateUsersResult + + """Deletes the specified team.""" + delete_team( + """The team to be deleted.""" + team_id: ID! + ): Team + + """Updates the role of the specified users.""" + update_users_role( + """The ids of the users to update. (Limit: 200)""" + user_ids: [ID!]! + + """The base role name (e.g. admin, member, etc.)""" + new_role: BaseRoleName + + """The ID of a custom role""" + role_id: ID + ): UpdateUsersRoleResult + + """Assigns the specified users as owners of the specified team.""" + assign_team_owners( + """The team identifier.""" + team_id: ID! + + """The user identifiers (max 200)""" + user_ids: [ID!]! + ): AssignTeamOwnersResult + + """Removes the specified users as owners of the specified team.""" + remove_team_owners( + """The team identifier.""" + team_id: ID! + + """The user identifiers (max 200)""" + user_ids: [ID!]! + ): RemoveTeamOwnersResult + + """Updates the email domain for the specified users.""" + update_email_domain(input: UpdateEmailDomainAttributesInput!): UpdateEmailDomainResult + + """Updates attributes for users.""" + update_multiple_users( + """List of user updates, each containing an ID and attribute updates.""" + user_updates: [UserUpdateInput!]! + + """Whether to bypass email confirmation for claimed domains.""" + bypass_confirmation_for_claimed_domains: Boolean + + """ + Whether to use async mode. If true, the update will be done in the background and can handle more than 200 users at once. + """ + use_async_mode: Boolean + ): UpdateUserAttributesResult + + """Invite users to the account.""" + invite_users( + """The emails of the users to invite.""" + emails: [String!]! + + """The new role of the users.""" + user_role: UserRole + + """The product to invite the users to""" + product: Product + ): InviteUsersResult + + """ + Create a new widget based on the provided WidgetCreateRequest JSON input. + """ + create_widget( + """The ID of the parent entity (dashboard, doc, or board).""" + entity_id: Int! + + """The type of entity to which the widget is being added.""" + entity_type: WidgetEntityType! + + """The type of widget to create.""" + type: WidgetType! + + """The name of the widget as it will appear in the UI.""" + name: String! + + """Widget-specific configuration settings.""" + configuration: WidgetConfigurationInput + + """ + The board view ID where the widget will be placed. Can only be specified when entity_type is Item. + """ + board_view_id: Int + ): WidgetModel + + """Create a new dashboard and return the complete Dashboard object.""" + create_dashboard( + """Human-readable dashboard title (1–255 UTF-8 chars).""" + name: String! + + """ID of the workspace that will own the dashboard.""" + workspace_id: Int! + + """List of board IDs as strings (min 1 element).""" + board_ids: [String!]! + + """Visibility level: `PUBLIC` or `PRIVATE` (default `PRIVATE`).""" + kind: DashboardKind + + """Folder ID within the workspace in which to place the dashboard.""" + board_folder_id: Int + ): Dashboard + + """ + Update form properties including title, description, or question order. + """ + update_form( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """ + Complete form configuration object containing properties to create or update. + """ + input: UpdateFormInput! + ): ResponseForm + + """ + Update form configuration including features, appearance, and accessibility options. + """ + update_form_settings( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """Complete form settings object containing all configuration options.""" + settings: UpdateFormSettingsInput! + ): ResponseForm + + """ + Create a new question within a form. Returns the created question with auto-generated ID. + """ + create_form_question( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """ + Complete question object containing all properties for creation or update. + """ + question: CreateQuestionInput! + ): FormQuestion + + """ + Update an existing question properties including title, type, or settings. Requires question ID. + """ + update_form_question( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """ + The unique identifier for the question. Used to target specific questions within a form. + """ + questionId: String! + + """ + Complete question object containing all properties for creation or update. + """ + question: UpdateQuestionInput! + ): FormQuestion + + """ + Permanently remove a question from a form. This action cannot be undone. + """ + delete_question( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """ + The unique identifier for the question. Used to target specific questions within a form. + """ + questionId: String! + ): Boolean + + """ + Activate a form to make it visible to users and accept new submissions. + """ + activate_form( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + ): Boolean + + """ + Deactivate a form to hide it from users and stop accepting submissions. Form data is preserved. + """ + deactivate_form( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + ): Boolean + + """ + Create a new tag for a form. Tags are used to categorize and track responses. (e.g. UTM tags) + """ + create_form_tag( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """The tag data to create""" + tag: CreateFormTagInput! + ): FormTag + + """Update an existing tag in a form""" + update_form_tag( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """The unique identifier for the tag""" + tagId: String! + + """The tag data to create""" + tag: UpdateFormTagInput! + ): Boolean + + """Delete a tag from a form""" + delete_form_tag( + """ + The unique identifier token for the form. Required for all form-specific operations. + """ + formToken: String! + + """The unique identifier for the tag""" + tagId: String! + + """Options for deleting the tag""" + options: DeleteFormTagInput + ): Boolean + create_form(destination_workspace_id: Float, destination_folder_id: Float, destination_folder_name: String, board_kind: BoardKind, destination_name: String, skip_target_folder_creation: Boolean, entity_names_mapping: String, board_owner_ids: [Float!], board_owner_team_ids: [Float!], board_subscriber_ids: [Float!], board_subscriber_teams_ids: [Float!]): DehydratedFormResponse +} + +"""A date.""" +scalar Date + +"""An ISO 8601-encoded datetime (e.g., 2024-04-09T13:45:30Z)""" +scalar ISO8601DateTime + +"""A JSON formatted string.""" +scalar JSON + +type AuditEventCatalogueEntry { + name: String + description: String + metadata_details: JSON +} + +type AuditLogEntry { + timestamp: String + account_id: String + user: User + event: String + slug: String + ip_address: String + user_agent: String + client_name: String + client_version: String + os_name: String + os_version: String + device_name: String + device_type: String + activity_metadata: JSON +} + +""" +A paginated collection of audit log entries. This object contains two properties: + logs, the requested page of AuditLogEntry objects matching your query, and pagination, which + contains metadata about the current and next page (if present). +""" +type AuditLogPage { + """ + List of audit log entries for the current page. See the audit log entry object + for more details on this object. + """ + logs: [AuditLogEntry!] + + """Pagination metadata. See the pagination object for more details.""" + pagination: Pagination +} + +""" +Pagination metadata: indicates the current page and page size, whether there + are more pages, and the next page number if one exists. Note that the page size reflects + the number of items requested, not the number of items returned. +""" +type Pagination { + """Current page number (1-based)""" + page: Int + + """Number of items per page""" + page_size: Int + + """Indicates if there are more pages available""" + has_more_pages: Boolean + + """Number of the next page""" + next_page_number: Int +} + +"""A monday.com user.""" +type User { + """The user's unique identifier.""" + id: ID! + + """The user's account.""" + account: Account! + + """The products the user is assigned to.""" + account_products: [AccountProduct!] + + """The user's birthday.""" + birthday: Date + + """The user's country code.""" + country_code: String + + """The user's creation date.""" + created_at: Date + + """The current user's language""" + current_language: String + + """The custom field metas of the user profile.""" + custom_field_metas: [CustomFieldMetas] + + """The custom field values of the user profile.""" + custom_field_values: [CustomFieldValue] + + """The user's email.""" + email: String! + + """Is the user enabled or not.""" + enabled: Boolean! + + """The token of the user for email to board.""" + encrypt_api_token: String + + """Is the user an account admin.""" + is_admin: Boolean + + """Is the user a guest or not.""" + is_guest: Boolean + + """Is the user a pending user""" + is_pending: Boolean + + """Is user verified his email.""" + is_verified: Boolean + + """Is the user a view only user or not.""" + is_view_only: Boolean + + """The date the user joined the account.""" + join_date: Date + + """Last date & time when user was active""" + last_activity: Date + + """The user's location.""" + location: String + + """The user's mobile phone number.""" + mobile_phone: String + + """The user's name.""" + name: String! + + """The user's out of office status.""" + out_of_office: OutOfOffice + + """The user's phone number.""" + phone: String + + """The user's photo in the original size.""" + photo_original: String + + """The user's photo in small size (150x150).""" + photo_small: String + + """The user's photo in thumbnail size (100x100).""" + photo_thumb: String + + """The user's photo in small thumbnail size (50x50).""" + photo_thumb_small: String + + """The user's photo in tiny size (30x30).""" + photo_tiny: String + + """The product to which the user signed up to first.""" + sign_up_product_kind: String + + """The teams the user is a member in.""" + teams( + """A list of teams unique identifiers.""" + ids: [ID!] + ): [Team] + + """The user's timezone identifier.""" + time_zone_identifier: String + + """The user's title.""" + title: String + + """The user's profile url.""" + url: String! + + """The user’s utc hours difference.""" + utc_hours_diff: Int + greeting: String +} + +"""Base field type implementation""" +type BaseFieldType implements FieldType { + """Unique identifier for the field type""" + id: Int + + """Unique key of the field type""" + uniqueKey: String + + """Name of the field type""" + name: String + + """Description of the field type""" + description: String + + """Current state of the field type""" + state: FieldTypeState + + """Unique key identifier for the field type""" + key: String + + """Default key for fields of this type""" + defaultFieldKey: String + + """ + Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. + """ + dependencyConfig: DependencyConfig + + """List of field type implementations""" + implement: [FieldTypeImplementation!] +} + +"""A block in the framework""" +type Block { + """Unique identifier for the block""" + id: Int + + """Unique key of the block""" + uniqueKey: String + + """Name of the block""" + name: String + + """Description of the block""" + description: String + + """Type of the block""" + kind: String + + """ + Configuration for input fields. To fetch the available options of a specific input field, first query the block requesting the `fieldTypeData` for that field and then call the `remote_options` query using the resulting `fieldTypeReferenceId`. + """ + inputFieldsConfig: [InputFieldConfig!] + + """Configuration for output fields""" + outputFieldsConfig: [OutputFieldConfig!] +} + +"""Result of a blocks query""" +type BlocksResult { + """List of blocks""" + blocks: [Block!] +} + +""" +Represents an integration connection between a monday.com account and an external service. +""" +type Connection { + """Unique identifier of the connection.""" + id: Int + + """Identifier of the monday.com account that owns the connection.""" + accountId: Int + + """Identifier of the user who created the connection.""" + userId: Int + + """External service provider of the connection (e.g., gmail, slack).""" + provider: String + + """Human-readable display name for the connection.""" + name: String + + """ + Authentication method used by the connection (e.g., oauth, token_based). + """ + method: String + + """Identifier of the linked account at the provider side.""" + providerAccountIdentifier: String + + """Current state of the connection (e.g., active, inactive).""" + state: String + + """ISO timestamp when the connection was created.""" + createdAt: String + + """ISO timestamp when the connection was last updated.""" + updatedAt: String +} + +type CreateWorkflowResult { + """Workflow numeric ID (supports both integer and bigint)""" + id: String +} + +"""Configuration for a custom input field""" +type CustomInputFieldConfig implements InputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType + + """Reference ID to the field type""" + fieldTypeReferenceId: Int + + """Unique key of the field type""" + fieldTypeUniqueKey: String + + """Constraints applied to the field""" + constraints: InputFieldConstraints + + """ + Data for the referenced field type. Fetch this field when you need the `fieldTypeReferenceId` to call the `remote_options` query and retrieve the available options for the input field. + """ + fieldTypeData: FieldType +} + +"""Configuration for a custom output field""" +type CustomOutputFieldConfig implements OutputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType + + """Reference ID to the field type""" + fieldTypeReferenceId: Int + + """Unique key of the field type""" + fieldTypeUniqueKey: String + + """Constraints applied to the field""" + constraints: OutputFieldConstraints + + """Data for the referenced field type""" + fieldTypeData: FieldType +} + +type DeleteWorkflowResult { + """Whether the workflow was successfully deleted""" + isSuccess: Boolean +} + +""" +Defines mandatory and optional dependencies that must be populated to allow resolving the field dynamic values +""" +type DependencyConfig { + """Required dependencies evaluated in order""" + orderedMandatoryFields: [DependencyField!] + + """ + Non-required dependencies that refine the dynamic values request but do not block enablement + """ + optionalFields: [DependencyField!] +} + +""" +Maps a source field-type to the key name expected in the dynamic-values payload for this dependency +""" +type DependencyField { + """Reference ID of the field-type that supplies the dependency value""" + sourceFieldTypeReferenceId: Int + + """Unique key of the source field type""" + sourceFieldTypeUniqueKey: String + + """JSON key that the backend expects for this dependency value""" + targetFieldKey: String +} + +"""Information about a field""" +type FieldInformation { + """The text content of the field information""" + text: String + + """A link to more information""" + link: JSON +} + +"""A field type in the framework""" +interface FieldType { + """Unique identifier for the field type""" + id: Int + + """Unique key of the field type""" + uniqueKey: String + + """Name of the field type""" + name: String + + """Description of the field type""" + description: String + + """Current state of the field type""" + state: FieldTypeState + + """Unique key identifier for the field type""" + key: String + + """Default key for fields of this type""" + defaultFieldKey: String + + """ + Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. + """ + dependencyConfig: DependencyConfig + + """List of field type implementations""" + implement: [FieldTypeImplementation!] +} + +"""Implementation of a field type""" +type FieldTypeImplementation { + """Unique identifier for the implementation""" + id: Int + + """Unique key of the app feature""" + uniqueKey: String + + """Name of the implementation""" + name: String +} + +"""The type of relation between a field and its type""" +enum FieldTypeRelationType { + """The field type is a primitive type (string, number, boolean, etc.)""" + PRIMITIVE + + """The field type is an interface type""" + INTERFACE + + """The field type is a custom type""" + CUSTOM +} + +"""The state of a field type""" +enum FieldTypeState { + """The field type is active and can be used""" + ACTIVE + + """The field type has been deleted and cannot be used""" + DELETED +} + +"""Input parameters for getting blocks""" +input GetBlocksInput { + """Optional array of app feature unique keys to filter blocks""" + app_feature_unique_keys: [String!] + + """Optional array of contexts to filter blocks""" + contexts: [String!] +} + +enum HostType { + """Workflow hosted under an app feature object""" + APP_FEATURE_OBJECT + + """Workflow hosted in a board""" + BOARD + + """Workflow hosted in the account""" + ACCOUNT +} + +"""Interface for input field configuration""" +interface InputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType +} + +"""Input field constraints""" +type InputFieldConstraints { + """Dependencies for remote options that affect this field""" + remoteOptionsDependencies: JSON + + """Dependencies that affect this field's behavior or validation""" + dependencies: JSON + + """Dependencies between this field and its subfields""" + subFieldsDependencies: JSON + + """Credential dependencies required for this field""" + credentials: JSON +} + +"""Configuration for an interface input field""" +type InterfaceInputFieldConfig implements InputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType + + """Name of the subfield in the interface""" + subfieldName: String + + """Constraints applied to the field""" + constraints: InputFieldConstraints +} + +"""Data required to request the next page of remote options""" +type NextPageRequestData { + """The page number to request""" + page: Int! + + """Optional cursor for cursor-based pagination""" + cursor: JSON +} + +"""A single option in a remote options list""" +type Option { + """The value of the option""" + value: JSON + + """The display title of the option""" + title: String +} + +"""Interface for output field configuration""" +interface OutputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType +} + +"""Output field constraints""" +type OutputFieldConstraints { + """Dependencies that affect this field's output behavior""" + dependencies: JSON + + """Dependencies between this field and its subfields in the output""" + subFieldsDependencies: JSON + + """Credential dependencies required for this field's output""" + credentials: JSON +} + +"""Pagination parameters for queries""" +input PaginationInput { + """Maximum number of results to return""" + limit: Int + + """Last ID for cursor-based pagination""" + lastId: Int +} + +"""Primitive field type implementation""" +type PrimitiveFieldType implements FieldType { + """Unique identifier for the field type""" + id: Int + + """Unique key of the field type""" + uniqueKey: String + + """Name of the field type""" + name: String + + """Description of the field type""" + description: String + + """Current state of the field type""" + state: FieldTypeState + + """Unique key identifier for the field type""" + key: String + + """Default key for fields of this type""" + defaultFieldKey: String + + """ + Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. + """ + dependencyConfig: DependencyConfig + + """List of field type implementations""" + implement: [FieldTypeImplementation!] + + """The primitive type of the field""" + primitiveType: PrimitiveTypes + + """Configuration metadata for the field type""" + configurartionMetadata: JSON +} + +"""Configuration for a primitive input field""" +type PrimitiveInputFieldConfig implements InputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType + + """Type of the primitive field""" + primitiveType: PrimitiveTypes +} + +"""Configuration for a primitive output field""" +type PrimitiveOutputFieldConfig implements OutputFieldConfig { + """Unique identifier for the field""" + id: Int + + """Key identifier for the field""" + fieldKey: String + + """Display title for the field""" + fieldTitle: String + + """Whether the field can be null""" + isNullable: Boolean + + """Whether the field is an array type""" + isArray: Boolean + + """Whether the field is optional""" + isOptional: Boolean + + """Additional information about the field""" + information: FieldInformation + + """Detailed description of the field""" + description: FieldInformation + + """Type of the field relation""" + type: FieldTypeRelationType + + """Type of the primitive field""" + primitiveType: PrimitiveTypes +} + +"""The primitive types supported by the system""" +enum PrimitiveTypes { + """String type for text values""" + STRING + + """Number type for integer values""" + NUMBER + + """Float type for decimal values""" + FLOAT + + """Boolean type for true/false values""" + BOOLEAN + + """Date type for date values""" + DATE + + """Hour type for hour values""" + HOUR +} + +""" +Input type for requesting remote options for a field type, including dependencies, credentials, pagination, and search query. +""" +input RemoteOptionsInput { + """The unique key of the field type""" + field_type_unique_key: String! + + """ + Map all the dependencies fieldKeys to their values. Example: { "my-field-key": { value: 123 }, "my-other-field-key": { value: 456 } } .The schema is: Record + """ + dependencies_values: JSON + + """ + Map a credentialsKey to the credentials data. Example: { "my-credentials-key": { userCredentialsId: 123, accessToken: "abc" } } + """ + credentials_values: JSON + + """ + Pagination data matching the schema of the field's remote options pagination data + """ + page_request_data: JSON + + """Search query""" + query: String + + """Request specific values to fetch their title""" + values_to_fetch: JSON +} + +""" +Response containing a list of remote options and pagination information +""" +type RemoteOptionsResponse { + """List of available options""" + options: [Option!] + + """Whether the options list supports pagination""" + isPaginated: Boolean + + """Whether this is the last page of options""" + isLastPage: Boolean + + """Data required to fetch the next page of options""" + nextPageRequestData: NextPageRequestData + + """Optional disclaimer text to display with the options""" + disclaimer: String +} + +"""Object field type implementation""" +type SubfieldsFieldType implements FieldType { + """Unique identifier for the field type""" + id: Int + + """Unique key of the field type""" + uniqueKey: String + + """Name of the field type""" + name: String + + """Description of the field type""" + description: String + + """Current state of the field type""" + state: FieldTypeState + + """Unique key identifier for the field type""" + key: String + + """Default key for fields of this type""" + defaultFieldKey: String + + """ + Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. + """ + dependencyConfig: DependencyConfig + + """List of field type implementations""" + implement: [FieldTypeImplementation!] + + """Indicates if the object field type has remote subfields""" + hasRemoteSubfields: Boolean +} + +input UpdateWorkflowInput { + """ID of the workflow to update""" + id: Int! + + """New set of workflow blocks to replace existing ones""" + workflowBlocks: [WorkflowBlockInput!]! + + """ + Variables used within this workflow. To get the accurate JSON schema call the GraphQL query 'get_workflow_variable_schemas' + """ + workflowVariables: [JSON!]! +} + +input UpdateWorkflowMetadataInput { + """ID of the workflow to update""" + id: Int! + + """New title for the workflow""" + title: String + + """New description for the workflow""" + description: String +} + +type UpdateWorkflowResult { + """Workflow numeric ID (supports both integer and bigint)""" + id: String +} + +type Workflow { + """Workflow numeric ID (supports both integer and bigint)""" + id: String + + """Title of the workflow""" + title: String + + """Detailed description of the workflow""" + description: String + + """Define the workflow's steps and the configuration of each step""" + workflowBlocks: [WorkflowBlock!] + + """ + Variables used within this workflow. To get the accurate JSON schema call the GraphQL query 'get_workflow_variable_schemas' + """ + workflowVariables: JSON + + """Hierarchy level the workflow is hosted in""" + workflowHostData: WorkflowHostData + + """Type of host for this workflow""" + hostType: HostType + + """Instance ID of the host""" + hostInstanceId: Int + + """Notice/Error message for the workflow""" + noticeMessage: String + + """Reference ID of the creator app feature""" + creatorAppFeatureReferenceId: Int + + """ID of the creator app""" + creatorAppId: Int +} + +type WorkflowBlock { + """Unique node identifier within the workflow""" + workflowNodeId: Int + + """Reference ID of the block""" + blockReferenceId: Int + + """Title of the workflow block""" + title: String + + """ + Defines the input fields of the workflow block. This corresponds to the input fields defined by the block used in the Workflow Block. You must call the remote_options query to retrieve the allowed values for any custom input field before configuring it. + """ + inputFields: [WorkflowBlockInputField!] + + """Configuration for credential sources""" + credentialsSourceConfig: JSON + + """ + Configuration for the next workflow blocks. To get the accurate JSON schema call the graphQL query 'get_workflow_block_next_mapping_schemas + """ + nextWorkflowBlocksConfig: JSON + kind: WorkflowBlockKind +} + +input WorkflowBlockFieldInput { + """The block's field key""" + fieldKey: String! + + """ + Key of the workflow variable defining the configuration for the field key. Always a positive number + """ + workflowVariableKey: Int! +} + +input WorkflowBlockInput { + """Unique node identifier within the workflow""" + workflowNodeId: Int! + + """Reference ID of the block""" + blockReferenceId: Int! + + """Title of the workflow block""" + title: String! + + """ + Defines the input fields of the workflow block. This corresponds to the input fields defined by the block used in the Workflow Block. You must call the remote_options query to retrieve the allowed values for any custom input field before configuring it. + """ + inputFields: [WorkflowBlockFieldInput!]! + + """Configuration for credential sources""" + credentialsSourceConfig: JSON + + """ + Configuration for the next workflow blocks. To get the accurate JSON schema call the graphQL query 'get_workflow_block_next_mapping_schemas + """ + nextWorkflowBlocksConfig: JSON + kind: WorkflowBlockKind +} + +type WorkflowBlockInputField { + """The block's field key""" + fieldKey: String + + """ + Key of the workflow variable defining the configuration for the field key. Always a positive number + """ + workflowVariableKey: Int +} + +""" +The kind of workflow block. This is the type of the block that is used in the UI +""" +enum WorkflowBlockKind { + """A wait block""" + WAIT +} + +""" +The json schema definition for a given workflow block next mapping kind +""" +type WorkflowBlockNextMappingSchema { + """The kind of workflow block next mapping""" + kind: String + + """JSON schema for this workflow block next mapping kind""" + schema: JSON +} + +"""Hierarchy level the workflow is hosted in""" +type WorkflowHostData { + """Type of host for this workflow""" + type: HostType + + """Instance ID of the host""" + id: Int +} + +input WorkflowHostDataInput { + """Instance ID of the host""" + id: String! + + """Type of host for this workflow""" + type: HostType! +} + +input WorkflowInput { + """Title of the workflow""" + title: String! + + """Detailed description of the workflow""" + description: String! + + """Define the workflow's steps and the configuration of each step""" + workflowBlocks: [WorkflowBlockInput!]! + + """ + Variables used within this workflow. To get the accurate JSON schema call the GraphQL query 'get_workflow_variable_schemas' + """ + workflowVariables: [JSON!]! + + """Hierarchy level the workflow is hosted in""" + workflowHostData: WorkflowHostDataInput! + + """Reference ID of the creator app feature""" + creatorAppFeatureReferenceId: Int + + """ID of the creator app""" + creatorAppId: Int +} + +"""The kind and JSON schema definition for a given workflow variable kind""" +type WorkflowVariableSchema { + """The kind of workflow variable""" + kind: WorkflowVariableSourceKind + + """JSON schema of the workflow variable""" + schema: JSON +} + +enum WorkflowVariableSourceKind { + """A value defined by the user""" + user_config + + """A value from a previous node output""" + node_results + + """A value from a reference to another workflow variable""" + reference + + """ + Points to the host ID value where the workflow is hosted (board ID, object ID, account ID, etc.). It's auto calculated during when the workflow runs + """ + host_metadata +} + +"""A monday.com board.""" +type Board { + """The unique identifier of the board.""" + id: ID! + + """The board's views.""" + views( + """A list of view unique identifiers.""" + ids: [ID!] + + """The view's type""" + type: String + ): [BoardView] + + """The board's updates.""" + updates( + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + + """A list of items unique identifiers.""" + ids: [ID!] + ): [Update!] + + """The user's permission level for this board (view / edit).""" + access_level: BoardAccessLevel! + + """The board log events.""" + activity_logs( + """Column ids to filter""" + column_ids: [String] + + """From timestamp (ISO8601)""" + from: ISO8601DateTime + + """Group ids to filter""" + group_ids: [String] + + """Item id to filter""" + item_ids: [ID!] + + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + + """To timestamp (ISO8601)""" + to: ISO8601DateTime + + """User ids to filter.""" + user_ids: [ID!] + ): [ActivityLogType] + + """The board's folder unique identifier.""" + board_folder_id: ID + + """The board's kind (public / private / share).""" + board_kind: BoardKind! + + """The board's visible columns.""" + columns( + """A list of column unique identifiers.""" + ids: [String] + + """A list of column types.""" + types: [ColumnType!] + ): [Column] + + """The board's columns namespace.""" + columns_namespace: String + + """Get the board communication value - typically meeting ID""" + communication: JSON + + """The time the board was created at.""" + created_at: ISO8601DateTime + + """The creator of the board.""" + creator: User! + + """The board's description.""" + description: String + + """The board's visible groups.""" + groups( + """A list of group unique identifiers.""" + ids: [String] + ): [Group] + + """ + The Board's item nickname, one of a predefined set of values, or a custom user value + """ + item_terminology: String + + """The number of items on the board""" + items_count: Int + + """The maximum number of items this board can have""" + items_limit: Int + + """The board's items (rows).""" + items_page( + """ + An opaque token representing the position in the result set from which to + resume fetching items. Use this to paginate through large result sets. + """ + cursor: String + + """ + The maximum number of items to fetch in a single request. Use this to + control the size of the result set and manage pagination. Maximum: 500. + """ + limit: Int! = 25 + + """ + A set of parameters to filter, sort, and control the scope of the items + query. Use this to customize the results based on specific criteria. + """ + query_params: ItemsQuery + ): ItemsResponse! + + """The board's name.""" + name: String! + + """The Board's object type unique key""" + object_type_unique_key: String + + """The owner of the board.""" + owner: User! @deprecated(reason: "This field returned creator of the board. Please use 'creator' or 'owners' fields instead.") + + """List of user board owners""" + owners: [User]! + + """The board's permissions.""" + permissions: String! + + """The Board's source solution item mapping""" + source_solution_item_mapping: String + + """The board's state (all / active / archived / deleted).""" + state: State! + + """The board's subscribers.""" + subscribers: [User]! + + """The board's specific tags.""" + tags: [Tag] + + """List of team board owners""" + team_owners( + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Team!] + + """The board's team subscribers.""" + team_subscribers( + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Team!] + + """The top group at this board.""" + top_group: Group! + + """The board object type.""" + type: BoardObjectType + + """The last time the board was updated at.""" + updated_at: ISO8601DateTime + + """The Board's url""" + url: String! + + """The workspace that contains this board (null for main workspace).""" + workspace: Workspace + + """The board's workspace unique identifier (null for main workspace).""" + workspace_id: ID +} + +"""A board's view.""" +type BoardView { + """The view's unique identifier.""" + id: ID! + + """The view's name.""" + name: String! + + """The view's type.""" + type: String + + """The view's settings in a string form.""" + settings_str: String! + + """Specific board view data (supported only for forms)""" + view_specific_data_str: String! + + """The view's template id if it was duplicated from other view""" + source_view_id: ID + + """The view's settings""" + settings: JSON + + """The view's sort""" + sort: JSON + + """The view's filter user id""" + filter_user_id: Int + + """The view's filter team id""" + filter_team_id: Int + + """The view's tags""" + tags: [String!] + + """The view's filter""" + filter: JSON + + """The user's permission level for this view (view / edit).""" + access_level: BoardViewAccessLevel! +} + +input ColumnPropertyInput { + """The ID of the column""" + column_id: String! + + """Whether the column is visible""" + visible: Boolean! +} + +input ColumnsConfigInput { + """Configuration for main board columns""" + column_properties: [ColumnPropertyInput!] + + """Configuration for subitems columns""" + subitems_column_properties: [ColumnPropertyInput!] + + """Number of floating columns to display""" + floating_columns_count: Int +} + +scalar CompareValue + +"""Configuration settings for group by column""" +input GroupByColumnConfigInput { + """Sort settings for the column""" + sortSettings: GroupBySortSettingsInput +} + +"""Condition for grouping items by column""" +input GroupByConditionInput { + """ID of the column to group by""" + columnId: String! + + """Configuration for the group by column""" + config: GroupByColumnConfigInput +} + +"""Settings for grouping board items""" +input GroupBySettingsInput { + """List of conditions for grouping items""" + conditions: [GroupByConditionInput!]! + + """Whether to hide groups with no items""" + hideEmptyGroups: Boolean +} + +"""Sort settings for group by configuration""" +input GroupBySortSettingsInput { + """Sort direction for the group""" + direction: SortDirection! + + """Type of sorting to apply""" + type: String +} + +"""The direction to order the items by""" +enum ItemsOrderByDirection { + """Ascending order""" + asc + + """Descending order""" + desc +} + +"""A group of rules or rule groups""" +input ItemsQueryGroup { + """A list of rules""" + rules: [ItemsQueryRule!] + + """A list of rule groups""" + groups: [ItemsQueryGroup!] + + """The operator to use for the query rules or rule groups""" + operator: ItemsQueryOperator = and +} + +"""The condition between the query rules""" +enum ItemsQueryOperator { + """Logical OR""" + or + + """Logical AND""" + and +} + +"""Sort the results by specified columns""" +input ItemsQueryOrderBy { + column_id: String! + + """Sort direction (defaults to ASC)""" + direction: ItemsOrderByDirection = asc +} + +"""A rule to filter items by a specific column""" +input ItemsQueryRule { + column_id: ID! + compare_value: CompareValue! + compare_attribute: String + operator: ItemsQueryRuleOperator = any_of +} + +"""The operator to use for the value comparison""" +enum ItemsQueryRuleOperator { + """Any of the values""" + any_of + + """None of the values""" + not_any_of + + """Empty value""" + is_empty + + """Not empty value""" + is_not_empty + + """Greater than the value""" + greater_than + + """Greater than or equal to the value""" + greater_than_or_equals + + """Lower than the value""" + lower_than + + """Lower than or equal to the value""" + lower_than_or_equal + + """Between the two values""" + between + + """Does not contain the text""" + not_contains_text + + """Contains the text""" + contains_text + + """Contains all the terms""" + contains_terms + + """Starts with the value""" + starts_with + + """Ends with the value""" + ends_with + + """Within the next """ + within_the_next + + """Within the last""" + within_the_last +} + +"""Direction for sorting items""" +enum SortDirection { + """Ascending order""" + ASC + + """Descending order""" + DESC +} + +"""Settings configuration for table view display options""" +input TableViewSettingsInput { + """Column visibility configuration for the board view""" + columns: ColumnsConfigInput + + """The group by to apply to the board view""" + group_by: GroupBySettingsInput +} + +"""Available view types for board displays""" +enum ViewKind { + """Dashboard view for displaying dashboard view""" + DASHBOARD + + """Table view for displaying items in a structured table format""" + TABLE + + """Form view for input and data entry""" + FORM + + """App view for feature-specific board display""" + APP +} + +"""Type of mutation operation""" +enum ViewMutationKind { + """Create operation""" + CREATE + + """Update operation""" + UPDATE +} + +"""An item (table row).""" +type Item { + """The item's unique identifier.""" + id: ID! + + """The item's updates.""" + updates( + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + + """A list of items unique identifiers.""" + ids: [ID!] + ): [Update!] + + """The item's assets/files.""" + assets( + """The assets source (all / columns / gallery)""" + assets_source: AssetsSource + + """Ids of the columns you want to get assets from.""" + column_ids: [String] + ): [Asset] + + """The board that contains this item.""" + board: Board + + """The item's column values.""" + column_values( + """A list of column ids to return""" + ids: [String!] + + """A list of column types to return""" + types: [ColumnType!] + ): [ColumnValue!]! + + """The item's create date.""" + created_at: Date + + """The item's creator.""" + creator: User + + """The unique identifier of the item creator.""" + creator_id: String! + + """The item's description""" + description: ItemDescription + + """The item's email.""" + email: String! + + """The group that contains this item.""" + group: Group + + """The item's linked items""" + linked_items( + """The id of the link to item column""" + link_to_item_column_id: String! + + """The id of the linked board""" + linked_board_id: ID! + ): [Item!]! + + """The item's name.""" + name: String! + + """The parent item of a subitem.""" + parent_item: Item + + """The item's relative path""" + relative_link: String + + """The item's state (all / active / archived / deleted).""" + state: State + + """The item's subitems.""" + subitems: [Item] + + """The pulses's subscribers.""" + subscribers: [User]! + + """The item's last update date.""" + updated_at: Date + + """The item's link""" + url: String! +} + +type Like { id: ID! + creator_id: String + creator: User + reaction_type: String + created_at: Date + updated_at: Date +} + +enum MentionType { + User + Team + Project + Board +} + +"""A reply for an update.""" +type Reply { + """The reply's unique identifier.""" + id: ID! + + """The reply's html formatted body.""" + body: String! + kind: String! + + """The unique identifier of the reply creator.""" + creator_id: String + edited_at: Date! + + """The reply's creator.""" + creator: User + likes: [Like!]! + pinned_to_top: [UpdatePin!]! + viewers( + """Number of items to get, the default is 100.""" + limit: Int = 100 + + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Watcher!]! + + """The reply's creation date.""" + created_at: Date + + """The reply's last edit date.""" + updated_at: Date + + """The reply's assets/files.""" + assets: [Asset] + + """The reply's text body.""" + text_body: String +} + +"""An update.""" +type Update { + """The update's unique identifier.""" + id: ID! + + """The update's html formatted body.""" + body: String! + + """The unique identifier of the update creator.""" + creator_id: String + edited_at: Date! + + """The update's creator.""" + creator: User + likes: [Like!]! + pinned_to_top: [UpdatePin!]! + viewers( + """Number of items to get, the default is 100.""" + limit: Int = 100 + + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Watcher!]! + + """The update's creation date.""" + created_at: Date + + """The update's last edit date.""" + updated_at: Date + + """The update's item ID.""" + item_id: String + item: Item + + """The update's replies.""" + replies: [Reply!] + + """The update's assets/files.""" + assets: [Asset] + + """The update's text body.""" + text_body: String +} + +input UpdateMention { + """The object id.""" + id: ID! + type: MentionType! +} + +"""The pin to top data of the update.""" +type UpdatePin { + item_id: ID! +} + +"""The viewer of the update.""" +type Watcher { + user_id: ID! + medium: String! + user: User +} + +type CustomActivity { + id: ID + type: String + name: String + icon_id: CustomActivityIcon + color: CustomActivityColor +} + +enum CustomActivityColor { + VIVID_CERULEAN + GO_GREEN + PHILIPPINE_GREEN + YANKEES_BLUE + CELTIC_BLUE + MEDIUM_TURQUOISE + CORNFLOWER_BLUE + MAYA_BLUE + SLATE_BLUE + GRAY + YELLOW_GREEN + DINGY_DUNGEON + PARADISE_PINK + BRINK_PINK + YELLOW_ORANGE + LIGHT_DEEP_PINK + LIGHT_HOT_PINK + PHILIPPINE_YELLOW +} + +enum CustomActivityIcon { + ASCENDING + CAMERA + CONFERENCE + FLAG + GIFT + HEADPHONES + HOMEKEYS + LOCATION + PAPERPLANE + PLANE + NOTEBOOK + PLIERS + TRIPOD + TWOFLAGS + UTENCILS +} + +type TimelineItem { + id: ID + type: String + + """The item that the timeline item is on.""" + item: Item + + """The board that the timeline item is on.""" + board: Board + + """The user who created the timeline item.""" + user: User + + """The title of the timeline item.""" + title: String + + """The external ID of the custom activity of the timeline item.""" + custom_activity_id: String + + """The content of the timeline item.""" + content: String + + """The creation date of the timeline item.""" + created_at: Date! +} + +type TimelineItemsPage { + """The timeline items in the current page""" + timeline_items: [TimelineItem!]! + + """Cursor for fetching the next page""" + cursor: String +} + +input TimelineItemTimeRange { + """Start time""" + start_timestamp: ISO8601DateTime! + + """End time""" + end_timestamp: ISO8601DateTime! +} + +type TimelineResponse { + """Paginated set of timeline items and a cursor to get the next page""" + timeline_items_page( + """The cursor for the next set of timeline items""" + cursor: String = null + + """The limit for the current page of timeline items""" + limit: Int = 25 + ): TimelineItemsPage! +} + +type CreateEntitySnapshotResult { + """The unique identifier of the snapshot.""" + snapshotId: ID + + """The date and time the snapshot was created.""" + createdAt: String + + """The entity that was snapshot.""" + entity: String + + """The unique identifier of the migration job.""" + migrationJobId: String +} + +type CreateMigrationJobResult { + """The unique identifier of the migration job.""" + id: ID +} + +type GetEntitiesForMigrationResult { + """The entities for migration.""" + entityId: String +} + +type GetSnapshotsQueryResults { + """The unique identifier of the snapshot.""" + id: ID + + """The date and time the snapshot was created.""" + createdAt: String + + """The entity id of the snapshot.""" + entityId: String + + """The unique identifier of the migration job.""" + migrationJobId: String + + """The status of the snapshot.""" + status: SnapshotStatus +} + +enum SnapshotStatus { + pending + processing + success + failed +} + +union ColumnSettings = StatusColumnSettings | DropdownColumnSettings + +"""Types of columns supported by the API""" +enum ColumnType { + """Number items according to their order in the group/board""" + auto_number + + """Connect data from other boards""" + board_relation + + """Perform actions on items by clicking a button""" + button + + """Check off items and see what's done at a glance""" + checkbox + + """Manage a design system using a color palette""" + color_picker + + """Choose a country""" + country + + """Add the item's creator and creation date automatically""" + creation_log + + """Add dates like deadlines to ensure you never drop the ball""" + date + + """Set up dependencies between items in the board""" + dependency + + """Document your work and increase collaboration""" + doc + + """Create a dropdown list of options""" + dropdown + + """Email team members and clients directly from your board""" + email + + """Add files & docs to your item""" + file + + """Use functions to manipulate data across multiple columns""" + formula + group + + """Add times to manage and schedule tasks, shifts and more""" + hour + + """Integration is really cool...""" + integration + + """Show all item's assignees""" + item_assignees + + """Show a unique ID for each item""" + item_id + + """Add the person that last updated the item and the date""" + last_updated + + """Simply hyperlink to any website""" + link + + """Place multiple locations on a geographic map""" + location + + """Add large amounts of text without changing column width""" + long_text + + """Show and edit columns' data from connected boards""" + mirror + + """Add revenue, costs, time estimations and more""" + numbers + + """Assign people to improve team work""" + people + + """Call your contacts directly from monday.com""" + phone + + """Show progress by combining status columns in a battery""" + progress + + """Rate or rank anything visually""" + rating + + """Get an instant overview of where things stand""" + status + + """Add tags to categorize items across multiple boards""" + tags + + """Assign a full team to an item """ + team + + """Add textual information e.g. addresses, names or keywords""" + text + + """Visualize your item’s duration, with a start and end date""" + timeline + + """Easily track time spent on each item, group, and board""" + time_tracking - """ - The linked items ids - """ - linked_item_ids: [ID!]! + """Vote on an item e.g. pick a new feature or a favorite lunch place""" + vote - """ - The linked items. - """ - linked_items: [Item!]! + """Select the week on which each item should be completed""" + week - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """Keep track of the time anywhere in the world""" + world_clock - """ - The column's type. - """ - type: ColumnType! + """Unsupported column type""" + unsupported - """ - The date when column value was last updated. - """ + """Name is really cool...""" + name + + """Assign a person to increase ownership and accountability (deprecated)""" + person + + """Document your work and increase collaboration""" + direct_doc + + """Use the subtasks column to create another level of tasks""" + subtasks +} + +"""Generic column information""" +type CommonColumn { + """The column id.""" + id: String + + """The column title.""" + title: String + + """The column description.""" + description: String + + """The column created at.""" + created_at: String + + """The column updated at.""" + updated_at: String + + """The column width.""" + width: Int + + """Is the column archived or not.""" + archived: Boolean! + settings_json: JSON + + """The column type.""" + type: String +} + +input CreateDropdownColumnSettingsInput { + labels: [CreateDropdownLabelInput!]! +} + +input CreateDropdownLabelInput { + label: String! +} + +input CreateStatusColumnSettingsInput { + labels: [CreateStatusLabelInput!]! +} + +input CreateStatusLabelInput { + label: String! + color: StatusColumnColors! + index: Int! + description: String + is_done: Boolean +} + +type DropdownColumnSettings { + type: ManagedColumnTypes + labels: [DropdownLabel!] +} + +type DropdownLabel { + id: Int + label: String + is_deactivated: Boolean +} + +type DropdownManagedColumn { + id: String + title: String + description: String + settings_json: JSON + created_by: ID + updated_by: ID + revision: Int + state: ManagedColumnState + created_at: Date updated_at: Date + settings: DropdownColumnSettings +} - """ - The column's raw value in JSON format. - """ - value: JSON +type ManagedColumn { + id: String + title: String + description: String + settings_json: JSON + created_by: ID + updated_by: ID + revision: Int + state: ManagedColumnState + created_at: Date + updated_at: Date + settings: ColumnSettings } -""" -The period of a discount -""" -enum DiscountPeriod { - MONTHLY - YEARLY +enum ManagedColumnState { + active + deleted + inactive } -""" -Various documents blocks types, such as text. -""" -enum DocBlockContentType { - """ - Bulleted list block - """ - bulleted_list +enum ManagedColumnTypes { + status + dropdown +} - """ - Check list block - """ - check_list +"""Status column information""" +type StatusColumn { + """The column id.""" + id: String - """ - Code block - """ - code + """The column title.""" + title: String - """ - Divider block - """ - divider + """The column description.""" + description: String - """ - Image block - """ - image + """The column created at.""" + created_at: String - """ - Large title block - """ - large_title + """The column updated at.""" + updated_at: String - """ - Layout block - """ - layout + """The column width.""" + width: Int - """ - Medium title block - """ - medium_title + """Is the column archived or not.""" + archived: Boolean! + settings_json: JSON - """ - Simple text block - """ - normal_text + """status column settings object""" + settings: StatusColumnSettings +} - """ - Notice block - """ - notice_box +enum StatusColumnColors { + working_orange + done_green + stuck_red + dark_blue + purple + explosive + grass_green + bright_blue + saladish + egg_yolk + blackish + dark_red + sofia_pink + lipstick + dark_purple + bright_green + chili_blue + american_gray + brown + dark_orange + sunset + bubble + peach + berry + winter + river + navy + aquamarine + indigo + dark_indigo + pecan + lavender + royal + steel + orchid + lilac + tan + sky + coffee + teal +} + +type StatusColumnSettings { + type: ManagedColumnTypes + labels: [StatusLabel!] +} + +type StatusLabel { + id: Int + label: String + color: StatusColumnColors + index: Int + description: String + is_deactivated: Boolean + is_done: Boolean +} + +type StatusManagedColumn { + id: String + title: String + description: String + settings_json: JSON + created_by: ID + updated_by: ID + revision: Int + state: ManagedColumnState + created_at: Date + updated_at: Date + settings: StatusColumnSettings +} + +input UpdateDropdownColumnSettingsInput { + labels: [UpdateDropdownLabelInput!]! +} + +input UpdateDropdownLabelInput { + label: String! + id: Int + is_deactivated: Boolean +} + +input UpdateStatusColumnSettingsInput { + labels: [UpdateStatusLabelInput!]! +} + +input UpdateStatusLabelInput { + label: String! + color: StatusColumnColors! + index: Int! + description: String + is_done: Boolean + id: Int + is_deactivated: Boolean +} + +"""List of required column IDs for a board""" +type RequiredColumns { + """Array of required column IDs""" + required_column_ids: [String!]! +} + +type Validations { + """Array of required column IDs""" + required_column_ids: [String!] + + """Validation rules""" + rules: JSON +} + +enum ValidationsEntityType { + board +} + +"""Text formatting attributes (bold, italic, links, colors, etc.)""" +type Attributes { + """Apply bold formatting to the text""" + bold: Boolean + + """Apply italic formatting to the text""" + italic: Boolean - """ - Numbered list block - """ - numbered_list + """Apply underline formatting to the text""" + underline: Boolean - """ - Page break block - """ - page_break + """Apply strikethrough formatting to the text""" + strike: Boolean - """ - Quote text block - """ - quote + """Apply inline code formatting to the text""" + code: Boolean - """ - Small title block - """ - small_title + """URL to create a hyperlink""" + link: String - """ - Table block - """ - table + """Text color (hex, rgb, or named color)""" + color: String - """ - Video block - """ - video + """Background color for text highlighting (hex, rgb, or named color)""" + background: String } -""" -Options to order by. -""" -enum DocsOrderBy { - """ - The rank order of the document creation time (desc). - """ - created_at +"""Text formatting attributes (bold, italic, links, colors, etc.)""" +input AttributesInput { + """Apply bold formatting to the text""" + bold: Boolean - """ - The last time the user making the request viewd the document (desc). - """ - used_at -} + """Apply italic formatting to the text""" + italic: Boolean -""" -A monday.com document. -""" -type Document { - """ - The document's content blocks - """ - blocks( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """Apply underline formatting to the text""" + underline: Boolean - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [DocumentBlock] + """Apply strikethrough formatting to the text""" + strike: Boolean - """ - The document's creation date. - """ - created_at: Date + """Apply inline code formatting to the text""" + code: Boolean - """ - The document's creator - """ - created_by: User + """URL to create a hyperlink""" + link: String - """ - The document's folder unique identifier (null for first level). - """ - doc_folder_id: ID + """Text color (hex, rgb, or named color)""" + color: String - """ - The document's kind (public / private / share). - """ - doc_kind: BoardKind! + """Background color for text highlighting (hex, rgb, or named color)""" + background: String +} - """ - The document's unique identifier. - """ - id: ID! +"""Alignment options for blocks""" +enum BlockAlignment { + LEFT + RIGHT + CENTER +} - """ - The document's name. - """ - name: String! +"""Abstract union type representing different types of block content""" +union BlockContent = TextBlockContent | ListBlockContent | NoticeBoxContent | ImageContent | VideoContent | TableContent | LayoutContent | DividerContent | PageBreakContent - """ - The associated board or object's unique identifier. - """ - object_id: ID! +"""Text direction options for blocks""" +enum BlockDirection { + LTR + RTL +} - """ - The document's relative url - """ - relative_url: String +"""Object representing structured data within a text block""" +union BlotContent = Mention | DocsColumnValue - """ - The document's settings. - """ - settings: JSON +"""Object representing structured data within a text block""" +input BlotInput { + """Mention blot data""" + mention: MentionInput - """ - The document's direct url - """ - url: String + """Column value blot data""" + column_value: DocsColumnValueInput +} +"""A cell containing a reference to a block""" +type Cell { """ - The workspace that contains this document (null for main workspace). + The ID of the block representing the cell (parent block of all the content blocks in the cell) """ - workspace: Workspace + block_id: String! +} - """ - The document's workspace unique identifier (null for main workspace). - """ - workspace_id: ID +"""Column style configuration""" +type ColumnStyle { + """The width percentage of the column""" + width: Int! } -""" -A monday.com document block. -""" -type DocumentBlock { - """ - The block's content. - """ - content: JSON +"""Column style configuration input""" +input ColumnStyleInput { + """The width percentage of the column""" + width: Int! +} - """ - The block's creation date. - """ - created_at: Date +"""Choose one specific block type to create""" +input CreateBlockInput { + """Create a text block (normal text, titles)""" + text_block: TextBlockInput - """ - The block's creator - """ - created_by: User + """Create a list block (bulleted, numbered, checklist)""" + list_block: ListBlockInput """ - The block's document unique identifier. + The notice-box's own ID must be captured. Every block that should appear inside it must be created with parentBlockId = that ID (and can still use afterBlockId for ordering among siblings). """ - doc_id: ID + notice_box_block: NoticeBoxBlockInput - """ - The block's unique identifier. - """ - id: String! + """Create an image block""" + image_block: ImageBlockInput - """ - The block's parent block unique identifier. - """ - parent_block_id: String + """Create a video block""" + video_block: VideoBlockInput """ - The block's position on the document. + Create a table block. Capture its returned ID; nest child blocks by setting parentBlockId to that ID and use afterBlockId for sibling ordering. """ - position: Float + table_block: TableBlockInput """ - The block content type. + Create a layout block. Capture its returned ID; nest child blocks by setting parentBlockId to that ID and use afterBlockId for sibling ordering. """ - type: String + layout_block: LayoutBlockInput - """ - The block's last updated date. - """ - updated_at: Date -} + """Create a divider block""" + divider_block: DividerBlockInput -""" -A monday.com doc block. -""" -type DocumentBlockIdOnly { - """ - The block's unique identifier. - """ - id: String! + """Create a page break block""" + page_break_block: PageBreakBlockInput } -type DocValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +"""Input for creating divider blocks""" +input DividerBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - The document file attached to the column. - """ - file: FileDocValue + """Optional UUID for the block""" + block_id: String +} - """ - The column's unique identifier. - """ - id: ID! +"""Content for a divider block""" +type DividerContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """The text direction of the block content""" + direction: BlockDirection +} - """ - The column's type. - """ - type: ColumnType! +"""Base interface for all block content types""" +interface DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - The column's raw value in JSON format. - """ - value: JSON + """The text direction of the block content""" + direction: BlockDirection } -type DropdownColumnSettings { - type: ManagedColumnTypes - labels: [DropdownLabel!] +"""Result of creating document blocks from markdown content""" +type DocBlocksFromMarkdownResult { + """Whether the operation was successful""" + success: Boolean! + + """The IDs of the blocks created from the markdown content""" + block_ids: [String!] + + """Error message if the operation failed""" + error: String } -type DropdownLabel { - id: Int - label: String - is_deactivated: Boolean +"""Column value reference for displaying board item column data""" +type DocsColumnValue { + """The ID of the board item""" + item_id: Int + + """The ID of the column""" + column_id: String } -type DropdownManagedColumn { - id: String - title: String - description: String - settings_json: JSON - created_by: Int - updated_by: Int - revision: Int - state: ManagedColumnState - created_at: Date - updated_at: Date - settings: DropdownColumnSettings +"""Column value reference for displaying board item column data""" +input DocsColumnValueInput { + """The ID of the board item""" + item_id: Int! + + """The ID of the column""" + column_id: String! } -type DropdownValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +"""Type of mention - user, document, or board""" +enum DocsMention { + """Mention of a user""" + USER - """ - The column's unique identifier. - """ + """Mention of a document""" + DOC + + """Mention of a board""" + BOARD +} + +""" +Represents a content block — the fundamental building unit of a monday.com document. Each block encapsulates its structured content, hierarchical relationships, and associated metadata. +""" +type DocumentBlockV2 { + """The block's unique identifier.""" id: ID! - text: String - """ - The column's type. - """ - type: ColumnType! + """The block's document unique identifier.""" + doc_id: ID """ - The column's raw value in JSON format. + The block's parent block unique identifier. Used for nesting (e.g., content inside table cells, layout columns, or notice boxes). Null for top-level blocks. """ - value: JSON + parent_block_id: String + + """The block content type.""" + type: String + + """The block's content as an array of structured content blocks.""" + content: [BlockContent]! """ - The selected dropdown values. + The block's position on the document (auto-generated). Higher numbers appear later in document. Use afterBlockId in mutations to control ordering. """ - values: [DropdownValueOption!]! + position: Float + + """The block's creation date.""" + created_at: String + + """The block's last updated date.""" + updated_at: String + + """The block's creator.""" + created_by: User } -type DropdownValueOption { - """ - The dropdown item's unique identifier. - """ - id: ID! +"""The document duplication types""" +enum DuplicateType { + """Copy document structure and content blocks only""" + duplicate_doc_with_content - """ - The dropdown item's label. - """ - label: String! + """Copy document structure, content blocks, and comments""" + duplicate_doc_with_content_and_updates } -""" -The board duplicate types available. -""" -enum DuplicateBoardType { - """ - Duplicate board with structure and items. - """ - duplicate_board_with_pulses +"""Result of exporting markdown content from document or blocks""" +type ExportMarkdownResult { + """Whether the operation was successful""" + success: Boolean! - """ - Duplicate board with structure, items and updates. - """ - duplicate_board_with_pulses_and_updates + """The exported markdown content""" + markdown: String - """ - Duplicate board with structure. - """ - duplicate_board_with_structure + """Error message if the operation failed""" + error: String } -type EmailValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +"""Input for creating image blocks""" +input ImageBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - The column's email value. - """ - email: String + """Optional UUID for the block""" + block_id: String - """ - The column's unique identifier. - """ - id: ID! + """The public URL of the image""" + public_url: String! - """ - The column's text value. It can be the same as email when user didn't enter any text. - """ - label: String + """The width of the image""" + width: Int +} - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String +"""Content for an image block""" +type ImageContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - The column's type. - """ - type: ColumnType! + """The text direction of the block content""" + direction: BlockDirection - """ - The date when column value was last updated. - """ - updated_at: Date + """The public URL of the image""" + public_url: String! - """ - The column's raw value in JSON format. - """ - value: JSON + """The width of the image""" + width: Int } -""" -Result of a single operation -""" -type ExtendTrialPeriod { - """ - Account slug - """ - account_slug: String! +"""Content inserted in delta operations""" +type InsertOps { + """Plain text content""" + text: String - """ - Reason of an error - """ - reason: String + """Object representing structured data within a text block""" + blot: BlotContent +} - """ - Result of a single operation - """ - success: Boolean! +"""Content to insert in delta operations""" +input InsertOpsInput { + """Plain text content""" + text: String + + """Object representing structured data within a text block""" + blot: BlotInput } """ -A multipart file +Input for creating layout blocks. + +Behaviour: +• When a layout is created the system automatically generates + column_count child "cell" blocks (one per column). +• The layout block itself is just a container; each generated cell block has + parentBlockId === and acts as the direct parent for any + content you want to insert into that column. +• The creation response already contains the ordered list of generated cell + IDs under `content[0].cells` (1-D array from left to right). +• To populate a layout: + 1. Create the layout and capture its ID. + 2. Obtain the cell block IDs either by inspecting `content[0].cells` + in the response **or** by querying the document for children of the + layout block. + 3. Create your content blocks (textBlock, imageBlock, tableBlock, etc.) + with parentBlockId set to the specific cell block ID. +• Use afterBlockId only to order siblings *within* the same cell. """ -scalar File +input LayoutBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String -type FileAssetValue { - """ - The asset associated with the file. - """ - asset: Asset! + """Optional UUID for the block""" + block_id: String - """ - The asset's id. - """ - asset_id: ID! + """The number of columns in the layout""" + column_count: Int! - """ - The file's creation date. - """ - created_at: Date! + """The column style configuration""" + column_style: [ColumnStyleInput!] +} - """ - The user who created the file. - """ - creator: User +"""Content for a layout block""" +type LayoutContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - The ID of user who created the file. - """ - creator_id: ID + """The text direction of the block content""" + direction: BlockDirection - """ - Whether the file is an image. - """ - is_image: Boolean! + """The column style configuration""" + column_style: [ColumnStyle!] - """ - The file's name. - """ - name: String! + """1-D array of cells (columns). Each cell carries a blockId reference.""" + cells: [Cell!] } -""" -The type of a link value stored inside a file column -""" -enum FileColumnValue { - """ - Asset file - """ - asset +"""Specific types of list blocks""" +enum ListBlock { + BULLETED_LIST + NUMBERED_LIST + CHECK_LIST +} - """ - Box file - """ - box +"""Content for a list block (bulleted, numbered, todo)""" +type ListBlockContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - Doc file - """ - doc + """The text direction of the block content""" + direction: BlockDirection """ - Dropbox file + The text content in delta format - array of operations with insert content and optional attributes """ - dropbox + delta_format: [Operation!]! - """ - Google Drive file - """ - google_drive + """The indentation level of the list item""" + indentation: Int +} - """ - Generic link file - """ - link +"""Input for creating list blocks (bulleted, numbered, todo)""" +input ListBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - OneDrive file - """ - onedrive -} + """Optional UUID for the block""" + block_id: String + alignment: BlockAlignment + direction: BlockDirection -type FileDocValue { - """ - The file's creation date. - """ - created_at: Date! + """The specific type of list block (defaults to bulleted list)""" + list_block_type: ListBlock """ - The user who created the file. + The text content in delta format - array of operations with insert content and optional attributes """ - creator: User + delta_format: [OperationInput!]! - """ - The ID of user who created the file. - """ - creator_id: ID + """The indentation level of the list item""" + indentation: Int +} - """ - The doc associated with the file. - """ - doc: Document! +"""Mention object for user or document references""" +type Mention { + """The unique identifier of the mentioned entity""" + id: Int - """ - The file's unique identifier. - """ - file_id: ID! + """The type of the mentioned entity""" + type: DocsMention +} - """ - The associated board or object's unique identifier. - """ - object_id: ID! +"""Mention object for user or document references""" +input MentionInput { + """The ID of the mentioned user or document""" + id: Int! - """ - The file's url. - """ - url: String + """The type of mention: user, doc, or board""" + type: DocsMention! } -input FileInput { - """ - The asset's id. - """ - assetId: ID +""" +The notice-box's own ID must be captured. Every block that should appear inside it must be created with parentBlockId = that ID (and can still use afterBlockId for ordering among siblings). +""" +input NoticeBoxBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - File kind - """ - fileType: FileColumnValue! + """Optional UUID for the block""" + block_id: String + theme: NoticeBoxTheme! +} - """ - File link - """ - linkToFile: String +"""Content for a notice box block""" +type NoticeBoxContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - File display name - """ - name: String! + """The text direction of the block content""" + direction: BlockDirection - """ - The doc's id - """ - objectId: ID + """The theme of the notice box""" + theme: NoticeBoxTheme! } -type FileLinkValue { - """ - The file's creation date. - """ - created_at: Date! +"""Theme options for notice box blocks""" +enum NoticeBoxTheme { + INFO + TIPS + WARNING + GENERAL +} - """ - The user who created the file. - """ - creator: User +""" +A delta operation with insert content and optional formatting attributes +""" +type Operation { + """Content to insert - either text or blot object""" + insert: InsertOps """ - The ID of user who created the file. + Optional formatting attributes (bold, italic, underline, strike, code, link, color, background) """ - creator_id: ID + attributes: Attributes +} - """ - The file's id. - """ - file_id: ID! +""" +A delta operation with insert content and optional formatting attributes +""" +input OperationInput { + """Content to insert - either text or blot object""" + insert: InsertOpsInput! """ - The file's kind. + Optional formatting attributes (bold, italic, underline, strike, code, link, color, background) """ - kind: FileLinkValueKind! + attributes: AttributesInput +} - """ - The file's name. - """ - name: String! +"""Input for creating page break blocks""" +input PageBreakBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - The file's url. - """ - url: String + """Optional UUID for the block""" + block_id: String +} + +"""Content for a page break block""" +type PageBreakContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment + + """The text direction of the block content""" + direction: BlockDirection } """ -The type of a link value stored inside a file column +Input for creating table blocks. + +Behavior: +- When a table is created, the system automatically generates `row_count × column_count` child "cell" blocks (one per cell). +- The table block is a container. Each generated cell block has `parentBlockId === ` and is used to insert content. + +Important: +- Always use the 2D matrix returned under `content[0].cells` to access cells. +- This matrix is row-major: `matrix[rowIndex][columnIndex]`. +- Do not rely on the order returned by `docs { blocks { ... } }`, as it's implementation-specific. + +Recommended workflow: +1. Create the table and capture its ID. +2. Read `content[0].cells` to get the cell ID matrix. +3. Use bulk create blocks to create all the child blocks (e.g. textBlock, imageBlock) with `parentBlockId = matrix[row][col]`. + Use `afterBlockId` only to order siblings within the same cell. """ -enum FileLinkValueKind { - """ - Box file - """ - box +input TableBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - Dropbox file - """ - dropbox + """Optional UUID for the block""" + block_id: String - """ - Google Drive file - """ - google_drive + """The number of columns in the table""" + column_count: Int! - """ - Generic link file - """ - link + """The number of rows in the table""" + row_count: Int! - """ - OneDrive file - """ - onedrive + """The width of the table""" + width: Int + + """The column style configuration""" + column_style: [ColumnStyleInput!] } -type FileValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +"""Content for a table block""" +type TableContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - The files attached to the column. - """ - files: [FileValueItem!]! + """The text direction of the block content""" + direction: BlockDirection - """ - The column's unique identifier. - """ - id: ID! - text: String + """The width of the table""" + width: Int - """ - The column's type. - """ - type: ColumnType! + """The column style configuration""" + column_style: [ColumnStyle!] """ - The column's raw value in JSON format. + 2-D array of cells (rows × columns). Each cell contains a blockId reference that represents the parent block for all content blocks within that cell. """ - value: JSON + cells: [TableRow!] } -""" -A single file in a column. -""" -union FileValueItem = FileAssetValue | FileDocValue | FileLinkValue +"""A row of cells in a table""" +type TableRow { + """The cells in this row""" + row_cells: [Cell!]! +} """ -The first day of work week +Text block formatting types. Controls visual appearance and semantic meaning. """ -enum FirstDayOfTheWeek { - """ - Monday - """ - monday +enum TextBlock { + """Regular paragraph text""" + NORMAL_TEXT - """ - Sunday - """ - sunday + """Main document title (H1 equivalent)""" + LARGE_TITLE + + """Section heading (H2 equivalent)""" + MEDIUM_TITLE + + """Subsection heading (H3 equivalent)""" + SMALL_TITLE + + """Code styling""" + CODE + + """Indented quote/blockquote styling""" + QUOTE } -""" -A workspace folder containing boards, docs, sub folders, etc. -""" -type Folder { - """ - The various items in the folder, not including sub-folders and dashboards. - """ - children: [Board]! +"""Content for a text block""" +type TextBlockContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - The folder's color. - """ - color: FolderColor + """The text direction of the block content""" + direction: BlockDirection """ - The folder's creation date. + The text content in delta format - array of operations with insert content and optional attributes """ - created_at: Date! + delta_format: [Operation!]! +} - """ - The folder's custom icon. - """ - custom_icon: FolderCustomIcon +"""Input for creating text blocks (normal text, titles, quote, code)""" +input TextBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - The folder's font weight. - """ - font_weight: FolderFontWeight + """Optional UUID for the block""" + block_id: String + alignment: BlockAlignment + direction: BlockDirection - """ - The folder's unique identifier. - """ - id: ID! + """The specific type of text block (defaults to normal text)""" + text_block_type: TextBlock """ - The folder's name. + The text content in delta format - array of operations with insert content and optional attributes """ - name: String! + delta_format: [OperationInput!]! +} - """ - The folder's user owner unique identifier. - """ - owner_id: ID +"""Input for creating video blocks""" +input VideoBlockInput { + """The parent block id to append the created block under.""" + parent_block_id: String - """ - The folder's parent folder. - """ - parent: Folder + """Optional UUID for the block""" + block_id: String - """ - Sub-folders inside this folder. - """ - sub_folders: [Folder]! + """The raw URL of the video""" + raw_url: String! - """ - The workspace that contains this folder (null id for main workspace). - """ - workspace: Workspace! + """The width of the video""" + width: Int } -""" -One value out of a list of valid folder colors -""" -enum FolderColor { - """ - aquamarine - """ - AQUAMARINE +"""Content for a video block""" +type VideoContent implements DocBaseBlockContent { + """The alignment of the block content""" + alignment: BlockAlignment - """ - bright-blue - """ - BRIGHT_BLUE + """The text direction of the block content""" + direction: BlockDirection - """ - bright-green - """ - BRIGHT_GREEN + """The raw URL of the video""" + url: String! - """ - chili-blue - """ - CHILI_BLUE + """The width of the video""" + width: Int +} + +"""Input type for adding an object to a hierarchy list""" +input CreateFavoriteInput { + """The object to add to the list""" + object: HierarchyObjectIDInputType! + + """The name of the object""" + name: String + + """The position where to add the object""" + newPosition: ObjectDynamicPositionInput +} + +"""Result type for adding an object to a personal list""" +type CreateFavoriteResultType { + """The added object hierarchy item""" + favorites: HierarchyObjectItem +} + +"""Input type for removing an object from favorites""" +input DeleteFavoriteInput { + """The object to remove from favorites""" + object: HierarchyObjectIDInputType! +} + +"""Result type for removing an object from favorites""" +type DeleteFavoriteInputResultType { + """Whether the object was successfully removed""" + success: Boolean +} + +"""Represents a monday object identifier with its type""" +type HierarchyObjectID { + """The unique identifier of the object""" + id: ID + + """The type of the object""" + type: ObjectType +} + +"""Input type for identifying a favorites object by its ID and type""" +input HierarchyObjectIDInputType { + """The ID of the object""" + id: ID! + + """The type of the object""" + type: ObjectType! +} + +"""Represents an item in the object hierarchy""" +type HierarchyObjectItem { + """The unique identifier of the hierarchy item""" + id: ID - """ - dark-orange - """ - DARK_ORANGE + """The account identifier this item belongs to""" + accountId: Int - """ - dark_purple - """ - DARK_PURPLE + """The object identifier and type""" + object: HierarchyObjectID - """ - dark-red - """ - DARK_RED + """The list identifier and type""" + hierarchyListData: ListID - """ - done-green - """ - DONE_GREEN + """The folder identifier if the item is contained within a folder""" + folderId: ID - """ - indigo - """ - INDIGO + """The position of the item within its list or folder""" + position: Float - """ - lipstick - """ - LIPSTICK + """The timestamp when this item was created""" + createdAt: Date - """ - No color - """ - NULL + """The timestamp when this item was last updated""" + updatedAt: Date +} - """ - purple - """ - PURPLE +"""Represents a list identifier with its type in the hierarchy""" +type ListID { + """The unique identifier of the list""" + id: ID - """ - sofia_pink - """ - SOFIA_PINK + """The type of the list""" + type: ListType +} - """ - stuck-red - """ - STUCK_RED +"""Types of lists in hierarchyMS""" +enum ListType { + """A personal list owned by a user""" + PersonalList - """ - sunset - """ - SUNSET + """A workspace-level list""" + Workspace - """ - working_orange - """ - WORKING_ORANGE + """A customized list with specific settings""" + CustomizedList } -""" -One value out of a list of valid folder custom icons -""" -enum FolderCustomIcon { - """ +input ObjectDynamicPositionInput { + """The previous object in the list""" + prevObject: HierarchyObjectIDInputType + + """The next object in the list""" + nextObject: HierarchyObjectIDInputType +} + +"""Represents a monday object.""" +enum ObjectType { + """Represents a board object type.""" + Board + + """Represents an overview object type.""" + Overview + + """Represents a folder object type.""" Folder - """ - FOLDER +} - """ - MoreBelow - """ - MOREBELOW +type UpdateFavoriteResultType { + """The updated favorite's object""" + favorites: HierarchyObjectItem +} - """ - MoreBelowFilled - """ - MOREBELOWFILLED +input UpdateObjectHierarchyPositionInput { + """The favorite's object to update""" + object: HierarchyObjectIDInputType! - """ - No custom icon - """ - NULL + """The new folder ID to move the object to""" + newFolder: ID - """ - Work - """ - WORK + """The new position for the object""" + newPosition: ObjectDynamicPositionInput } -""" -One value out of a list of valid folder font weights -""" -enum FolderFontWeight { - """ - font-weight-bold - """ - FONT_WEIGHT_BOLD +type Widget { + """The unique identifier of the widget.""" + id: ID +} - """ - font-weight-light - """ - FONT_WEIGHT_LIGHT +"""Subscription object""" +type AppSubscriptionDetails { + """The ID of an account""" + account_id: Int! + + """The ID of a pricing plan""" + plan_id: String! + + """The ID of a pricing version""" + pricing_version_id: Int! """ - font-weight-normal + The monthly price of the product purchased in the given currency, after applying discounts """ - FONT_WEIGHT_NORMAL + monthly_price: Float! + + """The currency, in which the product was purchased""" + currency: String! + period_type: SubscriptionPeriodType! """ - font-weight-very-light + The date the active subscription is set to renew. Equals to null for inactive subscriptions """ - FONT_WEIGHT_VERY_LIGHT + renewal_date: String """ - No font weight + The date the the inactive subscription ended. Equals to null for active subscriptions """ - NULL + end_date: String + status: SubscriptionStatus! + discounts: [SubscriptionDiscount!]! + + """The number of days left until the subscription ends""" + days_left: Int! } -type FormulaValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +type AppSubscriptions { + subscriptions: [AppSubscriptionDetails!]! - """ - The column's unique identifier. - """ - id: ID! + """Total number of subscriptions matching the given parameters""" + total_count: Int! """ - Text representation of the column value. Note: Not all columns support textual value + The value, which identifies the exact point to continue fetching the subscriptions from """ - text: String + cursor: String +} - """ - The column's type. - """ - type: ColumnType! +type DeleteMarketplaceAppDiscount { + """Slug of an account""" + account_slug: String! - """ - The column's raw value in JSON format. - """ - value: JSON + """The id of an app""" + app_id: ID! +} - """ - A string representing all the formula values, separated by commas - """ - display_value: String! +type DeleteMarketplaceAppDiscountResult { + deleted_discount: DeleteMarketplaceAppDiscount! +} + +"""The period of a discount""" +enum DiscountPeriod { + MONTHLY + YEARLY } type GrantMarketplaceAppDiscount { - """ - Number of days a discount will be valid - """ + """Number of days a discount will be valid""" days_valid: Int! - """ - Percentage value of a discount - """ + """Percentage value of a discount""" discount: Int! - """ - Is discount recurring - """ + """Is discount recurring""" is_recurring: Boolean! period: DiscountPeriod - """ - List of app plan ids - """ + """List of app plan ids""" app_plan_ids: [String!]! - """ - The id of an app - """ + """The id of an app""" app_id: ID! } input GrantMarketplaceAppDiscountData { - """ - Number of days a discount will be valid - """ + """Number of days a discount will be valid""" days_valid: Int! - """ - Percentage value of a discount - """ + """Percentage value of a discount""" discount: Int! - """ - Is discount recurring - """ + """Is discount recurring""" is_recurring: Boolean! - """ - The period of a discount - """ + """The period of a discount""" period: DiscountPeriod - """ - List of app plan ids - """ + """List of app plan ids""" app_plan_ids: [String!]! } @@ -3054,826 +5753,831 @@ type GrantMarketplaceAppDiscountResult { granted_discount: GrantMarketplaceAppDiscount! } -""" -A group of items in a board. -""" -type Group { - """ - Is the group archived or not. - """ - archived: Boolean +input MarketplaceAiSearchInput { + """The search query term""" + query: String! - """ - The group's color. - """ - color: String! + """Maximum number of search results to return""" + limit: Int +} - """ - Is the group deleted or not. - """ - deleted: Boolean +type MarketplaceAiSearchResult { + """The ID of the marketplace app""" + marketplace_app_id: ID! - """ - The group's unique identifier. - """ - id: ID! + """The name of the marketplace app""" + name: String! - """ - The items in the group. - """ - items_page( - """ - An opaque token representing the position in the result set from which to - resume fetching items. Use this to paginate through large result sets. - """ - cursor: String + """How well the app matches the user query (0-100)""" + match_percentage: Float! - """ - The maximum number of items to fetch in a single request. Use this to - control the size of the result set and manage pagination. Maximum: 500. - """ - limit: Int! = 25 + """List of relevant features that match the user needs""" + features: [String!]! +} - """ - A set of parameters to filter, sort, and control the scope of the items - query. Use this to customize the results based on specific criteria. - """ - query_params: ItemsQuery - ): ItemsResponse! +type MarketplaceAiSearchResults { + results: [MarketplaceAiSearchResult!]! +} - """ - The group's position in the board. - """ - position: String! +type MarketplaceAppDiscount { + """Slug of an account""" + account_slug: String! + + """The ID of an account""" + account_id: ID! + + """Percentage value of a discount""" + discount: Int! + + """Is discount recurring""" + is_recurring: Boolean! + + """List of app plan ids""" + app_plan_ids: [String!]! + period: DiscountPeriod + + """Date until a discount is valid""" + valid_until: String! + + """Date when a discount was created""" + created_at: String! +} + +type MarketplaceAppMetadata { + """The average rating of the marketplace app""" + rating: Float! + + """The number of ratings for the marketplace app""" + ratingCount: Int! + + """The number of installs for the marketplace app""" + installsCount: Int! +} + +type MarketplaceSearchAppDocument { + """The ID of the marketplace app""" + marketplace_app_id: ID! + + """The name of the marketplace app""" + name: String! + """The description of the marketplace app""" + description: String! + + """The short description of the marketplace app""" + short_description: String! + + """The keywords associated with the marketplace app""" + keywords: String! + metadata: MarketplaceAppMetadata! +} + +type MarketplaceSearchHit { + """The unique identifier of the search result""" + id: String! + + """The relevance score of the search result""" + score: Float! + document: MarketplaceSearchAppDocument! +} + +input MarketplaceSearchInput { + """The search query term""" + query: String! + + """Maximum number of search results to return""" + limit: Int + + """Number of search results to skip""" + offset: Int +} + +type MarketplaceSearchResults { + hits: [MarketplaceSearchHit!]! + + """The total number of search results""" + count: Int! + + """The time taken to perform the search""" + elapsed: String! +} + +"""The discounts granted to the subscription""" +type SubscriptionDiscount { """ - The group's title. + The value of the discount in percentage (e.g. the value 80 refers to 80%) """ - title: String! + value: Int! + discount_model_type: SubscriptionDiscountModelType! + discount_type: SubscriptionDiscountType! +} + +"""The information whether the discount is percentage or nominal""" +enum SubscriptionDiscountModelType { + percent + nominal +} + +""" +The information whether the discount has been granted one time or recurring +""" +enum SubscriptionDiscountType { + recurring + one_time } """ -The group attributes available. +The billing period of the subscription. Possible values: monthly, yearly """ -enum GroupAttributes { - """ - Group color (one of the supported colors, check the API documentation). - """ - color +enum SubscriptionPeriodType { + monthly + yearly +} - """ - The group's position in the board. Deprecated! - replaced with relative position - """ - position +"""The status of the subscription. Possible values: active, inactive.""" +enum SubscriptionStatus { + active + inactive +} - """ - The group's relative position after another group in the board. - """ - relative_position_after +"""Input for app feature release data.""" +input AppFeatureReleaseDataInput { + """The URL for the release.""" + url: String +} +"""Input for updating an app feature release.""" +input AppFeatureReleaseInput { """ - The group's relative position before another group in the board. + The hosting type for the release. The app release category will be automatically determined based on this value. """ - relative_position_before + kind: AppFeatureReleaseKind - """ - Group title. - """ - title + """The data of the release.""" + data: AppFeatureReleaseDataInput } -type GroupValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +"""The hosting type for the app feature release""" +enum AppFeatureReleaseKind { + """Server-side application hosted on monday code infrastructure""" + SERVER_SIDE_CODE - """ - The group value. - """ - group: Group + """Client-side application deployed via monday.com CLI""" + CLIENT_SIDE_CODE - """ - The group identifier. - """ - group_id: ID + """Externally hosted application loaded via iframe""" + EXTERNAL_HOSTING +} - """ - The column's unique identifier. - """ +type AppFeatureType { id: ID! + created_at: Date + updated_at: Date - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """The name of the app feature""" + name: String - """ - The column's type. - """ - type: ColumnType! + """The app feature app id""" + app_id: ID - """ - The column's raw value in JSON format. - """ - value: JSON -} + """The type of the app feature""" + type: String -type HourValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """The data of the app feature""" + data: JSON - """ - Hour - """ - hour: Int + """The deployment information for the app feature""" + deployment: JSON +} - """ - The column's unique identifier. - """ +type AppType { id: ID! + created_at: Date + updated_at: Date - """ - Minute - """ - minute: Int - text: String - - """ - The column's type. - """ - type: ColumnType! + """the app name""" + name: String - """ - The date when column value was last updated. - """ - updated_at: Date + """the api app id""" + api_app_id: ID - """ - The column's raw value in JSON format. - """ - value: JSON -} + """the api app id""" + client_id: String -type IntegrationValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """the app photo url""" + photo_url: String - """ - ID of the entity - """ - entity_id: ID + """the app photo url for small size""" + photo_url_small: String - """ - The column's unique identifier. - """ - id: ID! + """the app kid""" + kind: String - """ - URL of the issue - """ - issue_api_url: ID + """the app state""" + state: String - """ - ID of the issue - """ - issue_id: String + """the app user id""" + user_id: ID - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """The apps' features""" + features( + """Whether to return only the live version data instead of all versions""" + live_version_only: Boolean = false - """ - The column's type. - """ - type: ColumnType! + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - The column's raw value in JSON format. - """ - value: JSON + """Page number to get, starting at 1.""" + page: Int = 1 + ): [AppFeatureType!] } """ -Error that occurred while inviting users +Input for updating an app feature with its associated data and release information. """ -type InviteUsersError { - """ - The error message. - """ - message: String - +input UpdateAppFeatureInput { """ - The error code. + The app feature data to update. This structure is dynamic and depends on the different app feature types. """ - code: InviteUsersErrorCode + data: JSON """ - The email address for the user that caused the error. + The deployment data to update. https://developer.monday.com/apps/docs/deploy-your-app """ - email: ID + deployment: AppFeatureReleaseInput } -""" -Error codes that can occur while changing email domain. -""" -enum InviteUsersErrorCode { - ERROR +"""Your monday.com account""" +type Account { + """The number of active member users in the account""" + active_members_count: Int + + """The account's country two-letter code in ISO3166 format""" + country_code: String + + """The first day of the week for the account (sunday / monday)""" + first_day_of_the_week: FirstDayOfTheWeek! + + """The account's unique identifier.""" + id: ID! + + """The account's logo.""" + logo: String + + """The account's name.""" + name: String! + + """The account's payment plan.""" + plan: Plan + + """The account's active products""" + products: [AccountProduct] + + """Show weekends in timeline""" + show_timeline_weekends: Boolean! + + """The product the account signed up to first.""" + sign_up_product_kind: String + + """The account's slug.""" + slug: String! + + """The account's tier.""" + tier: String } -""" -Result of inviting users to the account. -""" -type InviteUsersResult { - """ - The users that were successfully invited. - """ - invited_users: [User!] +"""The product a workspace is used in.""" +type AccountProduct { + """The account product default workspace id""" + default_workspace_id: ID + + """The account product id""" + id: ID """ - Errors that occurred while inviting users + The account product kind (core / marketing / crm / software / + projectManagement / project_management / service / forms / whiteboard). """ - errors: [InviteUsersError!] + kind: String } -""" -An ISO 8601-encoded datetime (e.g., 2024-04-09T13:45:30Z) -""" -scalar ISO8601DateTime +"""An activity log event""" +type ActivityLogType { + """""" + account_id: String! -""" -An item (table row). -""" -type Item { - """ - The item's unique identifier. - """ - id: ID! + """""" + created_at: String! - """ - The item's updates. - """ - updates( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """The item's column values in string form.""" + data: String! - """ - Page number to get, starting at 1. - """ - page: Int = 1 + """""" + entity: String! - """ - A list of items unique identifiers. - """ - ids: [ID!] - ): [Update!] + """""" + event: String! - """ - The item's assets/files. - """ - assets( - """ - The assets source (all / columns / gallery) - """ - assets_source: AssetsSource + """""" + id: String! - """ - Ids of the columns you want to get assets from. - """ - column_ids: [String] - ): [Asset] + """""" + user_id: String! +} - """ - The board that contains this item. - """ - board: Board +"""An app install details.""" +type AppInstall { + """The app's unique identifier.""" + app_id: ID! - """ - The item's column values. - """ - column_values( - """ - A list of column ids to return - """ - ids: [String!] + """An app installer's account details.""" + app_install_account: AppInstallAccount! - """ - A list of column types to return - """ - types: [ColumnType!] - ): [ColumnValue!]! + """An app installer's user details""" + app_install_user: AppInstallUser! - """ - The item's create date. - """ - created_at: Date + """The app's version details""" + app_version: AppVersion - """ - The item's creator. - """ - creator: User + """The required and approved scopes for an app install.""" + permissions: AppInstallPermissions + + """Installation date""" + timestamp: String +} + +"""An app installer's account details""" +type AppInstallAccount { + """The app's installer account id.""" + id: ID! +} + +"""The required and approved scopes for an app install.""" +type AppInstallPermissions { + """The scopes approved by the account admin""" + approved_scopes: [String!]! + + """The scopes required by the latest live version""" + required_scopes: [String!]! +} + +"""An app installer's user details""" +type AppInstallUser { + """The app's installer user id.""" + id: ID +} - """ - The unique identifier of the item creator. - """ - creator_id: String! +"""The app monetization status for the current account""" +type AppMonetizationStatus { + """Is apps monetization is supported for the account""" + is_supported: Boolean! +} +"""The app monetization information for the current account""" +type AppsMonetizationInfo { """ - The item's email. + The number of seats in the account, across all products, used to match the + app’s subscription among apps that utilize the seats-based monetization method """ - email: String! + seats_count: Int +} - """ - The group that contains this item. - """ - group: Group +"""The account subscription details for the app.""" +type AppSubscription { + """The type of the billing period [monthly/yearly].""" + billing_period: String - """ - The item's linked items - """ - linked_items( - """ - The id of the link to item column - """ - link_to_item_column_id: String! + """The number of days left until the subscription ends.""" + days_left: Int - """ - The id of the linked board - """ - linked_board_id: ID! - ): [Item!]! + """Is the subscription a trial""" + is_trial: Boolean - """ - The item's name. - """ - name: String! + """Maximum number of units for current subscription plan.""" + max_units: Int - """ - The parent item of a subitem. - """ - parent_item: Item + """The subscription plan id (on the app's side).""" + plan_id: String! - """ - The item's relative path - """ - relative_link: String + """The pricing version of subscription plan.""" + pricing_version: Int - """ - The item's state (all / active / archived / deleted). - """ - state: State + """The subscription renewal date.""" + renewal_date: Date! +} - """ - The item's subitems. - """ - subitems: [Item] +"""The Operations counter response for the app action.""" +type AppSubscriptionOperationsCounter { + """The account subscription details for the app.""" + app_subscription: AppSubscription - """ - The pulses's subscribers. - """ - subscribers: [User]! + """The new counter value.""" + counter_value: Int - """ - The item's last update date. - """ - updated_at: Date + """Operations name.""" + kind: String! - """ - The item's link - """ - url: String! + """Window key.""" + period_key: String } -type ItemIdValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +"""An app's version details.""" +type AppVersion { + """The app's major version.""" + major: Int! - """ - The column's unique identifier. - """ - id: ID! + """The app's minor version.""" + minor: Int! - """ - ID of the item - """ - item_id: ID! - text: String + """The app's patch version.""" + patch: Int! - """ - The column's type. - """ - type: ColumnType! + """The app's version text""" + text: String! - """ - The column's raw value in JSON format. - """ - value: JSON + """The app's version type.""" + type: String } -""" -The direction to order the items by -""" -enum ItemsOrderByDirection { - """ - Ascending order - """ - asc +"""A file uploaded to monday.com""" +type Asset { + """The file's creation date.""" + created_at: Date - """ - Descending order - """ - desc -} + """The file's extension.""" + file_extension: String! -input ItemsPageByColumnValuesQuery { - """ - The column's unique identifier. - """ - column_id: String! + """The file's size in bytes.""" + file_size: Int! - """ - The column values to search items by. - """ - column_values: [String]! -} + """The file's unique identifier.""" + id: ID! -input ItemsQuery { - """ - A list of rule groups - """ - groups: [ItemsQueryGroup!] + """The file's name.""" + name: String! - """ - A list of item IDs to fetch. Use this to fetch a specific set of items by their IDs. Max: 100 IDs - """ - ids: [ID!] + """original geometry of the asset.""" + original_geometry: String - """ - The operator to use for the query rules or rule groups - """ - operator: ItemsQueryOperator = and - order_by: [ItemsQueryOrderBy!] + """public url to the asset, valid for 1 hour.""" + public_url: String! - """ - A list of rules - """ - rules: [ItemsQueryRule!] + """The user who uploaded the file.""" + uploaded_by: User! + + """url to view the asset.""" + url: String! + + """url to view the asset in thumbnail mode. Only available for images.""" + url_thumbnail: String } -input ItemsQueryGroup { - """ - A list of rule groups - """ - groups: [ItemsQueryGroup!] +"""The source of the asset""" +enum AssetsSource { + """Assets from file columns and item's files gallery""" + all - """ - The operator to use for the query rules or rule groups - """ - operator: ItemsQueryOperator = and + """Assets only from file columns""" + columns - """ - A list of rules - """ - rules: [ItemsQueryRule!] + """Assets only from item's files gallery""" + gallery } -""" -The condition between the query rules -""" -enum ItemsQueryOperator { - """ - Logical AND - """ - and +"""Result of an batch operation""" +type BatchExtendTrialPeriod { + """Details of operations""" + details: [ExtendTrialPeriod!] - """ - Logical OR - """ - or -} + """Reason of an error""" + reason: String -input ItemsQueryOrderBy { - column_id: String! - direction: ItemsOrderByDirection = asc + """Result of a batch operation""" + success: Boolean! } -input ItemsQueryRule { - column_id: ID! - compare_attribute: String - compare_value: CompareValue! - operator: ItemsQueryRuleOperator = any_of +"""The board access level of the user""" +enum BoardAccessLevel { + """Edit contents""" + edit + + """View""" + view } -""" -The operator to use for the value comparison -""" -enum ItemsQueryRuleOperator { - """ - Any of the values - """ - any_of +"""The board attributes available.""" +enum BoardAttributes { + """Object that contains available Video conferences on the board.""" + communication - """ - Between the two values - """ - between + """Board description.""" + description - """ - Contains all the terms - """ - contains_terms + """Board name.""" + name +} +""" +Basic role names for board permissions. Each role grants different levels of access to the board. +""" +enum BoardBasicRoleName { """ - Contains the text + Assigned Contributor role - Can edit content (items) only, and only for items + where they are assigned in the specified assignee columns (Coming soon - not + yet supported, please use the UI instead) """ - contains_text + assigned_contributor """ - Ends with the value + Contributor role - Can edit content (items) only, but not the structure (columns, groups) of the board """ - ends_with + contributor """ - Greater than the value + Editor role - Can edit both the structure (columns, groups) and content (items) of the board """ - greater_than + editor """ - Greater than or equal to the value + Viewer role - Read-only access to the board, cannot edit structure or content """ - greater_than_or_equals + viewer +} - """ - Empty value - """ - is_empty +"""A board duplication""" +type BoardDuplication { + """The new board created by the duplication""" + board: Board! - """ - Not empty value - """ - is_not_empty + """Was the board duplication performed asynchronously""" + is_async: Boolean! +} - """ - Lower than the value - """ - lower_than +"""Edit permissions level for boards.""" +enum BoardEditPermissions { + """Assignee""" + assignee - """ - Lower than or equal to the value - """ - lower_than_or_equal + """Collaborators""" + collaborators - """ - None of the values - """ - not_any_of + """Everyone""" + everyone - """ - Does not contain the text - """ - not_contains_text + """Owners""" + owners +} - """ - Starts with the value - """ - starts_with +"""The board kinds available.""" +enum BoardKind { + """Private boards.""" + private - """ - Within the last - """ - within_the_last + """Public boards.""" + public - """ - Within the next - """ - within_the_next + """Shareable boards.""" + share } -type ItemsResponse { - """ - An opaque cursor that represents the position in the list after the last - returned item. Use this cursor for pagination to fetch the next set of items. - If the cursor is null, there are no more items to fetch. - """ - cursor: String - - """ - The items associated with the cursor. - """ - items: [Item!]! -} +"""The board object types.""" +enum BoardObjectType { + """Parent Board.""" + board -""" -A JSON formatted string. -""" -scalar JSON + """Custom Object.""" + custom_object -""" -Kind of assignee -""" -enum Kind { - """ - Represents a person - """ - person + """Document.""" + document - """ - Represents a team - """ - team + """Sub Items Board.""" + sub_items_board } -type LastUpdatedValue implements ColumnValue { - """ - The column that this value belongs to. - """ +type BoardRelationValue implements ColumnValue { + """The column that this value belongs to.""" column: Column! """ - The column's unique identifier. + A string representing all the names of the linked items, separated by commas """ + display_value: String! + + """The column's unique identifier.""" id: ID! - text: String + + """The linked items IDs""" + linked_item_ids: [ID!]! + + """The linked items.""" + linked_items: [Item!]! """ - The column's type. + Text representation of the column value. Note: Not all columns support textual value """ + text: String + + """The column's type.""" type: ColumnType! - """ - Timestamp of the last time the item was updated - """ + """The date when column value was last updated.""" updated_at: Date - """ - User who updated the item - """ - updater: User + """The column's raw value in JSON format.""" + value: JSON +} - """ - ID of the user who updated the item - """ - updater_id: ID +"""Options to order by.""" +enum BoardsOrderBy { + """The rank order of the board creation time (desc).""" + created_at - """ - The column's raw value in JSON format. - """ - value: JSON + """The last time the user making the request used the board (desc).""" + used_at } -type Like { +"""The board subscriber kind.""" +enum BoardSubscriberKind { + """Board owner.""" + owner + + """Board subscriber.""" + subscriber +} + +"""The board view access level of the user""" +enum BoardViewAccessLevel { + """Edit""" + edit + + """View""" + view +} + +type ButtonValue implements ColumnValue { + """The button's color in hex value.""" + color: String + + """The column that this value belongs to.""" + column: Column! + + """The column's unique identifier.""" id: ID! - creator_id: String - creator: User - reaction_type: String - created_at: Date - updated_at: Date + + """The button's label.""" + label: String + text: String + + """The column's type.""" + type: ColumnType! + + """The column's raw value in JSON format.""" + value: JSON } -type LinkValue implements ColumnValue { - """ - The column that this value belongs to. - """ +"""The result of adding users to / removing users from a team.""" +type ChangeTeamMembershipsResult { + """The users that team membership update failed for""" + failed_users: [User!] + + """The users that team membership update succeeded for""" + successful_users: [User!] +} + +type CheckboxValue implements ColumnValue { + """The column's boolean value.""" + checked: Boolean + + """The column that this value belongs to.""" column: Column! - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ + """The date when column value was last updated.""" updated_at: Date + value: JSON +} - """ - Url - """ - url: String +type ColorPickerValue implements ColumnValue { + """The color in hex value.""" + color: String - """ - Url text - """ - url_text: String + """The column that this value belongs to.""" + column: Column! - """ - The column's raw value in JSON format. - """ + """The column's unique identifier.""" + id: ID! + text: String + + """The column's type.""" + type: ColumnType! + + """The date when column value was last updated.""" + updated_at: Date + + """The column's raw value in JSON format.""" value: JSON } -type LocationValue implements ColumnValue { - """ - Address - """ - address: String +type Column { + """Is the column archived or not.""" + archived: Boolean! - """ - City - """ - city: String + """The column's description.""" + description: String - """ - City - """ - city_short: String + """The column's unique identifier.""" + id: ID! - """ - The column that this value belongs to. - """ - column: Column! + """The column's settings in a string form.""" + settings_str: String! - """ - Country - """ - country: String + """The column's title.""" + title: String! - """ - Country short name (e.g. PE for Peru) - """ - country_short: String + """The column's type.""" + type: ColumnType! - """ - The column's unique identifier. - """ - id: ID! + """The column's width.""" + width: Int +} - """ - Latitude - """ - lat: Float +""" +An object defining a mapping of column between source board and destination board +""" +input ColumnMappingInput { + """The source column's unique identifier.""" + source: ID! - """ - Longitude - """ - lng: Float + """The target column's unique identifier.""" + target: ID +} - """ - Place ID of the location - """ - place_id: String +"""The property name of the column to be changed.""" +enum ColumnProperty { + """the column description.""" + description - """ - Street - """ - street: String + """the column title.""" + title +} - """ - Number of building in the street - """ - street_number: String +interface ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Short number of building in the street - """ - street_number_short: String + """The column's unique identifier.""" + id: ID! """ - Street + Text representation of the column value. Note: Not all columns support textual value """ - street_short: String text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ - updated_at: Date - - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } -type LongTextValue implements ColumnValue { - """ - The column that this value belongs to. - """ +"""Complexity data.""" +type Complexity { + """The remainder of complexity after the query's execution.""" + after: Int! + + """The remainder of complexity before the query's execution.""" + before: Int! + + """The specific query's complexity.""" + query: Int! + + """How long in seconds before the complexity budget is reset""" + reset_in_x_seconds: Int! +} + +type Country { + """The country's two-letter code.""" + code: String! + + """The country's name.""" + name: String! +} + +type CountryValue implements ColumnValue { + """The column that this value belongs to.""" column: Column! - """ - The column's unique identifier. - """ + """The country value.""" + country: Country + + """The column's unique identifier.""" id: ID! """ @@ -3881,157 +6585,134 @@ type LongTextValue implements ColumnValue { """ text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ + """The date when column value was last updated.""" updated_at: Date - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } -type ManagedColumn { - id: String - title: String - description: String - settings_json: JSON - created_by: Int - updated_by: Int - revision: Int - state: ManagedColumnState - created_at: Date - updated_at: Date - settings: ColumnSettings +input CreateDocBoardInput { + """Column id""" + column_id: String! + + """Item id""" + item_id: ID! +} + +input CreateDocInput { + board: CreateDocBoardInput + workspace: CreateDocWorkspaceInput +} + +input CreateDocWorkspaceInput { + """Optional board folder id""" + folder_id: ID + + """The doc's kind (public / private / share)""" + kind: BoardKind + + """The doc's name""" + name: String! + + """Workspace id""" + workspace_id: ID! +} + +type CreationLogValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! + + """The date when the item was created.""" + created_at: Date! + + """User who created the item""" + creator: User! + + """ID of the user who created the item""" + creator_id: ID! + + """The column's unique identifier.""" + id: ID! + text: String + + """The column's type.""" + type: ColumnType! + + """The column's raw value in JSON format.""" + value: JSON } -enum ManagedColumnState { - active - deleted - inactive -} +"""The custom fields meta data for user profile.""" +type CustomFieldMetas { + """The custom field meta's description.""" + description: String + + """Is the custom field meta editable or not.""" + editable: Boolean + + """The custom field meta's type.""" + field_type: String + + """Is the custom field meta flagged or not.""" + flagged: Boolean -enum ManagedColumnTypes { - status - dropdown + """The custom field meta's icon.""" + icon: String + + """The custom field meta's unique identifier.""" + id: String + + """The custom field meta's position in the user profile page.""" + position: String + + """The custom field meta's title.""" + title: String } -type MarketplaceAppDiscount { - """ - Slug of an account - """ - account_slug: String! +"""A custom field value for user profile.""" +type CustomFieldValue { + """The custom field value's meta unique identifier.""" + custom_field_meta_id: String - """ - The ID of an account - """ - account_id: ID! + """The custom field value.""" + value: String +} - """ - Percentage value of a discount - """ - discount: Int! +type DateValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Is discount recurring - """ - is_recurring: Boolean! + """The column's date value.""" + date: String - """ - List of app plan ids - """ - app_plan_ids: [String!]! - period: DiscountPeriod + """The string representation of selected icon.""" + icon: String - """ - Date until a discount is valid - """ - valid_until: String! + """The column's unique identifier.""" + id: ID! - """ - Date when a discount was created - """ - created_at: String! -} + """The formatted date and time in user time zone.""" + text: String -type MirroredItem { - """ - The linked board. - """ - linked_board: Board! + """The column's time value.""" + time: String - """ - The linked board's unique identifier. - """ - linked_board_id: ID! + """The column's type.""" + type: ColumnType! - """ - The linked item. - """ - linked_item: Item! + """The date when column value was last updated.""" + updated_at: Date - """ - The mirrored values. - """ - mirrored_value: MirroredValue + """The column's raw value in JSON format.""" + value: JSON } -""" -Represents a mirrored value (column value, group, or board). -""" -union MirroredValue = - Board - | BoardRelationValue - | ButtonValue - | CheckboxValue - | ColorPickerValue - | CountryValue - | CreationLogValue - | DateValue - | DependencyValue - | DocValue - | DropdownValue - | EmailValue - | FileValue - | FormulaValue - | Group - | GroupValue - | HourValue - | IntegrationValue - | ItemIdValue - | LastUpdatedValue - | LinkValue - | LocationValue - | LongTextValue - | MirrorValue - | NumbersValue - | PeopleValue - | PersonValue - | PhoneValue - | ProgressValue - | RatingValue - | StatusValue - | SubtasksValue - | TagsValue - | TeamValue - | TextValue - | TimeTrackingValue - | TimelineValue - | UnsupportedValue - | VoteValue - | WeekValue - | WorldClockValue - -type MirrorValue implements ColumnValue { - """ - The column that this value belongs to. - """ +type DependencyValue implements ColumnValue { + """The column that this value belongs to.""" column: Column! """ @@ -4039,1803 +6720,1071 @@ type MirrorValue implements ColumnValue { """ display_value: String! - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - """ - The mirrored items. - """ - mirrored_items: [MirroredItem!]! + """The linked items ids""" + linked_item_ids: [ID!]! + + """The linked items.""" + linked_items: [Item!]! """ Text representation of the column value. Note: Not all columns support textual value """ text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The column's raw value in JSON format. - """ + """The date when column value was last updated.""" + updated_at: Date + + """The column's raw value in JSON format.""" value: JSON } -""" -Update your monday.com data. -""" -type Mutation { - """ - Like an update. - """ - like_update( - """ - The update identifier. - """ - update_id: ID! - ): Update - unlike_update( - """ - The update identifier. - """ - update_id: ID! - ): Update! - - """ - Delete an update. - """ - delete_update( - """ - The update's unique identifier. - """ - id: ID! - ): Update - edit_update( - """ - The update's unique identifier. - """ - id: ID! - - """ - The update text. - """ - body: String! - ): Update! - pin_to_top( - """ - The update's unique identifier. - """ - id: ID! +type DirectDocValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The item unique identifier. - """ - item_id: ID - ): Update! - unpin_from_top( - """ - The update's unique identifier. - """ - id: ID! + """The document file attached to the column.""" + file: DirectDocValue - """ - The item unique identifier. - """ - item_id: ID - ): Update! + """The column's unique identifier.""" + id: ID! """ - Create a new update. + Text representation of the column value. Note: Not all columns support textual value """ - create_update( - """ - The update text. - """ - body: String! + text: String - """ - The item's unique identifier. - """ - item_id: ID + """The column's type.""" + type: ColumnType! - """ - The parent post identifier. - """ - parent_id: ID - ): Update - create_timeline_item( - """ - The item the timeline item will be created in. - """ - item_id: ID! + """The column's raw value in JSON format.""" + value: JSON +} - """ - The user who created the timeline item. Only for account admins. - """ - user_id: Int +"""Various documents blocks types, such as text.""" +enum DocBlockContentType { + """Bulleted list block""" + bulleted_list - """ - The title of the timeline item. - """ - title: String! + """Check list block""" + check_list - """ - The creation time of the event. - """ - timestamp: ISO8601DateTime! - summary: String - content: String + """Code block""" + code - """ - Location field value - """ - location: String + """Divider block""" + divider - """ - Phone number field value - """ - phone: String + """Image block""" + image - """ - URL field value - """ - url: String + """Large title block""" + large_title - """ - The start and end time of the new timeline item. - """ - time_range: TimelineItemTimeRange + """Layout block""" + layout - """ - The id of the custom activity of the timeline item. - """ - custom_activity_id: String! - ): TimelineItem - delete_timeline_item( - """ - The id of the timeline item to delete - """ - id: String! - ): TimelineItem - create_custom_activity( - """ - The name of the custom activity - """ - name: String! + """Medium title block""" + medium_title - """ - The icon of the custom activity - """ - icon_id: CustomActivityIcon! + """Simple text block""" + normal_text - """ - The color of the custom activity - """ - color: CustomActivityColor! - ): CustomActivity - delete_custom_activity( - """ - The id of the custom activity - """ - id: String! - ): CustomActivity + """Notice block""" + notice_box - """ - Create managed column of type dropdown mutation. - """ - create_dropdown_managed_column( - """ - The column title. - """ - title: String! + """Numbered list block""" + numbered_list - """ - The column description. - """ - description: String - settings: CreateDropdownColumnSettingsInput - ): DropdownManagedColumn + """Page break block""" + page_break - """ - Create managed column of type status mutation. - """ - create_status_managed_column( - """ - The column title. - """ - title: String! + """Quote text block""" + quote - """ - The column description. - """ - description: String - settings: CreateStatusColumnSettingsInput - ): StatusManagedColumn + """Small title block""" + small_title - """ - Update managed column of type dropdown mutation. - """ - update_dropdown_managed_column( - """ - The column id. - """ - id: String! + """Table block""" + table + + """Video block""" + video +} + +"""Options to order by.""" +enum DocsOrderBy { + """The rank order of the document creation time (desc).""" + created_at - """ - The column title. - """ - title: String + """The last time the user making the request viewd the document (desc).""" + used_at +} - """ - The column description. - """ - description: String - settings: UpdateDropdownColumnSettingsInput +""" +Represents a monday.com doc - a rich-text page built from editable blocks (text, files, embeds, etc.). + A doc can belong to: + (1) a workspace (left-pane doc), + (2) an item (doc on column), + (3) a board view (doc as a board view). +""" +type Document { + """The document's content blocks""" + blocks( + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - The column revision. - """ - revision: Int! - ): DropdownManagedColumn + """Page number to get, starting at 1.""" + page: Int = 1 + ): [DocumentBlock] - """ - Update managed column of type status mutation. - """ - update_status_managed_column( - """ - The column id. - """ - id: String! + """The document's creation date.""" + created_at: Date - """ - The column title. - """ - title: String + """The document's creator""" + created_by: User - """ - The column description. - """ - description: String - settings: UpdateStatusColumnSettingsInput + """The document's folder unique identifier (null for first level).""" + doc_folder_id: ID - """ - The column revision. - """ - revision: Int! - ): StatusManagedColumn + """The document's kind (public / private / share).""" + doc_kind: BoardKind! """ - Activate managed column mutation. + Unique document ID returned when the doc is created. + Use this ID in every API call that references the doc. + How to find it: + • Call the docs() GraphQL query with object_ids to map object_id → id + • Enable 'Developer Mode' in monday.labs to display it inside the doc. """ - activate_managed_column( - """ - The column id. - """ - id: String! - ): ManagedColumn + id: ID! - """ - Deactivate managed column mutation. - """ - deactivate_managed_column( - """ - The column id. - """ - id: String! - ): ManagedColumn + """The document's name.""" + name: String! """ - Delete managed column mutation. + Identifier that appears in the doc's URL. + Returned on creation, but DO NOT use it in API routes that expect a document ID. """ - delete_managed_column( - """ - The column id. - """ - id: String! - ): ManagedColumn - grant_marketplace_app_discount( - """ - The id of an app - """ - app_id: ID! + object_id: ID! - """ - Slug of an account - """ - account_slug: String! - data: GrantMarketplaceAppDiscountData! - ): GrantMarketplaceAppDiscountResult! - delete_marketplace_app_discount( - """ - The id of an app - """ - app_id: ID! + """The document's relative url""" + relative_url: String - """ - Slug of an account - """ - account_slug: String! - ): DeleteMarketplaceAppDiscountResult! + """The document's settings.""" + settings: JSON - """ - Add a file to a column value. - """ - add_file_to_column( - """ - The column to add the file to. - """ - column_id: String! + """The document's direct url""" + url: String - """ - The file to upload. - """ - file: File! + """The workspace that contains this document (null for main workspace).""" + workspace: Workspace - """ - The item to add the file to. - """ - item_id: ID! - ): Asset + """The document's workspace unique identifier (null for main workspace).""" + workspace_id: ID +} - """ - Add a file to an update. - """ - add_file_to_update( - """ - The file to upload. - """ - file: File! +"""A monday.com document block.""" +type DocumentBlock { + """The block's content.""" + content: JSON - """ - The update to add the file to. - """ - update_id: ID! - ): Asset + """The block's creation date.""" + created_at: Date - """ - Add subscribers to a board. - """ - add_subscribers_to_board( - """ - The board's unique identifier. - """ - board_id: ID! + """The block's creator""" + created_by: User - """ - Subscribers kind (subscriber / owner) - """ - kind: BoardSubscriberKind = subscriber + """The block's document unique identifier.""" + doc_id: ID - """ - User ids to subscribe to a board - """ - user_ids: [ID!]! - ): [User] @deprecated(reason: "use add_users_to_board instead") + """The block's unique identifier.""" + id: String! - """ - Add teams subscribers to a board. - """ - add_teams_to_board( - """ - The board's unique identifier. - """ - board_id: ID! + """The block's parent block unique identifier.""" + parent_block_id: String - """ - Subscribers kind (subscriber / owner) - """ - kind: BoardSubscriberKind = subscriber + """The block's position on the document.""" + position: Float - """ - Team ids to subscribe to a board - """ - team_ids: [ID!]! - ): [Team] + """The block content type.""" + type: String - """ - Add teams to a workspace. - """ - add_teams_to_workspace( - """ - Subscribers kind (subscriber / owner) - """ - kind: WorkspaceSubscriberKind = subscriber + """The block's last updated date.""" + updated_at: Date +} - """ - Team ids to subscribe to a workspace - """ - team_ids: [ID!]! +"""A monday.com doc block.""" +type DocumentBlockIdOnly { + """The block's unique identifier.""" + id: String! +} - """ - The workspace's unique identifier. - """ - workspace_id: ID! - ): [Team] +type DocValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! + + """The document file attached to the column.""" + file: FileDocValue + + """The column's unique identifier.""" + id: ID! """ - Add subscribers to a board. + Text representation of the column value. Note: Not all columns support textual value """ - add_users_to_board( - """ - The board's unique identifier. - """ - board_id: ID! + text: String - """ - Subscribers kind (subscriber / owner) - """ - kind: BoardSubscriberKind = subscriber + """The column's type.""" + type: ColumnType! - """ - User ids to subscribe to a board - """ - user_ids: [ID!]! - ): [User] + """The column's raw value in JSON format.""" + value: JSON +} - """ - Add users to team. - """ - add_users_to_team( - """ - The team's unique identifier. - """ - team_id: ID! +type DropdownValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - User ids to add to/remove from the team - """ - user_ids: [ID!]! - ): ChangeTeamMembershipsResult + """The column's unique identifier.""" + id: ID! + text: String - """ - Add users to a workspace. - """ - add_users_to_workspace( - """ - Subscribers kind (subscriber / owner) - """ - kind: WorkspaceSubscriberKind = subscriber + """The column's type.""" + type: ColumnType! - """ - User ids to subscribe to a workspace - """ - user_ids: [ID!]! + """The column's raw value in JSON format.""" + value: JSON - """ - The workspace's unique identifier. - """ - workspace_id: ID! - ): [User] + """The selected dropdown values.""" + values: [DropdownValueOption!]! +} - """ - Archive a board. - """ - archive_board( - """ - The board's unique identifier - """ - board_id: ID! - ): Board +type DropdownValueOption { + """The dropdown item's unique identifier.""" + id: ID! + + """The dropdown item's label.""" + label: String! +} + +"""The board duplicate types available.""" +enum DuplicateBoardType { + """Duplicate board with structure and items.""" + duplicate_board_with_pulses + + """Duplicate board with structure, items and updates.""" + duplicate_board_with_pulses_and_updates + + """Duplicate board with structure.""" + duplicate_board_with_structure +} +input DynamicPosition { """ - Archives a group in a specific board. + A boolean flag indicating the desired position of the target item: set to true + to place the item after the reference object, or false to place it before. """ - archive_group( - """ - The board's unique identifier. - """ - board_id: ID! - - """ - The group's unique identifier. - """ - group_id: String! - ): Group + is_after: Boolean = true """ - Archive an item. + The unique identifier of the reference object relative to which the target item will be positioned. """ - archive_item( - """ - The item's unique identifier. - """ - item_id: ID - ): Item + object_id: String! """ - Extends trial period of an application to selected accounts + The type or category of the reference object, used to determine how the target + item should be positioned in relation to it. """ - batch_extend_trial_period( - """ - The accounts' slags. Max: 5 - """ - account_slugs: [String!]! + object_type: ObjectType! +} + +type EmailValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The id of an application. - """ - app_id: ID! + """The column's email value.""" + email: String - """ - The amount of days to extend a trial period. Max: 365 - """ - duration_in_days: Int! + """The column's unique identifier.""" + id: ID! - """ - The id of a payment plan. - """ - plan_id: String! - ): BatchExtendTrialPeriod + """ + The column's text value. It can be the same as email when user didn't enter any text. + """ + label: String """ - Change a column's properties + Text representation of the column value. Note: Not all columns support textual value """ - change_column_metadata( - """ - The board's unique identifier. - """ - board_id: ID! + text: String - """ - The column's unique identifier. - """ - column_id: String! + """The column's type.""" + type: ColumnType! - """ - The property name of the column to be changed (title / description). - """ - column_property: ColumnProperty + """The date when column value was last updated.""" + updated_at: Date - """ - The new description of the column. - """ - value: String - ): Column + """The column's raw value in JSON format.""" + value: JSON +} - """ - Change a column's title - """ - change_column_title( - """ - The board's unique identifier. - """ - board_id: ID! +"""Result of a single operation""" +type ExtendTrialPeriod { + """Account slug""" + account_slug: String! - """ - The column's unique identifier. - """ - column_id: String! + """Reason of an error""" + reason: String - """ - The new title of the column. - """ - title: String! - ): Column + """Result of a single operation""" + success: Boolean! +} - """ - Change an item's column value. - """ - change_column_value( - """ - The board's unique identifier. - """ - board_id: ID! +"""A multipart file""" +scalar File - """ - The column's unique identifier. - """ - column_id: String! +type FileAssetValue { + """The asset associated with the file.""" + asset: Asset! - """ - Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) - """ - create_labels_if_missing: Boolean + """The asset's id.""" + asset_id: ID! - """ - The item's unique identifier. - """ - item_id: ID + """The file's creation date.""" + created_at: Date! - """ - The new value of the column. - """ - value: JSON! - ): Item + """The user who created the file.""" + creator: User - """ - Changes the column values of a specific item. - """ - change_multiple_column_values( - """ - The board's unique identifier. - """ - board_id: ID! + """The ID of user who created the file.""" + creator_id: ID - """ - The column values updates. - """ - column_values: JSON! + """Whether the file is an image.""" + is_image: Boolean! - """ - Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) - """ - create_labels_if_missing: Boolean + """The file's name.""" + name: String! +} - """ - The item's unique identifier. - """ - item_id: ID - ): Item +"""The type of a link value stored inside a file column""" +enum FileColumnValue { + """Asset file""" + asset - """ - Change an item's column with simple value. - """ - change_simple_column_value( - """ - The board's unique identifier. - """ - board_id: ID! + """Box file""" + box - """ - The column's unique identifier. - """ - column_id: String! + """Doc file""" + doc - """ - Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) - """ - create_labels_if_missing: Boolean + """Dropbox file""" + dropbox - """ - The item's unique identifier. - """ - item_id: ID + """Google Drive file""" + google_drive - """ - The new simple value of the column (pass null to empty the column). - """ - value: String - ): Item + """Generic link file""" + link - """ - Change the position of an item in a board. - """ - change_item_position( - """ - The item's unique identifier. - """ - item_id: ID! + """OneDrive file""" + onedrive +} - """ - The ID of the item to position relative to. - """ - relative_to: ID +type FileDocValue { + """The file's creation date.""" + created_at: Date! - """ - The position relative method to another item (before_at / after_at). - """ - position_relative_method: PositionRelative + """The user who created the file.""" + creator: User - """ - The group's unique identifier to move the item to. - """ - group_id: String + """The ID of user who created the file.""" + creator_id: ID - """ - Whether to position the item at the top of the group. - """ - group_top: Boolean - ): Item + """The doc associated with the file.""" + doc: Document! - """ - Clear an item's updates. - """ - clear_item_updates( - """ - The item's unique identifier. - """ - item_id: ID! - ): Item + """The file's unique identifier.""" + file_id: ID! - """ - Get the complexity data of your mutations. - """ - complexity: Complexity + """The associated board or object's unique identifier.""" + object_id: ID! - """ - Create a new board. - """ - create_board( - """ - The board's kind (public / private / share) - """ - board_kind: BoardKind! + """The file's url.""" + url: String +} - """ - The board's name - """ - board_name: String! +input FileInput { + """The asset's id.""" + assetId: ID - """ - Optional board owner user ids - """ - board_owner_ids: [ID!] + """File kind""" + fileType: FileColumnValue! - """ - Optional board owner team ids - """ - board_owner_team_ids: [ID!] + """File link""" + linkToFile: String - """ - Optional board subscriber ids - """ - board_subscriber_ids: [ID!] + """File display name""" + name: String! - """ - Optional list of subscriber team ids - """ - board_subscriber_teams_ids: [ID!] + """The doc's id""" + objectId: ID +} - """ - Optional board's description - """ - description: String +type FileLinkValue { + """The file's creation date.""" + created_at: Date! - """ - Optional flag to create an empty board (without any default items) - """ - empty: Boolean = false + """The user who created the file.""" + creator: User - """ - Optional board folder id - """ - folder_id: ID + """The ID of user who created the file.""" + creator_id: ID - """ - Optional board template id - """ - template_id: ID + """The file's id.""" + file_id: ID! - """ - Optional workspace id - """ - workspace_id: ID - ): Board + """The file's kind.""" + kind: FileLinkValueKind! - """ - Create a new column in board. - """ - create_column( - """ - The column's unique identifier after which the new column will be inserted. - """ - after_column_id: ID + """The file's name.""" + name: String! - """ - The board's unique identifier. - """ - board_id: ID! + """The file's url.""" + url: String +} - """ - The type of column to create. - """ - column_type: ColumnType! +"""The type of a link value stored inside a file column""" +enum FileLinkValueKind { + """Box file""" + box - """ - The new column's defaults. - """ - defaults: JSON + """Dropbox file""" + dropbox - """ - The new column's description. - """ - description: String + """Google Drive file""" + google_drive - """ - The column's user-specified unique identifier. - """ - id: String + """Generic link file""" + link - """ - The new column's title. - """ - title: String! - ): Column + """OneDrive file""" + onedrive +} + +type FileValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Create a new doc. - """ - create_doc( - """ - new monday doc location - """ - location: CreateDocInput! - ): Document + """The files attached to the column.""" + files: [FileValueItem!]! - """ - Create new document block - """ - create_doc_block( - """ - After which block to insert this one. If not provided, will be inserted first in the document - """ - after_block_id: String + """The column's unique identifier.""" + id: ID! + text: String - """ - The block's content. - """ - content: JSON! + """The column's type.""" + type: ColumnType! - """ - The doc's unique identifier. - """ - doc_id: ID! + """The column's raw value in JSON format.""" + value: JSON +} - """ - The parent block id to append the created block under. - """ - parent_block_id: String +"""A single file in a column.""" +union FileValueItem = FileAssetValue | FileDocValue | FileLinkValue - """ - The block's content type. - """ - type: DocBlockContentType! - ): DocumentBlock +"""The first day of work week""" +enum FirstDayOfTheWeek { + """Monday""" + monday + + """Sunday""" + sunday +} +"""A workspace folder containing boards, docs, sub folders, etc.""" +type Folder { """ - Creates a folder in a specific workspace. + The various items in the folder, not including sub-folders and dashboards. """ - create_folder( - """ - The folder's color. - """ - color: FolderColor - - """ - The folder's custom icon. - """ - custom_icon: FolderCustomIcon + children: [Board]! - """ - The folder's font weight. - """ - font_weight: FolderFontWeight + """The folder's color.""" + color: FolderColor - """ - The folder's name - """ - name: String! + """The folder's creation date.""" + created_at: Date! - """ - The folder's parent folder unique identifier. - """ - parent_folder_id: ID + """The folder's custom icon.""" + custom_icon: FolderCustomIcon - """ - The unique identifier of the workspace to create this folder in - """ - workspace_id: ID - ): Folder + """The folder's font weight.""" + font_weight: FolderFontWeight - """ - Creates a new group in a specific board. - """ - create_group( - """ - The board's unique identifier. - """ - board_id: ID! + """The folder's unique identifier.""" + id: ID! - """ - A hex representing the group's color - """ - group_color: String + """The folder's name.""" + name: String! - """ - The name of the new group. - """ - group_name: String! + """The folder's user owner unique identifier.""" + owner_id: ID - """ - The group's position in the board. DEPRECATED! Replaced with relative position (position_relative_method, relative_to) - """ - position: String + """The folder's parent folder.""" + parent: Folder - """ - The position relative method to another group (before_at / after_at) - """ - position_relative_method: PositionRelative + """Sub-folders inside this folder.""" + sub_folders: [Folder]! - """ - The group to set the position next to. - """ - relative_to: String - ): Group + """The workspace that contains this folder (null id for main workspace).""" + workspace: Workspace! +} - """ - Create a new item. - """ - create_item( - """ - The board's unique identifier. - """ - board_id: ID! +"""One value out of a list of valid folder colors""" +enum FolderColor { + """aquamarine""" + AQUAMARINE - """ - The column values of the new item. - """ - column_values: JSON + """bright-blue""" + BRIGHT_BLUE - """ - Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) - """ - create_labels_if_missing: Boolean + """bright-green""" + BRIGHT_GREEN - """ - The group's unique identifier. - """ - group_id: String + """chili-blue""" + CHILI_BLUE - """ - The new item's name. - """ - item_name: String! + """dark-orange""" + DARK_ORANGE - """ - The position relative method to another item (before_at / after_at) - """ - position_relative_method: PositionRelative + """dark_purple""" + DARK_PURPLE - """ - The item to set the position next to. - """ - relative_to: ID - ): Item + """dark-red""" + DARK_RED - """ - Create a new notification. - """ - create_notification( - """ - The target's unique identifier. - """ - target_id: ID! + """done-green""" + DONE_GREEN - """ - The target's type (Project / Post) - """ - target_type: NotificationTargetType! + """indigo""" + INDIGO - """ - The notification text. - """ - text: String! + """lipstick""" + LIPSTICK - """ - The user's unique identifier. - """ - user_id: ID! - ): Notification + """No color""" + NULL - """ - Create a new tag or get it if it already exists. - """ - create_or_get_tag( - """ - The private board id to create the tag at (not needed for public boards) - """ - board_id: ID + """purple""" + PURPLE - """ - The new tag's name. - """ - tag_name: String - ): Tag + """sofia_pink""" + SOFIA_PINK - """ - Create subitem. - """ - create_subitem( - """ - The column values of the new item. - """ - column_values: JSON + """stuck-red""" + STUCK_RED - """ - Create Status/Dropdown labels if they're missing. (Requires permission to change board structure) - """ - create_labels_if_missing: Boolean + """sunset""" + SUNSET - """ - The new item's name. - """ - item_name: String! + """working_orange""" + WORKING_ORANGE +} - """ - The parent item's unique identifier. - """ - parent_item_id: ID! - ): Item +"""One value out of a list of valid folder custom icons""" +enum FolderCustomIcon { + """Folder""" + FOLDER - """ - Create a new webhook. - """ - create_webhook( - """ - The board's unique identifier. - """ - board_id: ID! + """MoreBelow""" + MOREBELOW - """ - The webhook config - """ - config: JSON + """MoreBelowFilled""" + MOREBELOWFILLED - """ - The event to listen to - """ - event: WebhookEventType! + """No custom icon""" + NULL - """ - The webhook URL. - """ - url: String! - ): Webhook + """Work""" + WORK +} - """ - Create a new workspace. - """ - create_workspace( - """ - The Workspace's description - """ - description: String +"""One value out of a list of valid folder font weights""" +enum FolderFontWeight { + """font-weight-bold""" + FONT_WEIGHT_BOLD - """ - The workspace's kind (open / closed) - """ - kind: WorkspaceKind! + """font-weight-light""" + FONT_WEIGHT_LIGHT - """ - The Workspace's name - """ - name: String! - ): Workspace + """font-weight-normal""" + FONT_WEIGHT_NORMAL - """ - Delete a board. - """ - delete_board( - """ - The board's unique identifier - """ - board_id: ID! - ): Board + """font-weight-very-light""" + FONT_WEIGHT_VERY_LIGHT - """ - Delete a column. - """ - delete_column( - """ - The board's unique identifier. - """ - board_id: ID! + """No font weight""" + NULL +} - """ - The column's unique identifier. - """ - column_id: String! - ): Column +type FormulaValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Delete a document block - """ - delete_doc_block( - """ - The block's unique identifier. - """ - block_id: String! - ): DocumentBlockIdOnly + """The column's unique identifier.""" + id: ID! """ - Deletes a folder in a specific workspace. + Text representation of the column value. Note: Not all columns support textual value """ - delete_folder( - """ - The folder's unique identifier. - """ - folder_id: ID! - ): Folder + text: String - """ - Deletes a group in a specific board. - """ - delete_group( - """ - The board's unique identifier. - """ - board_id: ID! + """The column's type.""" + type: ColumnType! - """ - The group's unique identifier. - """ - group_id: String! - ): Group + """The column's raw value in JSON format.""" + value: JSON - """ - Delete an item. - """ - delete_item( - """ - The item's unique identifier. - """ - item_id: ID - ): Item + """A string representing all the formula values, separated by commas""" + display_value: String! +} - """ - Remove subscribers from the board. - """ - delete_subscribers_from_board( - """ - The board's unique identifier. - """ - board_id: ID! +"""A group of items in a board.""" +type Group { + """Is the group archived or not.""" + archived: Boolean - """ - User ids to unsubscribe from a board - """ - user_ids: [ID!]! - ): [User] + """The group's color.""" + color: String! - """ - Remove team subscribers from the board. - """ - delete_teams_from_board( - """ - The board's unique identifier - """ - board_id: ID! + """Is the group deleted or not.""" + deleted: Boolean - """ - Team ids to unsubscribe from a workspace - """ - team_ids: [ID!]! - ): [Team] + """The group's unique identifier.""" + id: ID! - """ - Delete teams from a workspace. - """ - delete_teams_from_workspace( + """The items in the group.""" + items_page( """ - Team ids to unsubscribe from a workspace + An opaque token representing the position in the result set from which to + resume fetching items. Use this to paginate through large result sets. """ - team_ids: [ID!]! + cursor: String """ - The workspace's unique identifier. + The maximum number of items to fetch in a single request. Use this to + control the size of the result set and manage pagination. Maximum: 500. """ - workspace_id: ID! - ): [Team] + limit: Int! = 25 - """ - Delete users from a workspace. - """ - delete_users_from_workspace( """ - User ids to unsubscribe from a workspace + A set of parameters to filter, sort, and control the scope of the items + query. Use this to customize the results based on specific criteria. """ - user_ids: [ID!]! + query_params: ItemsQuery + ): ItemsResponse! - """ - The workspace's unique identifier. - """ - workspace_id: ID! - ): [User] + """The group's position in the board.""" + position: String! - """ - Delete a new webhook. - """ - delete_webhook( - """ - The webhook's unique identifier. - """ - id: ID! - ): Webhook + """The group's title.""" + title: String! +} +"""The group attributes available.""" +enum GroupAttributes { """ - Delete workspace. + Group color (one of the supported colors, check the API documentation). """ - delete_workspace( - """ - The workspace's unique identifier - """ - workspace_id: ID! - ): Workspace + color """ - Duplicate a board. + The group's position in the board. Deprecated! - replaced with relative position """ - duplicate_board( - """ - The board's unique identifier. - """ - board_id: ID! + position - """ - Optional the new board's name. If omitted then automatically generated - """ - board_name: String + """The group's relative position after another group in the board.""" + relative_position_after - """ - The duplication type. - """ - duplicate_type: DuplicateBoardType! + """The group's relative position before another group in the board.""" + relative_position_before - """ - Optional destination folder in destination workspace. Defaults to the original board folder. - """ - folder_id: ID + """Group title.""" + title +} - """ - Duplicate the subscribers to the new board. Defaults to false. - """ - keep_subscribers: Boolean +type GroupValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Optional destination workspace. Defaults to the original board workspace. - """ - workspace_id: ID - ): BoardDuplication + """The group value.""" + group: Group + + """The group identifier.""" + group_id: ID + + """The column's unique identifier.""" + id: ID! """ - Duplicate a group. + Text representation of the column value. Note: Not all columns support textual value """ - duplicate_group( - """ - Should the new group be added to the top. - """ - add_to_top: Boolean + text: String - """ - The board's unique identifier. - """ - board_id: ID! + """The column's type.""" + type: ColumnType! - """ - The group's unique identifier. - """ - group_id: String! + """The column's raw value in JSON format.""" + value: JSON +} - """ - The group's title. - """ - group_title: String - ): Group +type HourValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Duplicate an item. - """ - duplicate_item( - """ - The board's unique identifier. - """ - board_id: ID! + """Hour""" + hour: Int - """ - The item's unique identifier. *Required - """ - item_id: ID + """The column's unique identifier.""" + id: ID! - """ - Duplicate with the item's updates. - """ - with_updates: Boolean - ): Item + """Minute""" + minute: Int + text: String - """ - Increase operations counter - """ - increase_app_subscription_operations( - """ - Must be positive number. - """ - increment_by: Int = 1 + """The column's type.""" + type: ColumnType! - """ - Operation name. A string of up to 14 characters containing alphanumeric characters and the symbols -_ - """ - kind: String = "global" - ): AppSubscriptionOperationsCounter + """The date when column value was last updated.""" + updated_at: Date - """ - Move an item to a different board. - """ - move_item_to_board( - """ - The unique identifier of a target board. - """ - board_id: ID! + """The column's raw value in JSON format.""" + value: JSON +} - """ - Mapping of columns between the original board and target board - """ - columns_mapping: [ColumnMappingInput!] +type IntegrationValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The unique identifier of a target group. - """ - group_id: ID! + """ID of the entity""" + entity_id: ID - """ - The unique identifier of an item to move. - """ - item_id: ID! + """The column's unique identifier.""" + id: ID! - """ - Mapping of subitem columns between the original board and target board - """ - subitems_columns_mapping: [ColumnMappingInput!] - ): Item + """URL of the issue""" + issue_api_url: ID + + """ID of the issue""" + issue_id: String """ - Move an item to a different group. + Text representation of the column value. Note: Not all columns support textual value """ - move_item_to_group( - """ - The group's unique identifier. - """ - group_id: String! + text: String - """ - The item's unique identifier. - """ - item_id: ID - ): Item + """The column's type.""" + type: ColumnType! - """ - Remove mock app subscription for the current account - """ - remove_mock_app_subscription( - """ - The app id of the app to remove the mocked subscription for. - """ - app_id: ID! + """The column's raw value in JSON format.""" + value: JSON +} - """ - The last 10 characters of the app's signing secret. - """ - partial_signing_secret: String! - ): AppSubscription +"""An item description.""" +type ItemDescription { + """The item's content blocks""" + blocks( + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - Remove users from team. - """ - remove_users_from_team( - """ - The team's unique identifier. - """ - team_id: ID! + """Page number to get, starting at 1.""" + page: Int = 1 + ): [DocumentBlock] - """ - User ids to add to/remove from the team - """ - user_ids: [ID!]! - ): ChangeTeamMembershipsResult + """The item's unique identifier.""" + id: ID +} - """ - Set mock app subscription for the current account - """ - set_mock_app_subscription( - """ - The app id of the app to mock subscription for. - """ - app_id: ID! +type ItemIdValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Billing period [monthly/yearly] - """ - billing_period: String + """The column's unique identifier.""" + id: ID! - """ - Is the subscription a trial - """ - is_trial: Boolean + """ID of the item""" + item_id: ID! + text: String - """ - Maximum number of units for the mocked plan - """ - max_units: Int + """The column's type.""" + type: ColumnType! - """ - The last 10 characters of the app's signing secret. - """ - partial_signing_secret: String! + """The column's raw value in JSON format.""" + value: JSON +} - """ - The plan id for the mocked plan - """ - plan_id: String +input ItemsPageByColumnValuesQuery { + """The column's unique identifier.""" + column_id: String! - """ - Pricing plans version - """ - pricing_version: Int + """The column values to search items by.""" + column_values: [String]! +} - """ - The subscription renewal date - """ - renewal_date: Date - ): AppSubscription +input ItemsQuery { + """A list of rule groups""" + groups: [ItemsQueryGroup!] """ - Update item column value by existing assets + A list of item IDs to fetch. Use this to fetch a specific set of items by their IDs. Max: 100 IDs """ - update_assets_on_item( - """ - The board's unique identifier. - """ - board_id: ID! + ids: [ID!] - """ - The column's unique identifier. - """ - column_id: String! + """The operator to use for the query rules or rule groups""" + operator: ItemsQueryOperator = and - """ - Array of files values. - """ - files: [FileInput!]! + """Sort the results by specified columns""" + order_by: [ItemsQueryOrderBy!] - """ - The item's unique identifier. - """ - item_id: ID! - ): Item + """A list of rules""" + rules: [ItemsQueryRule!] +} +type ItemsResponse { """ - Update Board attribute. + An opaque cursor that represents the position in the list after the last + returned item. Use this cursor for pagination to fetch the next set of items. + If the cursor is null, there are no more items to fetch. """ - update_board( - """ - The board's attribute to update (name / description / communication) - """ - board_attribute: BoardAttributes! + cursor: String - """ - The board's unique identifier - """ - board_id: ID! + """The items associated with the cursor.""" + items: [Item!]! +} - """ - The new attribute value. - """ - new_value: String! - ): JSON +"""Kind of assignee""" +enum Kind { + """Represents a person""" + person - """ - Update a document block - """ - update_doc_block( - """ - The block's unique identifier. - """ - block_id: String! + """Represents a team""" + team +} - """ - The block's content. - """ - content: JSON! - ): DocumentBlock +type LastUpdatedValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Updates a folder. - """ - update_folder( - """ - The folder's color. - """ - color: FolderColor + """The column's unique identifier.""" + id: ID! + text: String - """ - The folder's custom icon. - """ - custom_icon: FolderCustomIcon + """The column's type.""" + type: ColumnType! - """ - The folder's unique identifier - """ - folder_id: ID! + """Timestamp of the last time the item was updated""" + updated_at: Date - """ - The folder's font weight. - """ - font_weight: FolderFontWeight + """User who updated the item""" + updater: User - """ - The folder's name - """ - name: String + """ID of the user who updated the item""" + updater_id: ID - """ - The folder's parent folder. - """ - parent_folder_id: ID - ): Folder + """The column's raw value in JSON format.""" + value: JSON +} - """ - Update an existing group. - """ - update_group( - """ - The board's unique identifier. - """ - board_id: ID! +type LinkValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The groups's attribute to update (title / color / position / relative_position_after / relative_position_before) - """ - group_attribute: GroupAttributes! + """The column's unique identifier.""" + id: ID! + text: String - """ - The Group's unique identifier. - """ - group_id: String! + """The column's type.""" + type: ColumnType! - """ - The new attribute value. - """ - new_value: String! - ): Group + """The date when column value was last updated.""" + updated_at: Date - """ - Update an existing workspace. - """ - update_workspace( - """ - The attributes of the workspace to update - """ - attributes: UpdateWorkspaceAttributesInput! + """Url""" + url: String - """ - The workspace ID. - """ - id: ID - ): Workspace + """Url text""" + url_text: String - """ - Use a template - """ - use_template( - """ - The board's kind (public / private / share) - """ - board_kind: BoardKind + """The column's raw value in JSON format.""" + value: JSON +} - """ - Optional board owner user ids - """ - board_owner_ids: [Int] +type LocationValue implements ColumnValue { + """Address""" + address: String - """ - Optional board owner team ids - """ - board_owner_team_ids: [Int] + """City""" + city: String - """ - Optional board subscriber ids - """ - board_subscriber_ids: [Int] + """City""" + city_short: String - """ - Optional list of subscriber team ids - """ - board_subscriber_teams_ids: [Int] + """The column that this value belongs to.""" + column: Column! - """ - The callback URL to send the workspace, boards and dashboards IDs result, after its completed in the background - """ - callback_url_on_complete: String + """Country""" + country: String - """ - The folder ID to duplicate the template to. - """ - destination_folder_id: Int + """Country short name (e.g. PE for Peru)""" + country_short: String - """ - The folder name to duplicate the template to, in case of multiple boards template - """ - destination_folder_name: String + """The column's unique identifier.""" + id: ID! - """ - The name of the instance - """ - destination_name: String + """Latitude""" + lat: Float - """ - The workspace ID to duplicate the template to, If not defined, it will be created in Main Workspace - """ - destination_workspace_id: Int + """Longitude""" + lng: Float - """ - Skips target folder creation in multiple entities templates - """ - skip_target_folder_creation: Boolean + """Place ID of the location""" + place_id: String - """ - Optional adding extra options - """ - solution_extra_options: JSON + """Street""" + street: String - """ - The template ID - """ - template_id: Int! - ): Template + """Number of building in the street""" + street_number: String - """ - Creates a new team. - """ - create_team(input: CreateTeamAttributesInput!, options: CreateTeamOptionsInput): Team + """Short number of building in the street""" + street_number_short: String - """ - Activates the specified users. - """ - activate_users( - """ - The ids of the users to activate. (Limit: 200) - """ - user_ids: [ID!]! - ): ActivateUsersResult + """Street""" + street_short: String + text: String - """ - Deactivates the specified users. - """ - deactivate_users( - """ - The ids of the users to deactivate. (Limit: 200) - """ - user_ids: [ID!]! - ): DeactivateUsersResult + """The column's type.""" + type: ColumnType! - """ - Deletes the specified team. - """ - delete_team( - """ - The team to be deleted. - """ - team_id: ID! - ): Team + """The date when column value was last updated.""" + updated_at: Date - """ - Updates the role of the specified users. - """ - update_users_role( - """ - The ids of the users to update. (Limit: 200) - """ - user_ids: [ID!]! + """The column's raw value in JSON format.""" + value: JSON +} - """ - The base role name (e.g. admin, member, etc.) - """ - new_role: BaseRoleName +type LongTextValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The ID of a custom role - """ - role_id: ID - ): UpdateUsersRoleResult + """The column's unique identifier.""" + id: ID! """ - Assigns the specified users as owners of the specified team. + Text representation of the column value. Note: Not all columns support textual value """ - assign_team_owners( - """ - The team identifier. - """ - team_id: ID! + text: String - """ - The user identifiers (max 200) - """ - user_ids: [ID!]! - ): AssignTeamOwnersResult + """The column's type.""" + type: ColumnType! - """ - Removes the specified users as owners of the specified team. - """ - remove_team_owners( - """ - The team identifier. - """ - team_id: ID! + """The date when column value was last updated.""" + updated_at: Date - """ - The user identifiers (max 200) - """ - user_ids: [ID!]! - ): RemoveTeamOwnersResult + """The column's raw value in JSON format.""" + value: JSON +} - """ - Updates the email domain for the specified users. - """ - update_email_domain(input: UpdateEmailDomainAttributesInput!): UpdateEmailDomainResult +type MirroredItem { + """The linked board.""" + linked_board: Board! + + """The linked board's unique identifier.""" + linked_board_id: ID! + + """The linked item.""" + linked_item: Item! + + """The mirrored values.""" + mirrored_value: MirroredValue +} + +"""Represents a mirrored value (column value, group, or board).""" +union MirroredValue = Board | BoardRelationValue | ButtonValue | CheckboxValue | ColorPickerValue | CountryValue | CreationLogValue | DateValue | DependencyValue | DirectDocValue | DocValue | DropdownValue | EmailValue | FileValue | FormulaValue | Group | GroupValue | HourValue | IntegrationValue | ItemIdValue | LastUpdatedValue | LinkValue | LocationValue | LongTextValue | MirrorValue | NumbersValue | PeopleValue | PersonValue | PhoneValue | ProgressValue | RatingValue | StatusValue | SubtasksValue | TagsValue | TeamValue | TextValue | TimeTrackingValue | TimelineValue | UnsupportedValue | VoteValue | WeekValue | WorldClockValue + +type MirrorValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! """ - Updates attributes for users. + A string representing all the names of the linked items, separated by commas """ - update_multiple_users( - """ - List of user updates, each containing an ID and attribute updates. - """ - user_updates: [UserUpdateInput!]! + display_value: String! - """ - Whether to bypass email confirmation for claimed domains. - """ - bypass_confirmation_for_claimed_domains: Boolean - ): UpdateUserAttributesResult + """The column's unique identifier.""" + id: ID! + + """The mirrored items.""" + mirrored_items: [MirroredItem!]! """ - Invite users to the account. + Text representation of the column value. Note: Not all columns support textual value """ - invite_users( - """ - The emails of the users to invite. - """ - emails: [String!]! + text: String - """ - The new role of the users. - """ - user_role: UserRole + """The column's type.""" + type: ColumnType! - """ - The product to invite the users to - """ - product: Product - ): InviteUsersResult + """The column's raw value in JSON format.""" + value: JSON } -""" -A notification. -""" +"""A notification.""" type Notification { - """ - The notification's unique identifier. - """ + """The notification's unique identifier.""" id: ID! - """ - The notification text. - """ + """The notification text.""" text: String + + """The date and time the notification was created.""" + created_at: Date + + """The title of the notification.""" + title: String + + """The users who created the notification.""" + creators: [User!]! + + """Whether the notification has been read.""" + read: Boolean! + + """The update that triggered the notification.""" + update: Update + + """The item that is associated with the notification.""" + item: Item + + """The board that is associated with the notification.""" + board: Board } -""" -The notification's target type. -""" +"""The notification's target type.""" enum NotificationTargetType { - """ - Update - """ + """Update""" Post - """ - Item or Board. - """ + """Item or Board.""" Project } type NumbersValue implements ColumnValue { - """ - The column that this value belongs to. - """ + """The column that this value belongs to.""" column: Column! """ @@ -5843,1809 +7792,1519 @@ type NumbersValue implements ColumnValue { """ direction: NumberValueUnitDirection - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - """ - Number - """ + """Number""" number: Float - """ - The symbol of the unit - """ + """The symbol of the unit""" symbol: String text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } -""" -Indicates where the unit symbol should be placed in a number value -""" +"""Indicates where the unit symbol should be placed in a number value""" enum NumberValueUnitDirection { - """ - The symbol is placed on the left of the number - """ + """The symbol is placed on the left of the number""" left - """ - The symbol is placed on the right of the number - """ + """The symbol is placed on the right of the number""" right } -""" -The working status of a user. -""" +"""The working status of a user.""" type OutOfOffice { - """ - Is the status active? - """ + """Is the status active?""" active: Boolean - """ - Are notification disabled? - """ + """Are notification disabled?""" disable_notifications: Boolean - """ - The status end date. - """ + """The status end date.""" end_date: Date - """ - The status start date. - """ + """The status start date.""" start_date: Date - """ - Out of office type. - """ + """Out of office type.""" type: String } type PeopleEntity { - """ - Id of the entity: a person or a team - """ + """Id of the entity: a person or a team""" id: ID! - """ - Type of entity - """ + """Type of entity""" kind: Kind } type PeopleValue implements ColumnValue { - """ - The column that this value belongs to. - """ + """The column that this value belongs to.""" column: Column! - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - """ - The people and teams assigned to the item. - """ + """The people and teams assigned to the item.""" persons_and_teams: [PeopleEntity!] text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ + """The date when column value was last updated.""" updated_at: Date - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } type PersonValue implements ColumnValue { - """ - The column that this value belongs to. - """ + """The column that this value belongs to.""" column: Column! - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - """ - The person assigned to the item. - """ + """The person assigned to the item.""" person_id: ID text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ + """The date when column value was last updated.""" updated_at: Date - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } type PhoneValue implements ColumnValue { - """ - The column that this value belongs to. - """ + """The column that this value belongs to.""" column: Column! - """ - ISO-2 country code - """ + """ISO-2 country code""" country_short_name: String - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - """ - Phone number - """ + """Phone number""" phone: String text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ + """The date when column value was last updated.""" updated_at: Date - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } -""" -A payment plan. -""" +"""A payment plan.""" type Plan { - """ - The maximum users allowed in the plan. - """ + """The maximum users allowed in the plan.""" max_users: Int! - """ - The plan's time period. - """ + """The plan's time period.""" period: String - """ - The plan's tier. - """ + """The plan's tier.""" tier: String + """The plan's version.""" + version: Int! +} + +"""The position relative method.""" +enum PositionRelative { + """position after at the given entity.""" + after_at + + """position before at the given entity.""" + before_at +} + +type ProgressValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! + + """The column's unique identifier.""" + id: ID! + """ - The plan's version. + Text representation of the column value. Note: Not all columns support textual value """ - version: Int! + text: String + + """The column's type.""" + type: ColumnType! + + """The column's raw value in JSON format.""" + value: JSON +} + +type RatingValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! + + """The column's unique identifier.""" + id: ID! + + """Rating value""" + rating: Int + text: String + + """The column's type.""" + type: ColumnType! + + """The date when column value was last updated.""" + updated_at: Date + + """The column's raw value in JSON format.""" + value: JSON } """ -The Platform API's data. +Response type for detailed board permissions. Contains information about the permissions that were set. """ -type PlatformApi { +type SetBoardPermissionResponse { """ - Platform API daily limit. + The technical board write permissions value that was set (e.g., 'everyone', 'collaborators', 'owners'). """ - daily_limit: DailyLimit + edit_permissions: BoardEditPermissions! - """ - API analytics. - """ - daily_analytics: DailyAnalytics + """List of any actions that failed during the permission update process.""" + failed_actions: [String!] +} + +"""The possible states for a board or item.""" +enum State { + """Active only (Default).""" + active + + """Active, Archived and Deleted.""" + all + + """Archived only.""" + archived + + """Deleted only.""" + deleted +} + +"""A status label style.""" +type StatusLabelStyle { + """The label's border color in hex format.""" + border: String! + + """The label's color in hex format.""" + color: String! +} + +type StatusValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! + + """The column's unique identifier.""" + id: ID! + + """The index of the status in the board""" + index: Int + + """Whether the status is done""" + is_done: Boolean + + """The label of the status""" + label: String + + """The style of the status label""" + label_style: StatusLabelStyle + text: String + + """The column's type.""" + type: ColumnType! + + """The ID of an update attached to the status""" + update_id: ID + + """The date when column value was last updated.""" + updated_at: Date + + """The column's raw value in JSON format.""" + value: JSON } -""" -API usage per app. -""" -type PlatformApiDailyAnalyticsByApp { - """ - Application. - """ - app: AppType +type SubtasksValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! """ - API usage for the app. + A string representing all the names of the subtasks, separated by commas """ - usage: Int! + display_value: String! - """ - API app id - """ - api_app_id: ID! -} + """The column's unique identifier.""" + id: ID! -""" -API usage per day. -""" -type PlatformApiDailyAnalyticsByDay { - """ - Day. - """ - day: String! + """The subitems""" + subitems: [Item!]! - """ - API usage for the day. - """ - usage: Int! -} + """The subitems IDs""" + subitems_ids: [ID!]! -""" -API usage per user. -""" -type PlatformApiDailyAnalyticsByUser { """ - User. + Text representation of the column value. Note: Not all columns support textual value """ - user: User! + text: String - """ - API usage for the user. - """ - usage: Int! + """The column's type.""" + type: ColumnType! + + """The column's raw value in JSON format.""" + value: JSON } -""" -The position relative method. -""" -enum PositionRelative { - """ - position after at the given entity. - """ - after_at +"""A tag""" +type Tag { + """The tag's color.""" + color: String! - """ - position before at the given entity. - """ - before_at -} + """The tag's unique identifier.""" + id: ID! -""" -The product to invite the users to. -""" -enum Product { - work_management - crm - dev - service - whiteboard - knowledge - forms - workflows + """The tag's name.""" + name: String! } -type ProgressValue implements ColumnValue { - """ - The column that this value belongs to. - """ +type TagsValue implements ColumnValue { + """The column that this value belongs to.""" column: Column! - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - """ - Text representation of the column value. Note: Not all columns support textual value - """ + """Tag ID's""" + tag_ids: [Int!]! + + """A list of tags""" + tags: [Tag!]! text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON } -""" -Get your data from monday.com -""" -type Query { - """ - Get a collection of updates. - """ - updates( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 - - """ - Page number to get, starting at 1. - """ - page: Int = 1 +"""A team of users.""" +type Team { + """The team's unique identifier.""" + id: ID! - """ - A list of items unique identifiers. - """ + """The users who are the owners of the team.""" + owners( + """A list of users' unique identifiers.""" ids: [ID!] - ): [Update!] - custom_activity( - """ - The ids of the custom activities to fetch - """ - ids: [String!] + ): [User!]! - """ - The name of the custom activity, case insensitive and partial match - """ - name: String + """The team's picture url.""" + picture_url: String - """ - The icon of the custom activity - """ - icon_id: CustomActivityIcon + """The users in the team.""" + users( + """A list of users' emails.""" + emails: [String] - """ - The color of the custom activity - """ - color: CustomActivityColor - ): [CustomActivity!] - timeline_item( - """ - The id of the timeline item to delete - """ - id: ID! - ): TimelineItem + """A list of users' unique identifiers.""" + ids: [ID!] - """ - Fetches timeline items for a given item - """ - timeline( - """ - The id of the item - """ - id: ID! - ): TimelineResponse + """The kind to search users by (all / non_guests / guests / non_pending).""" + kind: UserKind - """ - Get managed column data. - """ - managed_column( - """ - The managed column ids. - """ - id: [String!] + """Number of users to get.""" + limit: Int - """ - The state of the managed column. - """ - state: [ManagedColumnState!] - ): [ManagedColumn!] - marketplace_app_discounts( - """ - The id of an app - """ - app_id: ID! - ): [MarketplaceAppDiscount!]! - app_subscriptions( - """ - The ID of an app - """ - app_id: ID! - status: SubscriptionStatus + """Allows to fuzzy search by name""" + name: String - """ - The ID of an account - """ - account_id: Int + """Get the recently created users at the top of the list""" + newest_first: Boolean - """ - The value, which identifies the exact point to continue fetching the subscriptions from - """ - cursor: String + """Return non active users in the account.""" + non_active: Boolean - """ - The size of the requested page - """ - limit: Int - ): AppSubscriptions! + """Page number to get, starting at 1.""" + page: Int + ): [User] - """ - Get an app by ID. - """ - app( - """ - The ID of the app - """ - id: ID! - ): AppType + """The team's name.""" + name: String! - """ - Get the connected account's information. - """ - account: Account + """Whether the team is a guest team""" + is_guest: Boolean +} - """ - Get a collection of installs of an app. - """ - app_installs( - """ - The id of an account to filter app installs by. - """ - account_id: ID +type TeamValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The id of an application. - """ - app_id: ID! + """The column's unique identifier.""" + id: ID! - """ - Number of items to get, the default is 25. Max: 100 - """ - limit: Int = 25 + """ID of the assigned team""" + team_id: Int + text: String - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [AppInstall] + """The column's type.""" + type: ColumnType! - """ - Get the current app subscription. Note: This query does not work in the playground - """ - app_subscription: [AppSubscription] + """The date when column value was last updated.""" + updated_at: Date - """ - Get operations counter current value - """ - app_subscription_operations( - """ - Operation name. A string of up to 14 characters containing alphanumeric characters and the symbols -_ - """ - kind: String = "global" - ): AppSubscriptionOperationsCounter + """The column's raw value in JSON format.""" + value: JSON +} - """ - Get apps monetization information for an account - """ - apps_monetization_info: AppsMonetizationInfo +"""A monday.com template.""" +type Template { + """The template process unique identifier for async operations.""" + process_id: String +} - """ - Get apps monetization status for an account - """ - apps_monetization_status: AppMonetizationStatus +type TextValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Get a collection of assets by ids. - """ - assets( - """ - Ids of the assets/files you want to get - """ - ids: [ID!]! - ): [Asset] + """The column's unique identifier.""" + id: ID! - """ - Get a collection of boards. - """ - boards( - """ - The board's kind (public / private / share) - """ - board_kind: BoardKind + """The column's textual value""" + text: String - """ - A list of boards unique identifiers. - """ - ids: [ID!] + """The column's type.""" + type: ColumnType! - """ - Boolean that brings the latest data - """ - latest: Boolean + """The column's raw value in JSON format.""" + value: JSON +} + +type TimelineValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """The start date of the timeline""" + from: Date - """ - Property to order by (created_at / used_at). - """ - order_by: BoardsOrderBy + """The column's unique identifier.""" + id: ID! - """ - Page number to get, starting at 1. - """ - page: Int = 1 + """The range of dates representing the timeline (YYYY-MM-DD)""" + text: String - """ - The state of the board (all / active / archived / deleted), the default is active. - """ - state: State = active + """The end date of the timeline""" + to: Date - """ - A list of workspace ids the boards are contained in. - """ - workspace_ids: [ID] - ): [Board] + """The column's type.""" + type: ColumnType! - """ - Get the complexity data of your queries. - """ - complexity: Complexity + """The date when column value was last updated.""" + updated_at: Date - """ - Get a collection of docs. - """ - docs( - """ - A list of document unique identifiers. - """ - ids: [ID!] + """The column's raw value in JSON format.""" + value: JSON - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """The visualization type for the timeline""" + visualization_type: String +} - """ - A list of associated board or object’s unique identifier. - """ - object_ids: [ID!] +type TimeTrackingHistoryItem { + """When the session was added to the cell""" + created_at: Date! - """ - Property to order by (created_at / used_at). - """ - order_by: DocsOrderBy + """Only applicable if the session has ended""" + ended_at: Date - """ - Page number to get, starting at 1. - """ - page: Int = 1 + """The identifier of an user which ended the tracking""" + ended_user_id: ID - """ - A list of workspace ids the documents are contained in. - """ - workspace_ids: [ID] - ): [Document] + """A unique session identifier""" + id: ID! - """ - Get a collection of folders. Note: This query won't return folders from closed workspaces to which you are not subscribed - """ - folders( - """ - A list of folders unique identifiers. - """ - ids: [ID!] + """Is true if the session end date was manually entered""" + manually_entered_end_date: Boolean! - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """Is true if the session end time was manually entered""" + manually_entered_end_time: Boolean! - """ - Page number to get, starting at 1. - """ - page: Int = 1 + """Is true if the session start date was manually entered""" + manually_entered_start_date: Boolean! - """ - A list of workspace unique identifiers to filter folders by workspaces. (pass null to include Main Workspace) - """ - workspace_ids: [ID] - ): [Folder] + """Is true if the session start time was manually entered""" + manually_entered_start_time: Boolean! """ - Get a collection of items. + Only applicable if the session was added by pressing the play button or via automation """ - items( - """ - Excludes items that are inactive, deleted or belong to deleted items - """ - exclude_nonactive: Boolean + started_at: Date - """ - A list of items unique identifiers. - """ - ids: [ID!] + """The identifier of an user which started the tracking""" + started_user_id: ID - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """The status of the session""" + status: String! - """ - Get the recently created items at the top of the list - """ - newest_first: Boolean + """When the session was updated""" + updated_at: Date +} - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Item] +type TimeTrackingValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Search items by multiple columns and values. - """ - items_page_by_column_values( - """ - The board's unique identifier. - """ - board_id: ID! + """Total duration of the time tracker""" + duration: Int + history: [TimeTrackingHistoryItem!]! - """ - One or more columns, and their values to search items by. - """ - columns: [ItemsPageByColumnValuesQuery!] + """The column's unique identifier.""" + id: ID! - """ - An opaque token representing the position in the result set from which to - resume fetching items. Use this to paginate through large result sets. - """ - cursor: String + """Whether the time tracker is running""" + running: Boolean - """ - The maximum number of items to fetch in a single request. Use this to - control the size of the result set and manage pagination. Maximum: 500. - """ - limit: Int! = 25 - ): ItemsResponse! + """The date when the time tracker was started""" + started_at: Date + text: String - """ - Get the connected user's information. - """ - me: User + """The column's type.""" + type: ColumnType! - """ - Get next pages of board's items (rows) by cursor. - """ - next_items_page( - """ - An opaque token representing the position in the result set from which to - resume fetching items. Use this to paginate through large result sets. - """ - cursor: String! + """The date when column value was last updated.""" + updated_at: Date + value: JSON +} - """ - The maximum number of items to fetch in a single request. Use this to - control the size of the result set and manage pagination. Maximum: 500. - """ - limit: Int! = 25 - ): ItemsResponse! +type UnsupportedValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - Get a collection of tags. - """ - tags( - """ - A list of tags unique identifiers. - """ - ids: [ID!] - ): [Tag] + """The column's unique identifier.""" + id: ID! """ - Get a collection of teams. + Text representation of the column value. Note: Not all columns support textual value """ - teams( - """ - A list of teams unique identifiers. - """ - ids: [ID!] - ): [Team] + text: String - """ - Get a collection of users. - """ - users( - """ - A list of users' emails. - """ - emails: [String] + """The column's type.""" + type: ColumnType! - """ - A list of users' unique identifiers. - """ - ids: [ID!] + """The column's raw value in JSON format.""" + value: JSON +} - """ - The kind to search users by (all / non_guests / guests / non_pending). - """ - kind: UserKind +"""Attributes for updating a board's position and location""" +input UpdateBoardHierarchyAttributesInput { + """The ID of the account product where the board should be placed""" + account_product_id: ID - """ - Number of users to get. - """ - limit: Int + """The ID of the folder where the board should be placed""" + folder_id: ID - """ - Allows to fuzzy search by name - """ - name: String + """The position of the board in the left pane""" + position: DynamicPosition - """ - Get the recently created users at the top of the list - """ - newest_first: Boolean + """The ID of the workspace where the board should be placed""" + workspace_id: ID +} - """ - Return non active users in the account. - """ - non_active: Boolean +"""Result of updating a board's position""" +type UpdateBoardHierarchyResult { + """The updated board""" + board: Board - """ - Page number to get, starting at 1. - """ - page: Int - ): [User] + """A message about the operation result""" + message: String - """ - Get a collection of webhooks for the board - """ - webhooks( - """ - Filters webhooks that were created by the app initiating the request - """ - app_webhooks_only: Boolean + """Whether the operation was successful""" + success: Boolean! +} - """ - Board unique identifier. - """ - board_id: ID! - ): [Webhook] +"""Attributes of a workspace to update""" +input UpdateWorkspaceAttributesInput { + """The target account product's ID to move the workspace to""" + account_product_id: ID - """ - Get a collection of workspaces. - """ - workspaces( - """ - A list of workspace unique identifiers. - """ - ids: [ID!] + """The description of the workspace to update""" + description: String - """ - The workspace's kind (open / closed) - """ - kind: WorkspaceKind + """The kind of the workspace to update (open / closed / template)""" + kind: WorkspaceKind - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + """The name of the workspace to update""" + name: String +} - """ - Property to order by (created_at). - """ - order_by: WorkspacesOrderBy +"""The possibilities for a user kind.""" +enum UserKind { + """All users in account.""" + all - """ - Page number to get, starting at 1. - """ - page: Int = 1 + """Only guests.""" + guests - """ - The state of the workspace (all / active / archived / deleted), the default is active. - """ - state: State = active - ): [Workspace] + """Only company members.""" + non_guests + + """All non pending members.""" + non_pending +} + +"""An object containing the API version details""" +type Version { + """The display name of the API version""" + display_name: String! + + """The type of the API version""" + kind: VersionKind! + + """Version string that can be used in API-Version header""" + value: String! +} + +"""All possible API version types""" +enum VersionKind { + """Current version""" + current """ - Get the API version in use + No longer supported version. Migrate to current version as soon as possible """ - version: Version! + deprecated + + """Bleeding-edge rolling version that constantly changes""" + dev + + """Previous version. Migrate to current version as soon as possible""" + maintenance """ - Get a list containing the versions of the API + Old version that will be deprecated in January. Migrate to current version as soon as possible """ - versions: [Version!] + old__maintenance """ - Platform API data. + Old version that will be deprecated in January. Migrate to current version as soon as possible """ - platform_api: PlatformApi + old_previous_maintenance """ - Get all roles for the account + Older version that will be deprecated in January. Migrate to current version as soon as possible """ - account_roles: [AccountRole!] + previous_maintenance + + """Next version""" + release_candidate } -type RatingValue implements ColumnValue { - """ - The column that this value belongs to. - """ +type VoteValue implements ColumnValue { + """The column that this value belongs to.""" column: Column! - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - - """ - Rating value - """ - rating: Int text: String - """ - The column's type. - """ + """The column's type.""" type: ColumnType! - """ - The date when column value was last updated. - """ + """The date when column value was last updated.""" updated_at: Date - """ - The column's raw value in JSON format. - """ + """The column's raw value in JSON format.""" value: JSON -} -""" -Error that occurred while removing team owners. -""" -type RemoveTeamOwnersError { - """ - The error message. - """ - message: String + """The total number of votes""" + vote_count: Int! - """ - The error code. - """ - code: RemoveTeamOwnersErrorCode + """A list of IDs of users who voted""" + voter_ids: [ID!]! - """ - The id of the user that caused the error. - """ - user_id: ID + """A list of users who voted""" + voters: [User!]! } -""" -Error codes that can occur while removing team owners. -""" -enum RemoveTeamOwnersErrorCode { - VIEWERS_OR_GUESTS - USER_NOT_MEMBER_OF_TEAM - EXCEEDS_BATCH_LIMIT - INVALID_INPUT - USER_NOT_FOUND - CANNOT_UPDATE_SELF - FAILED -} +"""Monday webhooks""" +type Webhook { + """The webhooks's board id.""" + board_id: ID! -""" -Result of removing the team's ownership. -""" -type RemoveTeamOwnersResult { - """ - The team for which the owners were removed. - """ - team: Team + """The webhooks's config.""" + config: String - """ - Errors that occurred while removing team owners. - """ - errors: [RemoveTeamOwnersError!] -} + """The event webhook will listen to""" + event: WebhookEventType! -""" -A reply for an update. -""" -type Reply { - """ - The reply's unique identifier. - """ + """The webhooks's unique identifier.""" id: ID! +} - """ - The reply's html formatted body. - """ - body: String! - kind: String! +"""The webhook's target type.""" +enum WebhookEventType { + """Column value changed on board""" + change_column_value - """ - The unique identifier of the reply creator. - """ - creator_id: String - edited_at: Date! + """An item name changed on board""" + change_name - """ - The reply's creator. - """ - creator: User - likes: [Like!]! - pinned_to_top: [UpdatePin!]! - viewers( - """ - Number of items to get, the default is 100. - """ - limit: Int = 100 + """Specific Column value changed on board""" + change_specific_column_value - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Watcher!]! + """Status column value changed on board""" + change_status_column_value - """ - The reply's creation date. - """ - created_at: Date + """Column value changed on board subitem""" + change_subitem_column_value - """ - The reply's last edit date. - """ - updated_at: Date + """An subitem name changed on board""" + change_subitem_name - """ - The reply's text body. - """ - text_body: String -} + """Column created on a board""" + create_column -""" -The possible states for a board or item. -""" -enum State { - """ - Active only (Default). - """ - active + """An item was created on board""" + create_item - """ - Active, Archived and Deleted. - """ - all + """A subitem was created on a board""" + create_subitem - """ - Archived only. - """ - archived + """An update was posted on board subitem""" + create_subitem_update - """ - Deleted only. - """ - deleted -} + """An update was posted on board item""" + create_update -enum StatusColumnColors { - working_orange - done_green - stuck_red - dark_blue - purple - explosive - grass_green - bright_blue - saladish - egg_yolk - blackish - dark_red - sofia_pink - lipstick - dark_purple - bright_green - chili_blue - american_gray - brown - dark_orange - sunset - bubble - peach - berry - winter - river - navy - aquamarine - indigo - dark_indigo - pecan - lavender - royal - steel - orchid - lilac - tan - sky - coffee - teal -} + """An update was deleted from board item""" + delete_update -type StatusColumnSettings { - type: ManagedColumnTypes - labels: [StatusLabel!] -} + """An update was edited on board item""" + edit_update -type StatusLabel { - id: Int - label: String - color: StatusColumnColors - index: Int - description: String - is_deactivated: Boolean - is_done: Boolean + """An item was archived on a board""" + item_archived + + """An item was deleted from a board""" + item_deleted + + """An item is moved to any group""" + item_moved_to_any_group + + """An item is moved to a specific group""" + item_moved_to_specific_group + + """An item restored back to board""" + item_restored + + """A subitem is moved from one parent to another""" + move_subitem + + """A subitem was archived on a board""" + subitem_archived + + """A subitem was deleted from a board""" + subitem_deleted } -""" -A status label style. -""" -type StatusLabelStyle { - """ - The label's border color in hex format. - """ - border: String! +type WeekValue implements ColumnValue { + """The column that this value belongs to.""" + column: Column! - """ - The label's color in hex format. - """ - color: String! + """The end date of the week""" + end_date: Date + + """The column's unique identifier.""" + id: ID! + + """The start date of the week""" + start_date: Date + + """The range of dates representing the week (YYYY-MM-DD)""" + text: String + + """The column's type.""" + type: ColumnType! + + """The column's raw value in JSON format.""" + value: JSON } -type StatusManagedColumn { - id: String - title: String - description: String - settings_json: JSON - created_by: Int - updated_by: Int - revision: Int - state: ManagedColumnState +"""A monday.com workspace.""" +type Workspace { + """The account product that contains workspace.""" + account_product: AccountProduct + + """The workspace's creation date.""" created_at: Date - updated_at: Date - settings: StatusColumnSettings -} -type StatusValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! + """The workspace's description.""" + description: String + + """The workspace's unique identifier.""" + id: ID + + """Returns true if it is the default workspace of the product or account""" + is_default_workspace: Boolean - """ - The column's unique identifier. - """ - id: ID! + """The workspace's kind (open / closed / template).""" + kind: WorkspaceKind - """ - The index of the status in the board - """ - index: Int + """The workspace's name.""" + name: String! - """ - Whether the status is done - """ - is_done: Boolean + """The workspace's user owners.""" + owners_subscribers( + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - The label of the status - """ - label: String + """Page number to get, starting at 1.""" + page: Int = 1 + ): [User] - """ - The style of the status label - """ - label_style: StatusLabelStyle - text: String + """The workspace's settings.""" + settings: WorkspaceSettings - """ - The column's type. - """ - type: ColumnType! + """The workspace's state (all / active / archived / deleted).""" + state: State - """ - The ID of an update attached to the status - """ - update_id: ID + """The workspace's team owners.""" + team_owners_subscribers( + """Number of items to get, the default is 25.""" + limit: Int = 25 - """ - The date when column value was last updated. - """ - updated_at: Date + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Team!] - """ - The column's raw value in JSON format. - """ - value: JSON + """The teams subscribed to the workspace.""" + teams_subscribers( + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + ): [Team] + + """The users subscribed to the workspace""" + users_subscribers( + """Number of items to get, the default is 25.""" + limit: Int = 25 + + """Page number to get, starting at 1.""" + page: Int = 1 + ): [User] } -""" -The discounts granted to the subscription -""" -type SubscriptionDiscount { +"""The workspace's icon.""" +type WorkspaceIcon { + """The icon color in hex value. Used as a background for the image.""" + color: String + """ - The value of the discount in percentage (e.g. the value 80 refers to 80%) + The public image URL, which is temporary in the case of a file that was + uploaded by the user, so you'll need to pull a new version at least once an hour. + In case it is null, you can use the first letter of the workspace name. """ - value: Int! - discount_model_type: SubscriptionDiscountModelType! - discount_type: SubscriptionDiscountType! + image: String } -""" -The information whether the discount is percentage or nominal -""" -enum SubscriptionDiscountModelType { - percent - nominal +"""The workspace kinds available.""" +enum WorkspaceKind { + """Closed workspace, available to enterprise only.""" + closed + + """Open workspace.""" + open + + """Template workspace.""" + template } -""" -The information whether the discount has been granted one time or recurring -""" -enum SubscriptionDiscountType { - recurring - one_time +"""The workspace's settings.""" +type WorkspaceSettings { + """The workspace icon.""" + icon: WorkspaceIcon } -""" -The billing period of the subscription. Possible values: monthly, yearly -""" -enum SubscriptionPeriodType { - monthly - yearly +"""Options to order by.""" +enum WorkspacesOrderBy { + """The rank order of the workspace creation time (desc).""" + created_at } -""" -The status of the subscription. Possible values: active, inactive. -""" -enum SubscriptionStatus { - active - inactive +"""The workspace subscriber kind.""" +enum WorkspaceSubscriberKind { + """Workspace owner.""" + owner + + """Workspace subscriber.""" + subscriber } -type SubtasksValue implements ColumnValue { - """ - The column that this value belongs to. - """ +type WorldClockValue implements ColumnValue { + """The column that this value belongs to.""" column: Column! - """ - A string representing all the names of the subtasks, separated by commas - """ - display_value: String! - - """ - The column's unique identifier. - """ + """The column's unique identifier.""" id: ID! - - """ - The subitems - """ - subitems: [Item!]! - - """ - The subitems IDs - """ - subitems_ids: [ID!]! - - """ - Text representation of the column value. Note: Not all columns support textual value - """ text: String - """ - The column's type. - """ + """Timezone""" + timezone: String + + """The column's type.""" type: ColumnType! - """ - The column's raw value in JSON format. - """ + """The date when column value was last updated.""" + updated_at: Date + + """The column's raw value in JSON format.""" value: JSON } -""" -A tag -""" -type Tag { - """ - The tag's color. - """ - color: String! +input ColumnsMappingInput { + project_status: ID! + project_timeline: ID! + project_owner: ID! +} - """ - The tag's unique identifier. - """ - id: ID! +input ConvertBoardToProjectInput { + board_id: ID! + column_mappings: ColumnsMappingInput! + callback_url: String +} - """ - The tag's name. - """ - name: String! +type ConvertBoardToProjectResult { + success: Boolean + message: String + projectId: ID + process_id: String } -type TagsValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +input CreateProjectInput { + """The name of the project to create""" + name: String! - """ - The column's unique identifier. - """ - id: ID! + """The project's kind (public / private / share)""" + board_kind: BoardKind! """ - Tag ID's + Optional template id to create the project from. Currently only supported for solution templates """ - tag_ids: [Int!]! + template_id: ID """ - A list of tags + Optional list of companion features to enable (currently only "resource_planner") """ - tags: [Tag!]! - text: String + companions: [String!] - """ - The column's type. - """ - type: ColumnType! + """Optional workspace ID to associate with the project""" + workspace_id: String - """ - The column's raw value in JSON format. - """ - value: JSON + """Optional folder ID to associate with the project""" + folder_id: String +} + +type CreateProjectResult { + """Indicates if the project creation was successful""" + success: Boolean + + """Success message when project is created""" + message: String + + """ID of the newly created project""" + projectId: String + + """Error message if project creation failed""" + error: String +} + +type BoardMuteSettings { + """Board ID""" + board_id: ID + + """Human-friendly mute state for the board and current user""" + mute_state: BoardMuteState } """ -A team of users. -""" -type Team { - """ - The team's unique identifier. - """ - id: ID! +Represents the mute state of a board for the current user. + - NOT_MUTED: The board is not muted at all (default state). This state, as well as MUTE_ALL, is set by the board owner(s) and only they can change it. + - MUTE_ALL: All notifications for all users are muted on this board. This state, as well as NOT_MUTED, is set by the board owner(s) and only they can change it. + - MENTIONS_AND_ASSIGNS_ONLY: The current user will only be notified if mentioned or assigned on the board. + - CURRENT_USER_MUTE_ALL: Only the current user has all notifications muted from this board. +""" +enum BoardMuteState { """ - The users who are the owners of the team. + The board is not muted at all (default state). This state is set by the board owner(s) and only they can change it. """ - owners( - """ - A list of users' unique identifiers. - """ - ids: [ID!] - ): [User!]! + NOT_MUTED """ - The team's picture url. + All notifications for all users are muted on this board. This state is set by the board owner(s) and only they can change it. """ - picture_url: String + MUTE_ALL """ - The users in the team. + The current user will only be notified if mentioned or assigned on the board """ - users( - """ - A list of users' emails. - """ - emails: [String] - - """ - A list of users' unique identifiers. - """ - ids: [ID!] + MENTIONS_AND_ASSIGNS_ONLY - """ - The kind to search users by (all / non_guests / guests / non_pending). - """ - kind: UserKind + """Only the current user has all notifications muted from this board""" + CURRENT_USER_MUTE_ALL +} - """ - Number of users to get. - """ - limit: Int +""" +Whether this channel is editable, always enabled, or not relevant to the notification +""" +enum ChannelEditableStatus { + AllRelatedNotificationsDontHaveChannel + AlwaysEnabled + Editable +} - """ - Allows to fuzzy search by name - """ - name: String +"""Available notification channel types: Monday, Email, Slack""" +enum ChannelType { + Monday + Email + Slack +} - """ - Get the recently created users at the top of the list - """ - newest_first: Boolean +"""Represents notification settings configuration""" +type NotificationSetting { + """Notification setting kind""" + kind: String - """ - Return non active users in the account. - """ - non_active: Boolean + """Description of the notification setting""" + description: String - """ - Page number to get, starting at 1. - """ - page: Int - ): [User] + """Whether this setting is only configurable by admins""" + is_for_admins_only: Boolean - """ - The team's name. - """ - name: String! + """Whether this setting is not applicable for guest users""" + is_for_non_guests_only: Boolean - """ - Whether the team is a guest team - """ - is_guest: Boolean + """Available notification channels for this setting""" + channels: [NotificationSettingChannel!]! } -type TeamValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! - - """ - The column's unique identifier. - """ - id: ID! - - """ - ID of the assigned team - """ - team_id: Int - text: String - - """ - The column's type. - """ - type: ColumnType! +"""Represents a notification channel configuration""" +type NotificationSettingChannel { + """Notification channel destination: Monday, Email, Slack""" + name: ChannelType - """ - The date when column value was last updated. - """ - updated_at: Date + """Whether notifications are enabled for this channel""" + enabled: Boolean - """ - The column's raw value in JSON format. - """ - value: JSON + """Whether or not this channel settings is editable""" + editable_status: ChannelEditableStatus } """ -A monday.com template. +notification settings scope types, the options are account user defaults or user private settings """ -type Template { - """ - The template process unique identifier for async operations. - """ - process_id: String +enum ScopeType { + User + AccountNewUserDefaults } -type TextValue implements ColumnValue { +""" +The central type in the Monday.com Objects Platform, representing any entity in the system. This unified type can represent instances of boards, docs, dashboards, workflows, and specialized objects. The specific type of an object is determined by its app_feature_reference_id. +""" +type Object { """ - The column that this value belongs to. + The unique identifier of the object. Can be used to reference this specific object in queries and mutations. """ - column: Column! + id: String """ - The column's unique identifier. + The display name of the object. This is what appears in the Monday.com interface. """ - id: ID! + name: String """ - The column's textual value + Optional description of the object, providing additional context about its purpose or contents. """ - text: String + description: String """ - The column's type. + The kind/visibility setting of the object (private, public, share). Determines who can access it. """ - type: ColumnType! + privacy_kind: String """ - The column's raw value in JSON format. + The ID of the folder containing this object, if the object is organized in a folder structure. """ - value: JSON -} + folder_id: String -type TimelineItem { - id: ID - type: String + """Timestamp of when the object was last updated. Format is ISO 8601.""" + updated_at: String """ - The item that the timeline item is on. + The current state of the object. Determines visibility in the interface. """ - item: Item + state: String """ - The board that the timeline item is on. + The ID of the user who created this object. Useful for tracking object origin. """ - board: Board + creator: String """ - The user who created the timeline item. + The ID of the workspace containing this object. Null indicates the object is in the main workspace. """ - user: User + workspace_id: String """ - The title of the timeline item. + List of users who are owners of this object. Owners have full control permissions. """ - title: String + owners: [User!] """ - The external ID of the custom activity of the timeline item. + List of users who are subscribers to this object. Subscribers receive notifications about changes. """ - custom_activity_id: String + subscribers: [User!] +} - """ - The content of the timeline item. - """ - content: String +"""The state of the object.""" +enum ObjectState { + """The object is active.""" + ACTIVE - """ - The creation date of the timeline item. - """ - created_at: Date! + """The object is archived.""" + ARCHIVED + + """The object is deleted.""" + DELETED } -type TimelineItemsPage { - """ - The timeline items in the current page - """ - timeline_items: [TimelineItem!]! +"""Represents object type unique key and metadata.""" +type ObjectTypeUniqueKey { + """The name of the app that provides this object type.""" + app_name: String """ - Cursor for fetching the next page + The name of the app feature object type (e.g., 'Workflow', 'Capacity manager'). """ - cursor: String -} + app_feature_name: String -input TimelineItemTimeRange { - """ - Start time - """ - start_timestamp: ISO8601DateTime! + """A short description of what this object type represents.""" + description: String """ - End time + The unique identifier for the object type, formatted as 'app_slug::app_feature_slug' """ - end_timestamp: ISO8601DateTime! + object_type_unique_key: String } -type TimelineResponse { +"""Defines the sorting order for returned objects in the objects query.""" +enum OrderBy { + """Sort objects by their creation date, from newest to oldest.""" + CREATED_AT + """ - Paginated set of timeline items and a cursor to get the next page + Sort objects by when they were last used, from most recent to least recent. """ - timeline_items_page( - """ - The cursor for the next set of timeline items - """ - cursor: String = null - - """ - The limit for the current page of timeline items - """ - limit: Int = 25 - ): TimelineItemsPage! + USED_AT } -type TimelineValue implements ColumnValue { +""" +Defines the visibility and access control settings for objects in the Monday.com Objects Platform. +""" +enum PrivacyKind { """ - The column that this value belongs to. + Private objects are only visible to specific users who are members of the object. """ - column: Column! + PRIVATE """ - The start date of the timeline + Public objects are visible to all users within the account, unless their access is blocked on a higher level in the hierarchy, or by specific object permission. """ - from: Date + PUBLIC """ - The column's unique identifier. + Shareable objects can be shared with users outside the account by inviting them as guests. They allow controlled external collaboration. """ - id: ID! + SHARE +} +"""Defines the type of the user's role as members of the object""" +enum SubscriberKind { """ - The range of dates representing the timeline (YYYY-MM-DD) + User will be added as an owner of the object, granting them full control permissions. """ - text: String + OWNER """ - The end date of the timeline + User will be added as a subscriber to the object, receiving notifications about changes. """ - to: Date + SUBSCRIBER +} - """ - The column's type. - """ - type: ColumnType! +"""Input for updating an object""" +input UpdateObjectInput { + """The new name for the object.""" + name: String - """ - The date when column value was last updated. - """ - updated_at: Date + """The new description for the object""" + description: String - """ - The column's raw value in JSON format. - """ - value: JSON + """The new privacy kind for the object.""" + privacy_kind: PrivacyKind +} - """ - The visualization type for the timeline - """ - visualization_type: String +"""API usage data.""" +type DailyAnalytics { + """Last time the API usage data was updated.""" + last_updated: ISO8601DateTime + + """API usage per day.""" + by_day: [PlatformApiDailyAnalyticsByDay!]! + + """API usage per app.""" + by_app: [PlatformApiDailyAnalyticsByApp!]! + + """API usage per user.""" + by_user: [PlatformApiDailyAnalyticsByUser!]! } -type TimeTrackingHistoryItem { - """ - When the session was added to the cell - """ - created_at: Date! +"""Platform API daily limit.""" +type DailyLimit { + """Base daily limit.""" + base: Int - """ - Only applicable if the session has ended - """ - ended_at: Date + """Total daily limit.""" + total: Int +} - """ - The identifier of an user which ended the tracking - """ - ended_user_id: ID +"""The Platform API's data.""" +type PlatformApi { + """Platform API daily limit.""" + daily_limit: DailyLimit - """ - A unique session identifier - """ - id: ID! + """API analytics.""" + daily_analytics: DailyAnalytics +} - """ - Is true if the session end date was manually entered - """ - manually_entered_end_date: Boolean! +"""API usage per app.""" +type PlatformApiDailyAnalyticsByApp { + """Application.""" + app: AppType - """ - Is true if the session end time was manually entered - """ - manually_entered_end_time: Boolean! + """API usage for the app.""" + usage: Int! - """ - Is true if the session start date was manually entered - """ - manually_entered_start_date: Boolean! + """API app id""" + api_app_id: ID! +} - """ - Is true if the session start time was manually entered - """ - manually_entered_start_time: Boolean! +"""API usage per day.""" +type PlatformApiDailyAnalyticsByDay { + """Day.""" + day: String! - """ - Only applicable if the session was added by pressing the play button or via automation - """ - started_at: Date + """API usage for the day.""" + usage: Int! +} - """ - The identifier of an user which started the tracking - """ - started_user_id: ID +"""API usage per user.""" +type PlatformApiDailyAnalyticsByUser { + """User.""" + user: User! - """ - The status of the session - """ - status: String! + """API usage for the user.""" + usage: Int! +} - """ - When the session was updated - """ - updated_at: Date +type ConnectProjectResult { + """The unique identifier of the operation.""" + request_id: ID + + """Indicates if the operation was successful.""" + success: Boolean + + """A message describing the result of the operation.""" + message: String + + """The ID of the created portfolio item, if successful.""" + portfolio_item_id: String } -type TimeTrackingValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! +type CreatePortfolioResult { + """The ID of the solution that was created""" + solution_live_version_id: String - """ - Total duration of the time tracker - """ - duration: Int - history: [TimeTrackingHistoryItem!]! + """Indicates if the operation was successful.""" + success: Boolean - """ - The column's unique identifier. - """ - id: ID! + """A message describing the result of the operation.""" + message: String +} - """ - Whether the time tracker is running - """ - running: Boolean +"""Ranked results of a search query.""" +type BoardResult { + """Board matching the search query.""" + board: Board - """ - The date when the time tracker was started - """ - started_at: Date - text: String + """Items matching the search query.""" + items: [Item!] +} - """ - The column's type. - """ - type: ColumnType! +type SearchAllResult { + """The results of the search.""" + results: [BoardResult!] +} - """ - The date when column value was last updated. - """ - updated_at: Date - value: JSON +"""The results of the search for benchmark.""" +type SearchBenchmarkResults { + data: String +} + +"""A role in the account""" +type AccountRole { + """The ID of the role""" + id: ID + + """The name of the role""" + name: String + + """The type of the role""" + roleType: String +} + +"""Error that occurred during activation.""" +type ActivateUsersError { + """The error message.""" + message: String + + """The error code.""" + code: ActivateUsersErrorCode + + """The id of the user that caused the error.""" + user_id: ID +} + +"""Error codes for activating users.""" +enum ActivateUsersErrorCode { + EXCEEDS_BATCH_LIMIT + INVALID_INPUT + USER_NOT_FOUND + CANNOT_UPDATE_SELF + FAILED +} + +"""Result of activating users.""" +type ActivateUsersResult { + """The users that were activated.""" + activated_users: [User!] + + """Errors that occurred during activation.""" + errors: [ActivateUsersError!] +} + +"""Error that occurred while changing team owners.""" +type AssignTeamOwnersError { + """The error message.""" + message: String + + """The error code.""" + code: AssignTeamOwnersErrorCode + + """The id of the user that caused the error.""" + user_id: ID +} + +"""Error codes that can occur while changing team owners.""" +enum AssignTeamOwnersErrorCode { + VIEWERS_OR_GUESTS + USER_NOT_MEMBER_OF_TEAM + EXCEEDS_BATCH_LIMIT + INVALID_INPUT + USER_NOT_FOUND + CANNOT_UPDATE_SELF + FAILED +} + +"""Result of changing the team's ownership.""" +type AssignTeamOwnersResult { + """The team for which the owners were changed.""" + team: Team + + """Errors that occurred while changing team owners.""" + errors: [AssignTeamOwnersError!] +} + +"""The role of the user.""" +enum BaseRoleName { + GUEST + VIEW_ONLY + MEMBER + ADMIN +} + +"""Attributes of the team to be created.""" +input CreateTeamAttributesInput { + """The team's name.""" + name: String! + + """Whether the team can contain guest users.""" + is_guest_team: Boolean + + """The parent team identifier.""" + parent_team_id: ID + + """The team members. Must not be empty, unless allow_empty_team is set.""" + subscriber_ids: [ID!] +} + +"""Options for creating a team.""" +input CreateTeamOptionsInput { + """Whether to allow a team without any subscribers.""" + allow_empty_team: Boolean } -type UnsupportedValue implements ColumnValue { - """ - The column that this value belongs to. - """ - column: Column! - - """ - The column's unique identifier. - """ - id: ID! +"""Error that occurred during deactivation.""" +type DeactivateUsersError { + """The error message.""" + message: String - """ - Text representation of the column value. Note: Not all columns support textual value - """ - text: String + """The error code.""" + code: DeactivateUsersErrorCode - """ - The column's type. - """ - type: ColumnType! + """The id of the user that caused the error.""" + user_id: ID +} - """ - The column's raw value in JSON format. - """ - value: JSON +"""Error codes for deactivating users.""" +enum DeactivateUsersErrorCode { + EXCEEDS_BATCH_LIMIT + INVALID_INPUT + USER_NOT_FOUND + CANNOT_UPDATE_SELF + FAILED } -""" -An update. -""" -type Update { - """ - The update's unique identifier. - """ - id: ID! +"""Result of deactivating users.""" +type DeactivateUsersResult { + """The users that were deactivated.""" + deactivated_users: [User!] - """ - The update's html formatted body. - """ - body: String! + """Errors that occurred during deactivation.""" + errors: [DeactivateUsersError!] +} - """ - The unique identifier of the update creator. - """ - creator_id: String - edited_at: Date! +"""Error that occurred while inviting users""" +type InviteUsersError { + """The error message.""" + message: String - """ - The update's creator. - """ - creator: User - likes: [Like!]! - pinned_to_top: [UpdatePin!]! - viewers( - """ - Number of items to get, the default is 100. - """ - limit: Int = 100 + """The error code.""" + code: InviteUsersErrorCode - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Watcher!]! + """The email address for the user that caused the error.""" + email: ID +} - """ - The update's creation date. - """ - created_at: Date +"""Error codes that can occur while changing email domain.""" +enum InviteUsersErrorCode { + ERROR +} - """ - The update's last edit date. - """ - updated_at: Date +"""Result of inviting users to the account.""" +type InviteUsersResult { + """The users that were successfully invited.""" + invited_users: [User!] - """ - The update's item ID. - """ - item_id: String - item: Item + """Errors that occurred while inviting users""" + errors: [InviteUsersError!] +} - """ - The update's replies. - """ - replies: [Reply!] +"""The product to invite the users to.""" +enum Product { + work_management + crm + dev + service + whiteboard + knowledge + forms + workflows +} - """ - The update's assets/files. - """ - assets: [Asset] +"""Error that occurred while removing team owners.""" +type RemoveTeamOwnersError { + """The error message.""" + message: String - """ - The update's text body. - """ - text_body: String + """The error code.""" + code: RemoveTeamOwnersErrorCode + + """The id of the user that caused the error.""" + user_id: ID } -input UpdateDropdownColumnSettingsInput { - labels: [UpdateDropdownLabelInput!]! +"""Error codes that can occur while removing team owners.""" +enum RemoveTeamOwnersErrorCode { + VIEWERS_OR_GUESTS + USER_NOT_MEMBER_OF_TEAM + EXCEEDS_BATCH_LIMIT + INVALID_INPUT + USER_NOT_FOUND + CANNOT_UPDATE_SELF + FAILED } -input UpdateDropdownLabelInput { - label: String! - id: Int - is_deactivated: Boolean +"""Result of removing the team's ownership.""" +type RemoveTeamOwnersResult { + """The team for which the owners were removed.""" + team: Team + + """Errors that occurred while removing team owners.""" + errors: [RemoveTeamOwnersError!] } -""" -Attributes of the email domain to be updated. -""" +"""Attributes of the email domain to be updated.""" input UpdateEmailDomainAttributesInput { - """ - The user identifiers (max 200) - """ + """The user identifiers (max 200)""" user_ids: [ID!]! - """ - The new email domain. - """ + """The new email domain.""" new_domain: String! } -""" -Error that occurred while changing email domain. -""" +"""Error that occurred while changing email domain.""" type UpdateEmailDomainError { - """ - The error message. - """ + """The error message.""" message: String - """ - The error code. - """ + """The error code.""" code: UpdateEmailDomainErrorCode - """ - The id of the user that caused the error. - """ + """The id of the user that caused the error.""" user_id: ID } -""" -Error codes that can occur while changing email domain. -""" +"""Error codes that can occur while changing email domain.""" enum UpdateEmailDomainErrorCode { UPDATE_EMAIL_DOMAIN_ERROR EXCEEDS_BATCH_LIMIT @@ -7655,107 +9314,54 @@ enum UpdateEmailDomainErrorCode { FAILED } -""" -Result of updating the email domain for the specified users. -""" +"""Result of updating the email domain for the specified users.""" type UpdateEmailDomainResult { - """ - The users for which the email domain was updated. - """ + """The users for which the email domain was updated.""" updated_users: [User!] - """ - Errors that occurred during the update. - """ + """Errors that occurred during the update.""" errors: [UpdateEmailDomainError!] } -""" -The pin to top data of the update. -""" -type UpdatePin { - item_id: ID! -} - -input UpdateStatusColumnSettingsInput { - labels: [UpdateStatusLabelInput!]! -} - -input UpdateStatusLabelInput { - label: String! - color: StatusColumnColors! - index: Int! - description: String - is_done: Boolean - id: Int - is_deactivated: Boolean -} - -""" -Error that occurred while updating users attributes. -""" +"""Error that occurred while updating users attributes.""" type UpdateUserAttributesError { - """ - The error message. - """ + """The error message.""" message: String - """ - The error code. - """ + """The error code.""" code: UpdateUserAttributesErrorCode - """ - The id of the user that caused the error. - """ + """The id of the user that caused the error.""" user_id: ID } -""" -Error codes that can occur while updating user attributes. -""" +"""Error codes that can occur while updating user attributes.""" enum UpdateUserAttributesErrorCode { INVALID_FIELD } -""" -The result of updating users attributes. -""" +"""The result of updating users attributes.""" type UpdateUserAttributesResult { - """ - The users that were updated. - """ + """The users that were updated.""" updated_users: [User!] - """ - Errors that occurred during the update. - """ + """Errors that occurred during the update.""" errors: [UpdateUserAttributesError!] } -""" -Error that occurred during updating users role. -""" +"""Error that occurred during updating users role.""" type UpdateUsersRoleError { - """ - The error message. - """ + """The error message.""" message: String - """ - The error code. - """ + """The error code.""" code: UpdateUsersRoleErrorCode - """ - The id of the user that caused the error. - """ + """The id of the user that caused the error.""" user_id: ID } -""" -Error codes for updating users roles. -""" +"""Error codes for updating users roles.""" enum UpdateUsersRoleErrorCode { EXCEEDS_BATCH_LIMIT INVALID_INPUT @@ -7764,812 +9370,1243 @@ enum UpdateUsersRoleErrorCode { FAILED } +"""Result of updating users role.""" +type UpdateUsersRoleResult { + """The users that were updated.""" + updated_users: [User!] + + """Errors that occurred during updating users role.""" + errors: [UpdateUsersRoleError!] +} + +"""The attributes to update for a user.""" +input UserAttributesInput { + """The birthday of the user.""" + birthday: String + + """The email of the user.""" + email: String + + """The join date of the user.""" + join_date: String + + """The name of the user.""" + name: String + + """The location of the user.""" + location: String + + """The mobile phone of the user.""" + mobile_phone: String + + """The phone of the user.""" + phone: String + + """The title of the user.""" + title: String + + """The department of the user.""" + department: String +} + +"""The role of the user.""" +enum UserRole { + GUEST + VIEW_ONLY + MEMBER + ADMIN +} + +input UserUpdateInput { + user_id: ID! + user_attribute_updates: UserAttributesInput! +} + +"""Input configuration data for widget filters and other settings.""" +input ConfigDataInput { + """ + (Optional) Rule-based filter object for advanced filtering. Supports logical operators and nested rules. Example: { "type": "BUCKET", "operator": "AND", "buckets": [ ... ] } + """ + rule_based_filter_values: JSON + + """ + Text search term for filtering items. Example: "search text" + """ + filter_by: String + + """User ID filter for items. Example: 12345""" + filter_user_id: Int + + """Team ID filter for items. Example: 67890""" + filter_team_id: Int + + """Multiple user IDs for filtering. Example: [12345, 67890]""" + filter_user_ids: [Int!] + + """Multiple team IDs for filtering. Example: [111, 222]""" + filter_team_ids: [Int!] + + """ + Additional filter options depending on widget type. Example: { "optionKey": "optionValue" } + """ + filter_options: JSON + + """ + Whether parent container's filters should be applied to this widget. Example: true + """ + are_parent_filters_applied: Boolean +} + +"""Aggregates data from one or more boards.""" +type Dashboard { + """Stable unique identifier of the dashboard.""" + id: ID + + """Dashboard title (1–255 UTF-8 chars).""" + name: String + + """ID of the workspace that owns this dashboard.""" + workspace_id: Int + + """Visibility level: `PUBLIC` (default) or `PRIVATE`.""" + kind: DashboardKind + + """ + Folder ID that groups the dashboard inside its workspace (null = workspace root). + """ + board_folder_id: Int +} + """ -Result of updating users role. +Dashboard visibility. `PUBLIC` dashboards are visible to all workspace members; `PRIVATE` dashboards are only visible to invited users. """ -type UpdateUsersRoleResult { - """ - The users that were updated. - """ - updated_users: [User!] +enum DashboardKind { + PUBLIC + PRIVATE +} + +""" +Widget configuration input: config_data (required) and settings (required as JSON). +""" +input WidgetConfigurationInput { + """General configuration data for the widget.""" + config_data: ConfigDataInput! """ - Errors that occurred during updating users role. + Widget-specific settings as JSON. Each widget type has its own JSON schema that defines the required and optional fields. The settings object must conform to the JSON schema for the specific widget type being created. To discover available widget types and their schemas, use the all_widgets_schema query which returns the complete JSON schema for each supported widget type. """ - errors: [UpdateUsersRoleError!] + settings: JSON! } """ -Attributes of a workspace to update +The type of entity to which the widget is being added. +- `Overview`: Dashboard +- `Item`: Can be a Board view or Doc, depending on the specific Item """ -input UpdateWorkspaceAttributesInput { - """ - The description of the workspace to update - """ - description: String +enum WidgetEntityType { + Overview + Item +} - """ - The kind of the workspace to update (open / closed) - """ - kind: WorkspaceKind +"""UI widget placed on a dashboard, board, or doc.""" +type WidgetModel { + """Stable unique identifier of this widget.""" + id: Int """ - The name of the workspace to update + ID of the parent entity that hosts the widget (dashboard, board, or doc). """ + entity_id: Int + + """Kind of parent entity: `Overview`, `Item`.""" + entity_type: WidgetEntityType + + """Widget label shown in the UI (1–255 UTF-8 chars).""" name: String + + """The type of widget.""" + type: WidgetType +} + +"""Information about a widget type and its JSON schema""" +type WidgetSchemaInfo { + """The widget type identifier (e.g., ChartOverviewSection)""" + widget_type: String + + """The JSON schema (draft 7) for this widget type""" + schema: JSON } """ -A monday.com user. +The type of widget to create. Each type corresponds to a different visualization or data component. """ -type User { - """ - The user's unique identifier. - """ - id: ID! +enum WidgetType { + ChartOverviewSection + CounterOverviewSection + BatteryOverviewSection +} - """ - The user's account. - """ - account: Account! +input CreateFormTagInput { + """The name of the tag. Must be unique within the form and not reserved.""" + name: String! - """ - The products the user is assigned to. - """ - account_products: [AccountProduct!] + """The value of the tag""" + value: String +} +input CreateQuestionInput { """ - The user's birthday. + The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). """ - birthday: Date + type: FormQuestionType! """ - The user's country code. + Optional explanatory text providing additional context, instructions, or examples for the question. """ - country_code: String + description: String """ - The user's creation date. + Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed. """ - created_at: Date + visible: Boolean = true """ - The current user's language + Boolean indicating if the question must be answered before form submission. """ - current_language: String + required: Boolean - """ - The custom field metas of the user profile. - """ - custom_field_metas: [CustomFieldMetas] + """Question-specific configuration object that varies by question type.""" + settings: FormQuestionSettingsInput """ - The custom field values of the user profile. + The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response. """ - custom_field_values: [CustomFieldValue] + title: String! """ - The user's email. + Array of option objects for choice-based questions (single_select, multi_select). Required for select types. """ - email: String! + options: [QuestionOptionInput!] +} +type DehydratedFormResponse { """ - Is the user enabled or not. + The board ID connected to the form. Used to store form responses as items. """ - enabled: Boolean! + boardId: ID! """ - The token of the user for email to board. + The unique identifier token for the form. Required for all form-specific operations. """ - encrypt_api_token: String + token: String! +} - """ - Is the user an account admin. - """ - is_admin: Boolean +input DeleteFormTagInput { + """Options for deleting the tag""" + deleteAssociatedColumn: Boolean +} +""" +Object containing accessibility options such as language, alt text, etc. +""" +type FormAccessibility { """ - Is the user a guest or not. + Language code for form localization and interface text (e.g., "en", "es", "fr"). """ - is_guest: Boolean + language: String - """ - Is the user a pending user - """ - is_pending: Boolean + """Alternative text description for the logo image for accessibility.""" + logoAltText: String +} +"""Accessibility configuration including language and reading direction.""" +input FormAccessibilityInput { """ - Is user verified his email. + Language code for form localization and interface text (e.g., "en", "es", "fr"). """ - is_verified: Boolean + language: String - """ - Is the user a view only user or not. - """ - is_view_only: Boolean + """Alternative text description for the logo image for accessibility.""" + logoAltText: String +} - """ - The date the user joined the account. - """ - join_date: Date +type FormAfterSubmissionView { + """Text displayed as the title after successful form submission.""" + title: String - """ - Last date & time when user was active - """ - last_activity: Date + """Text shown to users after they complete the form.""" + description: String - """ - The user's location. - """ - location: String + """Object containing redirect configuration after form submission.""" + redirectAfterSubmission: FormRedirectAfterSubmission - """ - The user's mobile phone number. - """ - mobile_phone: String + """Boolean allowing users to submit multiple responses to the same form.""" + allowResubmit: Boolean! - """ - The user's name. - """ - name: String! + """Boolean displaying a success image after form completion.""" + showSuccessImage: Boolean! """ - The user's out of office status. + Boolean allowing users to modify their submitted responses after submission. """ - out_of_office: OutOfOffice + allowEditSubmission: Boolean! - """ - The user's phone number. - """ - phone: String + """Boolean allowing users to view their submitted responses.""" + allowViewSubmission: Boolean! +} - """ - The user's photo in the original size. - """ - photo_original: String +"""Object containing settings for the post-submission user experience.""" +input FormAfterSubmissionViewInput { + """Text displayed as the title after successful form submission.""" + title: String + + """Text shown to users after they complete the form.""" + description: String + + """Object containing redirect configuration after form submission.""" + redirectAfterSubmission: FormRedirectAfterSubmissionInput + + """Boolean allowing users to submit multiple responses to the same form.""" + allowResubmit: Boolean + + """Boolean displaying a success image after form completion.""" + showSuccessImage: Boolean """ - The user's photo in small size (150x150). + Boolean allowing users to modify their submitted responses after submission. """ - photo_small: String + allowEditSubmission: Boolean + + """Boolean allowing users to view their submitted responses.""" + allowViewSubmission: Boolean +} + +enum FormAlignment { + FullLeft + Left + Center + Right + FullRight +} + +""" +Object containing visual styling including colors, layout, fonts, and branding elements. +""" +type FormAppearance { + """Boolean hiding monday branding from the form display.""" + hideBranding: Boolean! """ - The user's photo in thumbnail size (100x100). + Boolean displaying a progress indicator showing form completion progress bar. """ - photo_thumb: String + showProgressBar: Boolean! + + """Hex color code for the primary theme color used throughout the form.""" + primaryColor: String + + """Object containing form structure and presentation settings.""" + layout: FormLayout + + """Object containing background appearance configuration for the form.""" + background: FormBackground + + """Object containing typography and text styling configuration.""" + text: FormText + + """Object containing logo display configuration for form branding.""" + logo: FormLogo + + """Object containing submit button styling and text configuration.""" + submitButton: FormSubmitButton +} + +"""Visual styling configuration including colors, layout, and branding.""" +input FormAppearanceInput { + """Boolean hiding monday branding from the form display.""" + hideBranding: Boolean """ - The user's photo in small thumbnail size (50x50). + Boolean displaying a progress indicator showing form completion progress bar. """ - photo_thumb_small: String + showProgressBar: Boolean + + """Hex color code for the primary theme color used throughout the form.""" + primaryColor: String + + """Object containing form structure and presentation settings.""" + layout: FormLayoutInput + + """Object containing background appearance configuration for the form.""" + background: FormBackgroundInput + + """Object containing typography and text styling configuration.""" + text: FormTextInput + + """Object containing logo display configuration for form branding.""" + logo: FormLogoInput + + """Object containing submit button styling and text configuration.""" + submitButton: FormSubmitButtonInput +} + +"""Object containing background appearance configuration for the form.""" +type FormBackground { + """String specifying background style.""" + type: FormBackgrounds """ - The user's photo in tiny size (30x30). + String containing the background value. The value will depend on the background type. If the background type is color, the value will be a hex color code. If the background type is image, the value will be an image URL. """ - photo_tiny: String + value: String +} + +"""Object containing background appearance configuration for the form.""" +input FormBackgroundInput { + """String specifying background style.""" + type: FormBackgrounds! """ - The product to which the user signed up to first. + String containing the background value. The value will depend on the background type. If the background type is color, the value will be a hex color code. If the background type is image, the value will be an image URL. """ - sign_up_product_kind: String + value: String +} + +enum FormBackgrounds { + Image + Color + None +} + +type FormCloseDate { + """Boolean enabling automatic form closure at a specified date and time.""" + enabled: Boolean! """ - The teams the user is a member in. + ISO timestamp when the form will automatically stop accepting responses. """ - teams( - """ - A list of teams unique identifiers. - """ - ids: [ID!] - ): [Team] + date: String +} + +"""Object containing automatic form closure configuration.""" +input FormCloseDateInput { + """Boolean enabling automatic form closure at a specified date and time.""" + enabled: Boolean """ - The user's timezone identifier. + ISO timestamp when the form will automatically stop accepting responses. """ - time_zone_identifier: String + date: String +} + +enum FormDirection { + LtR + Rtl +} + +type FormDraftSubmission { + """Boolean allowing users to save incomplete responses as drafts.""" + enabled: Boolean! +} + +""" +Object containing draft saving configuration allowing users to save progress. +""" +input FormDraftSubmissionInput { + """Boolean allowing users to save incomplete responses as drafts.""" + enabled: Boolean +} + +""" +Object containing form features including but not limited to password protection, response limits, login requirements, etc. +""" +type FormFeatures { + """Boolean indicating if the form is restricted to internal users only.""" + isInternal: Boolean! + + """Boolean enabling reCAPTCHA verification to prevent spam submissions.""" + reCaptchaChallenge: Boolean! + + """Object containing shortened URL configuration for easy form sharing.""" + shortenedLink: FormShortenedLink + + """Object containing password protection configuration for the form.""" + password: FormPassword """ - The user's title. + Object containing draft saving configuration allowing users to save progress. """ - title: String + draftSubmission: FormDraftSubmission + + """Object containing login requirement settings for form access.""" + requireLogin: FormRequireLogin """ - The user's profile url. + Object containing response limitation settings to control submission volume. """ - url: String! + responseLimit: FormResponseLimit + + """Object containing automatic form closure configuration.""" + closeDate: FormCloseDate """ - The user’s utc hours difference. + Object containing welcome screen configuration displayed before the form. """ - utc_hours_diff: Int + preSubmissionView: FormPreSubmissionView + + """Object containing settings for the post-submission user experience.""" + afterSubmissionView: FormAfterSubmissionView + + """Object containing board settings for response handling.""" + monday: FormMonday } """ -The attributes to update for a user. +Form features configuration including security, limits, and access controls. """ -input UserAttributesInput { +input FormFeaturesInput { + """Boolean enabling reCAPTCHA verification to prevent spam submissions.""" + reCaptchaChallenge: Boolean + """ - The birthday of the user. + Object containing draft saving configuration allowing users to save progress. """ - birthday: String + draftSubmission: FormDraftSubmissionInput + + """Object containing login requirement settings for form access.""" + requireLogin: FormRequireLoginInput """ - The email of the user. + Object containing response limitation settings to control submission volume. """ - email: String + responseLimit: FormResponseLimitInput + + """Object containing automatic form closure configuration.""" + closeDate: FormCloseDateInput """ - The join date of the user. + Object containing welcome screen configuration displayed before the form. """ - join_date: String + preSubmissionView: FormPreSubmissionViewInput + + """Object containing settings for the post-submission user experience.""" + afterSubmissionView: FormAfterSubmissionViewInput + + """Object containing board settings for response handling.""" + monday: FormMondayInput +} + +enum FormFontSize { + Small + Medium + Large +} + +enum FormFormat { + OneByOne + Classic +} +"""Object containing form structure and presentation settings.""" +type FormLayout { """ - The name of the user. + String specifying the form display format. Can be a step by step form or a classic one page form. """ - name: String + format: FormFormat + + """String controlling text and content alignment.""" + alignment: FormAlignment + + """String setting reading direction.""" + direction: FormDirection +} +"""Object containing form structure and presentation settings.""" +input FormLayoutInput { """ - The location of the user. + String specifying the form display format. Can be a step by step form or a classic one page form. """ - location: String + format: FormFormat + + """String controlling text and content alignment.""" + alignment: FormAlignment + + """String setting reading direction.""" + direction: FormDirection +} + +"""Object containing logo display configuration for form branding.""" +type FormLogo { + """String specifying logo placement ("top", "bottom", "header").""" + position: FormLogoPosition + + """URL pointing to the logo image file for display on the form.""" + url: String +} + +"""Object containing logo display configuration for form branding.""" +input FormLogoInput { + """String specifying logo placement ("top", "bottom", "header").""" + position: FormLogoPosition + + """URL pointing to the logo image file for display on the form.""" + url: String +} + +enum FormLogoPosition { + Auto + Left + Center + Right +} +type FormMonday { """ - The mobile phone of the user. + The board group ID where new items from form responses will be created. """ - mobile_phone: String + itemGroupId: String """ - The phone of the user. + Boolean adding a name question to the form. This is a special question type that represents the name column from the associated monday board """ - phone: String + includeNameQuestion: Boolean! """ - The title of the user. + Boolean adding an update/comment field to the form. This is a special question type that represents the updates from the associated item of the submission on the monday board. """ - title: String + includeUpdateQuestion: Boolean! """ - The department of the user. + Boolean synchronizing form question titles with board column names. When true, the form question titles will be synchronized with the board column names. """ - department: String + syncQuestionAndColumnsTitles: Boolean! } -""" -The possibilities for a user kind. -""" -enum UserKind { +"""Object containing board settings for response handling.""" +input FormMondayInput { """ - All users in account. + The board group ID where new items from form responses will be created. """ - all + itemGroupId: String """ - Only guests. + Boolean adding a name question to the form. This is a special question type that represents the name column from the associated monday board """ - guests + includeNameQuestion: Boolean """ - Only company members. + Boolean adding an update/comment field to the form. This is a special question type that represents the updates from the associated item of the submission on the monday board. """ - non_guests + includeUpdateQuestion: Boolean """ - All non pending members. + Boolean synchronizing form question titles with board column names. When true, the form question titles will be synchronized with the board column names. """ - non_pending + syncQuestionAndColumnsTitles: Boolean } -""" -The role of the user. -""" -enum UserRole { - PORTAL_USER - GUEST - VIEW_ONLY - MEMBER - ADMIN +type FormPassword { + """ + Boolean enabling password protection. When true, users must enter a password to access the form. + """ + enabled: Boolean! } -input UserUpdateInput { - user_id: ID! - user_attribute_updates: UserAttributesInput! -} +type FormPreSubmissionView { + """Boolean showing a welcome/introduction screen before the form begins.""" + enabled: Boolean! -""" -An object containing the API version details -""" -type Version { - """ - The display name of the API version - """ - display_name: String! + """Text displayed as the title on the welcome screen.""" + title: String - """ - The type of the API version - """ - kind: VersionKind! + """Text providing context or instructions on the welcome screen.""" + description: String - """ - Version string that can be used in API-Version header - """ - value: String! + """Object containing start button configuration for the welcome screen.""" + startButton: FormStartButton } """ -All possible API version types +Object containing welcome screen configuration displayed before the form. """ -enum VersionKind { - """ - Current version - """ - current +input FormPreSubmissionViewInput { + """Boolean showing a welcome/introduction screen before the form begins.""" + enabled: Boolean - """ - No longer supported version. Migrate to current version as soon as possible - """ - deprecated + """Text displayed as the title on the welcome screen.""" + title: String + + """Text providing context or instructions on the welcome screen.""" + description: String + + """Object containing start button configuration for the welcome screen.""" + startButton: FormStartButtonInput +} +type FormQuestion { """ - Bleeding-edge rolling version that constantly changes + The unique identifier for the question. Used to target specific questions within a form. """ - dev + id: String! """ - Previous version. Migrate to current version as soon as possible + The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). """ - maintenance + type: FormQuestionType """ - Old version that will be deprecated in January. Migrate to current version as soon as possible + Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed. """ - old__maintenance + visible: Boolean! """ - Old version that will be deprecated in January. Migrate to current version as soon as possible + The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response. """ - old_previous_maintenance + title: String! """ - Older version that will be deprecated in January. Migrate to current version as soon as possible + Optional explanatory text providing additional context, instructions, or examples for the question. """ - previous_maintenance + description: String """ - Next version + Boolean indicating if the question must be answered before form submission. """ - release_candidate + required: Boolean! + settings: FormQuestionSettings + options: [FormQuestionOption!] + showIfRules: JSON } -type VoteValue implements ColumnValue { +type FormQuestionOption { """ - The column that this value belongs to. + The display text for individual option choices in select-type questions. """ - column: Column! + label: String! +} +"""Sources for prefilling question values""" +enum FormQuestionPrefillSources { + Account + QueryParam +} + +"""Display options for select-type questions""" +enum FormQuestionSelectDisplay { + Horizontal + Vertical + Dropdown +} + +"""Ordering options for select question options""" +enum FormQuestionSelectOrderByOptions { + Alphabetical + Random + Custom +} + +"""Question-specific configuration object that varies by question type.""" +type FormQuestionSettings { """ - The column's unique identifier. + Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. """ - id: ID! - text: String + prefill: PrefillSettings """ - The column's type. + Phone questions only: Automatically detect and fill the phone country prefix based on the user's geographic location or browser settings. """ - type: ColumnType! + prefixAutofilled: Boolean """ - The date when column value was last updated. + Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. """ - updated_at: Date + prefixPredefined: PhonePrefixPredefined """ - The column's raw value in JSON format. + Boolean/checkbox questions only: Whether the checkbox should be checked by default when the form loads. """ - value: JSON + checkedByDefault: Boolean """ - The total number of votes + Date based questions only: Automatically set the current date as the default value when the form loads. """ - vote_count: Int! + defaultCurrentDate: Boolean """ - A list of IDs of users who voted + Date questions only: Whether to include time selection (hours and minutes) in addition to the date picker. When false, only date selection is available. """ - voter_ids: [ID!]! + includeTime: Boolean """ - A list of users who voted + Single/Multi Select questions only: Controls how the selection options are visually presented to users. """ - voters: [User!]! -} - -""" -The viewer of the update. -""" -type Watcher { - user_id: ID! - medium: String! - user: User -} + display: FormQuestionSelectDisplay -""" -Monday webhooks -""" -type Webhook { """ - The webhooks's board id. + Single/Multi Select questions only: Determines the ordering of selection options. """ - board_id: ID! + optionsOrder: FormQuestionSelectOrderByOptions """ - The webhooks's config. + Multi Select questions only: Limits the number of options a user can select. """ - config: String + labelLimitCount: Int """ - The event webhook will listen to + Location questions only: Automatically detect and fill the user's current location using browser geolocation services, requiring user permission. """ - event: WebhookEventType! + locationAutofilled: Boolean + + """Rating questions only: Maximum rating value that users can select.""" + limit: Int """ - The webhooks's unique identifier. + Link/URL questions only: Whether to skip URL format validation, allowing any text input. """ - id: ID! + skipValidation: Boolean } -""" -The webhook's target type. -""" -enum WebhookEventType { +"""Question-specific configuration object that varies by question type.""" +input FormQuestionSettingsInput { """ - Column value changed on board + Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. """ - change_column_value + prefill: PrefillSettingsInput """ - An item name changed on board + Phone questions only: Automatically detect and fill the phone country prefix based on the user's geographic location or browser settings. """ - change_name + prefixAutofilled: Boolean """ - Specific Column value changed on board + Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. """ - change_specific_column_value + prefixPredefined: PhonePrefixPredefinedInput """ - Status column value changed on board + Boolean/checkbox questions only: Whether the checkbox should be checked by default when the form loads. """ - change_status_column_value + checkedByDefault: Boolean """ - Column value changed on board subitem + Date based questions only: Automatically set the current date as the default value when the form loads. """ - change_subitem_column_value + defaultCurrentDate: Boolean """ - An subitem name changed on board + Date questions only: Whether to include time selection (hours and minutes) in addition to the date picker. When false, only date selection is available. """ - change_subitem_name + includeTime: Boolean """ - Column created on a board + Single/Multi Select questions only: Controls how the selection options are visually presented to users. """ - create_column + display: FormQuestionSelectDisplay """ - An item was created on board + Single/Multi Select questions only: Determines the ordering of selection options. """ - create_item + optionsOrder: FormQuestionSelectOrderByOptions """ - A subitem was created on a board + Multi Select questions only: Limits the number of options a user can select. """ - create_subitem + labelLimitCount: Int """ - An update was posted on board subitem + Location questions only: Automatically detect and fill the user's current location using browser geolocation services, requiring user permission. """ - create_subitem_update + locationAutofilled: Boolean """ - An update was posted on board item + Link/URL questions only: Whether to skip URL format validation, allowing any text input. """ - create_update + skipValidation: Boolean +} - """ - An update was deleted from board item - """ - delete_update +"""The type of the question (ex. text, number, MultiSelect etc.)""" +enum FormQuestionType { + Boolean + ConnectedBoards + Country + Date + DateRange + Email + File + Link + Location + LongText + MultiSelect + Name + Number + People + Phone + Rating + ShortText + Signature + SingleSelect + Subitems + Updates +} +type FormRedirectAfterSubmission { """ - An update was edited on board item + Boolean enabling automatic redirect after form completion to a specified URL. """ - edit_update + enabled: Boolean! """ - An item was archived on a board + The URL where users will be redirected after successfully submitting the form. """ - item_archived + redirectUrl: String +} +"""Object containing redirect configuration after form submission.""" +input FormRedirectAfterSubmissionInput { """ - An item was deleted from a board + Boolean enabling automatic redirect after form completion to a specified URL. """ - item_deleted + enabled: Boolean """ - An item is moved to any group + The URL where users will be redirected after successfully submitting the form. """ - item_moved_to_any_group + redirectUrl: String +} - """ - An item is moved to a specific group - """ - item_moved_to_specific_group +type FormRequireLogin { + """Boolean requiring users to be logged in before submitting responses.""" + enabled: Boolean! """ - An item restored back to board + Boolean automatically redirecting unauthenticated users to the login page. """ - item_restored + redirectToLogin: Boolean! +} - """ - A subitem is moved from one parent to another - """ - move_subitem +"""Object containing login requirement settings for form access.""" +input FormRequireLoginInput { + """Boolean requiring users to be logged in before submitting responses.""" + enabled: Boolean """ - A subitem was archived on a board + Boolean automatically redirecting unauthenticated users to the login page. """ - subitem_archived + redirectToLogin: Boolean +} + +type FormResponseLimit { + """Boolean enabling response count limits for the form.""" + enabled: Boolean! + + """Integer specifying the maximum number of responses allowed.""" + limit: Int +} + +""" +Object containing response limitation settings to control submission volume. +""" +input FormResponseLimitInput { + """Boolean enabling response count limits for the form.""" + enabled: Boolean + + """Integer specifying the maximum number of responses allowed.""" + limit: Int +} + +type FormShortenedLink { + """Boolean enabling generation of shortened URLs for the form.""" + enabled: Boolean! """ - A subitem was deleted from a board + The generated shortened URL for form access. Only available when shortened links are enabled. """ - subitem_deleted + url: String } -type WeekValue implements ColumnValue { +type FormStartButton { + """Custom text for the button that begins the form experience.""" + text: String +} + +"""Object containing start button configuration for the welcome screen.""" +input FormStartButtonInput { + """Custom text for the button that begins the form experience.""" + text: String +} + +"""Object containing submit button styling and text configuration.""" +type FormSubmitButton { + """Custom text displayed on the form submission button.""" + text: String +} + +"""Object containing submit button styling and text configuration.""" +input FormSubmitButtonInput { + """Custom text displayed on the form submission button.""" + text: String +} + +type FormTag { + """The unique identifier for the tag""" + id: String! + + """The name of the tag""" + name: String! + + """The value of the tag""" + value: String + + """The ID of the column this tag is associated with""" + columnId: String! +} + +"""Object containing typography and text styling configuration.""" +type FormText { + """String specifying the font family used throughout the form.""" + font: String + + """Hex color code for the text color in the form.""" + color: String + + """String or number specifying the base font size for form text.""" + size: FormFontSize +} + +"""Object containing typography and text styling configuration.""" +input FormTextInput { + """String specifying the font family used throughout the form.""" + font: String + + """Hex color code for the text color in the form.""" + color: String + + """String or number specifying the base font size for form text.""" + size: FormFontSize +} + +""" +Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. +""" +type PhonePrefixPredefined { """ - The column that this value belongs to. + Whether a predefined phone prefix is enabled for phone number questions. When true, the specified prefix will be pre-selected. """ - column: Column! + enabled: Boolean! """ - The end date of the week + The predefined phone country prefix to use as country code in capital letters (e.g., "US", "UK", "IL"). Only used when enabled is true. """ - end_date: Date + prefix: String +} +""" +Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. +""" +input PhonePrefixPredefinedInput { """ - The column's unique identifier. + Whether a predefined phone prefix is enabled for phone number questions. When true, the specified prefix will be pre-selected. """ - id: ID! + enabled: Boolean! """ - The start date of the week + The predefined phone country prefix to use as country code in capital letters (e.g., "US", "UK", "IL"). Only used when enabled is true. """ - start_date: Date + prefix: String +} +""" +Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. +""" +type PrefillSettings { """ - The range of dates representing the week (YYYY-MM-DD) + Whether prefill functionality is enabled for this question. When true, the question will attempt to auto-populate values from the specified source. """ - text: String + enabled: Boolean! """ - The column's type. + The data source to use for prefilling the question value. Check the PrefillSources for available options. """ - type: ColumnType! + source: FormQuestionPrefillSources """ - The column's raw value in JSON format. + The specific field or parameter name to lookup from the prefill source. For account sources, this would be a user property like "name" or "email". For query parameters, this would be the parameter name that would be set in the URL. """ - value: JSON + lookup: String! } """ -A monday.com workspace. +Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. """ -type Workspace { +input PrefillSettingsInput { """ - The account product that contains workspace. + Whether prefill functionality is enabled for this question. When true, the question will attempt to auto-populate values from the specified source. """ - account_product: AccountProduct + enabled: Boolean! """ - The workspace's creation date. + The data source to use for prefilling the question value. Check the PrefillSources for available options. """ - created_at: Date + source: FormQuestionPrefillSources """ - The workspace's description. + The specific field or parameter name to lookup from the prefill source. For account sources, this would be a user property like "name" or "email". For query parameters, this would be the parameter name that would be set in the URL. """ - description: String + lookup: String +} + +input QuestionOptionInput { + """The label to display for the option""" + label: String! +} +input QuestionOrderInput { """ - The workspace's unique identifier. + The unique identifier for the question. Used to target specific questions within a form. """ - id: ID + id: String! +} + +type ResponseForm { + """The unique identifier for the form. Auto-generated upon creation.""" + id: Int! """ - Returns true if it is the default workspace of the product or account + The unique identifier token for the form. Required for all form-specific operations. """ - is_default_workspace: Boolean + token: String! """ - The workspace's kind (open / closed). + Boolean indicating if the form is currently accepting responses and visible to users. """ - kind: WorkspaceKind + active: Boolean! + + """The display title shown to users at the top of the form.""" + title: String! """ - The workspace's name. + The ID of the user who created and owns this form. Determines permissions. """ - name: String! + ownerId: Int """ - The workspace's user owners. + Boolean indicating if this form was initially created using AI assistance. """ - owners_subscribers( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 - - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [User] + createWithAI: Boolean! """ - The workspace's settings. + Boolean indicating if this form was built or modified using AI functionality. """ - settings: WorkspaceSettings + builtWithAI: Boolean! """ - The workspace's state (all / active / archived / deleted). + Optional detailed description explaining the form purpose, displayed below the title. """ - state: State + description: String """ - The workspace's team owners. + Array of question objects that make up the form content, in display order. """ - team_owners_subscribers( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 - - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Team!] + questions: [FormQuestion!] """ - The teams subscribed to the workspace. + Boolean flag indicating if the form has been flagged for review due to suspicious content or activity. """ - teams_subscribers( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 - - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [Team] + isSuspicious: Boolean! """ - The users subscribed to the workspace + Boolean indicating if responses are collected without identifying the submitter. """ - users_subscribers( - """ - Number of items to get, the default is 25. - """ - limit: Int = 25 + isAnonymous: Boolean! - """ - Page number to get, starting at 1. - """ - page: Int = 1 - ): [User] -} - -""" -The workspace's icon. -""" -type WorkspaceIcon { """ - The icon color in hex value. Used as a background for the image. + The category or classification of the form for organizational purposes. """ - color: String + type: String """ - The public image URL, which is temporary in the case of a file that was - uploaded by the user, so you'll need to pull a new version at least once an hour. - In case it is null, you can use the first letter of the workspace name. + Object containing feature toggles and settings like password protection, response limits, etc. """ - image: String -} + features: FormFeatures -""" -The workspace kinds available. -""" -enum WorkspaceKind { """ - Closed workspace, available to enterprise only. + Object containing visual styling settings including colors, fonts, layout, and branding. """ - closed + appearance: FormAppearance """ - Open workspace. + Object containing accessibility settings such as language, alt text, and reading direction. """ - open -} + accessibility: FormAccessibility -""" -The workspace's settings. -""" -type WorkspaceSettings { """ - The workspace icon. + Array of tracking tags for categorization and analytics (e.g., UTM parameters for marketing tracking). """ - icon: WorkspaceIcon + tags: [FormTag!] } -""" -Options to order by. -""" -enum WorkspacesOrderBy { +input UpdateFormInput { + """The title text for the form. Must be at least 1 character long.""" + title: String + + """Optional description text providing context about the form purpose.""" + description: String + """ - The rank order of the workspace creation time (desc). + Ordered array of question IDs for reordering. Must include all existing question IDs. """ - created_at + questions: [QuestionOrderInput!] } -""" -The workspace subscriber kind. -""" -enum WorkspaceSubscriberKind { +input UpdateFormSettingsInput { """ - Workspace owner. + Object containing form features including but not limited to password protection, response limits, login requirements, etc. """ - owner + features: FormFeaturesInput """ - Workspace subscriber. + Object containing visual styling including colors, layout, fonts, and branding elements. """ - subscriber -} + appearance: FormAppearanceInput -type WorldClockValue implements ColumnValue { """ - The column that this value belongs to. + Object containing accessibility options such as language, alt text, etc. """ - column: Column! + accessibility: FormAccessibilityInput +} + +input UpdateFormTagInput { + """The value of the tag""" + value: String +} +input UpdateQuestionInput { """ - The column's unique identifier. + The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). """ - id: ID! - text: String + type: FormQuestionType! """ - Timezone + Optional explanatory text providing additional context, instructions, or examples for the question. """ - timezone: String + description: String """ - The column's type. + Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed. """ - type: ColumnType! + visible: Boolean """ - The date when column value was last updated. + Boolean indicating if the question must be answered before form submission. """ - updated_at: Date + required: Boolean + + """Question-specific configuration object that varies by question type.""" + settings: FormQuestionSettingsInput """ - The column's raw value in JSON format. + The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response. """ - value: JSON + title: String } + +scalar policy__Policy \ No newline at end of file From b8de5e6714c20b8bea3ae7e4c4cdfd500e027576 Mon Sep 17 00:00:00 2001 From: Lorenzo Paoliani Date: Fri, 11 Jul 2025 16:25:43 +0100 Subject: [PATCH 5/7] Fix type of group_id --- .../src/monday-graphql/generated/graphql.ts | 3944 ++++++++++++++++- .../src/monday-graphql/queries.graphql.ts | 2 +- 2 files changed, 3891 insertions(+), 55 deletions(-) diff --git a/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts b/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts index ff965725..67e1c15d 100644 --- a/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts +++ b/packages/agent-toolkit/src/monday-graphql/generated/graphql.ts @@ -21,6 +21,7 @@ export type Scalars = { ISO8601DateTime: { input: any; output: any; } /** A JSON formatted string. */ JSON: { input: any; output: any; } + policy__Policy: { input: any; output: any; } }; /** Your monday.com account */ @@ -119,6 +120,30 @@ export type ActivityLogType = { user_id: Scalars['String']['output']; }; +/** Input for app feature release data. */ +export type AppFeatureReleaseDataInput = { + /** The URL for the release. */ + url?: InputMaybe; +}; + +/** Input for updating an app feature release. */ +export type AppFeatureReleaseInput = { + /** The data of the release. */ + data?: InputMaybe; + /** The hosting type for the release. The app release category will be automatically determined based on this value. */ + kind?: InputMaybe; +}; + +/** The hosting type for the app feature release */ +export enum AppFeatureReleaseKind { + /** Client-side application deployed via monday.com CLI */ + ClientSideCode = 'CLIENT_SIDE_CODE', + /** Externally hosted application loaded via iframe */ + ExternalHosting = 'EXTERNAL_HOSTING', + /** Server-side application hosted on monday code infrastructure */ + ServerSideCode = 'SERVER_SIDE_CODE' +} + export type AppFeatureType = { __typename?: 'AppFeatureType'; /** The app feature app id */ @@ -126,6 +151,8 @@ export type AppFeatureType = { created_at?: Maybe; /** The data of the app feature */ data?: Maybe; + /** The deployment information for the app feature */ + deployment?: Maybe; id: Scalars['ID']['output']; /** The name of the app feature */ name?: Maybe; @@ -260,6 +287,10 @@ export type AppType = { kind?: Maybe; /** the app name */ name?: Maybe; + /** the app photo url */ + photo_url?: Maybe; + /** the app photo url for small size */ + photo_url_small?: Maybe; /** the app state */ state?: Maybe; updated_at?: Maybe; @@ -270,6 +301,7 @@ export type AppType = { export type AppTypeFeaturesArgs = { limit?: InputMaybe; + live_version_only?: InputMaybe; page?: InputMaybe; }; @@ -364,12 +396,116 @@ export type AssignTeamOwnersResult = { team?: Maybe; }; +/** Text formatting attributes (bold, italic, links, colors, etc.) */ +export type Attributes = { + __typename?: 'Attributes'; + /** Background color for text highlighting (hex, rgb, or named color) */ + background?: Maybe; + /** Apply bold formatting to the text */ + bold?: Maybe; + /** Apply inline code formatting to the text */ + code?: Maybe; + /** Text color (hex, rgb, or named color) */ + color?: Maybe; + /** Apply italic formatting to the text */ + italic?: Maybe; + /** URL to create a hyperlink */ + link?: Maybe; + /** Apply strikethrough formatting to the text */ + strike?: Maybe; + /** Apply underline formatting to the text */ + underline?: Maybe; +}; + +/** Text formatting attributes (bold, italic, links, colors, etc.) */ +export type AttributesInput = { + /** Background color for text highlighting (hex, rgb, or named color) */ + background?: InputMaybe; + /** Apply bold formatting to the text */ + bold?: InputMaybe; + /** Apply inline code formatting to the text */ + code?: InputMaybe; + /** Text color (hex, rgb, or named color) */ + color?: InputMaybe; + /** Apply italic formatting to the text */ + italic?: InputMaybe; + /** URL to create a hyperlink */ + link?: InputMaybe; + /** Apply strikethrough formatting to the text */ + strike?: InputMaybe; + /** Apply underline formatting to the text */ + underline?: InputMaybe; +}; + +export type AuditEventCatalogueEntry = { + __typename?: 'AuditEventCatalogueEntry'; + description?: Maybe; + metadata_details?: Maybe; + name?: Maybe; +}; + +export type AuditLogEntry = { + __typename?: 'AuditLogEntry'; + account_id?: Maybe; + activity_metadata?: Maybe; + client_name?: Maybe; + client_version?: Maybe; + device_name?: Maybe; + device_type?: Maybe; + event?: Maybe; + ip_address?: Maybe; + os_name?: Maybe; + os_version?: Maybe; + slug?: Maybe; + timestamp?: Maybe; + user?: Maybe; + user_agent?: Maybe; +}; + +/** + * A paginated collection of audit log entries. This object contains two properties: + * logs, the requested page of AuditLogEntry objects matching your query, and pagination, which + * contains metadata about the current and next page (if present). + */ +export type AuditLogPage = { + __typename?: 'AuditLogPage'; + /** + * List of audit log entries for the current page. See the audit log entry object + * for more details on this object. + */ + logs?: Maybe>; + /** Pagination metadata. See the pagination object for more details. */ + pagination?: Maybe; +}; + +/** Base field type implementation */ +export type BaseFieldType = FieldType & { + __typename?: 'BaseFieldType'; + /** Default key for fields of this type */ + defaultFieldKey?: Maybe; + /** Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. */ + dependencyConfig?: Maybe; + /** Description of the field type */ + description?: Maybe; + /** Unique identifier for the field type */ + id?: Maybe; + /** List of field type implementations */ + implement?: Maybe>; + /** Unique key identifier for the field type */ + key?: Maybe; + /** Name of the field type */ + name?: Maybe; + /** Current state of the field type */ + state?: Maybe; + /** Unique key of the field type */ + uniqueKey?: Maybe; +}; + /** The role of the user. */ export enum BaseRoleName { Admin = 'ADMIN', Guest = 'GUEST', Member = 'MEMBER', - PortalUser = 'PORTAL_USER', ViewOnly = 'VIEW_ONLY' } @@ -384,9 +520,64 @@ export type BatchExtendTrialPeriod = { success: Scalars['Boolean']['output']; }; +/** A block in the framework */ +export type Block = { + __typename?: 'Block'; + /** Description of the block */ + description?: Maybe; + /** Unique identifier for the block */ + id?: Maybe; + /** Configuration for input fields. To fetch the available options of a specific input field, first query the block requesting the `fieldTypeData` for that field and then call the `remote_options` query using the resulting `fieldTypeReferenceId`. */ + inputFieldsConfig?: Maybe>; + /** Type of the block */ + kind?: Maybe; + /** Name of the block */ + name?: Maybe; + /** Configuration for output fields */ + outputFieldsConfig?: Maybe>; + /** Unique key of the block */ + uniqueKey?: Maybe; +}; + +/** Alignment options for blocks */ +export enum BlockAlignment { + Center = 'CENTER', + Left = 'LEFT', + Right = 'RIGHT' +} + +/** Abstract union type representing different types of block content */ +export type BlockContent = DividerContent | ImageContent | LayoutContent | ListBlockContent | NoticeBoxContent | PageBreakContent | TableContent | TextBlockContent | VideoContent; + +/** Text direction options for blocks */ +export enum BlockDirection { + Ltr = 'LTR', + Rtl = 'RTL' +} + +/** Result of a blocks query */ +export type BlocksResult = { + __typename?: 'BlocksResult'; + /** List of blocks */ + blocks?: Maybe>; +}; + +/** Object representing structured data within a text block */ +export type BlotContent = DocsColumnValue | Mention; + +/** Object representing structured data within a text block */ +export type BlotInput = { + /** Column value blot data */ + column_value?: InputMaybe; + /** Mention blot data */ + mention?: InputMaybe; +}; + /** A monday.com board. */ export type Board = { __typename?: 'Board'; + /** The user's permission level for this board (view / edit). */ + access_level: BoardAccessLevel; /** The board log events. */ activity_logs?: Maybe>>; /** The board's folder unique identifier. */ @@ -399,6 +590,8 @@ export type Board = { columns_namespace?: Maybe; /** Get the board communication value - typically meeting ID */ communication?: Maybe; + /** The time the board was created at. */ + created_at?: Maybe; /** The creator of the board. */ creator: User; /** The board's description. */ @@ -417,6 +610,8 @@ export type Board = { items_page: ItemsResponse; /** The board's name. */ name: Scalars['String']['output']; + /** The Board's object type unique key */ + object_type_unique_key?: Maybe; /** * The owner of the board. * @deprecated This field returned creator of the board. Please use 'creator' or 'owners' fields instead. @@ -426,6 +621,8 @@ export type Board = { owners: Array>; /** The board's permissions. */ permissions: Scalars['String']['output']; + /** The Board's source solution item mapping */ + source_solution_item_mapping?: Maybe; /** The board's state (all / active / archived / deleted). */ state: State; /** The board's subscribers. */ @@ -517,6 +714,14 @@ export type BoardViewsArgs = { type?: InputMaybe; }; +/** The board access level of the user */ +export enum BoardAccessLevel { + /** Edit contents */ + Edit = 'edit', + /** View */ + View = 'view' +} + /** The board attributes available. */ export enum BoardAttributes { /** Object that contains available Video conferences on the board. */ @@ -527,6 +732,22 @@ export enum BoardAttributes { Name = 'name' } +/** Basic role names for board permissions. Each role grants different levels of access to the board. */ +export enum BoardBasicRoleName { + /** + * Assigned Contributor role - Can edit content (items) only, and only for items + * where they are assigned in the specified assignee columns (Coming soon - not + * yet supported, please use the UI instead) + */ + AssignedContributor = 'assigned_contributor', + /** Contributor role - Can edit content (items) only, but not the structure (columns, groups) of the board */ + Contributor = 'contributor', + /** Editor role - Can edit both the structure (columns, groups) and content (items) of the board */ + Editor = 'editor', + /** Viewer role - Read-only access to the board, cannot edit structure or content */ + Viewer = 'viewer' +} + /** A board duplication */ export type BoardDuplication = { __typename?: 'BoardDuplication'; @@ -536,6 +757,18 @@ export type BoardDuplication = { is_async: Scalars['Boolean']['output']; }; +/** Edit permissions level for boards. */ +export enum BoardEditPermissions { + /** Assignee */ + Assignee = 'assignee', + /** Collaborators */ + Collaborators = 'collaborators', + /** Everyone */ + Everyone = 'everyone', + /** Owners */ + Owners = 'owners' +} + /** The board kinds available. */ export enum BoardKind { /** Private boards. */ @@ -546,6 +779,33 @@ export enum BoardKind { Share = 'share' } +export type BoardMuteSettings = { + __typename?: 'BoardMuteSettings'; + /** Board ID */ + board_id?: Maybe; + /** Human-friendly mute state for the board and current user */ + mute_state?: Maybe; +}; + +/** + * Represents the mute state of a board for the current user. + * + * - NOT_MUTED: The board is not muted at all (default state). This state, as well as MUTE_ALL, is set by the board owner(s) and only they can change it. + * - MUTE_ALL: All notifications for all users are muted on this board. This state, as well as NOT_MUTED, is set by the board owner(s) and only they can change it. + * - MENTIONS_AND_ASSIGNS_ONLY: The current user will only be notified if mentioned or assigned on the board. + * - CURRENT_USER_MUTE_ALL: Only the current user has all notifications muted from this board. + */ +export enum BoardMuteState { + /** Only the current user has all notifications muted from this board */ + CurrentUserMuteAll = 'CURRENT_USER_MUTE_ALL', + /** The current user will only be notified if mentioned or assigned on the board */ + MentionsAndAssignsOnly = 'MENTIONS_AND_ASSIGNS_ONLY', + /** All notifications for all users are muted on this board. This state is set by the board owner(s) and only they can change it. */ + MuteAll = 'MUTE_ALL', + /** The board is not muted at all (default state). This state is set by the board owner(s) and only they can change it. */ + NotMuted = 'NOT_MUTED' +} + /** The board object types. */ export enum BoardObjectType { /** Parent Board. */ @@ -580,6 +840,15 @@ export type BoardRelationValue = ColumnValue & { value?: Maybe; }; +/** Ranked results of a search query. */ +export type BoardResult = { + __typename?: 'BoardResult'; + /** Board matching the search query. */ + board?: Maybe; + /** Items matching the search query. */ + items?: Maybe>; +}; + /** The board subscriber kind. */ export enum BoardSubscriberKind { /** Board owner. */ @@ -591,20 +860,42 @@ export enum BoardSubscriberKind { /** A board's view. */ export type BoardView = { __typename?: 'BoardView'; + /** The user's permission level for this view (view / edit). */ + access_level: BoardViewAccessLevel; + /** The view's filter */ + filter?: Maybe; + /** The view's filter team id */ + filter_team_id?: Maybe; + /** The view's filter user id */ + filter_user_id?: Maybe; /** The view's unique identifier. */ id: Scalars['ID']['output']; /** The view's name. */ name: Scalars['String']['output']; + /** The view's settings */ + settings?: Maybe; /** The view's settings in a string form. */ settings_str: Scalars['String']['output']; + /** The view's sort */ + sort?: Maybe; /** The view's template id if it was duplicated from other view */ source_view_id?: Maybe; + /** The view's tags */ + tags?: Maybe>; /** The view's type. */ - type: Scalars['String']['output']; + type?: Maybe; /** Specific board view data (supported only for forms) */ view_specific_data_str: Scalars['String']['output']; }; +/** The board view access level of the user */ +export enum BoardViewAccessLevel { + /** Edit */ + Edit = 'edit', + /** View */ + View = 'view' +} + /** Options to order by. */ export enum BoardsOrderBy { /** The rank order of the board creation time (desc). */ @@ -630,6 +921,13 @@ export type ButtonValue = ColumnValue & { value?: Maybe; }; +/** A cell containing a reference to a block */ +export type Cell = { + __typename?: 'Cell'; + /** The ID of the block representing the cell (parent block of all the content blocks in the cell) */ + block_id: Scalars['String']['output']; +}; + /** The result of adding users to / removing users from a team. */ export type ChangeTeamMembershipsResult = { __typename?: 'ChangeTeamMembershipsResult'; @@ -639,6 +937,20 @@ export type ChangeTeamMembershipsResult = { successful_users?: Maybe>; }; +/** Whether this channel is editable, always enabled, or not relevant to the notification */ +export enum ChannelEditableStatus { + AllRelatedNotificationsDontHaveChannel = 'AllRelatedNotificationsDontHaveChannel', + AlwaysEnabled = 'AlwaysEnabled', + Editable = 'Editable' +} + +/** Available notification channel types: Monday, Email, Slack */ +export enum ChannelType { + Email = 'Email', + Monday = 'Monday', + Slack = 'Slack' +} + export type CheckboxValue = ColumnValue & { __typename?: 'CheckboxValue'; /** The column's boolean value. */ @@ -706,9 +1018,29 @@ export enum ColumnProperty { Title = 'title' } +export type ColumnPropertyInput = { + /** The ID of the column */ + column_id: Scalars['String']['input']; + /** Whether the column is visible */ + visible: Scalars['Boolean']['input']; +}; + export type ColumnSettings = DropdownColumnSettings | StatusColumnSettings; -/** The columns to create. */ +/** Column style configuration */ +export type ColumnStyle = { + __typename?: 'ColumnStyle'; + /** The width percentage of the column */ + width: Scalars['Int']['output']; +}; + +/** Column style configuration input */ +export type ColumnStyleInput = { + /** The width percentage of the column */ + width: Scalars['Int']['input']; +}; + +/** Types of columns supported by the API */ export enum ColumnType { /** Number items according to their order in the group/board */ AutoNumber = 'auto_number', @@ -779,7 +1111,7 @@ export enum ColumnType { Subtasks = 'subtasks', /** Add tags to categorize items across multiple boards */ Tags = 'tags', - /** Assign a full team to an item */ + /** Assign a full team to an item */ Team = 'team', /** Add textual information e.g. addresses, names or keywords */ Text = 'text', @@ -810,6 +1142,43 @@ export type ColumnValue = { value?: Maybe; }; +export type ColumnsConfigInput = { + /** Configuration for main board columns */ + column_properties?: InputMaybe>; + /** Number of floating columns to display */ + floating_columns_count?: InputMaybe; + /** Configuration for subitems columns */ + subitems_column_properties?: InputMaybe>; +}; + +export type ColumnsMappingInput = { + project_owner: Scalars['ID']['input']; + project_status: Scalars['ID']['input']; + project_timeline: Scalars['ID']['input']; +}; + +/** Generic column information */ +export type CommonColumn = { + __typename?: 'CommonColumn'; + /** Is the column archived or not. */ + archived: Scalars['Boolean']['output']; + /** The column created at. */ + created_at?: Maybe; + /** The column description. */ + description?: Maybe; + /** The column id. */ + id?: Maybe; + settings_json?: Maybe; + /** The column title. */ + title?: Maybe; + /** The column type. */ + type?: Maybe; + /** The column updated at. */ + updated_at?: Maybe; + /** The column width. */ + width?: Maybe; +}; + /** Complexity data. */ export type Complexity = { __typename?: 'Complexity'; @@ -823,6 +1192,77 @@ export type Complexity = { reset_in_x_seconds: Scalars['Int']['output']; }; +/** Input configuration data for widget filters and other settings. */ +export type ConfigDataInput = { + /** Whether parent container's filters should be applied to this widget. Example: true */ + are_parent_filters_applied?: InputMaybe; + /** Text search term for filtering items. Example: "search text" */ + filter_by?: InputMaybe; + /** Additional filter options depending on widget type. Example: { "optionKey": "optionValue" } */ + filter_options?: InputMaybe; + /** Team ID filter for items. Example: 67890 */ + filter_team_id?: InputMaybe; + /** Multiple team IDs for filtering. Example: [111, 222] */ + filter_team_ids?: InputMaybe>; + /** User ID filter for items. Example: 12345 */ + filter_user_id?: InputMaybe; + /** Multiple user IDs for filtering. Example: [12345, 67890] */ + filter_user_ids?: InputMaybe>; + /** (Optional) Rule-based filter object for advanced filtering. Supports logical operators and nested rules. Example: { "type": "BUCKET", "operator": "AND", "buckets": [ ... ] } */ + rule_based_filter_values?: InputMaybe; +}; + +export type ConnectProjectResult = { + __typename?: 'ConnectProjectResult'; + /** A message describing the result of the operation. */ + message?: Maybe; + /** The ID of the created portfolio item, if successful. */ + portfolio_item_id?: Maybe; + /** The unique identifier of the operation. */ + request_id?: Maybe; + /** Indicates if the operation was successful. */ + success?: Maybe; +}; + +/** Represents an integration connection between a monday.com account and an external service. */ +export type Connection = { + __typename?: 'Connection'; + /** Identifier of the monday.com account that owns the connection. */ + accountId?: Maybe; + /** ISO timestamp when the connection was created. */ + createdAt?: Maybe; + /** Unique identifier of the connection. */ + id?: Maybe; + /** Authentication method used by the connection (e.g., oauth, token_based). */ + method?: Maybe; + /** Human-readable display name for the connection. */ + name?: Maybe; + /** External service provider of the connection (e.g., gmail, slack). */ + provider?: Maybe; + /** Identifier of the linked account at the provider side. */ + providerAccountIdentifier?: Maybe; + /** Current state of the connection (e.g., active, inactive). */ + state?: Maybe; + /** ISO timestamp when the connection was last updated. */ + updatedAt?: Maybe; + /** Identifier of the user who created the connection. */ + userId?: Maybe; +}; + +export type ConvertBoardToProjectInput = { + board_id: Scalars['ID']['input']; + callback_url?: InputMaybe; + column_mappings: ColumnsMappingInput; +}; + +export type ConvertBoardToProjectResult = { + __typename?: 'ConvertBoardToProjectResult'; + message?: Maybe; + process_id?: Maybe; + projectId?: Maybe; + success?: Maybe; +}; + export type Country = { __typename?: 'Country'; /** The country's two-letter code. */ @@ -849,6 +1289,28 @@ export type CountryValue = ColumnValue & { value?: Maybe; }; +/** Choose one specific block type to create */ +export type CreateBlockInput = { + /** Create a divider block */ + divider_block?: InputMaybe; + /** Create an image block */ + image_block?: InputMaybe; + /** Create a layout block. Capture its returned ID; nest child blocks by setting parentBlockId to that ID and use afterBlockId for sibling ordering. */ + layout_block?: InputMaybe; + /** Create a list block (bulleted, numbered, checklist) */ + list_block?: InputMaybe; + /** The notice-box's own ID must be captured. Every block that should appear inside it must be created with parentBlockId = that ID (and can still use afterBlockId for ordering among siblings). */ + notice_box_block?: InputMaybe; + /** Create a page break block */ + page_break_block?: InputMaybe; + /** Create a table block. Capture its returned ID; nest child blocks by setting parentBlockId to that ID and use afterBlockId for sibling ordering. */ + table_block?: InputMaybe; + /** Create a text block (normal text, titles) */ + text_block?: InputMaybe; + /** Create a video block */ + video_block?: InputMaybe; +}; + export type CreateDocBoardInput = { /** Column id */ column_id: Scalars['String']['input']; @@ -880,6 +1342,102 @@ export type CreateDropdownLabelInput = { label: Scalars['String']['input']; }; +export type CreateEntitySnapshotResult = { + __typename?: 'CreateEntitySnapshotResult'; + /** The date and time the snapshot was created. */ + createdAt?: Maybe; + /** The entity that was snapshot. */ + entity?: Maybe; + /** The unique identifier of the migration job. */ + migrationJobId?: Maybe; + /** The unique identifier of the snapshot. */ + snapshotId?: Maybe; +}; + +/** Input type for adding an object to a hierarchy list */ +export type CreateFavoriteInput = { + /** The name of the object */ + name?: InputMaybe; + /** The position where to add the object */ + newPosition?: InputMaybe; + /** The object to add to the list */ + object: HierarchyObjectIdInputType; +}; + +/** Result type for adding an object to a personal list */ +export type CreateFavoriteResultType = { + __typename?: 'CreateFavoriteResultType'; + /** The added object hierarchy item */ + favorites?: Maybe; +}; + +export type CreateFormTagInput = { + /** The name of the tag. Must be unique within the form and not reserved. */ + name: Scalars['String']['input']; + /** The value of the tag */ + value?: InputMaybe; +}; + +export type CreateMigrationJobResult = { + __typename?: 'CreateMigrationJobResult'; + /** The unique identifier of the migration job. */ + id?: Maybe; +}; + +export type CreatePortfolioResult = { + __typename?: 'CreatePortfolioResult'; + /** A message describing the result of the operation. */ + message?: Maybe; + /** The ID of the solution that was created */ + solution_live_version_id?: Maybe; + /** Indicates if the operation was successful. */ + success?: Maybe; +}; + +export type CreateProjectInput = { + /** The project's kind (public / private / share) */ + board_kind: BoardKind; + /** Optional list of companion features to enable (currently only "resource_planner") */ + companions?: InputMaybe>; + /** Optional folder ID to associate with the project */ + folder_id?: InputMaybe; + /** The name of the project to create */ + name: Scalars['String']['input']; + /** Optional template id to create the project from. Currently only supported for solution templates */ + template_id?: InputMaybe; + /** Optional workspace ID to associate with the project */ + workspace_id?: InputMaybe; +}; + +export type CreateProjectResult = { + __typename?: 'CreateProjectResult'; + /** Error message if project creation failed */ + error?: Maybe; + /** Success message when project is created */ + message?: Maybe; + /** ID of the newly created project */ + projectId?: Maybe; + /** Indicates if the project creation was successful */ + success?: Maybe; +}; + +export type CreateQuestionInput = { + /** Optional explanatory text providing additional context, instructions, or examples for the question. */ + description?: InputMaybe; + /** Array of option objects for choice-based questions (single_select, multi_select). Required for select types. */ + options?: InputMaybe>; + /** Boolean indicating if the question must be answered before form submission. */ + required?: InputMaybe; + /** Question-specific configuration object that varies by question type. */ + settings?: InputMaybe; + /** The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response. */ + title: Scalars['String']['input']; + /** The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). */ + type: FormQuestionType; + /** Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed. */ + visible?: InputMaybe; +}; + export type CreateStatusColumnSettingsInput = { labels: Array; }; @@ -910,6 +1468,12 @@ export type CreateTeamOptionsInput = { allow_empty_team?: InputMaybe; }; +export type CreateWorkflowResult = { + __typename?: 'CreateWorkflowResult'; + /** Workflow numeric ID (supports both integer and bigint) */ + id?: Maybe; +}; + export type CreationLogValue = ColumnValue & { __typename?: 'CreationLogValue'; /** The column that this value belongs to. */ @@ -1007,6 +1571,68 @@ export type CustomFieldValue = { value?: Maybe; }; +/** Configuration for a custom input field */ +export type CustomInputFieldConfig = InputFieldConfig & { + __typename?: 'CustomInputFieldConfig'; + /** Constraints applied to the field */ + constraints?: Maybe; + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Data for the referenced field type. Fetch this field when you need the `fieldTypeReferenceId` to call the `remote_options` query and retrieve the available options for the input field. */ + fieldTypeData?: Maybe; + /** Reference ID to the field type */ + fieldTypeReferenceId?: Maybe; + /** Unique key of the field type */ + fieldTypeUniqueKey?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + +/** Configuration for a custom output field */ +export type CustomOutputFieldConfig = OutputFieldConfig & { + __typename?: 'CustomOutputFieldConfig'; + /** Constraints applied to the field */ + constraints?: Maybe; + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Data for the referenced field type */ + fieldTypeData?: Maybe; + /** Reference ID to the field type */ + fieldTypeReferenceId?: Maybe; + /** Unique key of the field type */ + fieldTypeUniqueKey?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + /** API usage data. */ export type DailyAnalytics = { __typename?: 'DailyAnalytics'; @@ -1029,6 +1655,27 @@ export type DailyLimit = { total?: Maybe; }; +/** Aggregates data from one or more boards. */ +export type Dashboard = { + __typename?: 'Dashboard'; + /** Folder ID that groups the dashboard inside its workspace (null = workspace root). */ + board_folder_id?: Maybe; + /** Stable unique identifier of the dashboard. */ + id?: Maybe; + /** Visibility level: `PUBLIC` (default) or `PRIVATE`. */ + kind?: Maybe; + /** Dashboard title (1–255 UTF-8 chars). */ + name?: Maybe; + /** ID of the workspace that owns this dashboard. */ + workspace_id?: Maybe; +}; + +/** Dashboard visibility. `PUBLIC` dashboards are visible to all workspace members; `PRIVATE` dashboards are only visible to invited users. */ +export enum DashboardKind { + Private = 'PRIVATE', + Public = 'PUBLIC' +} + export type DateValue = ColumnValue & { __typename?: 'DateValue'; /** The column that this value belongs to. */ @@ -1080,6 +1727,32 @@ export type DeactivateUsersResult = { errors?: Maybe>; }; +export type DehydratedFormResponse = { + __typename?: 'DehydratedFormResponse'; + /** The board ID connected to the form. Used to store form responses as items. */ + boardId: Scalars['ID']['output']; + /** The unique identifier token for the form. Required for all form-specific operations. */ + token: Scalars['String']['output']; +}; + +/** Input type for removing an object from favorites */ +export type DeleteFavoriteInput = { + /** The object to remove from favorites */ + object: HierarchyObjectIdInputType; +}; + +/** Result type for removing an object from favorites */ +export type DeleteFavoriteInputResultType = { + __typename?: 'DeleteFavoriteInputResultType'; + /** Whether the object was successfully removed */ + success?: Maybe; +}; + +export type DeleteFormTagInput = { + /** Options for deleting the tag */ + deleteAssociatedColumn?: InputMaybe; +}; + export type DeleteMarketplaceAppDiscount = { __typename?: 'DeleteMarketplaceAppDiscount'; /** Slug of an account */ @@ -1093,6 +1766,32 @@ export type DeleteMarketplaceAppDiscountResult = { deleted_discount: DeleteMarketplaceAppDiscount; }; +export type DeleteWorkflowResult = { + __typename?: 'DeleteWorkflowResult'; + /** Whether the workflow was successfully deleted */ + isSuccess?: Maybe; +}; + +/** Defines mandatory and optional dependencies that must be populated to allow resolving the field dynamic values */ +export type DependencyConfig = { + __typename?: 'DependencyConfig'; + /** Non-required dependencies that refine the dynamic values request but do not block enablement */ + optionalFields?: Maybe>; + /** Required dependencies evaluated in order */ + orderedMandatoryFields?: Maybe>; +}; + +/** Maps a source field-type to the key name expected in the dynamic-values payload for this dependency */ +export type DependencyField = { + __typename?: 'DependencyField'; + /** Reference ID of the field-type that supplies the dependency value */ + sourceFieldTypeReferenceId?: Maybe; + /** Unique key of the source field type */ + sourceFieldTypeUniqueKey?: Maybe; + /** JSON key that the backend expects for this dependency value */ + targetFieldKey?: Maybe; +}; + export type DependencyValue = ColumnValue & { __typename?: 'DependencyValue'; /** The column that this value belongs to. */ @@ -1115,12 +1814,53 @@ export type DependencyValue = ColumnValue & { value?: Maybe; }; +export type DirectDocValue = ColumnValue & { + __typename?: 'DirectDocValue'; + /** The column that this value belongs to. */ + column: Column; + /** The document file attached to the column. */ + file?: Maybe; + /** The column's unique identifier. */ + id: Scalars['ID']['output']; + /** Text representation of the column value. Note: Not all columns support textual value */ + text?: Maybe; + /** The column's type. */ + type: ColumnType; + /** The column's raw value in JSON format. */ + value?: Maybe; +}; + /** The period of a discount */ export enum DiscountPeriod { Monthly = 'MONTHLY', Yearly = 'YEARLY' } +/** Input for creating divider blocks */ +export type DividerBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; +}; + +/** Content for a divider block */ +export type DividerContent = DocBaseBlockContent & { + __typename?: 'DividerContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text direction of the block content */ + direction?: Maybe; +}; + +/** Base interface for all block content types */ +export type DocBaseBlockContent = { + /** The alignment of the block content */ + alignment?: Maybe; + /** The text direction of the block content */ + direction?: Maybe; +}; + /** Various documents blocks types, such as text. */ export enum DocBlockContentType { /** Bulleted list block */ @@ -1157,6 +1897,17 @@ export enum DocBlockContentType { Video = 'video' } +/** Result of creating document blocks from markdown content */ +export type DocBlocksFromMarkdownResult = { + __typename?: 'DocBlocksFromMarkdownResult'; + /** The IDs of the blocks created from the markdown content */ + block_ids?: Maybe>; + /** Error message if the operation failed */ + error?: Maybe; + /** Whether the operation was successful */ + success: Scalars['Boolean']['output']; +}; + export type DocValue = ColumnValue & { __typename?: 'DocValue'; /** The column that this value belongs to. */ @@ -1173,6 +1924,33 @@ export type DocValue = ColumnValue & { value?: Maybe; }; +/** Column value reference for displaying board item column data */ +export type DocsColumnValue = { + __typename?: 'DocsColumnValue'; + /** The ID of the column */ + column_id?: Maybe; + /** The ID of the board item */ + item_id?: Maybe; +}; + +/** Column value reference for displaying board item column data */ +export type DocsColumnValueInput = { + /** The ID of the column */ + column_id: Scalars['String']['input']; + /** The ID of the board item */ + item_id: Scalars['Int']['input']; +}; + +/** Type of mention - user, document, or board */ +export enum DocsMention { + /** Mention of a board */ + Board = 'BOARD', + /** Mention of a document */ + Doc = 'DOC', + /** Mention of a user */ + User = 'USER' +} + /** Options to order by. */ export enum DocsOrderBy { /** The rank order of the document creation time (desc). */ @@ -1181,7 +1959,13 @@ export enum DocsOrderBy { UsedAt = 'used_at' } -/** A monday.com document. */ +/** + * Represents a monday.com doc - a rich-text page built from editable blocks (text, files, embeds, etc.). + * A doc can belong to: + * (1) a workspace (left-pane doc), + * (2) an item (doc on column), + * (3) a board view (doc as a board view). + */ export type Document = { __typename?: 'Document'; /** The document's content blocks */ @@ -1194,11 +1978,20 @@ export type Document = { doc_folder_id?: Maybe; /** The document's kind (public / private / share). */ doc_kind: BoardKind; - /** The document's unique identifier. */ + /** + * Unique document ID returned when the doc is created. + * Use this ID in every API call that references the doc. + * How to find it: + * • Call the docs() GraphQL query with object_ids to map object_id → id + * • Enable 'Developer Mode' in monday.labs to display it inside the doc. + */ id: Scalars['ID']['output']; /** The document's name. */ name: Scalars['String']['output']; - /** The associated board or object's unique identifier. */ + /** + * Identifier that appears in the doc's URL. + * Returned on creation, but DO NOT use it in API routes that expect a document ID. + */ object_id: Scalars['ID']['output']; /** The document's relative url */ relative_url?: Maybe; @@ -1213,7 +2006,13 @@ export type Document = { }; -/** A monday.com document. */ +/** + * Represents a monday.com doc - a rich-text page built from editable blocks (text, files, embeds, etc.). + * A doc can belong to: + * (1) a workspace (left-pane doc), + * (2) an item (doc on column), + * (3) a board view (doc as a board view). + */ export type DocumentBlocksArgs = { limit?: InputMaybe; page?: InputMaybe; @@ -1249,6 +2048,29 @@ export type DocumentBlockIdOnly = { id: Scalars['String']['output']; }; +/** Represents a content block — the fundamental building unit of a monday.com document. Each block encapsulates its structured content, hierarchical relationships, and associated metadata. */ +export type DocumentBlockV2 = { + __typename?: 'DocumentBlockV2'; + /** The block's content as an array of structured content blocks. */ + content: Array>; + /** The block's creation date. */ + created_at?: Maybe; + /** The block's creator. */ + created_by?: Maybe; + /** The block's document unique identifier. */ + doc_id?: Maybe; + /** The block's unique identifier. */ + id: Scalars['ID']['output']; + /** The block's parent block unique identifier. Used for nesting (e.g., content inside table cells, layout columns, or notice boxes). Null for top-level blocks. */ + parent_block_id?: Maybe; + /** The block's position on the document (auto-generated). Higher numbers appear later in document. Use afterBlockId in mutations to control ordering. */ + position?: Maybe; + /** The block content type. */ + type?: Maybe; + /** The block's last updated date. */ + updated_at?: Maybe; +}; + export type DropdownColumnSettings = { __typename?: 'DropdownColumnSettings'; labels?: Maybe>; @@ -1265,7 +2087,7 @@ export type DropdownLabel = { export type DropdownManagedColumn = { __typename?: 'DropdownManagedColumn'; created_at?: Maybe; - created_by?: Maybe; + created_by?: Maybe; description?: Maybe; id?: Maybe; revision?: Maybe; @@ -1274,7 +2096,7 @@ export type DropdownManagedColumn = { state?: Maybe; title?: Maybe; updated_at?: Maybe; - updated_by?: Maybe; + updated_by?: Maybe; }; export type DropdownValue = ColumnValue & { @@ -1310,6 +2132,29 @@ export enum DuplicateBoardType { DuplicateBoardWithStructure = 'duplicate_board_with_structure' } +/** The document duplication types */ +export enum DuplicateType { + /** Copy document structure and content blocks only */ + DuplicateDocWithContent = 'duplicate_doc_with_content', + /** Copy document structure, content blocks, and comments */ + DuplicateDocWithContentAndUpdates = 'duplicate_doc_with_content_and_updates' +} + +export type DynamicPosition = { + /** + * A boolean flag indicating the desired position of the target item: set to true + * to place the item after the reference object, or false to place it before. + */ + is_after?: InputMaybe; + /** The unique identifier of the reference object relative to which the target item will be positioned. */ + object_id: Scalars['String']['input']; + /** + * The type or category of the reference object, used to determine how the target + * item should be positioned in relation to it. + */ + object_type: ObjectType; +}; + export type EmailValue = ColumnValue & { __typename?: 'EmailValue'; /** The column that this value belongs to. */ @@ -1330,6 +2175,17 @@ export type EmailValue = ColumnValue & { value?: Maybe; }; +/** Result of exporting markdown content from document or blocks */ +export type ExportMarkdownResult = { + __typename?: 'ExportMarkdownResult'; + /** Error message if the operation failed */ + error?: Maybe; + /** The exported markdown content */ + markdown?: Maybe; + /** Whether the operation was successful */ + success: Scalars['Boolean']['output']; +}; + /** Result of a single operation */ export type ExtendTrialPeriod = { __typename?: 'ExtendTrialPeriod'; @@ -1341,6 +2197,66 @@ export type ExtendTrialPeriod = { success: Scalars['Boolean']['output']; }; +/** Information about a field */ +export type FieldInformation = { + __typename?: 'FieldInformation'; + /** A link to more information */ + link?: Maybe; + /** The text content of the field information */ + text?: Maybe; +}; + +/** A field type in the framework */ +export type FieldType = { + /** Default key for fields of this type */ + defaultFieldKey?: Maybe; + /** Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. */ + dependencyConfig?: Maybe; + /** Description of the field type */ + description?: Maybe; + /** Unique identifier for the field type */ + id?: Maybe; + /** List of field type implementations */ + implement?: Maybe>; + /** Unique key identifier for the field type */ + key?: Maybe; + /** Name of the field type */ + name?: Maybe; + /** Current state of the field type */ + state?: Maybe; + /** Unique key of the field type */ + uniqueKey?: Maybe; +}; + +/** Implementation of a field type */ +export type FieldTypeImplementation = { + __typename?: 'FieldTypeImplementation'; + /** Unique identifier for the implementation */ + id?: Maybe; + /** Name of the implementation */ + name?: Maybe; + /** Unique key of the app feature */ + uniqueKey?: Maybe; +}; + +/** The type of relation between a field and its type */ +export enum FieldTypeRelationType { + /** The field type is a custom type */ + Custom = 'CUSTOM', + /** The field type is an interface type */ + Interface = 'INTERFACE', + /** The field type is a primitive type (string, number, boolean, etc.) */ + Primitive = 'PRIMITIVE' +} + +/** The state of a field type */ +export enum FieldTypeState { + /** The field type is active and can be used */ + Active = 'ACTIVE', + /** The field type has been deleted and cannot be used */ + Deleted = 'DELETED' +} + export type FileAssetValue = { __typename?: 'FileAssetValue'; /** The asset associated with the file. */ @@ -1557,23 +2473,605 @@ export enum FolderFontWeight { Null = 'NULL' } -export type FormulaValue = ColumnValue & { - __typename?: 'FormulaValue'; - /** The column that this value belongs to. */ - column: Column; - /** A string representing all the formula values, separated by commas */ - display_value: Scalars['String']['output']; - /** The column's unique identifier. */ - id: Scalars['ID']['output']; - /** Text representation of the column value. Note: Not all columns support textual value */ - text?: Maybe; - /** The column's type. */ - type: ColumnType; - /** The column's raw value in JSON format. */ - value?: Maybe; +/** Object containing accessibility options such as language, alt text, etc. */ +export type FormAccessibility = { + __typename?: 'FormAccessibility'; + /** Language code for form localization and interface text (e.g., "en", "es", "fr"). */ + language?: Maybe; + /** Alternative text description for the logo image for accessibility. */ + logoAltText?: Maybe; +}; + +/** Accessibility configuration including language and reading direction. */ +export type FormAccessibilityInput = { + /** Language code for form localization and interface text (e.g., "en", "es", "fr"). */ + language?: InputMaybe; + /** Alternative text description for the logo image for accessibility. */ + logoAltText?: InputMaybe; +}; + +export type FormAfterSubmissionView = { + __typename?: 'FormAfterSubmissionView'; + /** Boolean allowing users to modify their submitted responses after submission. */ + allowEditSubmission: Scalars['Boolean']['output']; + /** Boolean allowing users to submit multiple responses to the same form. */ + allowResubmit: Scalars['Boolean']['output']; + /** Boolean allowing users to view their submitted responses. */ + allowViewSubmission: Scalars['Boolean']['output']; + /** Text shown to users after they complete the form. */ + description?: Maybe; + /** Object containing redirect configuration after form submission. */ + redirectAfterSubmission?: Maybe; + /** Boolean displaying a success image after form completion. */ + showSuccessImage: Scalars['Boolean']['output']; + /** Text displayed as the title after successful form submission. */ + title?: Maybe; }; -export type GrantMarketplaceAppDiscount = { +/** Object containing settings for the post-submission user experience. */ +export type FormAfterSubmissionViewInput = { + /** Boolean allowing users to modify their submitted responses after submission. */ + allowEditSubmission?: InputMaybe; + /** Boolean allowing users to submit multiple responses to the same form. */ + allowResubmit?: InputMaybe; + /** Boolean allowing users to view their submitted responses. */ + allowViewSubmission?: InputMaybe; + /** Text shown to users after they complete the form. */ + description?: InputMaybe; + /** Object containing redirect configuration after form submission. */ + redirectAfterSubmission?: InputMaybe; + /** Boolean displaying a success image after form completion. */ + showSuccessImage?: InputMaybe; + /** Text displayed as the title after successful form submission. */ + title?: InputMaybe; +}; + +export enum FormAlignment { + Center = 'Center', + FullLeft = 'FullLeft', + FullRight = 'FullRight', + Left = 'Left', + Right = 'Right' +} + +/** Object containing visual styling including colors, layout, fonts, and branding elements. */ +export type FormAppearance = { + __typename?: 'FormAppearance'; + /** Object containing background appearance configuration for the form. */ + background?: Maybe; + /** Boolean hiding monday branding from the form display. */ + hideBranding: Scalars['Boolean']['output']; + /** Object containing form structure and presentation settings. */ + layout?: Maybe; + /** Object containing logo display configuration for form branding. */ + logo?: Maybe; + /** Hex color code for the primary theme color used throughout the form. */ + primaryColor?: Maybe; + /** Boolean displaying a progress indicator showing form completion progress bar. */ + showProgressBar: Scalars['Boolean']['output']; + /** Object containing submit button styling and text configuration. */ + submitButton?: Maybe; + /** Object containing typography and text styling configuration. */ + text?: Maybe; +}; + +/** Visual styling configuration including colors, layout, and branding. */ +export type FormAppearanceInput = { + /** Object containing background appearance configuration for the form. */ + background?: InputMaybe; + /** Boolean hiding monday branding from the form display. */ + hideBranding?: InputMaybe; + /** Object containing form structure and presentation settings. */ + layout?: InputMaybe; + /** Object containing logo display configuration for form branding. */ + logo?: InputMaybe; + /** Hex color code for the primary theme color used throughout the form. */ + primaryColor?: InputMaybe; + /** Boolean displaying a progress indicator showing form completion progress bar. */ + showProgressBar?: InputMaybe; + /** Object containing submit button styling and text configuration. */ + submitButton?: InputMaybe; + /** Object containing typography and text styling configuration. */ + text?: InputMaybe; +}; + +/** Object containing background appearance configuration for the form. */ +export type FormBackground = { + __typename?: 'FormBackground'; + /** String specifying background style. */ + type?: Maybe; + /** String containing the background value. The value will depend on the background type. If the background type is color, the value will be a hex color code. If the background type is image, the value will be an image URL. */ + value?: Maybe; +}; + +/** Object containing background appearance configuration for the form. */ +export type FormBackgroundInput = { + /** String specifying background style. */ + type: FormBackgrounds; + /** String containing the background value. The value will depend on the background type. If the background type is color, the value will be a hex color code. If the background type is image, the value will be an image URL. */ + value?: InputMaybe; +}; + +export enum FormBackgrounds { + Color = 'Color', + Image = 'Image', + None = 'None' +} + +export type FormCloseDate = { + __typename?: 'FormCloseDate'; + /** ISO timestamp when the form will automatically stop accepting responses. */ + date?: Maybe; + /** Boolean enabling automatic form closure at a specified date and time. */ + enabled: Scalars['Boolean']['output']; +}; + +/** Object containing automatic form closure configuration. */ +export type FormCloseDateInput = { + /** ISO timestamp when the form will automatically stop accepting responses. */ + date?: InputMaybe; + /** Boolean enabling automatic form closure at a specified date and time. */ + enabled?: InputMaybe; +}; + +export enum FormDirection { + LtR = 'LtR', + Rtl = 'Rtl' +} + +export type FormDraftSubmission = { + __typename?: 'FormDraftSubmission'; + /** Boolean allowing users to save incomplete responses as drafts. */ + enabled: Scalars['Boolean']['output']; +}; + +/** Object containing draft saving configuration allowing users to save progress. */ +export type FormDraftSubmissionInput = { + /** Boolean allowing users to save incomplete responses as drafts. */ + enabled?: InputMaybe; +}; + +/** Object containing form features including but not limited to password protection, response limits, login requirements, etc. */ +export type FormFeatures = { + __typename?: 'FormFeatures'; + /** Object containing settings for the post-submission user experience. */ + afterSubmissionView?: Maybe; + /** Object containing automatic form closure configuration. */ + closeDate?: Maybe; + /** Object containing draft saving configuration allowing users to save progress. */ + draftSubmission?: Maybe; + /** Boolean indicating if the form is restricted to internal users only. */ + isInternal: Scalars['Boolean']['output']; + /** Object containing board settings for response handling. */ + monday?: Maybe; + /** Object containing password protection configuration for the form. */ + password?: Maybe; + /** Object containing welcome screen configuration displayed before the form. */ + preSubmissionView?: Maybe; + /** Boolean enabling reCAPTCHA verification to prevent spam submissions. */ + reCaptchaChallenge: Scalars['Boolean']['output']; + /** Object containing login requirement settings for form access. */ + requireLogin?: Maybe; + /** Object containing response limitation settings to control submission volume. */ + responseLimit?: Maybe; + /** Object containing shortened URL configuration for easy form sharing. */ + shortenedLink?: Maybe; +}; + +/** Form features configuration including security, limits, and access controls. */ +export type FormFeaturesInput = { + /** Object containing settings for the post-submission user experience. */ + afterSubmissionView?: InputMaybe; + /** Object containing automatic form closure configuration. */ + closeDate?: InputMaybe; + /** Object containing draft saving configuration allowing users to save progress. */ + draftSubmission?: InputMaybe; + /** Object containing board settings for response handling. */ + monday?: InputMaybe; + /** Object containing welcome screen configuration displayed before the form. */ + preSubmissionView?: InputMaybe; + /** Boolean enabling reCAPTCHA verification to prevent spam submissions. */ + reCaptchaChallenge?: InputMaybe; + /** Object containing login requirement settings for form access. */ + requireLogin?: InputMaybe; + /** Object containing response limitation settings to control submission volume. */ + responseLimit?: InputMaybe; +}; + +export enum FormFontSize { + Large = 'Large', + Medium = 'Medium', + Small = 'Small' +} + +export enum FormFormat { + Classic = 'Classic', + OneByOne = 'OneByOne' +} + +/** Object containing form structure and presentation settings. */ +export type FormLayout = { + __typename?: 'FormLayout'; + /** String controlling text and content alignment. */ + alignment?: Maybe; + /** String setting reading direction. */ + direction?: Maybe; + /** String specifying the form display format. Can be a step by step form or a classic one page form. */ + format?: Maybe; +}; + +/** Object containing form structure and presentation settings. */ +export type FormLayoutInput = { + /** String controlling text and content alignment. */ + alignment?: InputMaybe; + /** String setting reading direction. */ + direction?: InputMaybe; + /** String specifying the form display format. Can be a step by step form or a classic one page form. */ + format?: InputMaybe; +}; + +/** Object containing logo display configuration for form branding. */ +export type FormLogo = { + __typename?: 'FormLogo'; + /** String specifying logo placement ("top", "bottom", "header"). */ + position?: Maybe; + /** URL pointing to the logo image file for display on the form. */ + url?: Maybe; +}; + +/** Object containing logo display configuration for form branding. */ +export type FormLogoInput = { + /** String specifying logo placement ("top", "bottom", "header"). */ + position?: InputMaybe; + /** URL pointing to the logo image file for display on the form. */ + url?: InputMaybe; +}; + +export enum FormLogoPosition { + Auto = 'Auto', + Center = 'Center', + Left = 'Left', + Right = 'Right' +} + +export type FormMonday = { + __typename?: 'FormMonday'; + /** Boolean adding a name question to the form. This is a special question type that represents the name column from the associated monday board */ + includeNameQuestion: Scalars['Boolean']['output']; + /** Boolean adding an update/comment field to the form. This is a special question type that represents the updates from the associated item of the submission on the monday board. */ + includeUpdateQuestion: Scalars['Boolean']['output']; + /** The board group ID where new items from form responses will be created. */ + itemGroupId?: Maybe; + /** Boolean synchronizing form question titles with board column names. When true, the form question titles will be synchronized with the board column names. */ + syncQuestionAndColumnsTitles: Scalars['Boolean']['output']; +}; + +/** Object containing board settings for response handling. */ +export type FormMondayInput = { + /** Boolean adding a name question to the form. This is a special question type that represents the name column from the associated monday board */ + includeNameQuestion?: InputMaybe; + /** Boolean adding an update/comment field to the form. This is a special question type that represents the updates from the associated item of the submission on the monday board. */ + includeUpdateQuestion?: InputMaybe; + /** The board group ID where new items from form responses will be created. */ + itemGroupId?: InputMaybe; + /** Boolean synchronizing form question titles with board column names. When true, the form question titles will be synchronized with the board column names. */ + syncQuestionAndColumnsTitles?: InputMaybe; +}; + +export type FormPassword = { + __typename?: 'FormPassword'; + /** Boolean enabling password protection. When true, users must enter a password to access the form. */ + enabled: Scalars['Boolean']['output']; +}; + +export type FormPreSubmissionView = { + __typename?: 'FormPreSubmissionView'; + /** Text providing context or instructions on the welcome screen. */ + description?: Maybe; + /** Boolean showing a welcome/introduction screen before the form begins. */ + enabled: Scalars['Boolean']['output']; + /** Object containing start button configuration for the welcome screen. */ + startButton?: Maybe; + /** Text displayed as the title on the welcome screen. */ + title?: Maybe; +}; + +/** Object containing welcome screen configuration displayed before the form. */ +export type FormPreSubmissionViewInput = { + /** Text providing context or instructions on the welcome screen. */ + description?: InputMaybe; + /** Boolean showing a welcome/introduction screen before the form begins. */ + enabled?: InputMaybe; + /** Object containing start button configuration for the welcome screen. */ + startButton?: InputMaybe; + /** Text displayed as the title on the welcome screen. */ + title?: InputMaybe; +}; + +export type FormQuestion = { + __typename?: 'FormQuestion'; + /** Optional explanatory text providing additional context, instructions, or examples for the question. */ + description?: Maybe; + /** The unique identifier for the question. Used to target specific questions within a form. */ + id: Scalars['String']['output']; + options?: Maybe>; + /** Boolean indicating if the question must be answered before form submission. */ + required: Scalars['Boolean']['output']; + settings?: Maybe; + showIfRules?: Maybe; + /** The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response. */ + title: Scalars['String']['output']; + /** The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). */ + type?: Maybe; + /** Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed. */ + visible: Scalars['Boolean']['output']; +}; + +export type FormQuestionOption = { + __typename?: 'FormQuestionOption'; + /** The display text for individual option choices in select-type questions. */ + label: Scalars['String']['output']; +}; + +/** Sources for prefilling question values */ +export enum FormQuestionPrefillSources { + Account = 'Account', + QueryParam = 'QueryParam' +} + +/** Display options for select-type questions */ +export enum FormQuestionSelectDisplay { + Dropdown = 'Dropdown', + Horizontal = 'Horizontal', + Vertical = 'Vertical' +} + +/** Ordering options for select question options */ +export enum FormQuestionSelectOrderByOptions { + Alphabetical = 'Alphabetical', + Custom = 'Custom', + Random = 'Random' +} + +/** Question-specific configuration object that varies by question type. */ +export type FormQuestionSettings = { + __typename?: 'FormQuestionSettings'; + /** Boolean/checkbox questions only: Whether the checkbox should be checked by default when the form loads. */ + checkedByDefault?: Maybe; + /** Date based questions only: Automatically set the current date as the default value when the form loads. */ + defaultCurrentDate?: Maybe; + /** Single/Multi Select questions only: Controls how the selection options are visually presented to users. */ + display?: Maybe; + /** Date questions only: Whether to include time selection (hours and minutes) in addition to the date picker. When false, only date selection is available. */ + includeTime?: Maybe; + /** Multi Select questions only: Limits the number of options a user can select. */ + labelLimitCount?: Maybe; + /** Rating questions only: Maximum rating value that users can select. */ + limit?: Maybe; + /** Location questions only: Automatically detect and fill the user's current location using browser geolocation services, requiring user permission. */ + locationAutofilled?: Maybe; + /** Single/Multi Select questions only: Determines the ordering of selection options. */ + optionsOrder?: Maybe; + /** Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. */ + prefill?: Maybe; + /** Phone questions only: Automatically detect and fill the phone country prefix based on the user's geographic location or browser settings. */ + prefixAutofilled?: Maybe; + /** Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. */ + prefixPredefined?: Maybe; + /** Link/URL questions only: Whether to skip URL format validation, allowing any text input. */ + skipValidation?: Maybe; +}; + +/** Question-specific configuration object that varies by question type. */ +export type FormQuestionSettingsInput = { + /** Boolean/checkbox questions only: Whether the checkbox should be checked by default when the form loads. */ + checkedByDefault?: InputMaybe; + /** Date based questions only: Automatically set the current date as the default value when the form loads. */ + defaultCurrentDate?: InputMaybe; + /** Single/Multi Select questions only: Controls how the selection options are visually presented to users. */ + display?: InputMaybe; + /** Date questions only: Whether to include time selection (hours and minutes) in addition to the date picker. When false, only date selection is available. */ + includeTime?: InputMaybe; + /** Multi Select questions only: Limits the number of options a user can select. */ + labelLimitCount?: InputMaybe; + /** Location questions only: Automatically detect and fill the user's current location using browser geolocation services, requiring user permission. */ + locationAutofilled?: InputMaybe; + /** Single/Multi Select questions only: Determines the ordering of selection options. */ + optionsOrder?: InputMaybe; + /** Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. */ + prefill?: InputMaybe; + /** Phone questions only: Automatically detect and fill the phone country prefix based on the user's geographic location or browser settings. */ + prefixAutofilled?: InputMaybe; + /** Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. */ + prefixPredefined?: InputMaybe; + /** Link/URL questions only: Whether to skip URL format validation, allowing any text input. */ + skipValidation?: InputMaybe; +}; + +/** The type of the question (ex. text, number, MultiSelect etc.) */ +export enum FormQuestionType { + Boolean = 'Boolean', + ConnectedBoards = 'ConnectedBoards', + Country = 'Country', + Date = 'Date', + DateRange = 'DateRange', + Email = 'Email', + File = 'File', + Link = 'Link', + Location = 'Location', + LongText = 'LongText', + MultiSelect = 'MultiSelect', + Name = 'Name', + Number = 'Number', + People = 'People', + Phone = 'Phone', + Rating = 'Rating', + ShortText = 'ShortText', + Signature = 'Signature', + SingleSelect = 'SingleSelect', + Subitems = 'Subitems', + Updates = 'Updates' +} + +export type FormRedirectAfterSubmission = { + __typename?: 'FormRedirectAfterSubmission'; + /** Boolean enabling automatic redirect after form completion to a specified URL. */ + enabled: Scalars['Boolean']['output']; + /** The URL where users will be redirected after successfully submitting the form. */ + redirectUrl?: Maybe; +}; + +/** Object containing redirect configuration after form submission. */ +export type FormRedirectAfterSubmissionInput = { + /** Boolean enabling automatic redirect after form completion to a specified URL. */ + enabled?: InputMaybe; + /** The URL where users will be redirected after successfully submitting the form. */ + redirectUrl?: InputMaybe; +}; + +export type FormRequireLogin = { + __typename?: 'FormRequireLogin'; + /** Boolean requiring users to be logged in before submitting responses. */ + enabled: Scalars['Boolean']['output']; + /** Boolean automatically redirecting unauthenticated users to the login page. */ + redirectToLogin: Scalars['Boolean']['output']; +}; + +/** Object containing login requirement settings for form access. */ +export type FormRequireLoginInput = { + /** Boolean requiring users to be logged in before submitting responses. */ + enabled?: InputMaybe; + /** Boolean automatically redirecting unauthenticated users to the login page. */ + redirectToLogin?: InputMaybe; +}; + +export type FormResponseLimit = { + __typename?: 'FormResponseLimit'; + /** Boolean enabling response count limits for the form. */ + enabled: Scalars['Boolean']['output']; + /** Integer specifying the maximum number of responses allowed. */ + limit?: Maybe; +}; + +/** Object containing response limitation settings to control submission volume. */ +export type FormResponseLimitInput = { + /** Boolean enabling response count limits for the form. */ + enabled?: InputMaybe; + /** Integer specifying the maximum number of responses allowed. */ + limit?: InputMaybe; +}; + +export type FormShortenedLink = { + __typename?: 'FormShortenedLink'; + /** Boolean enabling generation of shortened URLs for the form. */ + enabled: Scalars['Boolean']['output']; + /** The generated shortened URL for form access. Only available when shortened links are enabled. */ + url?: Maybe; +}; + +export type FormStartButton = { + __typename?: 'FormStartButton'; + /** Custom text for the button that begins the form experience. */ + text?: Maybe; +}; + +/** Object containing start button configuration for the welcome screen. */ +export type FormStartButtonInput = { + /** Custom text for the button that begins the form experience. */ + text?: InputMaybe; +}; + +/** Object containing submit button styling and text configuration. */ +export type FormSubmitButton = { + __typename?: 'FormSubmitButton'; + /** Custom text displayed on the form submission button. */ + text?: Maybe; +}; + +/** Object containing submit button styling and text configuration. */ +export type FormSubmitButtonInput = { + /** Custom text displayed on the form submission button. */ + text?: InputMaybe; +}; + +export type FormTag = { + __typename?: 'FormTag'; + /** The ID of the column this tag is associated with */ + columnId: Scalars['String']['output']; + /** The unique identifier for the tag */ + id: Scalars['String']['output']; + /** The name of the tag */ + name: Scalars['String']['output']; + /** The value of the tag */ + value?: Maybe; +}; + +/** Object containing typography and text styling configuration. */ +export type FormText = { + __typename?: 'FormText'; + /** Hex color code for the text color in the form. */ + color?: Maybe; + /** String specifying the font family used throughout the form. */ + font?: Maybe; + /** String or number specifying the base font size for form text. */ + size?: Maybe; +}; + +/** Object containing typography and text styling configuration. */ +export type FormTextInput = { + /** Hex color code for the text color in the form. */ + color?: InputMaybe; + /** String specifying the font family used throughout the form. */ + font?: InputMaybe; + /** String or number specifying the base font size for form text. */ + size?: InputMaybe; +}; + +export type FormulaValue = ColumnValue & { + __typename?: 'FormulaValue'; + /** The column that this value belongs to. */ + column: Column; + /** A string representing all the formula values, separated by commas */ + display_value: Scalars['String']['output']; + /** The column's unique identifier. */ + id: Scalars['ID']['output']; + /** Text representation of the column value. Note: Not all columns support textual value */ + text?: Maybe; + /** The column's type. */ + type: ColumnType; + /** The column's raw value in JSON format. */ + value?: Maybe; +}; + +/** Input parameters for getting blocks */ +export type GetBlocksInput = { + /** Optional array of app feature unique keys to filter blocks */ + app_feature_unique_keys?: InputMaybe>; + /** Optional array of contexts to filter blocks */ + contexts?: InputMaybe>; +}; + +export type GetEntitiesForMigrationResult = { + __typename?: 'GetEntitiesForMigrationResult'; + /** The entities for migration. */ + entityId?: Maybe; +}; + +export type GetSnapshotsQueryResults = { + __typename?: 'GetSnapshotsQueryResults'; + /** The date and time the snapshot was created. */ + createdAt?: Maybe; + /** The entity id of the snapshot. */ + entityId?: Maybe; + /** The unique identifier of the snapshot. */ + id?: Maybe; + /** The unique identifier of the migration job. */ + migrationJobId?: Maybe; + /** The status of the snapshot. */ + status?: Maybe; +}; + +export type GrantMarketplaceAppDiscount = { __typename?: 'GrantMarketplaceAppDiscount'; /** The id of an app */ app_id: Scalars['ID']['output']; @@ -1647,6 +3145,36 @@ export enum GroupAttributes { Title = 'title' } +/** Configuration settings for group by column */ +export type GroupByColumnConfigInput = { + /** Sort settings for the column */ + sortSettings?: InputMaybe; +}; + +/** Condition for grouping items by column */ +export type GroupByConditionInput = { + /** ID of the column to group by */ + columnId: Scalars['String']['input']; + /** Configuration for the group by column */ + config?: InputMaybe; +}; + +/** Settings for grouping board items */ +export type GroupBySettingsInput = { + /** List of conditions for grouping items */ + conditions: Array; + /** Whether to hide groups with no items */ + hideEmptyGroups?: InputMaybe; +}; + +/** Sort settings for group by configuration */ +export type GroupBySortSettingsInput = { + /** Sort direction for the group */ + direction: SortDirection; + /** Type of sorting to apply */ + type?: InputMaybe; +}; + export type GroupValue = ColumnValue & { __typename?: 'GroupValue'; /** The column that this value belongs to. */ @@ -1665,6 +3193,53 @@ export type GroupValue = ColumnValue & { value?: Maybe; }; +/** Represents a monday object identifier with its type */ +export type HierarchyObjectId = { + __typename?: 'HierarchyObjectID'; + /** The unique identifier of the object */ + id?: Maybe; + /** The type of the object */ + type?: Maybe; +}; + +/** Input type for identifying a favorites object by its ID and type */ +export type HierarchyObjectIdInputType = { + /** The ID of the object */ + id: Scalars['ID']['input']; + /** The type of the object */ + type: ObjectType; +}; + +/** Represents an item in the object hierarchy */ +export type HierarchyObjectItem = { + __typename?: 'HierarchyObjectItem'; + /** The account identifier this item belongs to */ + accountId?: Maybe; + /** The timestamp when this item was created */ + createdAt?: Maybe; + /** The folder identifier if the item is contained within a folder */ + folderId?: Maybe; + /** The list identifier and type */ + hierarchyListData?: Maybe; + /** The unique identifier of the hierarchy item */ + id?: Maybe; + /** The object identifier and type */ + object?: Maybe; + /** The position of the item within its list or folder */ + position?: Maybe; + /** The timestamp when this item was last updated */ + updatedAt?: Maybe; +}; + +export enum HostType { + /** Workflow hosted in the account */ + Account = 'ACCOUNT', + /** Workflow hosted under an app feature object */ + AppFeatureObject = 'APP_FEATURE_OBJECT', + /** Workflow hosted in a board */ + Board = 'BOARD' +} + export type HourValue = ColumnValue & { __typename?: 'HourValue'; /** The column that this value belongs to. */ @@ -1684,6 +3259,83 @@ export type HourValue = ColumnValue & { value?: Maybe; }; +/** Input for creating image blocks */ +export type ImageBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; + /** The public URL of the image */ + public_url: Scalars['String']['input']; + /** The width of the image */ + width?: InputMaybe; +}; + +/** Content for an image block */ +export type ImageContent = DocBaseBlockContent & { + __typename?: 'ImageContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text direction of the block content */ + direction?: Maybe; + /** The public URL of the image */ + public_url: Scalars['String']['output']; + /** The width of the image */ + width?: Maybe; +}; + +/** Interface for input field configuration */ +export type InputFieldConfig = { + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + +/** Input field constraints */ +export type InputFieldConstraints = { + __typename?: 'InputFieldConstraints'; + /** Credential dependencies required for this field */ + credentials?: Maybe; + /** Dependencies that affect this field's behavior or validation */ + dependencies?: Maybe; + /** Dependencies for remote options that affect this field */ + remoteOptionsDependencies?: Maybe; + /** Dependencies between this field and its subfields */ + subFieldsDependencies?: Maybe; +}; + +/** Content inserted in delta operations */ +export type InsertOps = { + __typename?: 'InsertOps'; + /** Object representing structured data within a text block */ + blot?: Maybe; + /** Plain text content */ + text?: Maybe; +}; + +/** Content to insert in delta operations */ +export type InsertOpsInput = { + /** Object representing structured data within a text block */ + blot?: InputMaybe; + /** Plain text content */ + text?: InputMaybe; +}; + export type IntegrationValue = ColumnValue & { __typename?: 'IntegrationValue'; /** The column that this value belongs to. */ @@ -1704,6 +3356,33 @@ export type IntegrationValue = ColumnValue & { value?: Maybe; }; +/** Configuration for an interface input field */ +export type InterfaceInputFieldConfig = InputFieldConfig & { + __typename?: 'InterfaceInputFieldConfig'; + /** Constraints applied to the field */ + constraints?: Maybe; + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Name of the subfield in the interface */ + subfieldName?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + /** Error that occurred while inviting users */ export type InviteUsersError = { __typename?: 'InviteUsersError'; @@ -1744,6 +3423,8 @@ export type Item = { creator?: Maybe; /** The unique identifier of the item creator. */ creator_id: Scalars['String']['output']; + /** The item's description */ + description?: Maybe; /** The item's email. */ email: Scalars['String']['output']; /** The group that contains this item. */ @@ -1801,6 +3482,22 @@ export type ItemUpdatesArgs = { page?: InputMaybe; }; +/** An item description. */ +export type ItemDescription = { + __typename?: 'ItemDescription'; + /** The item's content blocks */ + blocks?: Maybe>>; + /** The item's unique identifier. */ + id?: Maybe; +}; + + +/** An item description. */ +export type ItemDescriptionBlocksArgs = { + limit?: InputMaybe; + page?: InputMaybe; +}; + export type ItemIdValue = ColumnValue & { __typename?: 'ItemIdValue'; /** The column that this value belongs to. */ @@ -1838,11 +3535,13 @@ export type ItemsQuery = { ids?: InputMaybe>; /** The operator to use for the query rules or rule groups */ operator?: InputMaybe; + /** Sort the results by specified columns */ order_by?: InputMaybe>; /** A list of rules */ rules?: InputMaybe>; }; +/** A group of rules or rule groups */ export type ItemsQueryGroup = { /** A list of rule groups */ groups?: InputMaybe>; @@ -1860,11 +3559,14 @@ export enum ItemsQueryOperator { Or = 'or' } +/** Sort the results by specified columns */ export type ItemsQueryOrderBy = { column_id: Scalars['String']['input']; + /** Sort direction (defaults to ASC) */ direction?: InputMaybe; }; +/** A rule to filter items by a specific column */ export type ItemsQueryRule = { column_id: Scalars['ID']['input']; compare_attribute?: InputMaybe; @@ -1904,7 +3606,7 @@ export enum ItemsQueryRuleOperator { StartsWith = 'starts_with', /** Within the last */ WithinTheLast = 'within_the_last', - /** Within the next */ + /** Within the next */ WithinTheNext = 'within_the_next' } @@ -1947,6 +3649,50 @@ export type LastUpdatedValue = ColumnValue & { value?: Maybe; }; +/** + * Input for creating layout blocks. + * + * Behaviour: + * • When a layout is created the system automatically generates + * column_count child "cell" blocks (one per column). + * • The layout block itself is just a container; each generated cell block has + * parentBlockId === and acts as the direct parent for any + * content you want to insert into that column. + * • The creation response already contains the ordered list of generated cell + * IDs under `content[0].cells` (1-D array from left to right). + * • To populate a layout: + * 1. Create the layout and capture its ID. + * 2. Obtain the cell block IDs either by inspecting `content[0].cells` + * in the response **or** by querying the document for children of the + * layout block. + * 3. Create your content blocks (textBlock, imageBlock, tableBlock, etc.) + * with parentBlockId set to the specific cell block ID. + * • Use afterBlockId only to order siblings *within* the same cell. + */ +export type LayoutBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The number of columns in the layout */ + column_count: Scalars['Int']['input']; + /** The column style configuration */ + column_style?: InputMaybe>; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; +}; + +/** Content for a layout block */ +export type LayoutContent = DocBaseBlockContent & { + __typename?: 'LayoutContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** 1-D array of cells (columns). Each cell carries a blockId reference. */ + cells?: Maybe>; + /** The column style configuration */ + column_style?: Maybe>; + /** The text direction of the block content */ + direction?: Maybe; +}; + export type Like = { __typename?: 'Like'; created_at?: Maybe; @@ -1976,6 +3722,61 @@ export type LinkValue = ColumnValue & { value?: Maybe; }; +/** Specific types of list blocks */ +export enum ListBlock { + BulletedList = 'BULLETED_LIST', + CheckList = 'CHECK_LIST', + NumberedList = 'NUMBERED_LIST' +} + +/** Content for a list block (bulleted, numbered, todo) */ +export type ListBlockContent = DocBaseBlockContent & { + __typename?: 'ListBlockContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text content in delta format - array of operations with insert content and optional attributes */ + delta_format: Array; + /** The text direction of the block content */ + direction?: Maybe; + /** The indentation level of the list item */ + indentation?: Maybe; +}; + +/** Input for creating list blocks (bulleted, numbered, todo) */ +export type ListBlockInput = { + alignment?: InputMaybe; + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The text content in delta format - array of operations with insert content and optional attributes */ + delta_format: Array; + direction?: InputMaybe; + /** The indentation level of the list item */ + indentation?: InputMaybe; + /** The specific type of list block (defaults to bulleted list) */ + list_block_type?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; +}; + +/** Represents a list identifier with its type in the hierarchy */ +export type ListId = { + __typename?: 'ListID'; + /** The unique identifier of the list */ + id?: Maybe; + /** The type of the list */ + type?: Maybe; +}; + +/** Types of lists in hierarchyMS */ +export enum ListType { + /** A customized list with specific settings */ + CustomizedList = 'CustomizedList', + /** A personal list owned by a user */ + PersonalList = 'PersonalList', + /** A workspace-level list */ + Workspace = 'Workspace' +} + export type LocationValue = ColumnValue & { __typename?: 'LocationValue'; /** Address */ @@ -2034,7 +3835,7 @@ export type LongTextValue = ColumnValue & { export type ManagedColumn = { __typename?: 'ManagedColumn'; created_at?: Maybe; - created_by?: Maybe; + created_by?: Maybe; description?: Maybe; id?: Maybe; revision?: Maybe; @@ -2043,7 +3844,7 @@ export type ManagedColumn = { state?: Maybe; title?: Maybe; updated_at?: Maybe; - updated_by?: Maybe; + updated_by?: Maybe; }; export enum ManagedColumnState { @@ -2057,6 +3858,30 @@ export enum ManagedColumnTypes { Status = 'status' } +export type MarketplaceAiSearchInput = { + /** Maximum number of search results to return */ + limit?: InputMaybe; + /** The search query term */ + query: Scalars['String']['input']; +}; + +export type MarketplaceAiSearchResult = { + __typename?: 'MarketplaceAiSearchResult'; + /** List of relevant features that match the user needs */ + features: Array; + /** The ID of the marketplace app */ + marketplace_app_id: Scalars['ID']['output']; + /** How well the app matches the user query (0-100) */ + match_percentage: Scalars['Float']['output']; + /** The name of the marketplace app */ + name: Scalars['String']['output']; +}; + +export type MarketplaceAiSearchResults = { + __typename?: 'MarketplaceAiSearchResults'; + results: Array; +}; + export type MarketplaceAppDiscount = { __typename?: 'MarketplaceAppDiscount'; /** The ID of an account */ @@ -2076,6 +3901,82 @@ export type MarketplaceAppDiscount = { valid_until: Scalars['String']['output']; }; +export type MarketplaceAppMetadata = { + __typename?: 'MarketplaceAppMetadata'; + /** The number of installs for the marketplace app */ + installsCount: Scalars['Int']['output']; + /** The average rating of the marketplace app */ + rating: Scalars['Float']['output']; + /** The number of ratings for the marketplace app */ + ratingCount: Scalars['Int']['output']; +}; + +export type MarketplaceSearchAppDocument = { + __typename?: 'MarketplaceSearchAppDocument'; + /** The description of the marketplace app */ + description: Scalars['String']['output']; + /** The keywords associated with the marketplace app */ + keywords: Scalars['String']['output']; + /** The ID of the marketplace app */ + marketplace_app_id: Scalars['ID']['output']; + metadata: MarketplaceAppMetadata; + /** The name of the marketplace app */ + name: Scalars['String']['output']; + /** The short description of the marketplace app */ + short_description: Scalars['String']['output']; +}; + +export type MarketplaceSearchHit = { + __typename?: 'MarketplaceSearchHit'; + document: MarketplaceSearchAppDocument; + /** The unique identifier of the search result */ + id: Scalars['String']['output']; + /** The relevance score of the search result */ + score: Scalars['Float']['output']; +}; + +export type MarketplaceSearchInput = { + /** Maximum number of search results to return */ + limit?: InputMaybe; + /** Number of search results to skip */ + offset?: InputMaybe; + /** The search query term */ + query: Scalars['String']['input']; +}; + +export type MarketplaceSearchResults = { + __typename?: 'MarketplaceSearchResults'; + /** The total number of search results */ + count: Scalars['Int']['output']; + /** The time taken to perform the search */ + elapsed: Scalars['String']['output']; + hits: Array; +}; + +/** Mention object for user or document references */ +export type Mention = { + __typename?: 'Mention'; + /** The unique identifier of the mentioned entity */ + id?: Maybe; + /** The type of the mentioned entity */ + type?: Maybe; +}; + +/** Mention object for user or document references */ +export type MentionInput = { + /** The ID of the mentioned user or document */ + id: Scalars['Int']['input']; + /** The type of mention: user, doc, or board */ + type: DocsMention; +}; + +export enum MentionType { + Board = 'Board', + Project = 'Project', + Team = 'Team', + User = 'User' +} + export type MirrorValue = ColumnValue & { __typename?: 'MirrorValue'; /** The column that this value belongs to. */ @@ -2107,24 +4008,32 @@ export type MirroredItem = { }; /** Represents a mirrored value (column value, group, or board). */ -export type MirroredValue = Board | BoardRelationValue | ButtonValue | CheckboxValue | ColorPickerValue | CountryValue | CreationLogValue | DateValue | DependencyValue | DocValue | DropdownValue | EmailValue | FileValue | FormulaValue | Group | GroupValue | HourValue | IntegrationValue | ItemIdValue | LastUpdatedValue | LinkValue | LocationValue | LongTextValue | MirrorValue | NumbersValue | PeopleValue | PersonValue | PhoneValue | ProgressValue | RatingValue | StatusValue | SubtasksValue | TagsValue | TeamValue | TextValue | TimeTrackingValue | TimelineValue | UnsupportedValue | VoteValue | WeekValue | WorldClockValue; +export type MirroredValue = Board | BoardRelationValue | ButtonValue | CheckboxValue | ColorPickerValue | CountryValue | CreationLogValue | DateValue | DependencyValue | DirectDocValue | DocValue | DropdownValue | EmailValue | FileValue | FormulaValue | Group | GroupValue | HourValue | IntegrationValue | ItemIdValue | LastUpdatedValue | LinkValue | LocationValue | LongTextValue | MirrorValue | NumbersValue | PeopleValue | PersonValue | PhoneValue | ProgressValue | RatingValue | StatusValue | SubtasksValue | TagsValue | TeamValue | TextValue | TimeTrackingValue | TimelineValue | UnsupportedValue | VoteValue | WeekValue | WorldClockValue; /** Update your monday.com data. */ export type Mutation = { __typename?: 'Mutation'; + /** Activate a form to make it visible to users and accept new submissions. */ + activate_form?: Maybe; /** Activate managed column mutation. */ activate_managed_column?: Maybe; /** Activates the specified users. */ activate_users?: Maybe; + /** Create document blocks from markdown content. Returns the creation result. */ + add_content_to_doc_from_markdown?: Maybe; /** Add a file to a column value. */ add_file_to_column?: Maybe; /** Add a file to an update. */ add_file_to_update?: Maybe; + /** Add a required column to a board */ + add_required_column?: Maybe; /** * Add subscribers to a board. * @deprecated use add_users_to_board instead */ add_subscribers_to_board?: Maybe>>; + /** Adds users to an existing object as either subscribers or owners. Subscribers receive notifications about object changes, while owners have full control permissions. Works with any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). Equivalent to the add_users_to_board mutation in the boards API. */ + add_subscribers_to_object?: Maybe; /** Add teams subscribers to a board. */ add_teams_to_board?: Maybe>>; /** Add teams to a workspace. */ @@ -2141,6 +4050,8 @@ export type Mutation = { archive_group?: Maybe; /** Archive an item. */ archive_item?: Maybe; + /** Archives an object in the Monday.com Objects Platform, changing its state to "archived" while preserving all data. Archived objects remain in the system but are hidden from regular views. This operation works for any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). Under the hood, this archives the board that represents this object. */ + archive_object?: Maybe; /** Assigns the specified users as owners of the specified team. */ assign_team_owners?: Maybe; /** Extends trial period of an application to selected accounts */ @@ -2151,7 +4062,7 @@ export type Mutation = { change_column_title?: Maybe; /** Change an item's column value. */ change_column_value?: Maybe; - /** Change the position of an item in a board. */ + /** Change an item's position. */ change_item_position?: Maybe; /** Changes the column values of a specific item. */ change_multiple_column_values?: Maybe; @@ -2161,27 +4072,54 @@ export type Mutation = { clear_item_updates?: Maybe; /** Get the complexity data of your mutations. */ complexity?: Maybe; + /** Connect project to portfolio */ + connect_project_to_portfolio?: Maybe; + /** Convert an existing monday.com board into a project with enhanced project management capabilities. This mutation transforms a regular board by applying project-specific features and configurations through column mappings that define how existing board columns should be interpreted in the project context. The conversion process is asynchronous and returns a process_id for tracking completion. Optionally accepts a callback URL for notification when the conversion completes. Use this when you have an existing board with data that needs to be upgraded to a full project with advanced project management features like Resource Planner integration. */ + convert_board_to_project?: Maybe; /** Create a new board. */ create_board?: Maybe; /** Create a new column in board. */ create_column?: Maybe; create_custom_activity?: Maybe; + /** Create a new dashboard and return the complete Dashboard object. */ + create_dashboard?: Maybe; /** Create a new doc. */ create_doc?: Maybe; /** Create new document block */ create_doc_block?: Maybe; + /** Bulk create multiple document blocks efficiently. Use this for creating multiple blocks at once instead of individual create_doc_block calls. Supports text, lists, images, tables, and more. Maximum 25 blocks per request. Example: Perfect for importing content, or bulk content creation. */ + create_doc_blocks?: Maybe>; /** Create managed column of type dropdown mutation. */ create_dropdown_managed_column?: Maybe; + /** Create a snapshot for a given entity in a migration job */ + create_entity_snapshot?: Maybe; + /** Add workspace object to favorites */ + create_favorite?: Maybe; /** Creates a folder in a specific workspace. */ create_folder?: Maybe; + create_form?: Maybe; + /** Create a new question within a form. Returns the created question with auto-generated ID. */ + create_form_question?: Maybe; + /** Create a new tag for a form. Tags are used to categorize and track responses. (e.g. UTM tags) */ + create_form_tag?: Maybe; /** Creates a new group in a specific board. */ create_group?: Maybe; /** Create a new item. */ create_item?: Maybe; + /** Create a new live workflow. */ + create_live_workflow?: Maybe; + /** Create a new migration job */ + create_migration_job?: Maybe; /** Create a new notification. */ create_notification?: Maybe; + /** Creates a new object in the Monday.com Objects Platform. The type of object created is determined by the app_feature_reference_id parameter. This mutation can create boards, docs, dashboards, workflows, or specialized objects like CRM, capacity manager, etc. Under the hood, this creates a board with the specified app_feature_id. */ + create_object?: Maybe; /** Create a new tag or get it if it already exists. */ create_or_get_tag?: Maybe; + /** Create a new portfolio */ + create_portfolio?: Maybe; + /** Create a new project in monday.com from scratch. This mutation creates a project (board) with comprehensive customization options including: privacy settings (private/public/share), optional companions like Resource Planner for enhanced project management capabilities, workspace assignment for organizational structure, folder placement for better organization, and template selection for predefined project structures. Use this when you need to programmatically create a brand new project with specific configuration requirements. Returns the project ID upon successful creation. */ + create_project?: Maybe; /** Create managed column of type status mutation. */ create_status_managed_column?: Maybe; /** Create subitem. */ @@ -2189,12 +4127,19 @@ export type Mutation = { /** Creates a new team. */ create_team?: Maybe; create_timeline_item?: Maybe; - /** Create a new update. */ create_update?: Maybe; + /** Create a view */ + create_view?: Maybe; + /** Create a new table view */ + create_view_table?: Maybe; /** Create a new webhook. */ create_webhook?: Maybe; + /** Create a new widget based on the provided WidgetCreateRequest JSON input. */ + create_widget?: Maybe; /** Create a new workspace. */ create_workspace?: Maybe; + /** Deactivate a form to hide it from users and stop accepting submissions. Form data is preserved. */ + deactivate_form?: Maybe; /** Deactivate managed column mutation. */ deactivate_managed_column?: Maybe; /** Deactivates the specified users. */ @@ -2204,17 +4149,29 @@ export type Mutation = { /** Delete a column. */ delete_column?: Maybe; delete_custom_activity?: Maybe; + /** Delete a document by its ID. Returns the deleted document. */ + delete_doc?: Maybe; /** Delete a document block */ delete_doc_block?: Maybe; + /** Remove an object from favorites */ + delete_favorite?: Maybe; /** Deletes a folder in a specific workspace. */ delete_folder?: Maybe; + /** Delete a tag from a form */ + delete_form_tag?: Maybe; /** Deletes a group in a specific board. */ delete_group?: Maybe; /** Delete an item. */ delete_item?: Maybe; + /** Delete a live workflow */ + delete_live_workflow?: Maybe; /** Delete managed column mutation. */ delete_managed_column?: Maybe; delete_marketplace_app_discount: DeleteMarketplaceAppDiscountResult; + /** Permanently deletes an object from the Monday.com Objects Platform. Unlike archiving, deletion is only reversible for 30 days and removes all associated data. This operation works for any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). WARNING: This operation cannot be undone after 30 days. */ + delete_object?: Maybe; + /** Permanently remove a question from a form. This action cannot be undone. */ + delete_question?: Maybe; /** Remove subscribers from the board. */ delete_subscribers_from_board?: Maybe>>; /** Deletes the specified team. */ @@ -2224,27 +4181,33 @@ export type Mutation = { /** Delete teams from a workspace. */ delete_teams_from_workspace?: Maybe>>; delete_timeline_item?: Maybe; - /** Delete an update. */ delete_update?: Maybe; /** Delete users from a workspace. */ delete_users_from_workspace?: Maybe>>; + /** Delete an existing board subset/view */ + delete_view?: Maybe; /** Delete a new webhook. */ delete_webhook?: Maybe; + /** Deletes a widget. */ + delete_widget?: Maybe; /** Delete workspace. */ delete_workspace?: Maybe; /** Duplicate a board. */ duplicate_board?: Maybe; + /** Creates an exact copy of an existing monday.com document, including all of its content and structure, using the provided document ID. Returns the new document's ID on success. */ + duplicate_doc?: Maybe; /** Duplicate a group. */ duplicate_group?: Maybe; /** Duplicate an item. */ duplicate_item?: Maybe; edit_update: Update; + /** Export document content as markdown content. Optionally specify block IDs to export only specific blocks. */ + export_markdown_from_doc?: Maybe; grant_marketplace_app_discount: GrantMarketplaceAppDiscountResult; /** Increase operations counter */ increase_app_subscription_operations?: Maybe; /** Invite users to the account. */ invite_users?: Maybe; - /** Like an update. */ like_update?: Maybe; /** Move an item to a different board. */ move_item_to_board?: Maybe; @@ -2253,34 +4216,75 @@ export type Mutation = { pin_to_top: Update; /** Remove mock app subscription for the current account */ remove_mock_app_subscription?: Maybe; + /** Remove a required column from a board */ + remove_required_column?: Maybe; /** Removes the specified users as owners of the specified team. */ remove_team_owners?: Maybe; /** Remove users from team. */ remove_users_from_team?: Maybe; + /** + * Set or update the board's permission to specified role. This concept is also + * known as default board role, general access or board permission set. + */ + set_board_permission?: Maybe; /** Set mock app subscription for the current account */ set_mock_app_subscription?: Maybe; unlike_update: Update; unpin_from_top: Update; + /** Update an app feature. */ + updateAppFeature?: Maybe; /** Update item column value by existing assets */ update_assets_on_item?: Maybe; /** Update Board attribute. */ update_board?: Maybe; + /** Update a board's position, workspace, or account product. */ + update_board_hierarchy?: Maybe; + /** Generic mutation for updating any column type with validation. Supports updating column properties like title, description, and type-specific defaults/settings. The mutation validates input against the column type's schema before applying changes. Use get_column_type_schema query to understand available properties for each column type. */ + update_column?: Maybe; /** Update a document block */ update_doc_block?: Maybe; + /** Update a document's name/title. Changes are applied immediately and visible to all users with access to the document. */ + update_doc_name?: Maybe; /** Update managed column of type dropdown mutation. */ update_dropdown_managed_column?: Maybe; /** Updates the email domain for the specified users. */ update_email_domain?: Maybe; + /** Update the position of an object in favorites */ + update_favorite_position?: Maybe; /** Updates a folder. */ update_folder?: Maybe; + /** Update form properties including title, description, or question order. */ + update_form?: Maybe; + /** Update an existing question properties including title, type, or settings. Requires question ID. */ + update_form_question?: Maybe; + /** Update form configuration including features, appearance, and accessibility options. */ + update_form_settings?: Maybe; + /** Update an existing tag in a form */ + update_form_tag?: Maybe; /** Update an existing group. */ update_group?: Maybe; + /** Update live workflow */ + update_live_workflow?: Maybe; + /** Update live workflow metadata */ + update_live_workflow_metadata?: Maybe; /** Updates attributes for users. */ update_multiple_users?: Maybe; + /** Update mute notification settings for a board. Allows muting all notifications for all users, only for the current user, or setting mentions/assigns-only. Returns the updated mute state for the board. Requires appropriate permissions for muting all users. */ + update_mute_board_settings?: Maybe>; + /** Updates a notification setting's enabled status. */ + update_notification_setting?: Maybe>; + /** Updates an object. */ + update_object?: Maybe; + /** Updates a status column's properties including title, description, and status label settings. Status columns allow users to track item progress through customizable labels (e.g., "Working on it", "Done", "Stuck"). This mutation is specifically for status/color columns and provides type-safe updates. */ + update_status_column?: Maybe; /** Update managed column of type status mutation. */ update_status_managed_column?: Maybe; /** Updates the role of the specified users. */ update_users_role?: Maybe; + /** Update an existing view */ + update_view?: Maybe; + /** Update an existing board table view */ + update_view_table?: Maybe; /** Update an existing workspace. */ update_workspace?: Maybe; /** Use a template */ @@ -2288,6 +4292,12 @@ export type Mutation = { }; +/** Update your monday.com data. */ +export type MutationActivate_FormArgs = { + formToken: Scalars['String']['input']; +}; + + /** Update your monday.com data. */ export type MutationActivate_Managed_ColumnArgs = { id: Scalars['String']['input']; @@ -2300,6 +4310,14 @@ export type MutationActivate_UsersArgs = { }; +/** Update your monday.com data. */ +export type MutationAdd_Content_To_Doc_From_MarkdownArgs = { + afterBlockId?: InputMaybe; + docId: Scalars['ID']['input']; + markdown: Scalars['String']['input']; +}; + + /** Update your monday.com data. */ export type MutationAdd_File_To_ColumnArgs = { column_id: Scalars['String']['input']; @@ -2315,6 +4333,14 @@ export type MutationAdd_File_To_UpdateArgs = { }; +/** Update your monday.com data. */ +export type MutationAdd_Required_ColumnArgs = { + column_id: Scalars['String']['input']; + id: Scalars['ID']['input']; + type?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationAdd_Subscribers_To_BoardArgs = { board_id: Scalars['ID']['input']; @@ -2323,6 +4349,14 @@ export type MutationAdd_Subscribers_To_BoardArgs = { }; +/** Update your monday.com data. */ +export type MutationAdd_Subscribers_To_ObjectArgs = { + id: Scalars['ID']['input']; + kind?: InputMaybe; + user_ids: Array; +}; + + /** Update your monday.com data. */ export type MutationAdd_Teams_To_BoardArgs = { board_id: Scalars['ID']['input']; @@ -2381,6 +4415,12 @@ export type MutationArchive_ItemArgs = { }; +/** Update your monday.com data. */ +export type MutationArchive_ObjectArgs = { + id: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationAssign_Team_OwnersArgs = { team_id: Scalars['ID']['input']; @@ -2426,7 +4466,7 @@ export type MutationChange_Column_ValueArgs = { /** Update your monday.com data. */ export type MutationChange_Item_PositionArgs = { - group_id?: InputMaybe; + group_id?: InputMaybe; group_top?: InputMaybe; item_id: Scalars['ID']['input']; position_relative_method?: InputMaybe; @@ -2459,6 +4499,19 @@ export type MutationClear_Item_UpdatesArgs = { }; +/** Update your monday.com data. */ +export type MutationConnect_Project_To_PortfolioArgs = { + portfolioBoardId: Scalars['ID']['input']; + projectBoardId: Scalars['ID']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationConvert_Board_To_ProjectArgs = { + input: ConvertBoardToProjectInput; +}; + + /** Update your monday.com data. */ export type MutationCreate_BoardArgs = { board_kind: BoardKind; @@ -2495,6 +4548,16 @@ export type MutationCreate_Custom_ActivityArgs = { }; +/** Update your monday.com data. */ +export type MutationCreate_DashboardArgs = { + board_folder_id?: InputMaybe; + board_ids: Array; + kind?: InputMaybe; + name: Scalars['String']['input']; + workspace_id: Scalars['Int']['input']; +}; + + /** Update your monday.com data. */ export type MutationCreate_DocArgs = { location: CreateDocInput; @@ -2512,13 +4575,35 @@ export type MutationCreate_Doc_BlockArgs = { /** Update your monday.com data. */ -export type MutationCreate_Dropdown_Managed_ColumnArgs = { - description?: InputMaybe; +export type MutationCreate_Doc_BlocksArgs = { + afterBlockId?: InputMaybe; + blocksInput: Array; + docId: Scalars['ID']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_Dropdown_Managed_ColumnArgs = { + description?: InputMaybe; settings?: InputMaybe; title: Scalars['String']['input']; }; +/** Update your monday.com data. */ +export type MutationCreate_Entity_SnapshotArgs = { + entity: Scalars['String']['input']; + includeDescendants?: InputMaybe; + migrationJobId: Scalars['String']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_FavoriteArgs = { + input: CreateFavoriteInput; +}; + + /** Update your monday.com data. */ export type MutationCreate_FolderArgs = { color?: InputMaybe; @@ -2530,6 +4615,36 @@ export type MutationCreate_FolderArgs = { }; +/** Update your monday.com data. */ +export type MutationCreate_FormArgs = { + board_kind?: InputMaybe; + board_owner_ids?: InputMaybe>; + board_owner_team_ids?: InputMaybe>; + board_subscriber_ids?: InputMaybe>; + board_subscriber_teams_ids?: InputMaybe>; + destination_folder_id?: InputMaybe; + destination_folder_name?: InputMaybe; + destination_name?: InputMaybe; + destination_workspace_id?: InputMaybe; + entity_names_mapping?: InputMaybe; + skip_target_folder_creation?: InputMaybe; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_Form_QuestionArgs = { + formToken: Scalars['String']['input']; + question: CreateQuestionInput; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_Form_TagArgs = { + formToken: Scalars['String']['input']; + tag: CreateFormTagInput; +}; + + /** Update your monday.com data. */ export type MutationCreate_GroupArgs = { board_id: Scalars['ID']['input']; @@ -2553,6 +4668,19 @@ export type MutationCreate_ItemArgs = { }; +/** Update your monday.com data. */ +export type MutationCreate_Live_WorkflowArgs = { + workflow: WorkflowInput; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_Migration_JobArgs = { + targetAccountId: Scalars['Int']['input']; + targetUserId: Scalars['Int']['input']; +}; + + /** Update your monday.com data. */ export type MutationCreate_NotificationArgs = { target_id: Scalars['ID']['input']; @@ -2562,6 +4690,22 @@ export type MutationCreate_NotificationArgs = { }; +/** Update your monday.com data. */ +export type MutationCreate_ObjectArgs = { + description?: InputMaybe; + folder_id?: InputMaybe; + name: Scalars['String']['input']; + object_type_unique_key: Scalars['String']['input']; + owner_ids?: InputMaybe>; + owner_team_ids?: InputMaybe>; + payload?: InputMaybe; + privacy_kind: PrivacyKind; + subscriber_ids?: InputMaybe>; + subscriber_teams_ids?: InputMaybe>; + workspace_id?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationCreate_Or_Get_TagArgs = { board_id?: InputMaybe; @@ -2569,6 +4713,20 @@ export type MutationCreate_Or_Get_TagArgs = { }; +/** Update your monday.com data. */ +export type MutationCreate_PortfolioArgs = { + boardName: Scalars['String']['input']; + boardPrivacy: Scalars['String']['input']; + destinationWorkspaceId?: InputMaybe; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_ProjectArgs = { + input: CreateProjectInput; +}; + + /** Update your monday.com data. */ export type MutationCreate_Status_Managed_ColumnArgs = { description?: InputMaybe; @@ -2613,10 +4771,38 @@ export type MutationCreate_Timeline_ItemArgs = { export type MutationCreate_UpdateArgs = { body: Scalars['String']['input']; item_id?: InputMaybe; + mentions_list?: InputMaybe>>; parent_id?: InputMaybe; }; +/** Update your monday.com data. */ +export type MutationCreate_ViewArgs = { + board_id: Scalars['ID']['input']; + filter_team_id?: InputMaybe; + filter_user_id?: InputMaybe; + filters?: InputMaybe; + name?: InputMaybe; + settings?: InputMaybe; + sort?: InputMaybe>; + tags?: InputMaybe>; + type: ViewKind; +}; + + +/** Update your monday.com data. */ +export type MutationCreate_View_TableArgs = { + board_id: Scalars['ID']['input']; + filter_team_id?: InputMaybe; + filter_user_id?: InputMaybe; + filters?: InputMaybe; + name?: InputMaybe; + settings?: InputMaybe; + sort?: InputMaybe>; + tags?: InputMaybe>; +}; + + /** Update your monday.com data. */ export type MutationCreate_WebhookArgs = { board_id: Scalars['ID']['input']; @@ -2626,14 +4812,32 @@ export type MutationCreate_WebhookArgs = { }; +/** Update your monday.com data. */ +export type MutationCreate_WidgetArgs = { + board_view_id?: InputMaybe; + configuration?: InputMaybe; + entity_id: Scalars['Int']['input']; + entity_type: WidgetEntityType; + name: Scalars['String']['input']; + type: WidgetType; +}; + + /** Update your monday.com data. */ export type MutationCreate_WorkspaceArgs = { + account_product_id?: InputMaybe; description?: InputMaybe; kind: WorkspaceKind; name: Scalars['String']['input']; }; +/** Update your monday.com data. */ +export type MutationDeactivate_FormArgs = { + formToken: Scalars['String']['input']; +}; + + /** Update your monday.com data. */ export type MutationDeactivate_Managed_ColumnArgs = { id: Scalars['String']['input']; @@ -2665,18 +4869,38 @@ export type MutationDelete_Custom_ActivityArgs = { }; +/** Update your monday.com data. */ +export type MutationDelete_DocArgs = { + docId: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationDelete_Doc_BlockArgs = { block_id: Scalars['String']['input']; }; +/** Update your monday.com data. */ +export type MutationDelete_FavoriteArgs = { + input: DeleteFavoriteInput; +}; + + /** Update your monday.com data. */ export type MutationDelete_FolderArgs = { folder_id: Scalars['ID']['input']; }; +/** Update your monday.com data. */ +export type MutationDelete_Form_TagArgs = { + formToken: Scalars['String']['input']; + options?: InputMaybe; + tagId: Scalars['String']['input']; +}; + + /** Update your monday.com data. */ export type MutationDelete_GroupArgs = { board_id: Scalars['ID']['input']; @@ -2690,6 +4914,12 @@ export type MutationDelete_ItemArgs = { }; +/** Update your monday.com data. */ +export type MutationDelete_Live_WorkflowArgs = { + id?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationDelete_Managed_ColumnArgs = { id: Scalars['String']['input']; @@ -2703,6 +4933,19 @@ export type MutationDelete_Marketplace_App_DiscountArgs = { }; +/** Update your monday.com data. */ +export type MutationDelete_ObjectArgs = { + id: Scalars['ID']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationDelete_QuestionArgs = { + formToken: Scalars['String']['input']; + questionId: Scalars['String']['input']; +}; + + /** Update your monday.com data. */ export type MutationDelete_Subscribers_From_BoardArgs = { board_id: Scalars['ID']['input']; @@ -2749,12 +4992,25 @@ export type MutationDelete_Users_From_WorkspaceArgs = { }; +/** Update your monday.com data. */ +export type MutationDelete_ViewArgs = { + board_id: Scalars['ID']['input']; + view_id: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationDelete_WebhookArgs = { id: Scalars['ID']['input']; }; +/** Update your monday.com data. */ +export type MutationDelete_WidgetArgs = { + id: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationDelete_WorkspaceArgs = { workspace_id: Scalars['ID']['input']; @@ -2772,6 +5028,13 @@ export type MutationDuplicate_BoardArgs = { }; +/** Update your monday.com data. */ +export type MutationDuplicate_DocArgs = { + docId: Scalars['ID']['input']; + duplicateType?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationDuplicate_GroupArgs = { add_to_top?: InputMaybe; @@ -2796,6 +5059,13 @@ export type MutationEdit_UpdateArgs = { }; +/** Update your monday.com data. */ +export type MutationExport_Markdown_From_DocArgs = { + blockIds?: InputMaybe>; + docId: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationGrant_Marketplace_App_DiscountArgs = { account_slug: Scalars['String']['input']; @@ -2821,6 +5091,7 @@ export type MutationInvite_UsersArgs = { /** Update your monday.com data. */ export type MutationLike_UpdateArgs = { + reaction_type?: InputMaybe; update_id: Scalars['ID']['input']; }; @@ -2856,6 +5127,14 @@ export type MutationRemove_Mock_App_SubscriptionArgs = { }; +/** Update your monday.com data. */ +export type MutationRemove_Required_ColumnArgs = { + column_id: Scalars['String']['input']; + id: Scalars['ID']['input']; + type?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationRemove_Team_OwnersArgs = { team_id: Scalars['ID']['input']; @@ -2870,6 +5149,13 @@ export type MutationRemove_Users_From_TeamArgs = { }; +/** Update your monday.com data. */ +export type MutationSet_Board_PermissionArgs = { + basic_role_name: BoardBasicRoleName; + board_id: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationSet_Mock_App_SubscriptionArgs = { app_id: Scalars['ID']['input']; @@ -2896,6 +5182,13 @@ export type MutationUnpin_From_TopArgs = { }; +/** Update your monday.com data. */ +export type MutationUpdateAppFeatureArgs = { + id: Scalars['ID']['input']; + input: UpdateAppFeatureInput; +}; + + /** Update your monday.com data. */ export type MutationUpdate_Assets_On_ItemArgs = { board_id: Scalars['ID']['input']; @@ -2913,6 +5206,25 @@ export type MutationUpdate_BoardArgs = { }; +/** Update your monday.com data. */ +export type MutationUpdate_Board_HierarchyArgs = { + attributes: UpdateBoardHierarchyAttributesInput; + board_id: Scalars['ID']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_ColumnArgs = { + board_id: Scalars['ID']['input']; + column_type: ColumnType; + description?: InputMaybe; + id: Scalars['String']['input']; + revision: Scalars['String']['input']; + settings?: InputMaybe; + title?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationUpdate_Doc_BlockArgs = { block_id: Scalars['String']['input']; @@ -2920,6 +5232,13 @@ export type MutationUpdate_Doc_BlockArgs = { }; +/** Update your monday.com data. */ +export type MutationUpdate_Doc_NameArgs = { + docId: Scalars['ID']['input']; + name: Scalars['String']['input']; +}; + + /** Update your monday.com data. */ export type MutationUpdate_Dropdown_Managed_ColumnArgs = { description?: InputMaybe; @@ -2936,14 +5255,53 @@ export type MutationUpdate_Email_DomainArgs = { }; +/** Update your monday.com data. */ +export type MutationUpdate_Favorite_PositionArgs = { + input: UpdateObjectHierarchyPositionInput; +}; + + /** Update your monday.com data. */ export type MutationUpdate_FolderArgs = { + account_product_id?: InputMaybe; color?: InputMaybe; custom_icon?: InputMaybe; folder_id: Scalars['ID']['input']; font_weight?: InputMaybe; name?: InputMaybe; parent_folder_id?: InputMaybe; + position?: InputMaybe; + workspace_id?: InputMaybe; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_FormArgs = { + formToken: Scalars['String']['input']; + input: UpdateFormInput; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_Form_QuestionArgs = { + formToken: Scalars['String']['input']; + question: UpdateQuestionInput; + questionId: Scalars['String']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_Form_SettingsArgs = { + formToken: Scalars['String']['input']; + settings: UpdateFormSettingsInput; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_Form_TagArgs = { + formToken: Scalars['String']['input']; + tag: UpdateFormTagInput; + tagId: Scalars['String']['input']; }; @@ -2956,13 +5314,61 @@ export type MutationUpdate_GroupArgs = { }; +/** Update your monday.com data. */ +export type MutationUpdate_Live_WorkflowArgs = { + workflow: UpdateWorkflowInput; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_Live_Workflow_MetadataArgs = { + workflow: UpdateWorkflowMetadataInput; +}; + + /** Update your monday.com data. */ export type MutationUpdate_Multiple_UsersArgs = { bypass_confirmation_for_claimed_domains?: InputMaybe; + use_async_mode?: InputMaybe; user_updates: Array; }; +/** Update your monday.com data. */ +export type MutationUpdate_Mute_Board_SettingsArgs = { + board_id: Scalars['String']['input']; + mute_state: BoardMuteState; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_Notification_SettingArgs = { + channel: ChannelType; + enabled: Scalars['Boolean']['input']; + scope_id?: InputMaybe; + scope_type: ScopeType; + setting_kind: Scalars['String']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_ObjectArgs = { + id: Scalars['String']['input']; + input: UpdateObjectInput; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_Status_ColumnArgs = { + board_id: Scalars['ID']['input']; + description?: InputMaybe; + id: Scalars['String']['input']; + revision: Scalars['String']['input']; + settings?: InputMaybe; + title?: InputMaybe; +}; + + /** Update your monday.com data. */ export type MutationUpdate_Status_Managed_ColumnArgs = { description?: InputMaybe; @@ -2981,6 +5387,35 @@ export type MutationUpdate_Users_RoleArgs = { }; +/** Update your monday.com data. */ +export type MutationUpdate_ViewArgs = { + board_id: Scalars['ID']['input']; + filter_team_id?: InputMaybe; + filter_user_id?: InputMaybe; + filters?: InputMaybe; + name?: InputMaybe; + settings?: InputMaybe; + sort?: InputMaybe>; + tags?: InputMaybe>; + type: ViewKind; + view_id: Scalars['ID']['input']; +}; + + +/** Update your monday.com data. */ +export type MutationUpdate_View_TableArgs = { + board_id: Scalars['ID']['input']; + filter_team_id?: InputMaybe; + filter_user_id?: InputMaybe; + filters?: InputMaybe; + name?: InputMaybe; + settings?: InputMaybe; + sort?: InputMaybe>; + tags?: InputMaybe>; + view_id: Scalars['ID']['input']; +}; + + /** Update your monday.com data. */ export type MutationUpdate_WorkspaceArgs = { attributes: UpdateWorkspaceAttributesInput; @@ -3005,13 +5440,90 @@ export type MutationUse_TemplateArgs = { template_id: Scalars['Int']['input']; }; +/** Data required to request the next page of remote options */ +export type NextPageRequestData = { + __typename?: 'NextPageRequestData'; + /** Optional cursor for cursor-based pagination */ + cursor?: Maybe; + /** The page number to request */ + page: Scalars['Int']['output']; +}; + +/** The notice-box's own ID must be captured. Every block that should appear inside it must be created with parentBlockId = that ID (and can still use afterBlockId for ordering among siblings). */ +export type NoticeBoxBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; + theme: NoticeBoxTheme; +}; + +/** Content for a notice box block */ +export type NoticeBoxContent = DocBaseBlockContent & { + __typename?: 'NoticeBoxContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text direction of the block content */ + direction?: Maybe; + /** The theme of the notice box */ + theme: NoticeBoxTheme; +}; + +/** Theme options for notice box blocks */ +export enum NoticeBoxTheme { + General = 'GENERAL', + Info = 'INFO', + Tips = 'TIPS', + Warning = 'WARNING' +} + /** A notification. */ export type Notification = { __typename?: 'Notification'; + /** The board that is associated with the notification. */ + board?: Maybe; + /** The date and time the notification was created. */ + created_at?: Maybe; + /** The users who created the notification. */ + creators: Array; /** The notification's unique identifier. */ id: Scalars['ID']['output']; + /** The item that is associated with the notification. */ + item?: Maybe; + /** Whether the notification has been read. */ + read: Scalars['Boolean']['output']; /** The notification text. */ text?: Maybe; + /** The title of the notification. */ + title?: Maybe; + /** The update that triggered the notification. */ + update?: Maybe; +}; + +/** Represents notification settings configuration */ +export type NotificationSetting = { + __typename?: 'NotificationSetting'; + /** Available notification channels for this setting */ + channels: Array; + /** Description of the notification setting */ + description?: Maybe; + /** Whether this setting is only configurable by admins */ + is_for_admins_only?: Maybe; + /** Whether this setting is not applicable for guest users */ + is_for_non_guests_only?: Maybe; + /** Notification setting kind */ + kind?: Maybe; +}; + +/** Represents a notification channel configuration */ +export type NotificationSettingChannel = { + __typename?: 'NotificationSettingChannel'; + /** Whether or not this channel settings is editable */ + editable_status?: Maybe; + /** Whether notifications are enabled for this channel */ + enabled?: Maybe; + /** Notification channel destination: Monday, Email, Slack */ + name?: Maybe; }; /** The notification's target type. */ @@ -3049,6 +5561,107 @@ export type NumbersValue = ColumnValue & { value?: Maybe; }; +/** The central type in the Monday.com Objects Platform, representing any entity in the system. This unified type can represent instances of boards, docs, dashboards, workflows, and specialized objects. The specific type of an object is determined by its app_feature_reference_id. */ +export type Object = { + __typename?: 'Object'; + /** The ID of the user who created this object. Useful for tracking object origin. */ + creator?: Maybe; + /** Optional description of the object, providing additional context about its purpose or contents. */ + description?: Maybe; + /** The ID of the folder containing this object, if the object is organized in a folder structure. */ + folder_id?: Maybe; + /** The unique identifier of the object. Can be used to reference this specific object in queries and mutations. */ + id?: Maybe; + /** The display name of the object. This is what appears in the Monday.com interface. */ + name?: Maybe; + /** List of users who are owners of this object. Owners have full control permissions. */ + owners?: Maybe>; + /** The kind/visibility setting of the object (private, public, share). Determines who can access it. */ + privacy_kind?: Maybe; + /** The current state of the object. Determines visibility in the interface. */ + state?: Maybe; + /** List of users who are subscribers to this object. Subscribers receive notifications about changes. */ + subscribers?: Maybe>; + /** Timestamp of when the object was last updated. Format is ISO 8601. */ + updated_at?: Maybe; + /** The ID of the workspace containing this object. Null indicates the object is in the main workspace. */ + workspace_id?: Maybe; +}; + +export type ObjectDynamicPositionInput = { + /** The next object in the list */ + nextObject?: InputMaybe; + /** The previous object in the list */ + prevObject?: InputMaybe; +}; + +/** The state of the object. */ +export enum ObjectState { + /** The object is active. */ + Active = 'ACTIVE', + /** The object is archived. */ + Archived = 'ARCHIVED', + /** The object is deleted. */ + Deleted = 'DELETED' +} + +/** Represents a monday object. */ +export enum ObjectType { + /** Represents a board object type. */ + Board = 'Board', + /** Represents a folder object type. */ + Folder = 'Folder', + /** Represents an overview object type. */ + Overview = 'Overview' +} + +/** Represents object type unique key and metadata. */ +export type ObjectTypeUniqueKey = { + __typename?: 'ObjectTypeUniqueKey'; + /** The name of the app feature object type (e.g., 'Workflow', 'Capacity manager'). */ + app_feature_name?: Maybe; + /** The name of the app that provides this object type. */ + app_name?: Maybe; + /** A short description of what this object type represents. */ + description?: Maybe; + /** The unique identifier for the object type, formatted as 'app_slug::app_feature_slug' */ + object_type_unique_key?: Maybe; +}; + +/** A delta operation with insert content and optional formatting attributes */ +export type Operation = { + __typename?: 'Operation'; + /** Optional formatting attributes (bold, italic, underline, strike, code, link, color, background) */ + attributes?: Maybe; + /** Content to insert - either text or blot object */ + insert?: Maybe; +}; + +/** A delta operation with insert content and optional formatting attributes */ +export type OperationInput = { + /** Optional formatting attributes (bold, italic, underline, strike, code, link, color, background) */ + attributes?: InputMaybe; + /** Content to insert - either text or blot object */ + insert: InsertOpsInput; +}; + +/** A single option in a remote options list */ +export type Option = { + __typename?: 'Option'; + /** The display title of the option */ + title?: Maybe; + /** The value of the option */ + value?: Maybe; +}; + +/** Defines the sorting order for returned objects in the objects query. */ +export enum OrderBy { + /** Sort objects by their creation date, from newest to oldest. */ + CreatedAt = 'CREATED_AT', + /** Sort objects by when they were last used, from most recent to least recent. */ + UsedAt = 'USED_AT' +} + /** The working status of a user. */ export type OutOfOffice = { __typename?: 'OutOfOffice'; @@ -3064,6 +5677,81 @@ export type OutOfOffice = { type?: Maybe; }; +/** Interface for output field configuration */ +export type OutputFieldConfig = { + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + +/** Output field constraints */ +export type OutputFieldConstraints = { + __typename?: 'OutputFieldConstraints'; + /** Credential dependencies required for this field's output */ + credentials?: Maybe; + /** Dependencies that affect this field's output behavior */ + dependencies?: Maybe; + /** Dependencies between this field and its subfields in the output */ + subFieldsDependencies?: Maybe; +}; + +/** Input for creating page break blocks */ +export type PageBreakBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; +}; + +/** Content for a page break block */ +export type PageBreakContent = DocBaseBlockContent & { + __typename?: 'PageBreakContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text direction of the block content */ + direction?: Maybe; +}; + +/** + * Pagination metadata: indicates the current page and page size, whether there + * are more pages, and the next page number if one exists. Note that the page size reflects + * the number of items requested, not the number of items returned. + */ +export type Pagination = { + __typename?: 'Pagination'; + /** Indicates if there are more pages available */ + has_more_pages?: Maybe; + /** Number of the next page */ + next_page_number?: Maybe; + /** Current page number (1-based) */ + page?: Maybe; + /** Number of items per page */ + page_size?: Maybe; +}; + +/** Pagination parameters for queries */ +export type PaginationInput = { + /** Last ID for cursor-based pagination */ + lastId?: InputMaybe; + /** Maximum number of results to return */ + limit?: InputMaybe; +}; + export type PeopleEntity = { __typename?: 'PeopleEntity'; /** Id of the entity: a person or a team */ @@ -3106,6 +5794,23 @@ export type PersonValue = ColumnValue & { value?: Maybe; }; +/** Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. */ +export type PhonePrefixPredefined = { + __typename?: 'PhonePrefixPredefined'; + /** Whether a predefined phone prefix is enabled for phone number questions. When true, the specified prefix will be pre-selected. */ + enabled: Scalars['Boolean']['output']; + /** The predefined phone country prefix to use as country code in capital letters (e.g., "US", "UK", "IL"). Only used when enabled is true. */ + prefix?: Maybe; +}; + +/** Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users. */ +export type PhonePrefixPredefinedInput = { + /** Whether a predefined phone prefix is enabled for phone number questions. When true, the specified prefix will be pre-selected. */ + enabled: Scalars['Boolean']['input']; + /** The predefined phone country prefix to use as country code in capital letters (e.g., "US", "UK", "IL"). Only used when enabled is true. */ + prefix?: InputMaybe; +}; + export type PhoneValue = ColumnValue & { __typename?: 'PhoneValue'; /** The column that this value belongs to. */ @@ -3184,6 +5889,130 @@ export enum PositionRelative { BeforeAt = 'before_at' } +/** Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. */ +export type PrefillSettings = { + __typename?: 'PrefillSettings'; + /** Whether prefill functionality is enabled for this question. When true, the question will attempt to auto-populate values from the specified source. */ + enabled: Scalars['Boolean']['output']; + /** The specific field or parameter name to lookup from the prefill source. For account sources, this would be a user property like "name" or "email". For query parameters, this would be the parameter name that would be set in the URL. */ + lookup: Scalars['String']['output']; + /** The data source to use for prefilling the question value. Check the PrefillSources for available options. */ + source?: Maybe; +}; + +/** Configuration for automatically populating question values from various data sources such as user account information or URL query parameters. */ +export type PrefillSettingsInput = { + /** Whether prefill functionality is enabled for this question. When true, the question will attempt to auto-populate values from the specified source. */ + enabled: Scalars['Boolean']['input']; + /** The specific field or parameter name to lookup from the prefill source. For account sources, this would be a user property like "name" or "email". For query parameters, this would be the parameter name that would be set in the URL. */ + lookup?: InputMaybe; + /** The data source to use for prefilling the question value. Check the PrefillSources for available options. */ + source?: InputMaybe; +}; + +/** Primitive field type implementation */ +export type PrimitiveFieldType = FieldType & { + __typename?: 'PrimitiveFieldType'; + /** Configuration metadata for the field type */ + configurartionMetadata?: Maybe; + /** Default key for fields of this type */ + defaultFieldKey?: Maybe; + /** Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. */ + dependencyConfig?: Maybe; + /** Description of the field type */ + description?: Maybe; + /** Unique identifier for the field type */ + id?: Maybe; + /** List of field type implementations */ + implement?: Maybe>; + /** Unique key identifier for the field type */ + key?: Maybe; + /** Name of the field type */ + name?: Maybe; + /** The primitive type of the field */ + primitiveType?: Maybe; + /** Current state of the field type */ + state?: Maybe; + /** Unique key of the field type */ + uniqueKey?: Maybe; +}; + +/** Configuration for a primitive input field */ +export type PrimitiveInputFieldConfig = InputFieldConfig & { + __typename?: 'PrimitiveInputFieldConfig'; + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Type of the primitive field */ + primitiveType?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + +/** Configuration for a primitive output field */ +export type PrimitiveOutputFieldConfig = OutputFieldConfig & { + __typename?: 'PrimitiveOutputFieldConfig'; + /** Detailed description of the field */ + description?: Maybe; + /** Key identifier for the field */ + fieldKey?: Maybe; + /** Display title for the field */ + fieldTitle?: Maybe; + /** Unique identifier for the field */ + id?: Maybe; + /** Additional information about the field */ + information?: Maybe; + /** Whether the field is an array type */ + isArray?: Maybe; + /** Whether the field can be null */ + isNullable?: Maybe; + /** Whether the field is optional */ + isOptional?: Maybe; + /** Type of the primitive field */ + primitiveType?: Maybe; + /** Type of the field relation */ + type?: Maybe; +}; + +/** The primitive types supported by the system */ +export enum PrimitiveTypes { + /** Boolean type for true/false values */ + Boolean = 'BOOLEAN', + /** Date type for date values */ + Date = 'DATE', + /** Float type for decimal values */ + Float = 'FLOAT', + /** Hour type for hour values */ + Hour = 'HOUR', + /** Number type for integer values */ + Number = 'NUMBER', + /** String type for text values */ + String = 'STRING' +} + +/** Defines the visibility and access control settings for objects in the Monday.com Objects Platform. */ +export enum PrivacyKind { + /** Private objects are only visible to specific users who are members of the object. */ + Private = 'PRIVATE', + /** Public objects are visible to all users within the account, unless their access is blocked on a higher level in the hierarchy, or by specific object permission. */ + Public = 'PUBLIC', + /** Shareable objects can be shared with users outside the account by inviting them as guests. They allow controlled external collaboration. */ + Share = 'SHARE' +} + /** The product to invite the users to. */ export enum Product { Crm = 'crm', @@ -3215,8 +6044,12 @@ export type Query = { __typename?: 'Query'; /** Get the connected account's information. */ account?: Maybe; + /** Returns all connections for the account. Requires admin privileges. */ + account_connections?: Maybe>; /** Get all roles for the account */ account_roles?: Maybe>; + /** Returns all available widget schemas for documentation and validation purposes */ + all_widgets_schema?: Maybe>; /** Get an app by ID. */ app?: Maybe; /** Get a collection of installs of an app. */ @@ -3232,28 +6065,158 @@ export type Query = { apps_monetization_status?: Maybe; /** Get a collection of assets by ids. */ assets?: Maybe>>; + /** + * Lists all the audit event types that can be logged and information about them. + * + * Example query: + * + * query { + * audit_event_catalogue { + * name + * description + * metadata_details + * } + * } + */ + audit_event_catalogue?: Maybe>; + /** + * Retrieve audit logs for your Monday account. You can + * filter logs by event types, user ID, IP address and start and end date. + * + * Here is an example audit log query: + * + * query { + * audit_logs( + * user_id: "1234567890" + * events: ["login", "logout"] + * ip_address: "123.123.123.123" + * start_time: "2021-01-01T00:00:00Z" + * end_time: "2021-01-01T23:59:59Z" + * limit: 100 + * page: 1 + * ) { + * logs { + * timestamp + * event + * ip_address + * user { + * id + * name + * email + * } + * activity_metadata + * } + * pagination { + * page + * page_size + * has_more_pages + * next_page_number + * } + * } + * } + * + * To get the list of all possible event types, you should use the audit_event_catalogue query like this: + * + * query { + * audit_event_catalogue { + * name + * description + * metadata_details + * } + * } + */ + audit_logs?: Maybe; + /** + * Get blocks for the current user. + * + * Engine usage when building live workflows: + * • Always invoke this query first to retrieve the catalogue of workflow steps available to the account. + * • Each element in `blocks.blocks` contains an `id` – this is the canonical `blockReferenceId` that must be supplied inside `WorkflowBlockInput.blockReferenceId` when calling `create_live_workflow`. + * • The `kind` field tells you whether the block is a TRIGGER, ACTION or CONDITION, which helps decide its placement in the workflow. + */ + blocks?: Maybe; /** Get a collection of boards. */ boards?: Maybe>>; /** Get the complexity data of your queries. */ complexity?: Maybe; + /** Fetch a single connection by its unique ID. */ + connection?: Maybe; + /** Get board IDs that are linked to a specific connection. */ + connection_board_ids?: Maybe>; + /** Returns connections for the authenticated user. Supports filtering, pagination, ordering, and partial-scope options. */ + connections?: Maybe>; custom_activity?: Maybe>; /** Get a collection of docs. */ docs?: Maybe>>; + /** Get all personal list items by list ID */ + favorites?: Maybe>; /** Get a collection of folders. Note: This query won't return folders from closed workspaces to which you are not subscribed */ folders?: Maybe>>; + /** Fetch a form by its token. The returned form includes all the details of the form such as its settings, questions, title, etc. Use this endpoint when you need to retrieve complete form data for display or processing. Requires that the requesting user has read access to the associated board. */ + form?: Maybe; + /** Retrieves the JSON schema definition for a specific column type. Use this query before calling update_column mutation to understand the structure and validation rules for the defaults parameter. The schema defines what properties are available when updating columns of a specific type. */ + get_column_type_schema?: Maybe; + get_entities_for_migration?: Maybe>; + /** Get the entity snapshots */ + get_entity_snapshots?: Maybe>; + /** Get workflow by ID */ + get_live_workflow?: Maybe; + /** Get list of live workflows with pagination */ + get_live_workflows?: Maybe>; + /** + * Retrieves the JSON schema definition for a specific create view type. + * Use this query before calling create_view mutation to understand the structure and validation rules for the settings parameter. + * The schema defines what properties are available when creating views of a specific type. + */ + get_view_schema_by_type?: Maybe; + /** List of all supported workflow block next mapping kinds with their json schemas */ + get_workflow_block_next_mapping_schemas: Array; + /** List of all supported workflow variable kinds with their json schemas */ + get_workflow_variable_schemas: Array; /** Get a collection of items. */ items?: Maybe>>; /** Search items by multiple columns and values. */ items_page_by_column_values: ItemsResponse; /** Get managed column data. */ managed_column?: Maybe>; + /** Search for marketplace apps using AI */ + marketplace_ai_search: MarketplaceAiSearchResults; marketplace_app_discounts: Array; + /** Search for marketplace apps using full-text search */ + marketplace_fulltext_search: MarketplaceSearchResults; + /** Search for marketplace apps using a combination of vector and full-text search */ + marketplace_hybrid_search: MarketplaceSearchResults; + /** Search for marketplace apps using vector similarity */ + marketplace_vector_search: MarketplaceSearchResults; /** Get the connected user's information. */ me?: Maybe; + /** Get mute board notification settings for the current user */ + mute_board_settings?: Maybe>; /** Get next pages of board's items (rows) by cursor. */ next_items_page: ItemsResponse; + notifications?: Maybe>; + /** Retrieves the current user's notification settings across all available channels. */ + notifications_settings?: Maybe>; + /** Retrieves a list of available object types that can be created or queried. Each object type is uniquely identified by an 'object_type_unique_key'. This key is required for mutations like 'create_object' and for filtering in the 'objects' query. Use this query to discover what types of objects are available in the system (e.g., 'workflows', 'projects') and get their corresponding unique keys. The structure of unique key is 'app_slug::app_feature_slug'. */ + object_types_unique_keys?: Maybe>; + /** Retrieves a list of objects from the Monday.com Objects Platform based on specified filters. This query can return any type of object (board, doc, dashboard, workflow, etc.) depending on the filter criteria. Use object_type_unique_keys to filter for specific object types. */ + objects?: Maybe>; /** Platform API data. */ platform_api?: Maybe; + /** + * Fetch remote options for a field type. + * + * Engine usage when building live workflows: + * • Certain block fields declare that their value must be chosen from a dynamic (remote) list – for example, status labels, column identifiers, users, etc. + * • Before constructing the corresponding `WorkflowVariableInput`, call this query with the proper context parameters (fieldTypeReferenceId, boardId, columnId, etc.). + * • Inspect the returned array and pick the desired option's `value`; place that value in `WorkflowVariableInput.sourceMetadata.value` and mark the variable's `sourceKind` as `REMOTE`. + * • This ensures the workflow always references an up-to-date, valid option. + */ + remote_options?: Maybe; + /** A query to search across all boards in the account. Returns raw json results. */ + search_benchmark?: Maybe; + /** A query to search across all boards in the account. Returns raw json results. */ + search_cross_board?: Maybe; /** Get a collection of tags. */ tags?: Maybe>>; /** Get a collection of teams. */ @@ -3261,10 +6224,13 @@ export type Query = { /** Fetches timeline items for a given item */ timeline?: Maybe; timeline_item?: Maybe; - /** Get a collection of updates. */ updates?: Maybe>; + /** Returns connections that belong to the authenticated user. */ + user_connections?: Maybe>; /** Get a collection of users. */ users?: Maybe>>; + /** Get the required column IDs for a board */ + validations?: Maybe; /** Get the API version in use */ version: Version; /** Get a list containing the versions of the API */ @@ -3276,6 +6242,17 @@ export type Query = { }; +/** Get your data from monday.com */ +export type QueryAccount_ConnectionsArgs = { + order?: InputMaybe; + page?: InputMaybe; + pageSize?: InputMaybe; + pagination?: InputMaybe; + withAutomations?: InputMaybe; + withStateValidation?: InputMaybe; +}; + + /** Get your data from monday.com */ export type QueryAppArgs = { id: Scalars['ID']['input']; @@ -3308,21 +6285,64 @@ export type QueryApp_SubscriptionsArgs = { /** Get your data from monday.com */ -export type QueryAssetsArgs = { - ids: Array; +export type QueryAssetsArgs = { + ids: Array; +}; + + +/** Get your data from monday.com */ +export type QueryAudit_LogsArgs = { + end_time?: InputMaybe; + events?: InputMaybe>; + ip_address?: InputMaybe; + limit?: InputMaybe; + page?: InputMaybe; + start_time?: InputMaybe; + user_id?: InputMaybe; +}; + + +/** Get your data from monday.com */ +export type QueryBlocksArgs = { + input?: InputMaybe; +}; + + +/** Get your data from monday.com */ +export type QueryBoardsArgs = { + board_kind?: InputMaybe; + ids?: InputMaybe>; + latest?: InputMaybe; + limit?: InputMaybe; + order_by?: InputMaybe; + page?: InputMaybe; + state?: InputMaybe; + workspace_ids?: InputMaybe>>; +}; + + +/** Get your data from monday.com */ +export type QueryConnectionArgs = { + id: Scalars['Int']['input']; +}; + + +/** Get your data from monday.com */ +export type QueryConnection_Board_IdsArgs = { + connectionId: Scalars['Int']['input']; }; /** Get your data from monday.com */ -export type QueryBoardsArgs = { - board_kind?: InputMaybe; - ids?: InputMaybe>; - latest?: InputMaybe; - limit?: InputMaybe; - order_by?: InputMaybe; +export type QueryConnectionsArgs = { + connectionState?: InputMaybe; + order?: InputMaybe; page?: InputMaybe; - state?: InputMaybe; - workspace_ids?: InputMaybe>>; + pageSize?: InputMaybe; + pagination?: InputMaybe; + withAutomations?: InputMaybe; + withPartialScopes?: InputMaybe; + withStateValidation?: InputMaybe; }; @@ -3355,6 +6375,53 @@ export type QueryFoldersArgs = { }; +/** Get your data from monday.com */ +export type QueryFormArgs = { + formToken: Scalars['String']['input']; +}; + + +/** Get your data from monday.com */ +export type QueryGet_Column_Type_SchemaArgs = { + type: ColumnType; +}; + + +/** Get your data from monday.com */ +export type QueryGet_Entities_For_MigrationArgs = { + migrationJobId: Scalars['String']['input']; +}; + + +/** Get your data from monday.com */ +export type QueryGet_Entity_SnapshotsArgs = { + entityIds?: InputMaybe>; + migrationJobId: Scalars['String']['input']; + snapshotStatuses?: InputMaybe>; +}; + + +/** Get your data from monday.com */ +export type QueryGet_Live_WorkflowArgs = { + id: Scalars['String']['input']; +}; + + +/** Get your data from monday.com */ +export type QueryGet_Live_WorkflowsArgs = { + hostInstanceId: Scalars['String']['input']; + hostType: HostType; + pagination?: InputMaybe; +}; + + +/** Get your data from monday.com */ +export type QueryGet_View_Schema_By_TypeArgs = { + mutationType: ViewMutationKind; + type: ViewKind; +}; + + /** Get your data from monday.com */ export type QueryItemsArgs = { exclude_nonactive?: InputMaybe; @@ -3381,12 +6448,42 @@ export type QueryManaged_ColumnArgs = { }; +/** Get your data from monday.com */ +export type QueryMarketplace_Ai_SearchArgs = { + input: MarketplaceAiSearchInput; +}; + + /** Get your data from monday.com */ export type QueryMarketplace_App_DiscountsArgs = { app_id: Scalars['ID']['input']; }; +/** Get your data from monday.com */ +export type QueryMarketplace_Fulltext_SearchArgs = { + input: MarketplaceSearchInput; +}; + + +/** Get your data from monday.com */ +export type QueryMarketplace_Hybrid_SearchArgs = { + input: MarketplaceSearchInput; +}; + + +/** Get your data from monday.com */ +export type QueryMarketplace_Vector_SearchArgs = { + input: MarketplaceSearchInput; +}; + + +/** Get your data from monday.com */ +export type QueryMute_Board_SettingsArgs = { + board_ids: Array; +}; + + /** Get your data from monday.com */ export type QueryNext_Items_PageArgs = { cursor: Scalars['String']['input']; @@ -3394,6 +6491,56 @@ export type QueryNext_Items_PageArgs = { }; +/** Get your data from monday.com */ +export type QueryNotificationsArgs = { + cursor?: InputMaybe; + filter_read?: InputMaybe; + limit?: InputMaybe; + since?: InputMaybe; +}; + + +/** Get your data from monday.com */ +export type QueryNotifications_SettingsArgs = { + channels?: InputMaybe>; + scope_id?: InputMaybe; + scope_type: ScopeType; + setting_kinds?: InputMaybe>; +}; + + +/** Get your data from monday.com */ +export type QueryObjectsArgs = { + ids?: InputMaybe>; + limit?: InputMaybe; + object_type_unique_keys?: InputMaybe>; + order_by?: InputMaybe; + privacy_kind?: InputMaybe; + state?: InputMaybe; + workspace_ids?: InputMaybe>; +}; + + +/** Get your data from monday.com */ +export type QueryRemote_OptionsArgs = { + input: RemoteOptionsInput; +}; + + +/** Get your data from monday.com */ +export type QuerySearch_BenchmarkArgs = { + boardId?: InputMaybe; + query: Scalars['String']['input']; + version: Scalars['String']['input']; +}; + + +/** Get your data from monday.com */ +export type QuerySearch_Cross_BoardArgs = { + query: Scalars['String']['input']; +}; + + /** Get your data from monday.com */ export type QueryTagsArgs = { ids?: InputMaybe>; @@ -3420,9 +6567,22 @@ export type QueryTimeline_ItemArgs = { /** Get your data from monday.com */ export type QueryUpdatesArgs = { + from_date?: InputMaybe; ids?: InputMaybe>; limit?: InputMaybe; page?: InputMaybe; + to_date?: InputMaybe; +}; + + +/** Get your data from monday.com */ +export type QueryUser_ConnectionsArgs = { + order?: InputMaybe; + page?: InputMaybe; + pageSize?: InputMaybe; + pagination?: InputMaybe; + withAutomations?: InputMaybe; + withStateValidation?: InputMaybe; }; @@ -3439,6 +6599,13 @@ export type QueryUsersArgs = { }; +/** Get your data from monday.com */ +export type QueryValidationsArgs = { + id: Scalars['ID']['input']; + type?: InputMaybe; +}; + + /** Get your data from monday.com */ export type QueryWebhooksArgs = { app_webhooks_only?: InputMaybe; @@ -3456,6 +6623,16 @@ export type QueryWorkspacesArgs = { state?: InputMaybe; }; +export type QuestionOptionInput = { + /** The label to display for the option */ + label: Scalars['String']['input']; +}; + +export type QuestionOrderInput = { + /** The unique identifier for the question. Used to target specific questions within a form. */ + id: Scalars['String']['input']; +}; + export type RatingValue = ColumnValue & { __typename?: 'RatingValue'; /** The column that this value belongs to. */ @@ -3473,6 +6650,37 @@ export type RatingValue = ColumnValue & { value?: Maybe; }; +/** Input type for requesting remote options for a field type, including dependencies, credentials, pagination, and search query. */ +export type RemoteOptionsInput = { + /** Map a credentialsKey to the credentials data. Example: { "my-credentials-key": { userCredentialsId: 123, accessToken: "abc" } } */ + credentials_values?: InputMaybe; + /** Map all the dependencies fieldKeys to their values. Example: { "my-field-key": { value: 123 }, "my-other-field-key": { value: 456 } } .The schema is: Record */ + dependencies_values?: InputMaybe; + /** The unique key of the field type */ + field_type_unique_key: Scalars['String']['input']; + /** Pagination data matching the schema of the field's remote options pagination data */ + page_request_data?: InputMaybe; + /** Search query */ + query?: InputMaybe; + /** Request specific values to fetch their title */ + values_to_fetch?: InputMaybe; +}; + +/** Response containing a list of remote options and pagination information */ +export type RemoteOptionsResponse = { + __typename?: 'RemoteOptionsResponse'; + /** Optional disclaimer text to display with the options */ + disclaimer?: Maybe; + /** Whether this is the last page of options */ + isLastPage?: Maybe; + /** Whether the options list supports pagination */ + isPaginated?: Maybe; + /** Data required to fetch the next page of options */ + nextPageRequestData?: Maybe; + /** List of available options */ + options?: Maybe>; +}; + /** Error that occurred while removing team owners. */ export type RemoveTeamOwnersError = { __typename?: 'RemoveTeamOwnersError'; @@ -3507,6 +6715,8 @@ export type RemoveTeamOwnersResult = { /** A reply for an update. */ export type Reply = { __typename?: 'Reply'; + /** The reply's assets/files. */ + assets?: Maybe>>; /** The reply's html formatted body. */ body: Scalars['String']['output']; /** The reply's creation date. */ @@ -3535,6 +6745,91 @@ export type ReplyViewersArgs = { page?: InputMaybe; }; +/** List of required column IDs for a board */ +export type RequiredColumns = { + __typename?: 'RequiredColumns'; + /** Array of required column IDs */ + required_column_ids: Array; +}; + +export type ResponseForm = { + __typename?: 'ResponseForm'; + /** Object containing accessibility settings such as language, alt text, and reading direction. */ + accessibility?: Maybe; + /** Boolean indicating if the form is currently accepting responses and visible to users. */ + active: Scalars['Boolean']['output']; + /** Object containing visual styling settings including colors, fonts, layout, and branding. */ + appearance?: Maybe; + /** Boolean indicating if this form was built or modified using AI functionality. */ + builtWithAI: Scalars['Boolean']['output']; + /** Boolean indicating if this form was initially created using AI assistance. */ + createWithAI: Scalars['Boolean']['output']; + /** Optional detailed description explaining the form purpose, displayed below the title. */ + description?: Maybe; + /** Object containing feature toggles and settings like password protection, response limits, etc. */ + features?: Maybe; + /** The unique identifier for the form. Auto-generated upon creation. */ + id: Scalars['Int']['output']; + /** Boolean indicating if responses are collected without identifying the submitter. */ + isAnonymous: Scalars['Boolean']['output']; + /** Boolean flag indicating if the form has been flagged for review due to suspicious content or activity. */ + isSuspicious: Scalars['Boolean']['output']; + /** The ID of the user who created and owns this form. Determines permissions. */ + ownerId?: Maybe; + /** Array of question objects that make up the form content, in display order. */ + questions?: Maybe>; + /** Array of tracking tags for categorization and analytics (e.g., UTM parameters for marketing tracking). */ + tags?: Maybe>; + /** The display title shown to users at the top of the form. */ + title: Scalars['String']['output']; + /** The unique identifier token for the form. Required for all form-specific operations. */ + token: Scalars['String']['output']; + /** The category or classification of the form for organizational purposes. */ + type?: Maybe; +}; + +/** notification settings scope types, the options are account user defaults or user private settings */ +export enum ScopeType { + AccountNewUserDefaults = 'AccountNewUserDefaults', + User = 'User' +} + +export type SearchAllResult = { + __typename?: 'SearchAllResult'; + /** The results of the search. */ + results?: Maybe>; +}; + +/** The results of the search for benchmark. */ +export type SearchBenchmarkResults = { + __typename?: 'SearchBenchmarkResults'; + data?: Maybe; +}; + +/** Response type for detailed board permissions. Contains information about the permissions that were set. */ +export type SetBoardPermissionResponse = { + __typename?: 'SetBoardPermissionResponse'; + /** The technical board write permissions value that was set (e.g., 'everyone', 'collaborators', 'owners'). */ + edit_permissions: BoardEditPermissions; + /** List of any actions that failed during the permission update process. */ + failed_actions?: Maybe>; +}; + +export enum SnapshotStatus { + Failed = 'failed', + Pending = 'pending', + Processing = 'processing', + Success = 'success' +} + +/** Direction for sorting items */ +export enum SortDirection { + /** Ascending order */ + Asc = 'ASC', + /** Descending order */ + Desc = 'DESC' +} + /** The possible states for a board or item. */ export enum State { /** Active only (Default). */ @@ -3547,6 +6842,28 @@ export enum State { Deleted = 'deleted' } +/** Status column information */ +export type StatusColumn = { + __typename?: 'StatusColumn'; + /** Is the column archived or not. */ + archived: Scalars['Boolean']['output']; + /** The column created at. */ + created_at?: Maybe; + /** The column description. */ + description?: Maybe; + /** The column id. */ + id?: Maybe; + /** status column settings object */ + settings?: Maybe; + settings_json?: Maybe; + /** The column title. */ + title?: Maybe; + /** The column updated at. */ + updated_at?: Maybe; + /** The column width. */ + width?: Maybe; +}; + export enum StatusColumnColors { AmericanGray = 'american_gray', Aquamarine = 'aquamarine', @@ -3619,7 +6936,7 @@ export type StatusLabelStyle = { export type StatusManagedColumn = { __typename?: 'StatusManagedColumn'; created_at?: Maybe; - created_by?: Maybe; + created_by?: Maybe; description?: Maybe; id?: Maybe; revision?: Maybe; @@ -3628,7 +6945,7 @@ export type StatusManagedColumn = { state?: Maybe; title?: Maybe; updated_at?: Maybe; - updated_by?: Maybe; + updated_by?: Maybe; }; export type StatusValue = ColumnValue & { @@ -3656,6 +6973,39 @@ export type StatusValue = ColumnValue & { value?: Maybe; }; +/** Object field type implementation */ +export type SubfieldsFieldType = FieldType & { + __typename?: 'SubfieldsFieldType'; + /** Default key for fields of this type */ + defaultFieldKey?: Maybe; + /** Dependency configuration specifying mandatory and optional field dependencies required to enable this field and compute its dynamic values. When fetching the permitted values for custom input fields via the remote_options query, you must provide these dependencies in the query input. */ + dependencyConfig?: Maybe; + /** Description of the field type */ + description?: Maybe; + /** Indicates if the object field type has remote subfields */ + hasRemoteSubfields?: Maybe; + /** Unique identifier for the field type */ + id?: Maybe; + /** List of field type implementations */ + implement?: Maybe>; + /** Unique key identifier for the field type */ + key?: Maybe; + /** Name of the field type */ + name?: Maybe; + /** Current state of the field type */ + state?: Maybe; + /** Unique key of the field type */ + uniqueKey?: Maybe; +}; + +/** Defines the type of the user's role as members of the object */ +export enum SubscriberKind { + /** User will be added as an owner of the object, granting them full control permissions. */ + Owner = 'OWNER', + /** User will be added as a subscriber to the object, receiving notifications about changes. */ + Subscriber = 'SUBSCRIBER' +} + /** The discounts granted to the subscription */ export type SubscriptionDiscount = { __typename?: 'SubscriptionDiscount'; @@ -3709,6 +7059,69 @@ export type SubtasksValue = ColumnValue & { value?: Maybe; }; +/** + * Input for creating table blocks. + * + * Behavior: + * - When a table is created, the system automatically generates `row_count × column_count` child "cell" blocks (one per cell). + * - The table block is a container. Each generated cell block has `parentBlockId === ` and is used to insert content. + * + * Important: + * - Always use the 2D matrix returned under `content[0].cells` to access cells. + * - This matrix is row-major: `matrix[rowIndex][columnIndex]`. + * - Do not rely on the order returned by `docs { blocks { ... } }`, as it's implementation-specific. + * + * Recommended workflow: + * 1. Create the table and capture its ID. + * 2. Read `content[0].cells` to get the cell ID matrix. + * 3. Use bulk create blocks to create all the child blocks (e.g. textBlock, imageBlock) with `parentBlockId = matrix[row][col]`. + * Use `afterBlockId` only to order siblings within the same cell. + */ +export type TableBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The number of columns in the table */ + column_count: Scalars['Int']['input']; + /** The column style configuration */ + column_style?: InputMaybe>; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; + /** The number of rows in the table */ + row_count: Scalars['Int']['input']; + /** The width of the table */ + width?: InputMaybe; +}; + +/** Content for a table block */ +export type TableContent = DocBaseBlockContent & { + __typename?: 'TableContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** 2-D array of cells (rows × columns). Each cell contains a blockId reference that represents the parent block for all content blocks within that cell. */ + cells?: Maybe>; + /** The column style configuration */ + column_style?: Maybe>; + /** The text direction of the block content */ + direction?: Maybe; + /** The width of the table */ + width?: Maybe; +}; + +/** A row of cells in a table */ +export type TableRow = { + __typename?: 'TableRow'; + /** The cells in this row */ + row_cells: Array; +}; + +/** Settings configuration for table view display options */ +export type TableViewSettingsInput = { + /** Column visibility configuration for the board view */ + columns?: InputMaybe; + /** The group by to apply to the board view */ + group_by?: InputMaybe; +}; + /** A tag */ export type Tag = { __typename?: 'Tag'; @@ -3797,6 +7210,47 @@ export type Template = { process_id?: Maybe; }; +/** Text block formatting types. Controls visual appearance and semantic meaning. */ +export enum TextBlock { + /** Code styling */ + Code = 'CODE', + /** Main document title (H1 equivalent) */ + LargeTitle = 'LARGE_TITLE', + /** Section heading (H2 equivalent) */ + MediumTitle = 'MEDIUM_TITLE', + /** Regular paragraph text */ + NormalText = 'NORMAL_TEXT', + /** Indented quote/blockquote styling */ + Quote = 'QUOTE', + /** Subsection heading (H3 equivalent) */ + SmallTitle = 'SMALL_TITLE' +} + +/** Content for a text block */ +export type TextBlockContent = DocBaseBlockContent & { + __typename?: 'TextBlockContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text content in delta format - array of operations with insert content and optional attributes */ + delta_format: Array; + /** The text direction of the block content */ + direction?: Maybe; +}; + +/** Input for creating text blocks (normal text, titles, quote, code) */ +export type TextBlockInput = { + alignment?: InputMaybe; + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The text content in delta format - array of operations with insert content and optional attributes */ + delta_format: Array; + direction?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; + /** The specific type of text block (defaults to normal text) */ + text_block_type?: InputMaybe; +}; + export type TextValue = ColumnValue & { __typename?: 'TextValue'; /** The column that this value belongs to. */ @@ -3980,6 +7434,37 @@ export type UpdateViewersArgs = { page?: InputMaybe; }; +/** Input for updating an app feature with its associated data and release information. */ +export type UpdateAppFeatureInput = { + /** The app feature data to update. This structure is dynamic and depends on the different app feature types. */ + data?: InputMaybe; + /** The deployment data to update. https://developer.monday.com/apps/docs/deploy-your-app */ + deployment?: InputMaybe; +}; + +/** Attributes for updating a board's position and location */ +export type UpdateBoardHierarchyAttributesInput = { + /** The ID of the account product where the board should be placed */ + account_product_id?: InputMaybe; + /** The ID of the folder where the board should be placed */ + folder_id?: InputMaybe; + /** The position of the board in the left pane */ + position?: InputMaybe; + /** The ID of the workspace where the board should be placed */ + workspace_id?: InputMaybe; +}; + +/** Result of updating a board's position */ +export type UpdateBoardHierarchyResult = { + __typename?: 'UpdateBoardHierarchyResult'; + /** The updated board */ + board?: Maybe; + /** A message about the operation result */ + message?: Maybe; + /** Whether the operation was successful */ + success: Scalars['Boolean']['output']; +}; + export type UpdateDropdownColumnSettingsInput = { labels: Array; }; @@ -4028,12 +7513,81 @@ export type UpdateEmailDomainResult = { updated_users?: Maybe>; }; +export type UpdateFavoriteResultType = { + __typename?: 'UpdateFavoriteResultType'; + /** The updated favorite's object */ + favorites?: Maybe; +}; + +export type UpdateFormInput = { + /** Optional description text providing context about the form purpose. */ + description?: InputMaybe; + /** Ordered array of question IDs for reordering. Must include all existing question IDs. */ + questions?: InputMaybe>; + /** The title text for the form. Must be at least 1 character long. */ + title?: InputMaybe; +}; + +export type UpdateFormSettingsInput = { + /** Object containing accessibility options such as language, alt text, etc. */ + accessibility?: InputMaybe; + /** Object containing visual styling including colors, layout, fonts, and branding elements. */ + appearance?: InputMaybe; + /** Object containing form features including but not limited to password protection, response limits, login requirements, etc. */ + features?: InputMaybe; +}; + +export type UpdateFormTagInput = { + /** The value of the tag */ + value?: InputMaybe; +}; + +export type UpdateMention = { + /** The object id. */ + id: Scalars['ID']['input']; + type: MentionType; +}; + +export type UpdateObjectHierarchyPositionInput = { + /** The new folder ID to move the object to */ + newFolder?: InputMaybe; + /** The new position for the object */ + newPosition?: InputMaybe; + /** The favorite's object to update */ + object: HierarchyObjectIdInputType; +}; + +/** Input for updating an object */ +export type UpdateObjectInput = { + /** The new description for the object */ + description?: InputMaybe; + /** The new name for the object. */ + name?: InputMaybe; + /** The new privacy kind for the object. */ + privacy_kind?: InputMaybe; +}; + /** The pin to top data of the update. */ export type UpdatePin = { __typename?: 'UpdatePin'; item_id: Scalars['ID']['output']; }; +export type UpdateQuestionInput = { + /** Optional explanatory text providing additional context, instructions, or examples for the question. */ + description?: InputMaybe; + /** Boolean indicating if the question must be answered before form submission. */ + required?: InputMaybe; + /** Question-specific configuration object that varies by question type. */ + settings?: InputMaybe; + /** The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response. */ + title?: InputMaybe; + /** The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). */ + type: FormQuestionType; + /** Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed. */ + visible?: InputMaybe; +}; + export type UpdateStatusColumnSettingsInput = { labels: Array; }; @@ -4102,11 +7656,37 @@ export type UpdateUsersRoleResult = { updated_users?: Maybe>; }; +export type UpdateWorkflowInput = { + /** ID of the workflow to update */ + id: Scalars['Int']['input']; + /** New set of workflow blocks to replace existing ones */ + workflowBlocks: Array; + /** Variables used within this workflow. To get the accurate JSON schema call the GraphQL query 'get_workflow_variable_schemas' */ + workflowVariables: Array; +}; + +export type UpdateWorkflowMetadataInput = { + /** New description for the workflow */ + description?: InputMaybe; + /** ID of the workflow to update */ + id: Scalars['Int']['input']; + /** New title for the workflow */ + title?: InputMaybe; +}; + +export type UpdateWorkflowResult = { + __typename?: 'UpdateWorkflowResult'; + /** Workflow numeric ID (supports both integer and bigint) */ + id?: Maybe; +}; + /** Attributes of a workspace to update */ export type UpdateWorkspaceAttributesInput = { + /** The target account product's ID to move the workspace to */ + account_product_id?: InputMaybe; /** The description of the workspace to update */ description?: InputMaybe; - /** The kind of the workspace to update (open / closed) */ + /** The kind of the workspace to update (open / closed / template) */ kind?: InputMaybe; /** The name of the workspace to update */ name?: InputMaybe; @@ -4137,6 +7717,7 @@ export type User = { enabled: Scalars['Boolean']['output']; /** The token of the user for email to board. */ encrypt_api_token?: Maybe; + greeting?: Maybe; /** The user's unique identifier. */ id: Scalars['ID']['output']; /** Is the user an account admin. */ @@ -4232,7 +7813,6 @@ export enum UserRole { Admin = 'ADMIN', Guest = 'GUEST', Member = 'MEMBER', - PortalUser = 'PORTAL_USER', ViewOnly = 'VIEW_ONLY' } @@ -4241,6 +7821,18 @@ export type UserUpdateInput = { user_id: Scalars['ID']['input']; }; +export type Validations = { + __typename?: 'Validations'; + /** Array of required column IDs */ + required_column_ids?: Maybe>; + /** Validation rules */ + rules?: Maybe; +}; + +export enum ValidationsEntityType { + Board = 'board' +} + /** An object containing the API version details */ export type Version = { __typename?: 'Version'; @@ -4272,6 +7864,51 @@ export enum VersionKind { ReleaseCandidate = 'release_candidate' } +/** Input for creating video blocks */ +export type VideoBlockInput = { + /** Optional UUID for the block */ + block_id?: InputMaybe; + /** The parent block id to append the created block under. */ + parent_block_id?: InputMaybe; + /** The raw URL of the video */ + raw_url: Scalars['String']['input']; + /** The width of the video */ + width?: InputMaybe; +}; + +/** Content for a video block */ +export type VideoContent = DocBaseBlockContent & { + __typename?: 'VideoContent'; + /** The alignment of the block content */ + alignment?: Maybe; + /** The text direction of the block content */ + direction?: Maybe; + /** The raw URL of the video */ + url: Scalars['String']['output']; + /** The width of the video */ + width?: Maybe; +}; + +/** Available view types for board displays */ +export enum ViewKind { + /** App view for feature-specific board display */ + App = 'APP', + /** Dashboard view for displaying dashboard view */ + Dashboard = 'DASHBOARD', + /** Form view for input and data entry */ + Form = 'FORM', + /** Table view for displaying items in a structured table format */ + Table = 'TABLE' +} + +/** Type of mutation operation */ +export enum ViewMutationKind { + /** Create operation */ + Create = 'CREATE', + /** Update operation */ + Update = 'UPDATE' +} + export type VoteValue = ColumnValue & { __typename?: 'VoteValue'; /** The column that this value belongs to. */ @@ -4378,6 +8015,203 @@ export type WeekValue = ColumnValue & { value?: Maybe; }; +export type Widget = { + __typename?: 'Widget'; + /** The unique identifier of the widget. */ + id?: Maybe; +}; + +/** Widget configuration input: config_data (required) and settings (required as JSON). */ +export type WidgetConfigurationInput = { + /** General configuration data for the widget. */ + config_data: ConfigDataInput; + /** Widget-specific settings as JSON. Each widget type has its own JSON schema that defines the required and optional fields. The settings object must conform to the JSON schema for the specific widget type being created. To discover available widget types and their schemas, use the all_widgets_schema query which returns the complete JSON schema for each supported widget type. */ + settings: Scalars['JSON']['input']; +}; + +/** + * The type of entity to which the widget is being added. + * - `Overview`: Dashboard + * - `Item`: Can be a Board view or Doc, depending on the specific Item + */ +export enum WidgetEntityType { + Item = 'Item', + Overview = 'Overview' +} + +/** UI widget placed on a dashboard, board, or doc. */ +export type WidgetModel = { + __typename?: 'WidgetModel'; + /** ID of the parent entity that hosts the widget (dashboard, board, or doc). */ + entity_id?: Maybe; + /** Kind of parent entity: `Overview`, `Item`. */ + entity_type?: Maybe; + /** Stable unique identifier of this widget. */ + id?: Maybe; + /** Widget label shown in the UI (1–255 UTF-8 chars). */ + name?: Maybe; + /** The type of widget. */ + type?: Maybe; +}; + +/** Information about a widget type and its JSON schema */ +export type WidgetSchemaInfo = { + __typename?: 'WidgetSchemaInfo'; + /** The JSON schema (draft 7) for this widget type */ + schema?: Maybe; + /** The widget type identifier (e.g., ChartOverviewSection) */ + widget_type?: Maybe; +}; + +/** The type of widget to create. Each type corresponds to a different visualization or data component. */ +export enum WidgetType { + BatteryOverviewSection = 'BatteryOverviewSection', + ChartOverviewSection = 'ChartOverviewSection', + CounterOverviewSection = 'CounterOverviewSection' +} + +export type Workflow = { + __typename?: 'Workflow'; + /** Reference ID of the creator app feature */ + creatorAppFeatureReferenceId?: Maybe; + /** ID of the creator app */ + creatorAppId?: Maybe; + /** Detailed description of the workflow */ + description?: Maybe; + /** Instance ID of the host */ + hostInstanceId?: Maybe; + /** Type of host for this workflow */ + hostType?: Maybe; + /** Workflow numeric ID (supports both integer and bigint) */ + id?: Maybe; + /** Notice/Error message for the workflow */ + noticeMessage?: Maybe; + /** Title of the workflow */ + title?: Maybe; + /** Define the workflow's steps and the configuration of each step */ + workflowBlocks?: Maybe>; + /** Hierarchy level the workflow is hosted in */ + workflowHostData?: Maybe; + /** Variables used within this workflow. To get the accurate JSON schema call the GraphQL query 'get_workflow_variable_schemas' */ + workflowVariables?: Maybe; +}; + +export type WorkflowBlock = { + __typename?: 'WorkflowBlock'; + /** Reference ID of the block */ + blockReferenceId?: Maybe; + /** Configuration for credential sources */ + credentialsSourceConfig?: Maybe; + /** Defines the input fields of the workflow block. This corresponds to the input fields defined by the block used in the Workflow Block. You must call the remote_options query to retrieve the allowed values for any custom input field before configuring it. */ + inputFields?: Maybe>; + kind?: Maybe; + /** Configuration for the next workflow blocks. To get the accurate JSON schema call the graphQL query 'get_workflow_block_next_mapping_schemas */ + nextWorkflowBlocksConfig?: Maybe; + /** Title of the workflow block */ + title?: Maybe; + /** Unique node identifier within the workflow */ + workflowNodeId?: Maybe; +}; + +export type WorkflowBlockFieldInput = { + /** The block's field key */ + fieldKey: Scalars['String']['input']; + /** Key of the workflow variable defining the configuration for the field key. Always a positive number */ + workflowVariableKey: Scalars['Int']['input']; +}; + +export type WorkflowBlockInput = { + /** Reference ID of the block */ + blockReferenceId: Scalars['Int']['input']; + /** Configuration for credential sources */ + credentialsSourceConfig?: InputMaybe; + /** Defines the input fields of the workflow block. This corresponds to the input fields defined by the block used in the Workflow Block. You must call the remote_options query to retrieve the allowed values for any custom input field before configuring it. */ + inputFields: Array; + kind?: InputMaybe; + /** Configuration for the next workflow blocks. To get the accurate JSON schema call the graphQL query 'get_workflow_block_next_mapping_schemas */ + nextWorkflowBlocksConfig?: InputMaybe; + /** Title of the workflow block */ + title: Scalars['String']['input']; + /** Unique node identifier within the workflow */ + workflowNodeId: Scalars['Int']['input']; +}; + +export type WorkflowBlockInputField = { + __typename?: 'WorkflowBlockInputField'; + /** The block's field key */ + fieldKey?: Maybe; + /** Key of the workflow variable defining the configuration for the field key. Always a positive number */ + workflowVariableKey?: Maybe; +}; + +/** The kind of workflow block. This is the type of the block that is used in the UI */ +export enum WorkflowBlockKind { + /** A wait block */ + Wait = 'WAIT' +} + +/** The json schema definition for a given workflow block next mapping kind */ +export type WorkflowBlockNextMappingSchema = { + __typename?: 'WorkflowBlockNextMappingSchema'; + /** The kind of workflow block next mapping */ + kind?: Maybe; + /** JSON schema for this workflow block next mapping kind */ + schema?: Maybe; +}; + +/** Hierarchy level the workflow is hosted in */ +export type WorkflowHostData = { + __typename?: 'WorkflowHostData'; + /** Instance ID of the host */ + id?: Maybe; + /** Type of host for this workflow */ + type?: Maybe; +}; + +export type WorkflowHostDataInput = { + /** Instance ID of the host */ + id: Scalars['String']['input']; + /** Type of host for this workflow */ + type: HostType; +}; + +export type WorkflowInput = { + /** Reference ID of the creator app feature */ + creatorAppFeatureReferenceId?: InputMaybe; + /** ID of the creator app */ + creatorAppId?: InputMaybe; + /** Detailed description of the workflow */ + description: Scalars['String']['input']; + /** Title of the workflow */ + title: Scalars['String']['input']; + /** Define the workflow's steps and the configuration of each step */ + workflowBlocks: Array; + /** Hierarchy level the workflow is hosted in */ + workflowHostData: WorkflowHostDataInput; + /** Variables used within this workflow. To get the accurate JSON schema call the GraphQL query 'get_workflow_variable_schemas' */ + workflowVariables: Array; +}; + +/** The kind and JSON schema definition for a given workflow variable kind */ +export type WorkflowVariableSchema = { + __typename?: 'WorkflowVariableSchema'; + /** The kind of workflow variable */ + kind?: Maybe; + /** JSON schema of the workflow variable */ + schema?: Maybe; +}; + +export enum WorkflowVariableSourceKind { + /** Points to the host ID value where the workflow is hosted (board ID, object ID, account ID, etc.). It's auto calculated during when the workflow runs */ + HostMetadata = 'host_metadata', + /** A value from a previous node output */ + NodeResults = 'node_results', + /** A value from a reference to another workflow variable */ + Reference = 'reference', + /** A value defined by the user */ + UserConfig = 'user_config' +} + /** A monday.com workspace. */ export type Workspace = { __typename?: 'Workspace'; @@ -4391,7 +8225,7 @@ export type Workspace = { id?: Maybe; /** Returns true if it is the default workspace of the product or account */ is_default_workspace?: Maybe; - /** The workspace's kind (open / closed). */ + /** The workspace's kind (open / closed / template). */ kind?: Maybe; /** The workspace's name. */ name: Scalars['String']['output']; @@ -4455,7 +8289,9 @@ export enum WorkspaceKind { /** Closed workspace, available to enterprise only. */ Closed = 'closed', /** Open workspace. */ - Open = 'open' + Open = 'open', + /** Template workspace. */ + Template = 'template' } /** The workspace's settings. */ @@ -4828,7 +8664,7 @@ export type ChangeItemPositionMutationVariables = Exact<{ item_id: Scalars['ID']['input']; relative_to?: InputMaybe; position_relative_method?: InputMaybe; - group_id?: InputMaybe; + group_id?: InputMaybe; group_top?: InputMaybe; }>; diff --git a/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts b/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts index cc7e18f9..e218de1c 100644 --- a/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts +++ b/packages/agent-toolkit/src/monday-graphql/queries.graphql.ts @@ -422,7 +422,7 @@ export const changeItemPosition = gql` $item_id: ID! $relative_to: ID $position_relative_method: PositionRelative - $group_id: String + $group_id: ID $group_top: Boolean ) { change_item_position( From edb92bd188cdd01033e9ee6de6e8e76ca55cfc8d Mon Sep 17 00:00:00 2001 From: Lorenzo Paoliani Date: Fri, 11 Jul 2025 17:07:55 +0100 Subject: [PATCH 6/7] Remove local arg validation and add API version check --- packages/agent-toolkit/fetch-schema.sh | 1 + .../change-item-position-tool.ts | 33 ++++--------------- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/packages/agent-toolkit/fetch-schema.sh b/packages/agent-toolkit/fetch-schema.sh index 4697f1d9..91e1328a 100755 --- a/packages/agent-toolkit/fetch-schema.sh +++ b/packages/agent-toolkit/fetch-schema.sh @@ -1,4 +1,5 @@ #!/bin/bash API_VERSION="dev" SCHEMA_PATH="src/monday-graphql/schema.graphql" +# --fail flag will not write to file when the request fails curl --fail "https://api.monday.com/v2/get_schema?format=sdl&version=${API_VERSION}" -o ${SCHEMA_PATH} \ No newline at end of file diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts index ba891a06..bfb4105f 100644 --- a/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/change-item-position-tool.ts @@ -24,16 +24,9 @@ export const changeItemPositionToolSchema = { .optional() .describe('Whether to position the item at the top of the group (true) or bottom (false)'), }; +export type ChangeItemPositionToolInput = typeof changeItemPositionToolSchema; -export const changeItemPositionInBoardToolSchema = { - boardId: z.number().describe('The ID of the board that contains the item to be moved'), - ...changeItemPositionToolSchema, -}; - -export type ChangeItemPositionToolInput = - | typeof changeItemPositionToolSchema - | typeof changeItemPositionInBoardToolSchema; - +const MIN_API_VERSION = '2025-10'; export class ChangeItemPositionTool extends BaseMondayApiTool { name = 'change_item_position'; type = ToolType.WRITE; @@ -49,28 +42,14 @@ export class ChangeItemPositionTool extends BaseMondayApiTool): Promise> { - const boardId = - this.context?.boardId ?? (input as ToolInputType).boardId; - // Validate the input based on the positioning method - if (input.positionRelativeMethod && !input.relativeTo) { - throw new Error('relativeTo is required when using positionRelativeMethod'); - } - - if (input.groupTop !== undefined && !input.groupId) { - throw new Error('groupId is required when using groupTop'); - } - - if (!input.positionRelativeMethod && !input.groupId) { - throw new Error('Either positionRelativeMethod with relativeTo or groupId with groupTop must be provided'); + const apiVersion = this.mondayApi.apiVersion; + if (apiVersion != 'dev' || apiVersion < MIN_API_VERSION) { + throw new Error(`This tool is not supported in the ${apiVersion} API version`); } const variables: ChangeItemPositionMutationVariables = { From 5df8542e255e97e4410ed0098420e6d3a8ad296f Mon Sep 17 00:00:00 2001 From: Lorenzo Paoliani Date: Fri, 11 Jul 2025 17:12:24 +0100 Subject: [PATCH 7/7] Default API version to dev --- packages/monday-api-mcp/src/utils/args/args.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/monday-api-mcp/src/utils/args/args.config.ts b/packages/monday-api-mcp/src/utils/args/args.config.ts index 3dd39495..24a5b877 100644 --- a/packages/monday-api-mcp/src/utils/args/args.config.ts +++ b/packages/monday-api-mcp/src/utils/args/args.config.ts @@ -12,7 +12,7 @@ export const ARG_CONFIGS: ArgConfig[] = [ flags: ['--version', '-v'], description: 'Monday API version', required: false, - defaultValue: undefined, + defaultValue: "dev", }, { name: 'readOnlyMode',