Skip to content

Create a customer property ​

POST/api/v1/workspaces/{workspace_slug}/customer-properties/
Create a new customer property in the specified workspace.

Path parameters ​

workspace_slug:requiredstring

The workspace slug. It appears in your Plane URLs. In https://app.plane.so/my-team/projects/, the slug is my-team.

Body parameters ​

display_name:requiredstring

The property's display name.

description:optionalstring

The property's description.

logo_props:optionalobject

Logo settings used by the Plane editor.

sort_order:optionalnumber

Position used for manual ordering.

property_type:requiredstring
  • TEXT - Text
  • DATETIME - Datetime
  • DECIMAL - Decimal
  • BOOLEAN - Boolean
  • OPTION - Option
  • RELATION - Relation
  • URL - URL
  • EMAIL - Email
  • FILE - File
relation_type:optionalstring
  • ISSUE - Issue
  • USER - User
is_required:optionalboolean

Whether a value is required for this property.

default_value:optionalarray

The property's default value.

settings:optionalobject

The property's settings.

is_active:optionalboolean

Whether the property is active.

is_multi:optionalboolean

Whether the property accepts more than one value.

validation_rules:optionalobject

The property's validation rules.

external_source:optionalstring

The system external_id came from, for example github or jira.

external_id:optionalstring

Your system's identifier for this record, for sync and import correlation.

created_by:optionalstring

ID of the user who created the property.

updated_by:optionalstring

ID of the user who last updated the property.

Scopes ​

customers.properties:write

Create a customer property
bash
curl -X POST \
  "https://api.plane.so/api/v1/workspaces/my-workspace/customer-properties/" \
  -H "X-API-Key: $PLANE_API_KEY" \
  # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "display_name": "Example Name",
  "description": "Example description",
  "logo_props": "example-value",
  "sort_order": 1,
  "property_type": "TEXT",
  "relation_type": "ISSUE",
  "is_required": true,
  "default_value": [
    "Example Name"
  ],
  "settings": "example-value",
  "is_active": true,
  "is_multi": true,
  "validation_rules": "example-value",
  "external_source": "github",
  "external_id": "550e8400-e29b-41d4-a716-446655440000",
  "created_by": "550e8400-e29b-41d4-a716-446655440000",
  "updated_by": "550e8400-e29b-41d4-a716-446655440000"
}'
Response201
json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "name": "Example Name",
  "display_name": "Example Name",
  "description": "Example description",
  "property_type": "TEXT",
  "deleted_at": "2024-01-01T00:00:00Z",
  "logo_props": "example-value",
  "sort_order": 1,
  "relation_type": "ISSUE",
  "is_required": true
}