Skip to content

Desks TCP API

Desk is a CRM routing and visibility entity inside a brand.

Desks do not replace trading groups. Trading groups are used for BackOffice and trading account scope. Desks are used for CRM leads and customers.

Access Control

All desk methods require one of:

  • SESSION_MANAGER
  • SESSION_ADMIN
  • SESSION_DEALER
  • SESSION_CRM_MANAGER
  • SESSION_CRM_ADMIN

Manager permissions and scope are resolved from the cached staff manager record. The token is used only as the source of manager id and session type.

Permission fields:

  • see_customers is required for MngGetDesk and MngGetDesksByFilter.
  • set_customers is required for MngAddDesk, MngUpdateDesk, MngArchiveDesk, and MngDeleteDesk.

Scope rules:

  • desk brand must match manager brand when manager brand is set.
  • desk code must match manager desks wildcard scope unless manager has admin or unrestricted desk scope.
  • list methods return only desks visible to the manager.

Desk Fields

Field Type Description
desk string Canonical desk code, for example DESK_RETENTION or DESK_EU_SALES
brand string Brand namespace. The pair brand + desk is unique
name string Human-readable desk label
status int 0 active, 1 archived
enable int 1 can be used for new assignments, 0 disabled
manager_id int Optional desk owner or team lead manager id
sort_index int UI ordering value
created_time time_t Unix creation timestamp
updated_time time_t Unix update timestamp

Desk Scope

Managers have a desks field that works as a wildcard mask over desk codes.

Examples:

Mask Meaning
* all desks
DESK_* all desks with DESK_ prefix
DESK_EU*,!DESK_EU_TEST EU desks except DESK_EU_TEST

Customer and lead list methods require a deskFilter parameter. It uses the same wildcard mask format and is applied to the desk field.

CustomerRecord and LeadRecord store the desk as a string code:

{
  "brand": "default",
  "desk": "DESK_RETENTION"
}

Commands