Перейти к содержимому

Таблица источника

Каждый источник — таблица sources.<имя> в вашей базе: событие — строка, поле события — столбец, новое поле — новый столбец (у прежних строк в нём пусто). Строку рождает платформа из события один раз — дальше она ваша.

  • Имя таблицы — латиницей из названия источника, при первом событии: «Заявки с лендинга» → sources.zayavki_s_lendinga, «AmoCRM» → sources.amo_crm. Занятое — с номером (_2), с цифры — с s_ впереди. Имя не меняется вместе с названием источника: на нём держатся ваши запросы и представления.
  • Имя столбца — тем же транслитом из имени поля: «Ваш телефон» → vash_telefon, E-mail → e_mail, utmSource → utm_source, HTTPCode → http_code. Начинается с цифры — подчёркивание впереди («1. Имя» → _1_imya); ни буквы, ни цифры — field; совпало — первое пришедшее поле получает имя, следующие — с номером (imya, imya_2); длиннее 63 знаков — первые 63. Зарезервированное слово SQL (order) остаётся как есть — в запросе берите его в кавычки: "order".
  • Исходное имя поля — в комментарии столбца: его видно в DBeaver, на странице «Таблицы источников» и в подписях экрана таблицы.
  • Порядок столбцов — порядок полей: новые поля события встают в том порядке, в каком пришли (как поля формы или столбцы файла). Экран таблицы, выгрузка CSV и API показывают служебные столбцы в конце.
Столбец Что в нём
_event_id номер события в raw.events, первичный ключ
_received_at когда принято
_channel канал: webhook, file, pull
_meta отметки платформы, jsonb; у обычной строки — {}
Тип в базе Что это
bigint целое
numeric число
date дата
timestamptz дата и время
boolean да/нет
text текст
jsonb структура: вложенный объект или массив целиком
  • Тип выбирают значения: число — без плюса и ведущих нулей, не длиннее 10 цифр в целой части, и в русской записи — разряды через пробел (обычный, неразрывный или узкий), дробь через запятую: 98 500, 1 234,56; 1,500 (одна запятая и три цифры после неё) — текст: в английской записи это 1 500. Поле, названное телефоном (phone, tel, «телефон»…), числом не бывает; да/нет — только true и false.
  • Даты — только однозначные: ISO 8601 (2026-09-02, 2026-09-02T10:00, 2026-09-02T10:00:00+03:00, …Z; через пробел — и час одной цифрой, как в CSV Google Таблицы: 2026-09-14 9:05) и русский порядок через точку (02.09.2026, 02.09.2026 10:00). 02/09/2026, 2.9.2026 и 02-09-2026 — текст. Время без пояса — в поясе кабинета.
  • Значение, которое в тип не ложится, расширяет столбец: целое → число → текст, дата → дата и время → текст, да/нет → текст. Ваши представления и другие объекты на столбце платформа пересоздаёт при этом сама. Расширение видно: пометка у столбца на экране таблицы, плашка загрузки, карточка источника — до вашего выбора «Тип столбца».
  • Свой тип задаёт кнопка «Тип столбца» — тогда он закреплён: Задать тип столбца.
  • Столбцов полей у таблицы — не больше 500.

Почему так — Типы столбцов.

Значение, которое не легло в столбец, отмечено в _meta, а оригинал всегда в raw.events:

{"changes": [{"field": "Сумма", "change": "nulled", "reason": "pinned_type"}]}
Отметка Что значит
nulled / pinned_type в столбце пусто: тип закреплён, значение в него не приводится
nulled / blocked в столбце пусто: тип не расширить — на столбце держится то, что платформа не пересоздаёт
nulled / rebuild в столбце пусто: ваши объекты на столбце не встали с новым типом (их имена — в views)
dropped / column_limit у поля нет столбца: столбцов полей уже 500
dropped / insert_failed строка не вставилась целиком — в таблице только служебные столбцы
Действие Роль «клиент» Роль «только чтение»
Читать да да
UPDATE значений да, необратимо; служебные столбцы — нет нет
DELETE да, в корзину нет
INSERT, TRUNCATE, ALTER TABLE нет: строки рождают события, таблицей владеет платформа нет

Повторная отправка строкой не становится — она есть только в raw.events.