API reference

Customers

Objects and fields, records, list views, search, pipelines, activities, imports and exports.
GET/v1/orgs/:orgId/crm/objects

Every object with its fields, validation rules and indexes.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  objects: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }[]
}
POST/v1/orgs/:orgId/crm/objects

A custom object (Customers admins): a name field, the system fields and the built-in indexes.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body

  • labelstringrequired

    1–60 characters. Trimmed.

  • pluralstring

    Default "". Up to 60 characters. Trimmed.

  • nameLabelstring

    Up to 60 characters. Trimmed.

  • sharing"private" | "read" | "readwrite"

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "label": "Example"
  }'
Send it from this page with your session or a key.

Response 201

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/crm/objects/:object

One object with its fields, validation rules and indexes.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
}
PATCH/v1/orgs/:orgId/crm/objects/:object

Labels, sharing default, default columns and search subtitle (Customers admins), over version.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • versionintegerrequired
  • labelstring

    Up to 60 characters. Trimmed.

  • pluralstring

    Up to 60 characters. Trimmed.

  • sharing"private" | "read" | "readwrite"
  • listColumnsstring[]

    Up to 30 items. Each 1–60 characters.

  • subtitleFieldsstring[]

    Up to 5 items. Each 1–60 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "version": 1
  }'
Send it from this page with your session or a key.

Response 200

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
}
DELETE/v1/orgs/:orgId/crm/objects/:object

Deletes a custom object without records.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  ok: true
}
POST/v1/orgs/:orgId/crm/objects/:object/fields

Adds a custom field (Customers admins): text, number, currency, date, picklist, multi-picklist, checkbox, lookup, email, phone or URL; required makes it required.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • labelstringrequired

    1–80 characters. Trimmed.

  • type"text" | "textarea" | "number" | "currency" | "percent" | "date" | "datetime" | "picklist" | "multipicklist" | "checkbox" | "lookup" | "email" | "phone" | "url"required
  • requiredboolean
  • helpstring

    Up to 255 characters.

  • searchableboolean
  • maxLengthinteger

    1–32000.

  • minnumber
  • maxnumber
  • decimalsinteger

    0–6.

  • valuesobject[]

    Up to 2,000 items.

  • values[].valuestring

    Default "". Up to 80 characters.

  • values[].labelstring

    Up to 80 characters.

  • values[].inactiveboolean
  • targetstring

    Up to 40 characters.

  • convertToobject
  • convertTo.object"account" | "contact" | "opportunity"required
  • convertTo.fieldstringrequired

    1–60 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/fields' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "label": "Example",
    "type": "text"
  }'
Send it from this page with your session or a key.

Response 201

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
  field: {
    id: string
    label: string
    type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
    required?: boolean
    custom?: boolean
    system?: boolean
    readOnly?: boolean
    searchable?: boolean
    help?: string
    maxLength?: number
    min?: number
    max?: number
    decimals?: number
    values?: {
      value: string
      label?: string
      inactive?: boolean
    }[]
    target?: string
    convertTo?: {
      object: "contact" | "account" | "opportunity"
      field: string
    }
  }
}
PATCH/v1/orgs/:orgId/crm/objects/:object/fields/:field

Changes a field's label, help, required, picklist values or lookup, over the object's version.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

  • field

    A field's id in Customers, as GET …/crm/objects/:object lists them (custom fields x_…).

Request body

  • labelstring

    1–80 characters. Trimmed.

  • requiredboolean
  • helpstring

    Up to 255 characters.

  • searchableboolean
  • maxLengthinteger

    1–32000.

  • minnumber
  • maxnumber
  • decimalsinteger

    0–6.

  • valuesobject[]

    Up to 2,000 items.

  • values[].valuestring

    Default "". Up to 80 characters.

  • values[].labelstring

    Up to 80 characters.

  • values[].inactiveboolean
  • versionintegerrequired
  • convertToany JSONrequiredor null

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/fields/{field}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "version": 1,
    "convertTo": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
  field: {
    id: string
    label: string
    type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
    required?: boolean
    custom?: boolean
    system?: boolean
    readOnly?: boolean
    searchable?: boolean
    help?: string
    maxLength?: number
    min?: number
    max?: number
    decimals?: number
    values?: {
      value: string
      label?: string
      inactive?: boolean
    }[]
    target?: string
    convertTo?: {
      object: "contact" | "account" | "opportunity"
      field: string
    }
  }
}
DELETE/v1/orgs/:orgId/crm/objects/:object/fields/:field

Deletes a custom field, with its rules and indexes (their entries go in the background).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

  • field

    A field's id in Customers, as GET …/crm/objects/:object lists them (custom fields x_…).

Query parameters

  • versionintegerrequired

    Coerced from a string.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/fields/{field}?version=1' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
}
PUT/v1/orgs/:orgId/crm/objects/:object/rules

Replaces the object's validation rules.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • versionintegerrequired
  • rulesobject[]required

    Up to 500 items.

  • rules[].idstringrequired

    Up to 40 characters.

  • rules[].namestringrequired

    1–80 characters. Trimmed.

  • rules[].activebooleanrequired
  • rules[].whenobject[]required

    Up to 10 items.

  • rules[].when[].fieldstringrequired

    1–60 characters.

  • rules[].when[].op"eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "blank" | "notBlank"required
  • rules[].when[].valueany JSON
  • rules[].requireobject[]required

    1–10 items.

  • rules[].require[].fieldstringrequired

    1–60 characters.

  • rules[].require[].op"eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "blank" | "notBlank"required
  • rules[].require[].valueany JSON
  • rules[].messagestringrequired

    1–255 characters. Trimmed.

  • rules[].fieldstring

    1–60 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PUT 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/rules' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "version": 1,
    "rules": [
      {
        "id": "<id>",
        "name": "Example",
        "active": true,
        "when": [
          {
            "field": "example",
            "op": "eq"
          }
        ],
        "require": [
          {
            "field": "example",
            "op": "eq"
          }
        ],
        "message": "example"
      }
    ]
  }'
Send it from this page with your session or a key.

Response 200

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
}
POST/v1/orgs/:orgId/crm/objects/:object/indexes

Adds an index (built in the background): up to two equality fields and a sort field.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • eqstring[]required

    Up to 2 items. Each 1–60 characters.

  • sortstringrequired

    1–60 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/indexes' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "eq": [
      "example"
    ],
    "sort": "example"
  }'
Send it from this page with your session or a key.

Response 201

{
  index: {
    id: string
    eq: string[]
    sort: string
    status: "building" | "ready"
    builtin?: boolean
    createdAt: number
  }
}
DELETE/v1/orgs/:orgId/crm/objects/:object/indexes/:indexId

Drops a custom index (its entries go in the background); built-in ones stay.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

  • indexId

    A list view index's id in Customers (ix…), as the object's indexes list them.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/indexes/{indexId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  object: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/crm/objects/:object/views

Built-in, shared and the caller's own list views.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/views' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  views: {
    id: string
    object: string
    name: string
    ownerId?: string
    filters: {
      field: string
      op: "in" | "startsWith" | "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
      value?: unknown
    }[]
    sort: {
      field: string
      dir: "asc" | "desc"
    }
    columns: string[]
    builtin?: boolean
    createdAt: number
    updatedAt: number
  }[]
}
POST/v1/orgs/:orgId/crm/objects/:object/views

Saves a view (shared ones: Customers admins); an index it needs is added and built.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • namestringrequired

    1–80 characters. Trimmed.

  • filtersobject[]

    Default []. Up to 20 items.

  • filters[].fieldstringrequired

    1–60 characters.

  • filters[].op"eq" | "ne" | "in" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "blank" | "notBlank"required
  • filters[].valueany JSON
  • sortobjectrequired
  • sort.fieldstringrequired

    1–60 characters.

  • sort.dir"asc" | "desc"required
  • columnsstring[]

    Default []. Up to 30 items. Each 1–60 characters.

  • sharedboolean

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/views' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "sort": {
      "field": "example",
      "dir": "asc"
    }
  }'
Send it from this page with your session or a key.

Response 201

{
  view: {
    id: string
    object: string
    name: string
    ownerId?: string
    filters: {
      field: string
      op: "in" | "startsWith" | "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
      value?: unknown
    }[]
    sort: {
      field: string
      dir: "asc" | "desc"
    }
    columns: string[]
    builtin?: boolean
    createdAt: number
    updatedAt: number
  }
  index?: {
    id: string
    eq: string[]
    sort: string
    status: "building" | "ready"
    builtin?: boolean
    createdAt: number
  }
}
PATCH/v1/orgs/:orgId/crm/objects/:object/views/:viewId

Changes a saved view (the caller's own; shared ones: Customers admins).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

  • viewId

    A list view: all, mine, recent or a saved view's id (cvw_…).

Request body

  • namestringrequired

    1–80 characters. Trimmed.

  • filtersobject[]

    Default []. Up to 20 items.

  • filters[].fieldstringrequired

    1–60 characters.

  • filters[].op"eq" | "ne" | "in" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "blank" | "notBlank"required
  • filters[].valueany JSON
  • sortobjectrequired
  • sort.fieldstringrequired

    1–60 characters.

  • sort.dir"asc" | "desc"required
  • columnsstring[]

    Default []. Up to 30 items. Each 1–60 characters.

  • sharedboolean

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/views/{viewId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "sort": {
      "field": "example",
      "dir": "asc"
    }
  }'
Send it from this page with your session or a key.

Response 200

{
  view: {
    id: string
    object: string
    name: string
    ownerId?: string
    filters: {
      field: string
      op: "in" | "startsWith" | "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
      value?: unknown
    }[]
    sort: {
      field: string
      dir: "asc" | "desc"
    }
    columns: string[]
    builtin?: boolean
    createdAt: number
    updatedAt: number
  }
  index?: {
    id: string
    eq: string[]
    sort: string
    status: "building" | "ready"
    builtin?: boolean
    createdAt: number
  }
}
DELETE/v1/orgs/:orgId/crm/objects/:object/views/:viewId

Deletes a saved view (the caller's own; shared ones: Customers admins).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

  • viewId

    A list view: all, mine, recent or a saved view's id (cvw_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/views/{viewId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  ok: true
}
GET/v1/orgs/:orgId/crm/objects/:object/records

A page of records by a view, or filters (JSON) and sort; cursor continues.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Query parameters

  • viewstring

    Up to 40 characters.

  • filtersstring

    Up to 8,000 characters.

  • sortstring

    Up to 80 characters.

  • cursorstring

    Up to 8,000 characters.

  • limitinteger

    Default 50. 1–200. Coerced from a string.

Errors

  • 400filters: a JSON list of { field, op, value }.
  • 400sort: field:asc or field:desc.
  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/records' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  names: {
    records: {
      [key: string]: {
        id: string
        name: string
        object: string
      }
    }
    people: {
      [key: string]: string
    }
  }
  records: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }[]
  cursor?: string
  total?: number
  missingIndex?: {
    eq: string[]
    sort: string
  }
  partial?: boolean
  plan: {
    index: string
    exactSort: boolean
    memorySort: boolean
  }
}
POST/v1/orgs/:orgId/crm/objects/:object/records/query

The same list with the filters in the body.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • viewstring

    Up to 40 characters.

  • filtersobject[]

    Up to 20 items.

  • filters[].fieldstringrequired

    1–60 characters.

  • filters[].op"eq" | "ne" | "in" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "blank" | "notBlank"required
  • filters[].valueany JSON
  • sortobject
  • sort.fieldstringrequired

    1–60 characters.

  • sort.dir"asc" | "desc"required
  • cursorstring

    Up to 8,000 characters.

  • limitinteger

    Default 50. 1–200.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/records/query' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "view": "example",
    "filters": [
      {
        "field": "example",
        "op": "eq"
      }
    ],
    "sort": {
      "field": "example",
      "dir": "asc"
    }
  }'
Send it from this page with your session or a key.

Response 200

{
  names: {
    records: {
      [key: string]: {
        id: string
        name: string
        object: string
      }
    }
    people: {
      [key: string]: string
    }
  }
  records: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }[]
  cursor?: string
  total?: number
  missingIndex?: {
    eq: string[]
    sort: string
  }
  partial?: boolean
  plan: {
    index: string
    exactSort: boolean
    memorySort: boolean
  }
}
POST/v1/orgs/:orgId/crm/objects/:object/records

Creates a record owned by the caller (or ownerId); field errors come back as 422 with errors.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • fieldsobjectrequired

    Keys up to 60 characters. Values: any JSON.

  • ownerIdstring

    Up to 40 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/records' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "fields": {}
  }'
Send it from this page with your session or a key.

Response 201

{
  record: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }
}
POST/v1/orgs/:orgId/crm/objects/:object/records/bulk

Updates, transfers or deletes many records; each reports its own result.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • idsstring[]required

    1–1,000 items. Each matches ^[a-z][a-z0-9]{1,5}_[0-9a-z]{26}$.

  • operation"update" | "transfer" | "delete"required
  • fieldsobject

    Keys up to 60 characters. Values: any JSON.

  • ownerIdstring

    Up to 40 characters.

Errors

  • 400ownerId: who gets the records.
  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/records/bulk' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "ids": [
      "example"
    ],
    "operation": "update"
  }'
Send it from this page with your session or a key.

Response 200

{
  results: {
    id: string
    ok: true
    error?: undefined
  } | {
    id: string
    ok: false
    error: string
  }[]
}
GET/v1/orgs/:orgId/crm/objects/:object/export

A view (or filters) as CSV, up to 10,000 rows; X-More: 1 when there are more (use an export job).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Query parameters

  • viewstring

    Up to 40 characters.

  • filtersstring

    Up to 8,000 characters.

  • sortstring

    Up to 80 characters.

  • columnsstring

    Up to 2,000 characters.

Errors

  • 400filters: a JSON list of { field, op, value }.
  • 400sort: field:asc or field:desc.
  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/export' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200 with no body

POST/v1/orgs/:orgId/crm/objects/:object/exports

Exports a view to a file in the background (any size); download it from the job when done.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • object

    An object's id in Customers: account, contact, lead, opportunity, activity, or a custom object's (x_…).

Request body

  • viewstring

    Up to 40 characters.

  • filtersobject[]

    Up to 20 items.

  • filters[].fieldstringrequired

    1–60 characters.

  • filters[].op"eq" | "ne" | "in" | "gt" | "gte" | "lt" | "lte" | "contains" | "startsWith" | "blank" | "notBlank"required
  • filters[].valueany JSON
  • sortobject
  • sort.fieldstringrequired

    1–60 characters.

  • sort.dir"asc" | "desc"required
  • columnsstring[]

    Up to 60 items. Each 1–60 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/objects/{object}/exports' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "view": "example",
    "filters": [
      {
        "field": "example",
        "op": "eq"
      }
    ],
    "sort": {
      "field": "example",
      "dir": "asc"
    }
  }'
Send it from this page with your session or a key.

Response 202

{
  job: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/crm/records/:id

The record, what the caller may do with it, and names of the people and records it refers to.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  record: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }
  object: string
  access: {
    read: boolean
    edit: boolean
    delete: boolean
    transfer: boolean
  }
  names: {
    records: {
      [key: string]: {
        id: string
        name: string
        object: string
      }
    }
    people: {
      [key: string]: string
    }
  }
}
PATCH/v1/orgs/:orgId/crm/records/:id

Changes fields and the owner; version refuses a stale edit (409).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Request body

  • fieldsobject

    Keys up to 60 characters. Values: any JSON.

  • ownerIdstring

    Up to 40 characters.

  • versioninteger

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "fields": {},
    "ownerId": "<ownerId>",
    "version": 1
  }'
Send it from this page with your session or a key.

Response 200

{
  record: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }
}
DELETE/v1/orgs/:orgId/crm/records/:id

Deletes the record; its history and the audit log keep who deleted it.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  ok: true
}
GET/v1/orgs/:orgId/crm/records/:id/history

Field changes, newest first.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Query parameters

  • cursorstring

    Up to 2,000 characters.

  • limitinteger

    Default 50. 1–200. Coerced from a string.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}/history' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  entries: {
    at: number
    version: number
    actor: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
    kind: "deleted" | "created" | "updated" | "converted"
    changes: {
      field: string
      from?: unknown
      to?: unknown
    }[]
  }[]
  cursor?: string
}
GET/v1/orgs/:orgId/crm/records/:id/activities

The timeline: activities related to the record, newest first.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Query parameters

  • cursorstring

    Up to 8,000 characters.

  • limitinteger

    Default 25. 1–100. Coerced from a string.

  • type"task" | "call" | "meeting" | "note" | "email"

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}/activities' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  names: {
    records: {
      [key: string]: {
        id: string
        name: string
        object: string
      }
    }
    people: {
      [key: string]: string
    }
  }
  records: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }[]
  cursor?: string
  total?: number
  missingIndex?: {
    eq: string[]
    sort: string
  }
  partial?: boolean
  plan: {
    index: string
    exactSort: boolean
    memorySort: boolean
  }
}
POST/v1/orgs/:orgId/crm/records/:id/activities

Logs a task, call, meeting, note or email on the record (and any others in relatedIds).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Request body

  • type"task" | "call" | "meeting" | "note" | "email"required
  • subjectstringrequired

    1–255 characters. Trimmed.

  • bodystring

    Up to 32,000 characters.

  • status"open" | "completed"
  • dueDatestring

    Matches ^\d{4}-\d{2}-\d{2}$.

  • startAtnumber | string

    Up to 40 characters.

  • endAtnumber | string

    Up to 40 characters.

  • durationMinutesinteger

    0–100000.

  • direction"inbound" | "outbound"
  • relatedIdsstring[]

    Default []. Up to 24 items. Each matches ^[a-z][a-z0-9]{1,5}_[0-9a-z]{26}$.

  • ownerIdstring

    Up to 40 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}/activities' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "task",
    "subject": "Example"
  }'
Send it from this page with your session or a key.

Response 201

{
  record: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }
}
POST/v1/orgs/:orgId/crm/records/:id/convert

Converts a lead into an account (or uses one), a contact (or uses one) and an opportunity.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • id

    A record's id in Customers: its object's prefix and a time-sortable id (acc_…, cnt_…, led_…, opp_…, act_…).

Request body

  • accountIdstring

    Matches ^[a-z][a-z0-9]{1,5}_[0-9a-z]{26}$.

  • contactIdstring

    Matches ^[a-z][a-z0-9]{1,5}_[0-9a-z]{26}$.

  • createOpportunityboolean

    Default true.

  • opportunityobject
  • opportunity.namestring

    Up to 255 characters.

  • opportunity.pipelineIdstring

    Up to 40 characters.

  • opportunity.stagestring

    Up to 40 characters.

  • opportunity.amountnumber

    ≥ 0.

  • opportunity.closeDatestring

    Matches ^\d{4}-\d{2}-\d{2}$.

  • ownerIdstring

    Up to 40 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/records/{id}/convert' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "accountId": "<accountId>",
    "contactId": "<contactId>",
    "createOpportunity": true
  }'
Send it from this page with your session or a key.

Response 200

{
  lead: {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }
  accountId: string
  contactId: string
  opportunityId?: string
}
GET/v1/orgs/:orgId/crm/pipelines

Opportunity pipelines with their stages.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/pipelines' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  pipelines: {
    id: string
    name: string
    stages: {
      id: string
      name: string
      probability: number
      category: "open" | "lost" | "won"
    }[]
    isDefault?: boolean
    order: number
    version: number
  }[]
}
POST/v1/orgs/:orgId/crm/pipelines

A pipeline (Customers admins): stages with probability and whether each is open, won or lost.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body

  • namestringrequired

    1–80 characters. Trimmed.

  • stagesobject[]required

    3–30 items.

  • stages[].idstring

    Up to 40 characters.

  • stages[].namestringrequired

    1–60 characters. Trimmed.

  • stages[].probabilitynumberrequired

    0–100.

  • stages[].category"open" | "won" | "lost"required
  • isDefaultboolean
  • orderinteger

    0–1000.

  • versioninteger

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/pipelines' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "stages": [
      {
        "name": "Example",
        "probability": 1,
        "category": "open"
      }
    ]
  }'
Send it from this page with your session or a key.

Response 201

{
  pipeline: {
    id: string
    name: string
    stages: {
      id: string
      name: string
      probability: number
      category: "open" | "lost" | "won"
    }[]
    isDefault?: boolean
    order: number
    version: number
  }
}
PUT/v1/orgs/:orgId/crm/pipelines/:pipelineId

Replaces a pipeline's name and stages (Customers admins), over version; a stage with deals can't be removed.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • pipelineId

    A pipeline's id in Customers (sales, or pip_…).

Request body

  • namestringrequired

    1–80 characters. Trimmed.

  • stagesobject[]required

    3–30 items.

  • stages[].idstring

    Up to 40 characters.

  • stages[].namestringrequired

    1–60 characters. Trimmed.

  • stages[].probabilitynumberrequired

    0–100.

  • stages[].category"open" | "won" | "lost"required
  • isDefaultboolean
  • orderinteger

    0–1000.

  • versioninteger

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PUT 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/pipelines/{pipelineId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Example",
    "stages": [
      {
        "name": "Example",
        "probability": 1,
        "category": "open"
      }
    ]
  }'
Send it from this page with your session or a key.

Response 200

{
  pipeline: {
    id: string
    name: string
    stages: {
      id: string
      name: string
      probability: number
      category: "open" | "lost" | "won"
    }[]
    isDefault?: boolean
    order: number
    version: number
  }
}
DELETE/v1/orgs/:orgId/crm/pipelines/:pipelineId

Deletes a pipeline without opportunities (Customers admins); the default stays.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • pipelineId

    A pipeline's id in Customers (sales, or pip_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/pipelines/{pipelineId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  ok: true
}
GET/v1/orgs/:orgId/crm/pipelines/:pipelineId/board

The board: each stage's first opportunities by close date with its count and amount; stage and cursor page one column.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • pipelineId

    A pipeline's id in Customers (sales, or pip_…).

Query parameters

  • perStageinteger

    Default 25. 1–100. Coerced from a string.

  • stagestring

    Up to 40 characters.

  • cursorstring

    Up to 8,000 characters.

  • ownerstring

    Up to 40 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/pipelines/{pipelineId}/board' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  names: {
    records: {
      [key: string]: {
        id: string
        name: string
        object: string
      }
    }
    people: {
      [key: string]: string
    }
  }
  pipeline: {
    id: string
    name: string
    stages: {
      id: string
      name: string
      probability: number
      category: "open" | "lost" | "won"
    }[]
    isDefault?: boolean
    order: number
    version: number
  }
  columns: {
    stage: {
      id: string
      name: string
      probability: number
      category: "open" | "lost" | "won"
    }
    records: {
      id: string
      object: string
      version: number
      ownerId: string
      name: string
      fields: {
        [key: string]: unknown
      }
      createdAt: number
      updatedAt: number
      createdBy: string
      updatedBy: string
      via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
    }[]
    cursor?: string
    total: {
      count: number
      amount: number
    }
  }[]
}
GET/v1/orgs/:orgId/crm/jobs

Recent imports and exports (the caller's; every one for Customers admins).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/jobs' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  jobs: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }[]
}
GET/v1/orgs/:orgId/crm/jobs/:jobId

An import or export: state, progress counts and the first errors.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • jobId

    Job id: an agent job (job_…), under pipelines a pipeline job (pjb_…), or under crm an import or export (cjb_…); under marketing a list import (mkj_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/jobs/{jobId}' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  job: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/crm/jobs/:jobId/download

A finished export's download link (ten minutes).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • jobId

    Job id: an agent job (job_…), under pipelines a pipeline job (pjb_…), or under crm an import or export (cjb_…); under marketing a list import (mkj_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/jobs/{jobId}/download' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  url: string
}
POST/v1/orgs/:orgId/crm/imports

Starts an import: up to 5 MB in content, or a presigned uploadUrl for the file (PUT it, then call uploaded).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body (up to 6,144 KB)

  • objectstringrequired

    Up to 40 characters.

  • fileNamestringrequired

    Up to 200 characters.

  • sizeinteger

    Default 0. 0–53687091200.

  • contentstring

Errors

  • 413Send files over 5 MB through the upload link.
  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/imports' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "object": "example",
    "fileName": "Example"
  }'
Send it from this page with your session or a key.

Response 201

{
  job: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }
  uploadUrl?: string
}
POST/v1/orgs/:orgId/crm/imports/:jobId/uploaded

Marks a presigned upload complete so the import can be previewed.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • jobId

    Job id: an agent job (job_…), under pipelines a pipeline job (pjb_…), or under crm an import or export (cjb_…); under marketing a list import (mkj_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/imports/{jobId}/uploaded' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  job: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }
}
POST/v1/orgs/:orgId/crm/imports/:jobId/preview

The header, ten sample rows and a suggested column mapping.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • jobId

    Job id: an agent job (job_…), under pipelines a pipeline job (pjb_…), or under crm an import or export (cjb_…); under marketing a list import (mkj_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/imports/{jobId}/preview' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  job: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }
  headers: string[]
  sample: string[][]
  mapping: string[]
  estimatedRows: number
}
POST/v1/orgs/:orgId/crm/imports/:jobId/dry-run

Checks the first 1,000 rows with the mapping, writing nothing.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • jobId

    Job id: an agent job (job_…), under pipelines a pipeline job (pjb_…), or under crm an import or export (cjb_…); under marketing a list import (mkj_…).

Request body

  • mappingstring[]required

    Up to 500 items. Each up to 60 characters.

  • optionsobjectrequired
  • options.mode"create" | "upsert"

    Default "create".

  • options.ownerIdstring

    Up to 40 characters.

  • options.dateOrder"iso" | "dmy" | "mdy"

    Default "dmy".

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/imports/{jobId}/dry-run' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "mapping": [
      "example"
    ],
    "options": {
      "mode": "create",
      "ownerId": "<ownerId>",
      "dateOrder": "dmy"
    }
  }'
Send it from this page with your session or a key.

Response 200

{
  checked: number
  valid: number
  updates: number
  errors: {
    row: number
    message: string
  }[]
  complete: boolean
}
POST/v1/orgs/:orgId/crm/imports/:jobId/start

Queues the import; follow it on the job.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

  • jobId

    Job id: an agent job (job_…), under pipelines a pipeline job (pjb_…), or under crm an import or export (cjb_…); under marketing a list import (mkj_…).

Request body

  • mappingstring[]required

    Up to 500 items. Each up to 60 characters.

  • optionsobjectrequired
  • options.mode"create" | "upsert"

    Default "create".

  • options.ownerIdstring

    Up to 40 characters.

  • options.dateOrder"iso" | "dmy" | "mdy"

    Default "dmy".

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/imports/{jobId}/start' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "mapping": [
      "example"
    ],
    "options": {
      "mode": "create",
      "ownerId": "<ownerId>",
      "dateOrder": "dmy"
    }
  }'
Send it from this page with your session or a key.

Response 202

{
  job?: {
    id: string
    kind: "import" | "export"
    object: string
    state: "queued" | "ready" | "done" | "failed" | "running" | "uploading"
    fileName: string
    fileKey: string
    size: number
    headers?: string[]
    mapping?: string[]
    options?: {
      mode: "create" | "upsert"
      ownerId?: string
      dateOrder: "iso" | "dmy" | "mdy"
    }
    view?: {
      viewId?: string
      filters?: unknown[]
      sort?: unknown
      columns?: string[]
    }
    progress: {
      rows: number
      created: number
      updated: number
      failed: number
      offset: number
    }
    errors: {
      row: number
      message: string
    }[]
    error?: string
    createdBy: string
    createdByLabel: string
    createdAt: number
    updatedAt: number
  }
}
GET/v1/orgs/:orgId/crm/meta

The caller's view of Customers: objects, pipelines, settings, the people in the org and what the caller may do.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/meta' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  objects: {
    id: string
    label: string
    plural: string
    prefix: string
    glyph: string
    custom?: boolean
    nameFields: string[]
    fields: {
      id: string
      label: string
      type: "number" | "text" | "email" | "url" | "date" | "owner" | "pipeline" | "phone" | "textarea" | "checkbox" | "currency" | "stage" | "lookup" | "datetime" | "percent" | "picklist" | "multipicklist" | "lookups"
      required?: boolean
      custom?: boolean
      system?: boolean
      readOnly?: boolean
      searchable?: boolean
      help?: string
      maxLength?: number
      min?: number
      max?: number
      decimals?: number
      values?: {
        value: string
        label?: string
        inactive?: boolean
      }[]
      target?: string
      convertTo?: {
        object: "contact" | "account" | "opportunity"
        field: string
      }
    }[]
    rules: {
      id: string
      name: string
      active: boolean
      when: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      require: {
        field: string
        op: "eq" | "contains" | "lte" | "gt" | "lt" | "ne" | "gte" | "blank" | "notBlank"
        value?: unknown
      }[]
      message: string
      field?: string
    }[]
    sharing: "read" | "private" | "readwrite"
    indexes: {
      id: string
      eq: string[]
      sort: string
      status: "building" | "ready"
      builtin?: boolean
      createdAt: number
    }[]
    indexShards: number
    listColumns: string[]
    subtitleFields: string[]
    version: number
    createdAt: number
    updatedAt: number
  }[]
  pipelines: {
    id: string
    name: string
    stages: {
      id: string
      name: string
      probability: number
      category: "open" | "lost" | "won"
    }[]
    isDefault?: boolean
    order: number
    version: number
  }[]
  settings: {
    currency: string
    logEmails: boolean
    logMeetings: boolean
    roles: {
      owner: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      admin: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      developer: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      viewer: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
    }
    version: number
  }
  people: {
    userId: string
    name: string
    email?: string
    role: "owner" | "admin" | "developer" | "viewer"
  }[]
  permissions: {
    write: boolean
    admin: boolean
    viewAll: string[]
    modifyAll: string[]
  }
  me: null | string
  limits: {
    bulkRecords: number
    importMb: number
    fieldsPerObject: number
    indexesPerObject: number
  }
}
GET/v1/orgs/:orgId/crm/summary

Home: the pipeline summary (counters) and the caller's open tasks.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/summary' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  tasks: [] | {
    id: string
    object: string
    version: number
    ownerId: string
    name: string
    fields: {
      [key: string]: unknown
    }
    createdAt: number
    updatedAt: number
    createdBy: string
    updatedBy: string
    via: "app" | "api" | "mcp" | "calendar" | "mail" | "marketing" | "system" | "import" | "convert"
  }[]
  month: string
  pipelines: {
    pipeline: {
      id: string
      name: string
      stages: {
        id: string
        name: string
        probability: number
        category: "open" | "lost" | "won"
      }[]
      isDefault?: boolean
      order: number
      version: number
    }
    stages: {
      stage: {
        id: string
        name: string
        probability: number
        category: "open" | "lost" | "won"
      }
      total: {
        count: number
        amount: number
      }
    }[]
    open: {
      count: number
      amount: number
      weighted: number
    }
    won: {
      count: number
      amount: number
    }
    lost: {
      count: number
      amount: number
    }
    history: {
      month: string
      won: {
        count: number
        amount: number
      }
      lost: {
        count: number
        amount: number
      }
    }[]
  }[]
  records: {
    [key: string]: number
  }
}
GET/v1/orgs/:orgId/crm/settings

Customers settings: currency, Mail and Calendar logging, role permissions, with version.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/settings' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  settings: {
    currency: string
    logEmails: boolean
    logMeetings: boolean
    roles: {
      owner: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      admin: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      developer: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      viewer: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
    }
    version: number
  }
}
PATCH/v1/orgs/:orgId/crm/settings

Currency, Mail and Calendar logging, and what each role may see and change.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Path parameters

  • orgId

    Organization id (org_…).

Request body

  • versionintegerrequired

    ≥ 0.

  • currencystring

    Matches ^[A-Z]{3}$.

  • logEmailsboolean
  • logMeetingsboolean
  • rolesobject
  • roles.ownerobject
  • roles.owner.viewAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.owner.modifyAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.adminobject
  • roles.admin.viewAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.admin.modifyAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.developerobject
  • roles.developer.viewAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.developer.modifyAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.viewerobject
  • roles.viewer.viewAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

  • roles.viewer.modifyAllboolean | string[]required

    Up to 200 items. Each up to 40 characters.

Errors

  • 429Too many requests to Customers this minute. Try again shortly.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/crm/settings' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "version": 1
  }'
Send it from this page with your session or a key.

Response 200

{
  settings: {
    currency: string
    logEmails: boolean
    logMeetings: boolean
    roles: {
      owner: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      admin: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      developer: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
      viewer: {
        viewAll: boolean | string[]
        modifyAll: boolean | string[]
      }
    }
    version: number
  }
}