Complete API reference for managing custom fields in Blue - create, configure, and use custom fields to extend your data structure
Overview
Custom fields allow you to extend Blue's standard record structure with additional data fields specific to your business needs. They provide a powerful way to capture structured data beyond the built-in fields like title, description, and due date.
Custom fields are defined at the project level and can be used across all records (todos) within that project. Each field has a specific type that determines its validation rules, input format, and display behavior.
Available Operations
Core Field Management
Operation |
Description |
Link |
List Custom Fields |
Query and filter custom fields |
View Details → |
Create Custom Field |
Add new custom fields to projects |
View Details → |
Delete Custom Field |
Remove custom fields with proper cleanup |
View Details → |
Field Values
Operation |
Description |
Link |
Set Field Values |
Set and update custom field values on records |
View Details → |
Custom Field Types
Text Fields
Type |
Description |
Use Cases |
Link |
TEXT_SINGLE |
Single line text input |
Names, titles, short descriptions |
View Details → |
TEXT_MULTI |
Multi-line text area |
Long descriptions, notes, comments |
View Details → |
Selection Fields
Type |
Description |
Use Cases |
Link |
SELECT_SINGLE |
Single selection dropdown |
Status, priority, category |
View Details → |
SELECT_MULTI |
Multiple selection dropdown |
Tags, skills, categories |
View Details → |
CHECKBOX |
Boolean checkbox field |
Flags, approvals, confirmations |
View Details → |
Numeric Fields
Type |
Description |
Use Cases |
Link |
NUMBER |
Numeric input |
Quantities, scores, measurements |
View Details → |
CURRENCY |
Currency amount |
Budgets, costs, pricing |
View Details → |
PERCENT |
Percentage value |
Completion rates, discounts |
View Details → |
RATING |
Star rating with custom scale |
Performance ratings, satisfaction |
View Details → |
FORMULA |
Calculated field based on other fields |
Totals, computations, aggregations |
View Details → |
Type |
Description |
Use Cases |
Link |
EMAIL |
Email address with validation |
Contact information, notifications |
View Details → |
PHONE |
Phone number with international formatting |
Contact details, emergency contacts |
View Details → |
URL |
Web URL with validation |
Links, references, resources |
View Details → |
Date and Time Fields
Type |
Description |
Use Cases |
Link |
DATE |
Date picker |
Deadlines, milestones, events |
View Details → |
TIME_DURATION |
Time tracking field |
Work hours, duration estimates |
View Details → |
Location and Geography
Type |
Description |
Use Cases |
Link |
LOCATION |
Geographic location (lat/lng) |
Addresses, venues, service areas |
View Details → |
COUNTRY |
Country selector |
Regional assignments, localization |
View Details → |
Type |
Description |
Use Cases |
Link |
FILE |
File attachment |
Documents, images, resources |
View Details → |
System Fields
Type |
Description |
Use Cases |
Link |
UNIQUE_ID |
Auto-generated unique identifier |
Ticket numbers, order IDs |
View Details → |
REFERENCE |
Link to records in another project |
Cross-project relationships |
View Details → |
LOOKUP |
Pull data from referenced records |
Aggregate data from related records |
View Details → |
Interactive Fields
Type |
Description |
Use Cases |
Link |
BUTTON |
Actionable button field |
Triggers, actions, workflows |
View Details → |
CURRENCY_CONVERSION |
Currency conversion field |
Multi-currency calculations |
View Details → |
Key Concepts
Field Definition
- Custom fields are defined at the project level
- Each field has a unique name and type
- Fields can include validation rules and constraints
- Configuration options vary by field type
Field Values
- Values are stored on individual records (todos)
- Each record can have different values for the same field
- Empty/null values are allowed for optional fields
- Values are validated according to field type rules
Permissions Model
Custom fields respect project-level permissions:
Role |
Create Fields |
Edit Fields* |
Set Values |
View Values |
OWNER |
✅ Yes |
✅ Yes |
✅ Yes |
✅ Yes |
ADMIN |
✅ Yes |
✅ Yes |
✅ Yes |
✅ Yes |
MEMBER |
❌ No |
❌ No |
✅ Yes |
✅ Yes |
CLIENT |
❌ No |
❌ No |
✅ Limited |
✅ Limited |
*Edit Fields refers to modifying field settings (name, type, options, validation rules) - not setting field values on records
Custom Role Permissions
- Projects can have custom roles with field-specific permissions
- Fields can be marked as editable/non-editable per role
- Custom roles can restrict access to specific fields
Common Patterns
Creating a Basic Custom Field
mutation CreateCustomField {
createCustomField(input: {
name: "Priority Level"
type: SELECT_SINGLE
description: "Task priority level"
customFieldOptions: [
{ title: "Low", color: "#28a745" }
{ title: "Medium", color: "#ffc107" }
{ title: "High", color: "#fd7e14" }
{ title: "Critical", color: "#dc3545" }
]
}) {
id
name
type
customFieldOptions {
id
title
color
}
}
}
Setting Field Values on Records
mutation SetFieldValue {
setTodoCustomField(input: {
todoId: "todo_123"
customFieldId: "field_456"
customFieldOptionId: "option_789" # For SELECT_SINGLE
})
}
Querying Records with Custom Fields
query GetTodosWithCustomFields {
todos(projectId: "project_123") {
id
title
customFields {
id
customField {
name
type
}
# Type-specific value fields
text # TEXT_SINGLE, TEXT_MULTI, EMAIL, etc.
number # NUMBER, CURRENCY, PERCENT, RATING
selectedOption # SELECT_SINGLE
selectedOptions # SELECT_MULTI
checked # CHECKBOX
date # DATE
}
}
}
Creating Records with Custom Field Values
mutation CreateTodoWithCustomFields {
createTodo(input: {
title: "New task"
todoListId: "list_123"
customFields: [
{ customFieldId: "priority_field", value: "high_priority_option" }
{ customFieldId: "budget_field", value: "5000" }
{ customFieldId: "notes_field", value: "Additional context here" }
]
}) {
id
title
customFields {
customField { name }
value
}
}
}
Best Practices
Field Design
- Use descriptive names - Make field purposes clear
- Choose appropriate types - Match field type to data requirements
- Set validation rules - Use min/max values, required fields
- Organize logically - Group related fields together
- Limit field count - Too many fields can impact performance
- Use pagination - When querying large datasets
- Index key fields - For fields used in filtering/sorting
- Avoid deep nesting - Keep field relationships simple
Data Quality
- Validate input - Use appropriate field types with validation
- Provide defaults - Set sensible default values where appropriate
- Use consistent formats - Standardize data entry patterns
- Regular cleanup - Remove unused fields and options
User Experience
- Clear descriptions - Provide helpful field descriptions
- Logical ordering - Position fields in natural workflow order
- Visual hierarchy - Use colors and formatting effectively
- Progressive disclosure - Show fields when relevant
Error Handling
Common errors when working with custom fields:
Error Code |
Description |
Solution |
CUSTOM_FIELD_NOT_FOUND |
Field doesn't exist |
Verify field ID and project access |
VALIDATION_ERROR |
Value doesn't match field type |
Check format and validation rules |
UNAUTHORIZED |
Insufficient permissions |
Ensure proper role level |
CUSTOM_FIELD_VALUE_PARSE_ERROR |
Invalid value format |
Review field type requirements |