AI Column

Learn how to configure and remove AI automations on monday.com columns using the platform API

📘

Only available in API versions 2026-10 and later

The AI column lets you automate text analysis, categorization, translation, and more using AI. Each column is configured with a specific AI block type that determines what the AI does and which source columns it reads from.

Via the API, you can configure an AI block on any compatible column or remove AI configuration from a column.

Mutations

Required scope: boards:write

configure_categorize_ai_column

Assigns a label or category to an item based on content analysis. The AI selects from the target column's existing labels. Returns AiColumnResult.

mutation {
  configure_categorize_ai_column(
    board_id: "1234567890"
    column_id: "status_col"
    source_type: item_name
    additional_instructions: "Use only: Urgent, Normal, Low"
    extra_settings: { run_backfill: true }
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a status or dropdown column.
source_typeAiColumnSourceType!Where the AI reads input from.item_name
thread
column
emails_and_activities
source_column_idStringRequired when source_type is column. The column to read input from.
additional_instructionsStringCustom categorization rules. Max 3000 characters.
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.
📘

The AI assigns labels from the target column's existing options. If additional_instructions references labels that don't exist on the column, the automation will be created successfully but won't produce useful results at runtime. Ensure the target column's labels match the intended categories.


configure_summarize_ai_column

Generates a concise summary of the input text. Returns AiColumnResult.

mutation {
  configure_summarize_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    source_type: thread
    additional_instructions: "3 bullet points max"
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a text or long_text column.
source_typeAiColumnSourceType!Where the AI reads input from.item_name
thread
column
source_column_idStringRequired when source_type is column. The column to read input from.
additional_instructionsStringFormat requirements or focus areas. Max 3000 characters.
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.

configure_translate_ai_column

Translates text to a target language. Returns AiColumnResult.

mutation {
  configure_translate_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    source_type: item_name
    target_language: spanish
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a text or long_text column.
source_typeAiColumnSourceType!Where the AI reads input from.item_name
column
source_column_idStringRequired when source_type is column. The column to read input from.
target_languageAiColumnLanguage!The language to translate text into. See AiColumnLanguage for supported values.
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.

configure_improve_text_ai_column

Rewrites or fixes text to improve quality. Returns AiColumnResult.

mutation {
  configure_improve_text_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    source_type: column
    source_column_id: "long_text_col"
    tone: professional
    length: shorter
    refinement_type: minimal_changes
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a text or long_text column.
source_typeAiColumnSourceType!Where the AI reads input from.item_name
column
source_column_idStringRequired when source_type is column. The column to read input from.
toneAiColumnToneWriting style. See AiColumnTone for supported values.
lengthAiColumnImproverLengthOutput length relative to input.same
shorter
longer
refinement_typeAiColumnRefinementLevelType of improvement.minimal_changes
moderate_changes
high_creativity
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.

configure_extract_ai_column

Extracts structured information from text. Returns AiColumnResult.

mutation {
  configure_extract_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    source_type: column
    source_column_id: "long_text_col"
    entity_type: email_address
  ) {
    column_id
  }
}
mutation {
  configure_extract_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    source_type: item_name
    entity_type: custom
    custom_instructions: "the invoice number"
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a text, long_text, date, email, phone, or link column.
source_typeAiColumnSourceType!Where the AI reads input from.item_name
thread
column
source_column_idStringRequired when source_type is column. The column to read input from.
entity_typeAiColumnEntityType!The type of entity to extract. Use custom with custom_instructions for free-form extraction. See AiColumnEntityType for all values.
custom_instructionsStringRequired when entity_type is custom. Describes what to extract. Max 3000 characters.
additional_instructionsStringContextual qualifiers (e.g., "of the boss"). Max 3000 characters.
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.

configure_open_block_ai_column

Flexible, general-purpose block for complex or custom prompts. Source columns are referenced inline in the ai_query using {pulse.column_id} syntax. Returns AiColumnResult.

mutation {
  configure_open_block_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    ai_query: "Analyze {pulse.description_col} and rate complexity from 1-5"
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescription
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a text, long_text, numbers, date, status, or dropdown column.
ai_queryString!The natural-language instruction. Reference board columns with {pulse.column_id}, the item name with {pulse.name}, or subitem columns with {pulse.subitem.column_id}. Max 3000 characters.
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.
📘

This mutation does not accept source_type or source_column_id — source columns are parsed from the ai_query text using the {pulse.column_id} reference syntax.


configure_write_me_ai_column

Generates new text content from a prompt. Source columns are referenced inline in the ai_query using {pulse.column_id} syntax. Returns AiColumnResult.

mutation {
  configure_write_me_ai_column(
    board_id: "1234567890"
    column_id: "text_col"
    ai_query: "Write a professional follow-up email about {pulse.name}"
    tone: professional
    length: paragraph
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a text, long_text, or doc column.
ai_queryString!Prompt guiding content generation. Reference board columns with {pulse.column_id}, the item name with {pulse.name}, or subitem columns with {pulse.subitem.column_id}. Max 3000 characters.
toneAiColumnTone!Writing tone/style. See AiColumnTone for supported values.
lengthAiColumnOutputLength!Approximate desired output length.sentence
paragraph
brief
in_depth
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.
📘

This mutation does not accept source_type or source_column_id — source columns are parsed from the ai_query text using the {pulse.column_id} reference syntax.


configure_person_assignment_ai_column

Assigns a person to an item based on rules or context. Returns AiColumnResult.

mutation {
  configure_person_assignment_ai_column(
    board_id: "1234567890"
    column_id: "person_col"
    source_type: thread
    groups: "[{\"id\": 1, \"name\": \"Alice\"}, {\"id\": 2, \"name\": \"Bob\"}]"
  ) {
    column_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The board containing the column.
column_idString!The column to configure with AI. Must be a people column.
source_typeAiColumnSourceType!Where the AI reads input from.item_name
thread
column
source_column_idStringRequired when source_type is column. The column to read input from.
groupsString!Stringified JSON array of available people or teams (e.g., [{"id": 1, "name": "Alice"}]).
extra_settingsAiColumnExtraSettingsInputControls whether to apply the AI automation to existing items.

remove_ai_from_column

Removes all AI configuration from a column. Returns AiColumnRemoveResult.

mutation {
  remove_ai_from_column(
    board_id: "1234567890"
    column_id: "text_col"
  ) {
    column_id
    success
  }
}

Arguments

ArgumentTypeDescription
board_idID!The board containing the column.
column_idString!The column to remove AI from.

Other types

AiColumnResult

Returned by all configure_*_ai_column mutations.

FieldTypeDescription
column_idString!The column that was configured.

AiColumnRemoveResult

Returned by remove_ai_from_column.

FieldTypeDescription
column_idString!The column that had AI removed.
successBoolean!Always true — errors throw a GraphQL error.

AiColumnExtraSettingsInput

FieldTypeDescription
run_backfillBooleanWhether to immediately apply the AI automation to existing items. When true, up to 200 items are processed. Defaults to true.

AiColumnSourceType

Enum ValueDescription
item_nameUses the item's name as input.
threadUses the item's updates thread as input.
columnUses the value of a specified source column. Requires source_column_id.
emails_and_activitiesUses emails and activity data as input.

AiColumnTone

Used by configure_improve_text_ai_column and configure_write_me_ai_column.

Enum ValueDescription
empathicWarm and understanding.
promotionalPersuasive and marketing-focused.
confidentAssertive and decisive.
professionalFormal and business-appropriate.
naturalConversational and unpretentious.
casualRelaxed and informal.
friendlyApproachable and warm.
samePreserve the original tone.

AiColumnOutputLength

Used by configure_write_me_ai_column.

Enum ValueDescription
sentenceA single sentence.
paragraphA short paragraph.
briefA brief overview.
in_depthA detailed, longer output.

AiColumnLanguage

Used by configure_translate_ai_column. Supported values: english, spanish, french, german, hebrew, chinese, korean, arabic, bengali, danish, dutch, hindi, indonesian, italian, japanese, norwegian, polish, portuguese, russian, swedish, thai, turkish, vietnamese.

AiColumnEntityType

Used by configure_extract_ai_column.

Enum ValueDescription
email_addressAn email address.
first_nameA person's first name.
last_nameA person's last name.
phone_numberA phone number.
company_nameA company name.
domain_nameA domain or website.
urlA URL.
dateA date.
timeA time.
yearA year.
customA custom entity defined by custom_instructions.

Error codes

Invalid inputs are rejected with a GraphQL error containing a specific code in extensions.

CodeMeaning
INVALID_COLUMN_IDcolumn_id does not exist on the board.
INVALID_COLUMN_TYPEcolumn_id type is incompatible with the block.
INVALID_SOURCE_COLUMN_IDsource_column_id does not exist on the board.
SELF_REFERENCING_COLUMNsource_column_id is the same as column_id.
UNSUPPORTED_SOURCE_COLUMN_TYPESource column type is not supported for this block.
INVALID_COLUMN_REFERENCEA {pulse.column_id} reference in ai_query points to a non-existent or unsupported column.
EMPTY_QUERY_FIELDSai_query contains no data column references.
QUERY_TOO_LONGai_query exceeds 3000 characters.
INSTRUCTIONS_TOO_LONGadditional_instructions or custom_instructions exceeds 3000 characters.
INVALID_SOURCE_TYPEsource_type is not in the allowed set for this block.
MISSING_SOURCE_COLUMN_IDsource_type is column but source_column_id was not provided.
MISSING_CUSTOM_INSTRUCTIONSentity_type is custom but custom_instructions was not provided.

Example error response:

{
  "errors": [
    {
      "message": "Column \"text_col\" is of type \"text\", which is not supported as a target for categorize. Allowed types: status, dropdown",
      "extensions": {
        "code": "INVALID_COLUMN_TYPE"
      }
    }
  ]
}