Create a custom field Run in API Explorer

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://apidocs.plannrcrm.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
"PlannrCRM MCP server": {
  "url": "https://apidocs.plannrcrm.com/mcp"
}
Close
POST /api/v1/custom-field
application/json

Body

  • type string Required

    The custom field type. Available options: string, number, selection, boolean, datetime and longtext

    Value Description
    string String
    number Number
    selection Selection
    boolean Boolean
    datetime Datetime
    longtext Longtext

    Values are string, number, selection, boolean, datetime, or longtext.

  • name string Required

    The name of the custom field. Must be unique for the model_type.

  • is_required boolean Required

    Denotes if the custom field is required. If required, it must be specified when creating/updating a model.

  • model_type string Required

    The type of model the custom field applies for. Available options: client, board_task, case, plan, task

    Values are client, board_task, case, plan, or task.

  • help_text string

    Optional help text to aide the custom field. Will be displayed on Plannr.

  • selection_options array

    If the type is "selection" this array must be provided. This is the array of available options for the selection box.

  • is_visible_to_clients boolean

    Denotes if the custom field is visible and editable to clients and their fact finds.

  • conditions array[object]

    Conditions that must be met for this custom field to apply. Each condition has an attribute and an array of acceptable values.

    Hide conditions attributes Show conditions attributes object
    • attribute string

      The condition attribute. Must be valid for the chosen model_type.

      Value Description
      client_type CLIENT_TYPE
      client_status CLIENT_STATUS
      case_type CASE_TYPE
      case_status CASE_STATUS
      task_status TASK_STATUS
      plan_type PLAN_TYPE
      plan_sub_type PLAN_SUB_TYPE
      plan_status PLAN_STATUS

      Values are client_type, client_status, case_type, case_status, task_status, plan_type, plan_sub_type, or plan_status.

    • values array

      Array of acceptable values for the condition attribute (UUIDs for relationships, enum values for enums).

  • conditions_operator string

    The logical operator for combining conditions. "all" (AND) or "any" (OR). Defaults to "all".

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • uuid string

      The UUID of the custom field

    • created_at string

      The timestamp of when the resource was created.

    • updated_at string

      The timestamp of when the resource was updated.

    • type string

      The type of custom field

    • name string

      The name of the custom field

    • reference string

      The reference of the custom field, used when updating the custom field on the model.

    • is_required boolean

      Denotes if the custom field is required

    • model_type string

      The type of model that the custom field is for.

    • help_text string

      Optional help text to aide the custom field. Will be displayed on Plannr.

    • firm object

      The custom field firm

      Hide firm attributes Show firm attributes object
      • uuid string
      • created_at string
      • updated_at string
      • name string
      • slug string
      • address_1 string
      • address_2 string
      • town_city string
      • county string
      • postcode string
      • country string
      • regulatory_text string
      • logo_icon string
      • brand_colours object
        Hide brand_colours attributes Show brand_colours attributes object
        • sidebar_background string
        • sidebar_accent string
        • sidebar_text string
        • sidebar_hover string
        • sidebar_active string
        • sidebar_title_background string
        • sidebar_title_primary string
        • sidebar_title_secondary string
        • sidebar_title_secondary_hover string
        • email_background string
        • email_logo_background_panel string
        • email_sub_text string
        • email_button_background string
        • email_button_text string
        • portal_sidebar_button_background string
        • portal_sidebar_button_hover string
        • portal_sidebar_button_active string
        • portal_brand_title string
        • portal_brand_sub_title string
        • portal_sidebar_title string
        • portal_sidebar_text string
        • portal_sidebar_text_hover string
        • portal_sidebar_text_active string
        • portal_sidebar_icon string
        • portal_sidebar_icon_hover string
        • portal_sidebar_icon_active string
        • portal_background string
        • portal_sidebar_account_title string
        • portal_sidebar_account_email string
        • portal_sidebar_divider string
        • portal_dashboard_bg_one string
        • portal_dashboard_bg_two string
        • portal_sidebar_collapse_button string
        • portal_sidebar_collapse_button_hover string
        • portal_sidebar_user_select_background string
        • portal_sidebar_user_select_hover string
        • portal_sidebar_user_select_text string
        • portal_sidebar_user_select_text_hover string
        • portal_sidebar_user_select_border string
        • portal_sidebar_user_select_border_hover string
      • is_subscribed boolean
      • addon_subscriptions string
      • keep_deleted_files_for integer
      • tax number
      • month_end integer
      • statement_frequency string
      • billing object
        Hide billing attributes Show billing attributes object
        • invoice_address_1 string
        • invoice_address_2 string
        • invoice_town_city string
        • invoice_county string
        • invoice_postcode string
        • invoice_country string
        • invoice_email string
      • task_board_template string
      • ip_whitelist array[string]
      • welcome_paragraph_html string
      • email_welcome_paragraph_html string
      • show_fact_find_illustrations boolean
      • cc_email_addresses array[string]
      • bcc_email_addresses array[string]
      • reply_to_email_address string
      • mobile_app_support_number string
      • mobile_app_support_email string
    • selection_options array[string]

      This is the array of available options for the selection box. If the type is "selection" this array will be provided.

    • is_visible_to_clients boolean

      Denotes if the custom field is visible and editable to clients.

    • position integer

      The position of the custom field

    • conditions array[object]

      The conditions that must be met for this custom field to apply. Empty array means no conditions.

      Hide conditions attributes Show conditions attributes object
      • attribute string
      • values array[string]
    • conditions_operator string

      The logical operator for combining conditions. "all" (AND) or "any" (OR).

POST /api/v1/custom-field
curl \
 --request POST 'https://api.plannrcrm.com/api/v1/custom-field' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{"type":"string","name":"Favourite Drink","is_required":true,"model_type":"client","help_text":"This is the client's favourite drink. You should make it for them before they arrive for meetings.","selection_options":["Tea","Coffee","Water"],"is_visible_to_clients":true,"conditions":[{"attribute":"client_type","values":[]}],"conditions_operator":"all"}'
Request examples
{
  "type": "string",
  "name": "Favourite Drink",
  "is_required": true,
  "model_type": "client",
  "help_text": "This is the client's favourite drink. You should make it for them before they arrive for meetings.",
  "selection_options": [
    "Tea",
    "Coffee",
    "Water"
  ],
  "is_visible_to_clients": true,
  "conditions": [
    {
      "attribute": "client_type",
      "values": []
    }
  ],
  "conditions_operator": "all"
}
Response examples (200)
{
  "uuid": "91067519-1bb1-4ad6-9884-81f76f11afae",
  "created_at": "2026-06-08T16:08:03+01:00",
  "updated_at": "2026-06-08T16:08:03+01:00",
  "type": "string",
  "name": "Favourite Drink",
  "reference": "favourite_drink",
  "is_required": false,
  "model_type": "client",
  "help_text": "This is the client's favourite drink.",
  "firm": {
    "uuid": "2469cb54-1b7b-4941-a416-02a42af48f70",
    "created_at": "2026-06-08T16:08:03+01:00",
    "updated_at": "2026-06-08T16:08:03+01:00",
    "name": "Codepotato",
    "slug": "codepotato",
    "address_1": "Suite E, 5 The Briars",
    "address_2": "Waterberry Drive",
    "town_city": "Waterlooville",
    "county": "Hampshire",
    "postcode": "PO7 7YH",
    "country": "United Kingdom",
    "regulatory_text": "Regulatory text",
    "logo": "https://api.plannrcrm.com/images/plannr.jpg",
    "logo_icon": "https://api.plannrcrm.com/images/plannr-icon.jpg",
    "brand_colours": {
      "sidebar_background": "#0E0E56",
      "sidebar_accent": "#36367E",
      "sidebar_text": "#FFFFFF",
      "sidebar_hover": "#0A0A42",
      "sidebar_active": "#53DBB8",
      "sidebar_title_background": "#36367E",
      "sidebar_title_primary": "#FFC634",
      "sidebar_title_secondary": "#FFFFFF",
      "sidebar_title_secondary_hover": "#FFFFFF",
      "email_background": "#0E0E56",
      "email_logo_background_panel": "#36367E",
      "email_sub_text": "#FFFFFF",
      "email_button_background": "#36367E",
      "email_button_text": "#FFFFFF",
      "portal_sidebar_button_background": "#F6F6F6",
      "portal_sidebar_button_hover": "#FFFFFF",
      "portal_sidebar_button_active": "#FFFFFF",
      "portal_brand_title": "#323B4B",
      "portal_brand_sub_title": "#828994",
      "portal_sidebar_title": "#11151D",
      "portal_sidebar_text": "#323B4B",
      "portal_sidebar_text_hover": "#323B4B",
      "portal_sidebar_text_active": "#323B4B",
      "portal_sidebar_icon": "#828994",
      "portal_sidebar_icon_hover": "#828994",
      "portal_sidebar_icon_active": "#828994",
      "portal_background": "#F6F6F6",
      "portal_sidebar_account_title": "#11151D",
      "portal_sidebar_account_email": "#828994",
      "portal_sidebar_divider": "#E3E5E9",
      "portal_dashboard_bg_one": "#EF4583",
      "portal_dashboard_bg_two": "#FFC634",
      "portal_sidebar_collapse_button": "#828994",
      "portal_sidebar_collapse_button_hover": "#B3B9C4",
      "portal_sidebar_user_select_background": "#F6F6F6",
      "portal_sidebar_user_select_hover": "#F6F6F6",
      "portal_sidebar_user_select_text": "#323B4B",
      "portal_sidebar_user_select_text_hover": "#323B4B",
      "portal_sidebar_user_select_border": "#EEEEEE",
      "portal_sidebar_user_select_border_hover": "#828994"
    },
    "is_subscribed": true,
    "addon_subscriptions": "App\\Http\\Resources\\Addons\\AddonSubscriptionResource",
    "keep_deleted_files_for": 30,
    "tax": 17.5,
    "month_end": 25,
    "statement_frequency": "monthly",
    "billing": {
      "invoice_address_1": "Suite E, 5 The Briars",
      "invoice_address_2": "Waterberry Drive",
      "invoice_town_city": "Waterlooville",
      "invoice_county": "Hampshire",
      "invoice_postcode": "PO7 7YH",
      "invoice_country": "United Kingdom",
      "invoice_email": "gareth@codepotato.co.uk"
    },
    "task_board_template": "App\\Http\\Resources\\Board\\BoardResource",
    "ip_whitelist": [
      "192.168.0.1",
      "127.0.0.1"
    ],
    "welcome_paragraph_html": "<h1>Welcome.</h1>",
    "email_welcome_paragraph_html": "Welcome to Plannr!",
    "show_fact_find_illustrations": true,
    "cc_email_addresses": [
      "jack@example.com",
      "jill@example.com"
    ],
    "bcc_email_addresses": [
      "jack@example.com",
      "jill@example.com"
    ],
    "reply_to_email_address": "jack@example.com",
    "mobile_app_support_number": "01234 567890",
    "mobile_app_support_email": "support@example.com"
  },
  "selection_options": [
    "Coffee",
    "Tea",
    "Water"
  ],
  "is_visible_to_clients": true,
  "position": 5,
  "conditions": [
    {
      "attribute": "case_type",
      "values": [
        "uuid-1"
      ]
    }
  ],
  "conditions_operator": "all"
}