Главная

Как проверить, есть ли профиль в другой базе

Обычно рекомендуется хранить всех клиентов в одной базе, а разделять аудиторию с помощью сегментов и ресурсов. Такой подход заложен в логику CDP: все данные в одном месте, единый профиль, управляемая коммуникация. Но на практике бизнес часто устроен сложнее, и данные по разным причинам оказываются в нескольких базах. Например, отдельно ведутся B2B и B2C-направления, разделяются лиды и действующие клиенты или изолированы пользователи разных продуктов.
Проблема в том, что сценарий в Altcraft всегда работает только с одной базой: он получает из неё данные, обновляет профили и запускает коммуникации внутри неё. При этом в процессе сценария может возникнуть задача — проверить, есть ли тот же пользователь в другой базе.

Например, у вас есть основная база, где новые пользователи проходят приветственную цепочку, и отдельная база пользователей Telegram-бота. На одном из этапов онбординга вы хотите отправить письмо с приглашением в бота, но перед этим надо проверить, есть ли пользователь в базе подписчиков бота. Если да — письмо с приглашением не отправляется; если нет — он получает промо.

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

Шаг 1. Отправьте API-запрос в целевую базу

1. Добавьте в сценарий узел «API-запрос». Он будет обращаться к другой базе и спрашивать, есть ли там такой клиент.
2. Выберите тип авторизации, например, через Токен. Если у вас нет подключения для авторизации, его можно создать в разделе Настройки → Подключения → Token Authentication. Для этого надо обладать правами мастер-пользователя.

Чтобы настроить узел сценария, дважды кликните на него ЛКМ.

3. Задайте основные параметры запроса

  • Метод: POST DATA
  • URL: https://<your_platform_domain>/api/v1.1/profiles/get

URL — это домен вашей платформы. Его можно скопировать из адресной строки.

4. В теле запроса передайте два параметра: номер базы для поиска и идентификатор клиента — например, email. Чтобы сценарий подтягивал email профиля, который вошёл в узел, используйте переменную {lead.email}.
{
  "db_id": 2,
  "email": "{lead.email}"
}
5. Обязательно включите опцию «Сохранить HTTP-ответ в поле {apicontent}» и придумайте название для этого поля, например content. Именно туда попадёт ответ от API, который вы будете использовать на следующем шаге.
apicontent — это временное хранилище, куда сценарий складывает ответ от API-запроса. Эти данные можно использовать дальше в сценарии: в фильтрах, письмах и других узлах. Но важно понимать, что это не поле профиля. Данные живут только внутри сценария и исчезают, как только профиль выходит из него.

Шаг 2. Проверьте ответ через JSON-фильтр

1. Сразу после API-запроса добавьте узел «JSON-фильтр». Ответ от API приходит в формате JSON. С помощью фильтра вы можете проверить, что именно пришло в ответе, и в зависимости от этого направить профиль на нужную ветку сценария.

2. В условии напишите content.error = 0. Когда платформа отвечает на запрос, она всегда присылает код ошибки. Если код равен 0, значит профиль найден. Если код равен 404, значит профиля нет.

content — это поле, которое вы указали в узле API-запроса

Пример ответа, если пользователь найден:

{
    "data": {
        "email": "john@example.com",
        ...
    },
    "error": 0,
    "error_text": "Successful operation"
}

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

Шаг 3. Сохраните результат в профиль

Чтобы не дёргать API при каждом удобном случае, результат проверки можно сохранить прямо в профиль клиента.

1. Создайте в базе дополнительное поле булевого типа, например: exists_in_db_2
2. Вернитесь в сценарий и в обе ветки добавьте узел «Обновить профиль».

3. На зеленой ветке установите в этом поле значение «Да»:

4. На красной ветке установите значение «Нет»:

Теперь результат проверки можно использовать в сценарии: для ветвления логики, исключения из рассылок или выбора контента.

Что важно иметь в виду

Учитывайте, что такая проверка выполняется в момент прохождения сценария: если сохранить результат в поле профиля и не обновлять его, он станет статичным. Этот вариант подходит, если вы уверены, что данные не будут меняться, или если нужно зафиксировать состояние на конкретный момент (например, был ли профиль в другой базе при входе в сценарий).

Если же информация может меняться и используется регулярно, проверку лучше выполнять прямо в тех сценариях, где она нужна — так вы всегда будете работать с актуальными данными.

Может быть интересно

subscription, banner, email

Покажем платформу
и найдём решение под задачи вашего бизнеса