Skip to main content

Custom Fields

Add custom data fields to your tasks.

Available Field Types​

See CustomFieldType for all available field types.

Creating Custom Fields​

Use helper functions for easy field creation:

Text Field​

from vaiz import make_text_field

text_field = make_text_field(
name="Customer Name",
board_id="board_id",
description="Client name for this task"
)

response = client.create_board_custom_field(text_field)

Number Field​

from vaiz import make_number_field

number_field = make_number_field(
name="Story Points",
board_id="board_id",
description="Task complexity estimate"
)

response = client.create_board_custom_field(number_field)

Date Field​

from vaiz import make_date_field

date_field = make_date_field(
name="Launch Date",
board_id="board_id",
description="Planned launch date"
)

response = client.create_board_custom_field(date_field)

Select Field​

from vaiz import make_select_field, make_select_option
from vaiz.models.enums import Color, Icon

# Create options
options = [
make_select_option("🔥 Critical", Color.Red, Icon.Fire),
make_select_option("⚡ High", Color.Orange, Icon.Flag),
make_select_option("📋 Medium", Color.Blue, Icon.Circle),
make_select_option("🌱 Low", Color.Green, Icon.Target)
]

# Create select field
select_field = make_select_field(
name="Priority Level",
board_id="board_id",
options=options,
description="Task priority classification"
)

response = client.create_board_custom_field(select_field)

Other Field Types​

from vaiz import (
make_checkbox_field,
make_member_field,
make_task_relations_field,
make_url_field
)

# Checkbox
checkbox = make_checkbox_field(
name="Approved",
board_id="board_id"
)

# Member selector
member = make_member_field(
name="Reviewer",
board_id="board_id"
)

# Task relations
relations = make_task_relations_field(
name="Related Tasks",
board_id="board_id"
)

# URL
url = make_url_field(
name="Documentation Link",
board_id="board_id"
)

Editing Custom Fields​

Edit Field Name​

from vaiz import edit_custom_field_name

edit = edit_custom_field_name(
field_id="field_id",
board_id="board_id",
new_name="🎯 Updated Field Name"
)

client.edit_board_custom_field(edit)

Edit Field Description​

from vaiz import edit_custom_field_description

edit = edit_custom_field_description(
field_id="field_id",
board_id="board_id",
new_description="Updated field description"
)

client.edit_board_custom_field(edit)

Edit Multiple Properties​

from vaiz import edit_custom_field_complete

edit = edit_custom_field_complete(
field_id="field_id",
board_id="board_id",
name="New Name",
description="New description",
hidden=False
)

client.edit_board_custom_field(edit)

Managing Select Options​

Add Option​

from vaiz import add_board_custom_field_select_option, make_select_option
from vaiz.models.enums import Color, Icon

# Create new option
new_option = make_select_option("🚨 Emergency", Color.Magenta, Icon.Crown)

# Add to field
add_request = add_board_custom_field_select_option(
field_id="field_id",
board_id="board_id",
new_option=new_option,
existing_options=current_options
)

client.edit_board_custom_field(add_request)

Remove Option​

from vaiz import remove_board_custom_field_select_option

remove_request = remove_board_custom_field_select_option(
field_id="field_id",
board_id="board_id",
option_id="option_id",
existing_options=current_options
)

client.edit_board_custom_field(remove_request)

Edit Option​

from vaiz import edit_board_custom_field_select_field_option

edit_request = edit_board_custom_field_select_field_option(
field_id="field_id",
board_id="board_id",
option_id="option_id",
label="Updated Label",
color=Color.Blue,
icon=Icon.Star,
existing_options=current_options
)

client.edit_board_custom_field(edit_request)

Using Custom Fields in Tasks​

Set Field Values​

from vaiz import make_text_value, make_date_value, make_checkbox_value
from vaiz.models import CreateTaskRequest, CustomField
from datetime import datetime

custom_fields = [
CustomField(
id="text_field_id",
value=make_text_value("Acme Corp")
),
CustomField(
id="date_field_id",
value=make_date_value(datetime(2025, 6, 1))
),
CustomField(
id="checkbox_field_id",
value=make_checkbox_value(True)
)
]

task = CreateTaskRequest(
name="Task with Custom Fields",
board="board_id",
group="group_id",
custom_fields=custom_fields
)

response = client.create_task(task)

Value Helper Functions​

Basic Values​

from vaiz import (
make_text_value,
make_number_value,
make_checkbox_value,
make_url_value
)

text = make_text_value("Hello World")
number = make_number_value(42)
checkbox = make_checkbox_value(True)
url = make_url_value("https://example.com")

Date Values​

from vaiz import make_date_value, make_date_range_value
from datetime import datetime

# Single date
date = make_date_value(datetime(2025, 6, 1))

# Date range
date_range = make_date_range_value(
start_date=datetime(2025, 1, 1),
end_date=datetime(2025, 12, 31)
)

Member Values​

from vaiz import make_member_value, add_member_to_field, remove_member_from_field

# Single member
member = make_member_value("user_id")

# Multiple members
members = make_member_value(["user1", "user2", "user3"])

# Add member
updated = add_member_to_field(members, "user4")

# Remove member
final = remove_member_from_field(updated, "user2")

Task Relations​

from vaiz import make_task_relation_value, add_task_relation, remove_task_relation

# Create relations
relations = make_task_relation_value(["task1", "task2", "task3"])

# Add relation
updated = add_task_relation(relations, "task4")

# Remove relation
final = remove_task_relation(updated, "task1")

Complete Example​

from vaiz import VaizClient, make_select_field, make_select_option
from vaiz.models import CreateTaskRequest, CustomField
from vaiz.models.enums import Color, Icon

client = VaizClient(api_key="...", space_id="...")

# 1. Create custom field
priority_options = [
make_select_option("High", Color.Red, Icon.Flag),
make_select_option("Medium", Color.Blue, Icon.Circle),
make_select_option("Low", Color.Green, Icon.Target)
]

field = make_select_field(
name="Priority",
board_id="board_id",
options=priority_options
)

field_response = client.create_board_custom_field(field)
field_id = field_response.field.id

# 2. Create task with custom field value
task = CreateTaskRequest(
name="Important Task",
board="board_id",
group="group_id",
custom_fields=[
CustomField(
id=field_id,
value={"id": priority_options[0].id} # High priority
)
]
)

client.create_task(task)

See Also​