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 |