enВойти в Senler

Получатели рассылки через API

Предпросмотр показывает, какие лиды подходят под условия рассылки сейчас, без отправки сообщений. Для настройки в кабинете используйте «Получатели»; для интеграции выполните запрос ниже.

Проверьте сохранённую аудиторию

Для чтения нужно право can_view_deliveries в проекте рассылки. Используйте серверный API-ключ или OAuth-токен. DELIVERY_ID — UUID рассылки Senler.io:

curl --fail-with-body \
  "https://api.senler.io/api/deliveries/$DELIVERY_ID/audience-preview?filter_source=saved" \
  --header "Authorization: Bearer $ACCESS_TOKEN"

filter_source=saved использует сохранённые условия рассылки. Переданные вместе с ним фильтры аудитории не применяются.

Проверьте другие фильтры без сохранения

Передайте filter_source=query и нужные условия. Например, проверка одного сегмента:

curl --fail-with-body --get \
  "https://api.senler.io/api/deliveries/$DELIVERY_ID/audience-preview" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --data-urlencode "filter_source=query" \
  --data-urlencode "segment_id=$SEGMENT_ID"

SEGMENT_ID — ID сегмента Senler.io, не название группы Senler.ru. Для нескольких сегментов повторяйте параметр segment_id. Также доступны lead_ids, channel_ids и channel_type.

При filter_source=query без условий проверяется вся доступная база проекта, а не сохранённый сегмент. Обязательные исключения подписок, блокировок и участников проекта действуют всегда, как и правила уникальности получателей.

Если filter_source не указан, API использует переданные непустые фильтры, а при их отсутствии — сохранённые. Указывайте источник явно, особенно когда пользователь очищает фильтры.

Прочитайте результат

Ответ содержит:

  • filters — условия этого предпросмотра;
  • saved_filters — сохранённые условия, с которыми рассылка будет запускаться;
  • filter_source — фактически использованный источник;
  • total_unique_recipients — число уникальных получателей после всех обязательных исключений;
  • items — текущую страницу получателей;
  • next_cursor — курсор следующей страницы или null.

Для следующей страницы передайте cursor=next_cursor, сохранив источник и условия. Предпросмотр не фиксирует аудиторию: состав лидов может измениться до запуска.

Поле audience_scope помогает проверить охват:

  • all_project — вся доступная база проекта;
  • all_selected_channels — вся доступная база выбранных каналов или типа канала;
  • filtered — отбор по лидам или сегментам.

Наличие фильтра по каналу само по себе не означает узкую аудиторию. Для отправки по всей базе подтвердите именно охват и количество получателей, а не только текст сообщения.

Сохраните условия перед запуском

Предпросмотр не изменяет рассылку. Чтобы использовать проверенные условия, сохраните их в поле filters через PATCH /api/deliveries/DELIVERY_ID с правом can_manage_deliveries, затем снова запросите предпросмотр с filter_source=saved.

Число получателей и доступный объём отправки — разные показатели. GET /api/deliveries/DELIVERY_ID/start-preview проверяет объём запуска с учётом суточного лимита. Дальнейшие действия описаны в запуске рассылки.

При работе через MCP сначала найдите метод и прочитайте его схему, затем вызывайте его с теми же условиями. Не заменяйте неизвестный ID сегмента пустым фильтром.