Skip to main content
Объект user описывает учетную запись пользователя в школе Exode: логины, контакты, статус, язык, часовой пояс и технические поля для интеграций (например, внешний идентификатор extId). Этот объект используется:
  • в ответах методов user/create, user/update, user/upsert, user/find;
  • во вложенных полях (например, участник группы, сессии и др.).

Поля пользователя

Основные поля

id
integer
required
Уникальный ID пользователя в системе Exode.
uuid
string
required
Строковый UUID пользователя.
active
boolean
required
Флаг активности пользователя в системе (не отключен администратором).
activated
boolean
required
Пользователь подтвердил вход (через код/оплату).
banned
boolean
required
Пользователь заблокирован и не может входить в систему.
vkId
integer | null
VK ID пользователя, если он авторизован через VK.
tgId
integer | null
Telegram ID пользователя.
extId
string | null
Внешний идентификатор пользователя в вашей системе (CRM, LMS и т.п.). Используется для связки Exode ↔ ваша база.
appleId
string | null
Идентификатор Apple ID, если пользователь авторизован через Apple.
domain
string | null
Доменный логин вида id12345, который может использоваться как логин.
email
string | null
Email пользователя.
phone
string | null
Номер телефона пользователя в международном формате.
language
"Ru" | "Uz" | "En" | "Qa" | null
Язык интерфейса пользователя.
timezone
number | null
Смещение часового пояса пользователя относительно UTC в часах (например, 5 для UTC+5).
lastOnlineAt
string | null
Дата и время последней активности пользователя в формате ISO 8601.
starsBalance
integer
required
Баланс «звезд» пользователя в системе геймификации (общий по всем курсам).

Системные поля аудита

createdAt
string
required
Дата и время создания пользователя (ISO 8601).
updatedAt
string
required
Дата и время последнего обновления.

Вычисляемые поля (GraphQL/REST)

alive
boolean
required
Пользователь «живой» с точки зрения доступа (active === true и banned === false).
login
string
required
Текущий приоритетный логин (обычно телефон, затем email, затем домен).
currentTime
string
required
Текущее локальное время пользователя с учетом его часового пояса.
isSleepingNow
boolean
required
Эвристика: сейчас «ночное» время для пользователя (обычно 22:00–08:00).

Пример объекта user

{
  "id": 123,
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T11:45:00Z",
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "active": true,
  "activated": true,
  "banned": false,
  "vkId": null,
  "tgId": 987654321,
  "extId": "crm_12345",
  "appleId": null,
  "domain": null,
  "email": "[email protected]",
  "phone": "+9876543210",
  "language": "Ru",
  "timezone": 5,
  "lastOnlineAt": "2024-01-15T11:40:00Z",
  "starsBalance": 0,
  "metadata": {},
  "alive": true,
  "login": "[email protected]",
  "currentTime": "2025-07-20T10:37:39-05:00",
  "isSleepingNow": false
}

Где используется extId

  • в методах user/create, user/update, user/upsert — передается в теле запроса и сохраняется в поле extId;
  • в методе user/find — используется для поиска пользователя по внешнему идентификатору;
  • в других ответах, где возвращается объект user, поле extId помогает вам однозначно связать пользователя Exode с записью в вашей CRM/LMS.