Custom Fields & Mappings

Import a provider's field catalogue, then optionally map compatible provider fields onto Alution's native fields. Unmapped provider fields remain available as provider-grouped additional data.

How the field system works

The import endpoint accepts one JSON Schema document, but it stores and returns a collection of field records—one record per property. A field resource has id, group, name, type, description, and rules; it does not return the original schema document.

group is the provider namespace and type is the singular related model alias. The same system is used when provider-specific fields are exchanged on supported resources, including contacts, addresses, users, projects, and tickets. Keep external record identifier values independent from the field group.

GET/api/v1/custom-field-schemas

List fields

Required scope: custom-fields:read. Filter with optional group and type query parameters. type is normalized to singular form.

POST/api/v1/custom-field-schemas

Import fields

Required scope: custom-fields:write. Send group, related model type, and schema.

{
  "group": "ExampleErp",
  "type": "contact",
  "schema": {
    "type": "object",
    "properties": {
      "customer_number": {
        "type": "string",
        "description": "Customer number in the ERP"
      },
      "credit_limit": { "type": "number" }
    },
    "required": ["customer_number"]
  }
}

The response is a collection resembling:

[
  {
    "id": 41,
    "group": "ExampleErp",
    "name": "customer_number",
    "type": "string",
    "description": "Customer number in the ERP",
    "rules": ["required", "string"]
  }
]
GET/api/v1/custom-field-schemas/{customFieldSchema}

Get one field

Returns a single stored field record. Required scope: custom-fields:read.

GET/api/v1/custom-field-schemas/mappings?group={group}&type={type}

Get mappings

Both group and type are required. The response contains force_update, fields (an array of provider field-name strings), and overridable (a map of Alution target field names to required compatible types).

{
  "force_update": false,
  "fields": ["customer_number", "credit_limit"],
  "overridable": { "name": "string", "description": "string" }
}
PATCH/api/v1/custom-field-schemas/mappings?group={group}&type={type}

Update mappings

Required scope: custom-fields:write. Both query parameters are mandatory. In mappings, each key is an Alution target and each value is a field from the provider schema. The server rejects unknown targets, missing provider fields, and incompatible types.

{
  "mappings": {
    "name": "company_name",
    "description": "customer_note"
  }
}

Was this page helpful?