1 место FINNEXT 2025Победитель «ИИ в Финтехе» ГазпромбанкаФиналист Startech Awards 2026Финалист E-PLUS 2024

Персонализация и A/B‑тесты по API

API-режим Sales Ninja для мест, где нельзя поставить скрипт: мобильные приложения, бэкенд, CRM, личные кабинеты. Один POST приносит одно решение: без куки, без хранения состояния и без вынесения данных за контур.

Нам доверяют

Что такое персонализация по API

На сайте Sales Ninja подключается JS‑скриптом и дальше сам решает, кому какой вариант показать. Но есть мир, где скрипт поставить нельзя: мобильное приложение, бэкенд, CRM, личный кабинет, телефония, рассылка. Там нужен другой формат интеграции.

API‑режим работает без установки скрипта. Вы собираете состояние пользователя у себя и отправляете POST‑запрос с нужными полями, в ответ приходит решение: какую персонализацию или вариант A/B применить. Без скриптов на клиенте, без куки, без вынесения данных за контур.

JS‑скрипт на сайтеКлассический режим

Скрипт следит за поведением, сам выбирает вариант и сам применяет изменения через DOM.

Отлично работает на сайте. Не работает в нативном приложении, бэкенде или CRM.

  • Следит за поведением
  • Выбирает вариант
  • Применяет изменения в DOM
  • Использует куки и хранит состояние
API‑режимEnterprise / Backend

Бэкенд или мобильное приложение собирает идентификатор пользователя и контекст, шлёт POST, получает решение и применяет его на своей стороне.

Stateless‑запрос: что передали, то и участвует в решении. Ничего лишнего.

  • Ваш backend или приложение отправляет POST
  • Получает решение
  • Применяет у себя UI, логику, контент
  • Без куки, без хранения состояния
Backend
iOS / Android
CRM
Личные кабинеты
E‑mail / push / SMS

Как это работает

Sales Ninja по API работает как удалённый движок решений: один запрос приносит одно решение, тот же вход даст тот же вариант. Никаких куки и сессий на стороне Sales Ninja, которые надо синхронизировать с вашим бэкендом.

Что вы отправляетеPOST /outer/v1.0/personalizations
// что вы отправляете
{
  "customerId": "934f17b6-ffba-…",
  "projectId": "4e0b71c2-…",
  "context": {
    "page": "/checkout",
    "sessionNumber": 3,
    "pagesOpened": 7,
    "utmSource": "yandex",
    "device": "mobile",
    "params": {
      "plan": "pro",
      "cartTotal": 12490
    }
  }
}
customerIdcontextparamsapplied
Что возвращается200 OK
// что возвращается
[
  {
    "personalizationId": "934f17b6-…",
    "optionId": "variant_b",
    "isControl": false,
    "version": 17,
    "validUntil": "2026-05-12T00:00:00Z",
    "params": {
      "discount": "10%",
      "copy": "Заберите со скидкой"
    }
  }
]
optionIdisControlvalidUntilparams

Stateless

Никакого «состояния пользователя» на нашей стороне, которое надо синхронизировать. Что вы кладёте в запрос, то и учитывается.

Идемпотентность

Один и тот же customerId на одну версию персонализации получит один и тот же вариант. Sticky‑поведение из коробки.

Скорость

Ответ обычно занимает от единиц до десятков миллисекунд и не добавляет заметной задержки в ваш сценарий.

ValidUntil

В ответе приходит срок жизни решения. Можно безопасно кэшировать на своей стороне и экономить вызовы.

Из контура уходит только то, что вы решили

Стандартный блокер интеграции с внешним сервисом звучит как «нам нельзя отдавать персональные данные». В API‑режиме состав запроса контролируете вы: Sales Ninja не запрашивает PII, не ставит куки и не трекает поведение скрытым скриптом.

Остаётся у васваш контур
  • Имена, почты, телефоны и весь PII
  • База клиентов и история заказов
  • Проектный токен: живёт только на бэкенде
  • Решение, как применить вариант
Уходит в Sales Ninjaтолько выбранные поля
customerIdcontextparamsip?

Обезличенный идентификатор, контекст визита и произвольные параметры. IP опционален и нужен только для гео‑логики.

Идентификатор в обезличенном виде

customerId может быть любым устойчивым ID: SHA‑256 от почты, ID строки в БД, GUID мобильной сессии, anonId. Sales Ninja не знает, что это, и не пытается расшифровать.

Контекст на ваше усмотрение

Можно дать только UTM и тип устройства, а можно поделиться суммой корзины и тарифом через params. Чем больше сигнала, тем точнее персонализация, но это всегда ваш выбор.

IP опционально

Для гео‑логики передайте IP. Без него всё тоже работает: устойчивый customerId, контекст и params уже дают системе достаточно сигнала.

Авторизация токеном проекта

Проектный токен в заголовке X‑SN‑TOKEN. Никаких пользовательских ключей, ничего, что нужно генерить per‑user. Ротация в один клик в кабинете.

Безопасный контур. Стандартный путь: вызов с вашего бэкенда, где токен не уезжает на клиент, состав запроса контролируется на вашей стороне. Решение приходит структурированным JSON, который вы маппите в свою бизнес‑логику, никаких DOM‑манипуляций.

Что доступно по API

Через API доступны три ключевых сценария Sales Ninja: персонализация по ML‑модели, A/B‑тестирование с контрольной группой и учёт целей, на которых решения улучшаются сами.

POST/outer/v1.0/personalizations

AI персонализация

Один эндпоинт отдаёт персонализированные предложения, тексты, цены и бизнес‑логику. Модель сама учит, какой вариант лучше для кого, а вы применяете готовое решение в своём интерфейсе.

ML‑модель на стороне Sales NinjaКонтрольная группа автоматическиТарифицируется только когда работает
POST/public/v1.0/ab-tests/apply

A/B‑тесты

Отдельный эндпоинт для классических экспериментов. Многорукий бандит, четыре статистических метода остановки, sticky‑разделение: всё то же, что и на сайте, только без скрипта.

POST/outer/v1.0/goal/reach

Цели и конверсии

Когда у вас сработала покупка, заявка или оплата, отправьте достижение цели. Модель учится на этих сигналах. Цели бывают и офлайновые: дозвон, выкуп, окончание подписки.

Контекст любой

UTM, устройство, страница, пройденные шаги, признаки CRM, любые ваши params. Условия таргетинга и сегменты настраиваются в кабинете, код менять не надо.

Sticky‑вариант

Пользователь, попавший в вариант, продолжит видеть его же при следующих запросах. Можно дополнительно прислать appliedPersonalizations, чтобы решение было консистентно между каналами.

Куда чаще всего подключают

Базово API нужен в четырёх случаях: в нативных мобильных приложениях, на вашем бэкенде, в CRM и автоматизациях и в личных кабинетах, куда нельзя положить произвольный JS‑скрипт. Выберите свой сценарий.

iOS и Android

Запрос идёт либо напрямую с клиента, либо через ваш бэкенд. Ответ применяете в нативных экранах: подменяете предложение, показываете другой онбординг, включаете другую механику чек‑аута.

CodableRetrofitKotlin / Swift

Решение перед рендером

Ваш сервер собирает контекст и принимает решение перед рендерингом ответа. Подходит для SSR‑сайтов и систем, где UI собирается на сервере.

Node / Go / PythonJava / .NETPHP

Письма, пуши, SMS

Перед отправкой коммуникации система спрашивает вариант. Разные сегменты получают разные предложения, темы и скидки, а офлайн‑конверсии возвращаются обратно как достижения целей.

Mindbox1С / Bitrixn8n / Webhook‑flow

Когда скрипты запрещены

Если сторонние скрипты запрещены корпоративной политикой, всё работает по серверному API. Ничего лишнего на клиенте, токен живёт только на вашем бэкенде.

SSOWhite‑labelБез CSP‑конфликтов

Три шага интеграции

Базовая интеграция собирается за день. Логика остаётся в кабинете Sales Ninja, на вашей стороне только два HTTP‑вызова.

1

Настройте персонализацию или A/B‑тест в кабинете

Опишите варианты, условия таргетинга, цель оптимизации. Это делается в UI, маркетолог справится без разработчика. После публикации вы получаете ID и токен.

ПерсонализацияA/B‑тест
2

Шлите запрос за решением

В нужной точке кода, перед рендером экрана или отправкой письма, делаете POST. В ответе приходит идентификатор варианта и его параметры. Применяете их.

POST /personalizations200 OK
3

Передавайте достижения целей

Когда пользователь сделал то, ради чего всё затевалось, зафиксируйте цель: покупку, заявку, продление. Дальше модель сама подкручивает раздачу вариантов в сторону того, что работает.

POST /goal/reach200 OK
Минимальный пример на cURL
# 1. Получить вариант
curl -X POST 'https://api.sales-ninja.me/outer/v1.0/personalizations' \
  -H 'X-SN-TOKEN: ********' \
  -d '{"customerId":"u_8421","projectId":"…","context":{"page":"/checkout"}}'

# 2. Зафиксировать достижение цели
curl -X POST 'https://api.sales-ninja.me/outer/v1.0/goal/reach' \
  -H 'X-SN-TOKEN: ********' \
  -d '{"goalId":"checkout_paid","customerId":"u_8421"}'

Глубина данных / Sales Ninja

За каждым визитом —
больше, чем видит отчёт.

Аналитика показывает, что произошло. Мы добавляем подробное поведение, модельные оценки и данные ваших систем — чтобы понять, что может произойти дальше.

Четыре слоя данных о визите: события сайта, поведение, модельные оценки и результаты из CRM
Один визит. От наблюдения — к пониманию ценности.

Пиксель Sales Ninja

Не только «был на странице». Как именно он выбирал.

Подробный слепок сессии помогает различать случайный просмотр и осмысленный интерес — даже когда покупка ещё не произошла.

  • Активность вкладки
  • Просмотры товаров
  • Корзина
  • Движения курсора
Как это помогает принять решение

Оценивать намерение по совокупности действий, а не по одному клику или времени на сайте.

Какие данные и системы можно подключить

События и контекст

Клики, скроллы, движения мыши, активность вкладок, корзина, просмотренные товары и цели прошлых сессий. UTM, устройство, город, погода и ваши собственные параметры.

Модельные признаки

Интересы, возрастная группа, платёжеспособность — с оценкой уверенности. Вероятность конверсии, ожидаемая выручка, цена клика и оценка ботности по поведению.

Ваши системы

amoCRM, Битрикс24, RetailCRM; Calltouch, UIS / CoMagic, Phonix; Rick.ai, Smartis, Roistat; Яндекс Метрика, AppMetrica. Если готовой интеграции нет — своя выгрузка конверсий.

Установка через GTM, Метрику или CMS

Модельные профили — классы и вероятности, а не личность человека

Расскажите о задаче.
Соберём решение
под ваш бизнес.

Познакомимся, разберём вашу ситуацию и наметим первые шаги. Без скриптов и давления: заявка вас ни к чему не обязывает.

  • Пишет живой менеджер, не бот
  • NDA по умолчанию,
    ничего не уйдёт наружу
  • Никаких почтовых цепочек и спама
Ответим в течение 1 рабочего дня

+ 8 модулей стека — в одной лицензии, без доплат

Идёт в подарок

Берёте Персонализацию по API, остальной сайтовый стек получаете бесплатно

Одна лицензия: всё ниже уже внутри. Без доплат и кросс‑сейла.

8 модулей в одной лицензии

Нам доверяют ведущие агентства

Ответы на часто задаваемые вопросы