# effect_bound — проверка пакета

> Строка проверки в выводе пакета; среды: объявленная (declarative), шаги-код (code).

## Что значит

Право записи. Эффект (`class: "effect"`) объявлен без привязки к глаголу и без блока `tool`; запись-инструмент стоит в семействе, где у платформы свой процесс или писатель факта (домен каталога, семейство или провайдер коннектора ядра); или шаг с методом POST, PUT, PATCH или DELETE не объявлен ни эффектом, ни безопасным.

## Как исправить

Запись в домене платформы — только глаголом платформы: привяжите операцию к глаголу каталога `binds: "<домен>.<сущность>.<действие>@<ревизия>"` (`node dala-connector-kit.mjs catalog`). Глагола для нужного действия нет — не обходите проверку инструментом и другим семейством: скажите владельцу компании, что нужен глагол платформы. Читать в этих доменах инструментом можно (`class: "read"`, у шагов-кода — вид `query`). Шаг, который только читает методом POST, пометьте `safe: true`.

## Где запись только глаголом платформы

Список собран из реестра, которым судит эта проверка. Запись инструментом здесь красна; читать в этих доменах инструментом можно (`class: "read"`, у шагов-кода — вид `query`).

- **Реклама** — `ads` — домен каталога способностей
- **Задачи** — `assignment` — домен каталога способностей
- **Запись клиентов** — `booking` — домен каталога способностей
- **Каталог** — `catalog` — домен каталога способностей
- **Клиенты** — `client` — домен каталога способностей
- **Заказ на изделие** — `customorder` — домен каталога способностей
- `funnel` — домен каталога способностей
- **Знания** — `knowledge` — домен каталога способностей
- **Материалы** — `media` — домен каталога способностей
- **Уведомления** — `notice` — домен каталога способностей
- `payment` — домен каталога способностей
- **Оплата** — `payments` — домен каталога способностей
- **Процессы** — `process` — домен каталога способностей
- **Доставка** — `shipment` — домен каталога способностей
- **Социальные сети** — `social` — домен каталога способностей
- `ads` — семейство коннектора ядра
- `booking` — семейство коннектора ядра
- `catalog` — семейство коннектора ядра
- `channel` — семейство коннектора ядра
- `crm` — семейство коннектора ядра
- `google_account` — семейство коннектора ядра
- `kaspi_merchant` — семейство коннектора ядра
- `kaspi_register` — семейство коннектора ядра
- `platform` — семейство коннектора ядра
- `amocrm` — провайдер коннектора ядра
- `anthropic` — провайдер коннектора ядра
- `bitrix24` — провайдер коннектора ядра
- `fb` — провайдер коннектора ядра
- `gemini` — провайдер коннектора ядра
- `google` — провайдер коннектора ядра
- `google_sheets` — провайдер коннектора ядра
- `ig` — провайдер коннектора ядра
- `kaspi` — провайдер коннектора ядра
- `meta` — провайдер коннектора ядра
- `moysklad` — провайдер коннектора ядра
- `n8n` — провайдер коннектора ядра
- `nbrk` — провайдер коннектора ядра
- `openai` — провайдер коннектора ядра
- `qwen` — провайдер коннектора ядра
- `tg` — провайдер коннектора ядра
- `threads` — провайдер коннектора ядра
- `tiktok` — провайдер коннектора ядра
- `wa` — провайдер коннектора ядра

## Глаголы платформы этих доменов

- `shipment.parcel.quote@1` · query — Варианты доставки посылки от адреса до адреса: цена в тенге, срок, класс услуги (курьер по требованию или посылочная сеть), как передать посылку и где получить. Цена и срок приходят от службы доставки — не называй клиенту цену или срок, которых нет в ответе. Название службы тебе не раскрывается: не выдумывай его.
- `shipment.parcel.create@1` · command — Создать отправление по выбранному варианту доставки: имя и телефон получателя. Цену и условия ты не задаёшь — их берёт сервер у службы доставки по ссылке варианта, и сотрудник одобряет карточку с этими цифрами. После вызова отправление считается созданным только когда результат confirmed; при unknown не обещай клиенту доставку и не создавай отправление повторно.
- `shipment.parcel.status@1` · query — Состояние отправления по ссылке: принято, в пути, ждёт в пункте выдачи, вручено, отменено или не доставлено, и чем подтверждено вручение, если служба это даёт. Не обещай срок, которого в ответе нет.
- `shipment.parcel.cancel@1` · command — Отменить отправление по ссылке, если служба доставки позволяет отменить бесплатно. Если отмена платная или недоступна — результат rejected с причиной, решение за сотрудником; клиенту не обещай возврат денег.
- `booking.availability.search@1` · query — Свободное время приёма по услуге: ближайшие варианты с врачом и часовым поясом клиники. Врача, календарь и точный момент резолвит сервер; код времени действителен только в этом ответе. Записать этот инструмент не умеет: запись — отдельной способностью записи на приём, если она предложена, иначе запись делает оператор.
- `booking.appointment.create@1` · command — Записать пациента на приём — ТОЛЬКО после его явного «да» на прочитанные время и врача. Сначала в этом же ответе найди время поиском свободного времени по ТОЙ ЖЕ услуге и возьми код нужного слота. До записи пациенту должно быть прочитано время и врач как в выдаче поиска, каждое время в форме «ДД.ММ ЧЧ:ММ, врач <имя>» (дата и время рядом), а его последнее сообщение — согласие. `consent_quote` — его слова согласия дословно из последнего сообщения (например «да»). Пациента, врача и точное время подставляет сервер. «Ну давайте», «наверное», встречный вопрос — не явное согласие: переспроси. Исход not_confirmed — прочитай пациенту `read_back` и спроси, записать ли.
- `booking.appointment.cancel@1` · command — Отменить запись пациента на приём по его просьбе — ТОЛЬКО после его явного «да» на прочитанные время и врача ЭТОЙ записи. Записи пациента сервер находит сам по номеру диалога: вызови без кода — у единственной записи исход not_confirmed вернёт `read_back` (время и врач), у нескольких — choose_appointment со списком `appointments` и их кодами: прочитай и спроси, какую отменить, затем передай её код `appointment_ref` в этом же ответе. Прочитай пациенту `read_back` дословно, в форме «<подпись времени>, врач <имя врача>», и спроси, отменить ли. `confirm_quote` — его слова согласия дословно из последнего сообщения (например «да»). «Ну, наверное», встречный вопрос — не явное согласие: переспроси. Чужие записи (другого человека или номера) не называй и не отменяй — на такую просьбу откажи и предложи связаться с клиникой. Переносом эта способность не занимается.

Все коды, поля манифеста и форма кассеты — [справочник](https://www.zengi.ai/developers/reference).
