API REFERENCE

Record Types

Record Types define the schema and classification for your contacts. Whether you are managing "Leads", "Patients", or "Candidates", Record Types allow you to customize icons, naming conventions, and default behaviors for each group of records.

List all record types

GEThttp://localhost:3000/api/record-types

Returns a list of all record types available to your account, including both custom types and system-wide global types.

Responses

JSON
[
  {
    "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
    "name": "Donation",
    "plural": "Donations",
    "slug": "donations",
    "icon": "lucide:heart",
    "description": "Fundraising campaign records",
    "isName": false,
    "parameters": [
      {
        "id": "amount",
        "type": "decimal",
        "title": "Amount",
        "required": true,
        "validation": "^[0-9]+(\\.[0-9]{1,2})?$",
        "error": "Please enter a valid amount"
      },
      {
        "id": "donor_type",
        "type": "string",
        "title": "Donor Category",
        "required": false
      }
    ],
    "isDefault": true,
    "status": "visible",
    "createdAt": "2026-04-10T09:24:11Z",
    "updatedAt": "2026-04-22T13:58:02Z"
  },
  {
    "uuid": "7d4f10a2-b91c-4d5e-6f7a-8b9c0d1e2f3a",
    "name": "Patient",
    "plural": "Patients",
    "slug": "patients",
    "icon": "lucide:heart",
    "description": "Clinical appointment records",
    "isDefault": false,
    "status": "visible",
    "createdAt": "2026-04-12T11:00:00Z",
    "updatedAt": "2026-04-15T09:30:00Z"
  }
]

Get a record type

GEThttp://localhost:3000/api/record-types/{uuid}

Retrieves the configuration details of a specific record type.

Responses

JSON
{
  "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
  "name": "Donation",
  "plural": "Donations",
  "slug": "donations",
  "icon": "lucide:heart",
  "description": "Fundraising campaign records",
  "isName": false,
  "parameters": [
    {
      "id": "amount",
      "type": "decimal",
      "title": "Amount",
      "required": true,
      "validation": "^[0-9]+(\\.[0-9]{1,2})?$",
      "error": "Please enter a valid amount"
    },
    {
      "id": "donor_type",
      "type": "string",
      "title": "Donor Category",
      "required": false
    }
  ],
  "isDefault": true,
  "status": "visible",
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Custom Fields

Custom fields are dynamic parameters that extend the core record model, allowing you to tailor data capture to your specific business needs. These fields are defined and stored within the parameters JSON object of a record type.

The logic relies on unique identifiers (id) which serve as the permanent keys for your data points—such as lead_source or appointment_date. These IDs are critical for mapping data during batch imports and retrieving specific values via the API. To maintain high data quality, you can embed regex-based validation patterns directly into the parameter definition, ensuring that every piece of information entering your system meets your exact formatting requirements before it reaches your agents.

Custom Field Structure

FieldTypeDescription
id *stringUnique identifier used for field, snake case format (e.g. "amount")
type *stringThe data type of the field (see Available Field Types)
title *stringDisplay name in the studio interface
required booleanWhether the field must be filled
validation stringRegex pattern for data validation
default stringDefault value for the field
error stringError message displayed when validation fails

Available Field Types

The following field types are supported and can be used when defining your record parameters:

Type IDDescription
textPlain Text
inputSingle Input
numberNumber Input
decimalDecimal/Currency
textareaText Area (Long)
boolToggle Switch
dateDate Picker
datetimeDate & Time
currencyCurrency Code
countryCountry Select
selectSelect / Dropdown

Create a new record type

POSThttp://localhost:3000/api/record-types

Creates a new classification for your data. Record types define the structure of your records, including what fields they have and how they are validated.

Body Parameters

FieldTypeDescription
name *stringThe singular name of the record type (e.g. "Lead")
plural *stringThe plural name of the record type (e.g. "Leads")
icon stringIcon name from Lucide library
slug stringURL friendly identifier for the record type (e.g. "lead")
isName booleanWhether this type record name is entered as single field or first and last name combined
isDefault booleanWhether this type should be the default type for new imports
parameters *jsonList of custom fields. Structure is defined in the "Custom Fields" section.

Responses

JSON
{
  "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
  "name": "Donation",
  "plural": "Donations",
  "slug": "donations",
  "icon": "lucide:heart",
  "description": "Fundraising campaign records",
  "isName": false,
  "parameters": [
    {
      "id": "amount",
      "type": "decimal",
      "title": "Amount",
      "required": true,
      "validation": "^[0-9]+(\\.[0-9]{1,2})?$",
      "error": "Please enter a valid amount"
    },
    {
      "id": "donor_type",
      "type": "string",
      "title": "Donor Category",
      "required": false
    }
  ],
  "isDefault": true,
  "status": "visible",
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Update a record type

PUThttp://localhost:3000/api/record-types/{uuid}

Updates the configuration of an existing record type. You can modify its name, icon, or set it as the default type for new imports. The body parameters are identical to the creation endpoint.

Responses

JSON
{
  "uuid": "8f3a91b2-c4d5-4e6f-a8b9-c0d1e2f3a4b5",
  "name": "Donation",
  "plural": "Donations",
  "slug": "donations",
  "icon": "lucide:heart",
  "description": "Fundraising campaign records",
  "isName": false,
  "parameters": [
    {
      "id": "amount",
      "type": "decimal",
      "title": "Amount",
      "required": true,
      "validation": "^[0-9]+(\\.[0-9]{1,2})?$",
      "error": "Please enter a valid amount"
    },
    {
      "id": "donor_type",
      "type": "string",
      "title": "Donor Category",
      "required": false
    }
  ],
  "isDefault": true,
  "status": "visible",
  "createdAt": "2026-04-10T09:24:11Z",
  "updatedAt": "2026-04-22T13:58:02Z"
}

Delete a record type

DELETEhttp://localhost:3000/api/record-types/{uuid}

Deletes a record type. Note that record types can only be deleted if they are not currently being used by any campaigns or records.

Responses

// 204 No Content