Checkbox Custom Field

Create boolean checkbox fields for yes/no or true/false data


Checkbox custom fields provide a simple boolean (true/false) input for tasks. They’re perfect for binary choices, status indicators, or tracking whether something has been completed.

Basic Example

Create a simple checkbox field:

mutation CreateCheckboxField {
  createCustomField(input: {
    name: "Reviewed"
    type: CHECKBOX
  }) {
    id
    name
    type
  }
}

Advanced Example

Create a checkbox field with description and validation:

mutation CreateDetailedCheckbox {
  createCustomField(input: {
    name: "Customer Approved"
    type: CHECKBOX
    description: "Check this box when the customer has approved the work"
  }) {
    id
    name
    type
    description
  }
}

Input Parameters

CreateCustomFieldInput

ParameterTypeRequiredDescription
nameString!✅ YesDisplay name of the checkbox
typeCustomFieldType!✅ YesMust be CHECKBOX
descriptionStringNoHelp text shown to users

Setting Checkbox Values

To set or update a checkbox value on a task:

mutation CheckTheBox {
  setTodoCustomField(input: {
    todoId: "todo_123"
    customFieldId: "field_456"
    checked: true
  })
}

To uncheck a checkbox:

mutation UncheckTheBox {
  setTodoCustomField(input: {
    todoId: "todo_123"
    customFieldId: "field_456"
    checked: false
  })
}

SetTodoCustomFieldInput Parameters

ParameterTypeRequiredDescription
todoIdString!✅ YesID of the task to update
customFieldIdString!✅ YesID of the checkbox custom field
checkedBooleanNoTrue to check, false to uncheck

Creating Tasks with Checkbox Values

When creating a new task with checkbox values:

mutation CreateTaskWithCheckbox {
  createTodo(input: {
    title: "Review contract"
    todoListId: "list_123"
    customFields: [{
      customFieldId: "checkbox_field_id"
      value: "true"  # Pass as string
    }]
  }) {
    id
    title
    customFields {
      id
      customField {
        name
        type
      }
      checked
    }
  }
}

Accepted String Values

When creating tasks, checkbox values must be passed as strings:

String ValueResult
"true"✅ Checked (case-sensitive)
"1"✅ Checked
"checked"✅ Checked (case-sensitive)
Any other value❌ Unchecked

Note: String comparisons during task creation are case-sensitive. The values must exactly match "true", "1", or "checked" to result in a checked state.

Response Fields

TodoCustomField Response

FieldTypeDescription
idID!Unique identifier for the field value
uidString!Alternative unique identifier
customFieldCustomField!The custom field definition
checkedBooleanThe checkbox state (true/false/null)
todoTodo!The task this value belongs to
createdAtDateTime!When the value was created
updatedAtDateTime!When the value was last modified

Automation Integration

Checkbox fields trigger different automation events based on state changes:

ActionEvent TriggeredDescription
Check (false → true)CUSTOM_FIELD_ADDEDTriggered when checkbox is checked
Uncheck (true → false)CUSTOM_FIELD_REMOVEDTriggered when checkbox is unchecked

This allows you to create automations that respond to checkbox state changes, such as:

  • Sending notifications when items are approved
  • Moving tasks when review checkboxes are checked
  • Updating related fields based on checkbox states

Data Import/Export

Importing Checkbox Values

When importing data via CSV or other formats:

  • "true", "yes" → Checked (case-insensitive)
  • Any other value (including "false", "no", "0", empty) → Unchecked

Exporting Checkbox Values

When exporting data:

  • Checked boxes export as "X"
  • Unchecked boxes export as empty string ""

Required Permissions

ActionRequired Permission
Create checkbox fieldOWNER or ADMIN role at project level
Update checkbox fieldOWNER or ADMIN role at project level
Set checkbox valueStandard task edit permissions (excluding VIEW_ONLY and COMMENT_ONLY roles)
View checkbox valueStandard task view permissions (authenticated users in company/project)

Error Responses

Invalid Value Type

{
  "errors": [{
    "message": "Invalid value type for checkbox field",
    "extensions": {
      "code": "CUSTOM_FIELD_VALUE_PARSE_ERROR"
    }
  }]
}

Field Not Found

{
  "errors": [{
    "message": "Custom field not found",
    "extensions": {
      "code": "CUSTOM_FIELD_NOT_FOUND"
    }
  }]
}

Best Practices

Naming Conventions

  • Use clear, action-oriented names: “Approved”, “Reviewed”, “Is Complete”
  • Avoid negative names that confuse users: prefer “Is Active” over “Is Inactive”
  • Be specific about what the checkbox represents

When to Use Checkboxes

  • Binary choices: Yes/No, True/False, Done/Not Done
  • Status indicators: Approved, Reviewed, Published
  • Feature flags: Has Priority Support, Requires Signature
  • Simple tracking: Email Sent, Invoice Paid, Item Shipped

When NOT to Use Checkboxes

  • When you need more than two options (use SELECT_SINGLE instead)
  • For numeric or text data (use NUMBER or TEXT fields)
  • When you need to track who checked it or when (use audit logs)

Common Use Cases

  1. Approval Workflows

    • “Manager Approved”
    • “Client Sign-off”
    • “Legal Review Complete”
  2. Task Management

    • “Is Blocked”
    • “Ready for Review”
    • “High Priority”
  3. Quality Control

    • “QA Passed”
    • “Documentation Complete”
    • “Tests Written”
  4. Administrative Flags

    • “Invoice Sent”
    • “Contract Signed”
    • “Follow-up Required”

Limitations

  • Checkbox fields can only store true/false values (no tri-state or null after initial set)
  • No default value configuration (always starts as null until set)
  • Cannot store additional metadata like who checked it or when
  • No conditional visibility based on other field values