Разработка бота для Instagram с интеграцией Битрикс24
Instagram Direct — основной канал коммуникации для e-commerce, beauty, fashion и других B2C-сегментов. Бот обрабатывает входящие сообщения в Direct, отвечает по сценарию и создаёт лид в Битрикс24. Менеджер продолжает диалог из CRM, не выходя в Instagram.
Технические условия: Instagram Messaging API
Instagram Messaging API работает через платформу Meta. Требования:
- Аккаунт Instagram Business или Creator, привязанный к Facebook-странице.
- Facebook Developer App с продуктами Messenger + Instagram.
- Разрешения:
instagram_basic,instagram_manage_messages,pages_manage_metadata. - HTTPS-сервер для webhook.
Instagram Messaging API — это тот же Messenger Platform, но входящие сообщения имеют тип instagram_id отправителя, а не Facebook PSID. Webhook подписывается на instagram объект в настройках приложения.
Что умеет бот в Instagram
Instagram Direct поддерживает:
- Текстовые сообщения — основной поток.
- Быстрые ответы (quick replies) — кнопки-подсказки.
- Story mentions — пользователь упомянул бизнес-аккаунт в Stories. Бот получает событие и может ответить автоматически.
- Ice breakers — вопросы-стартеры, которые пользователь видит при первом открытии диалога.
Чего нет: карусели Generic Template в Instagram ограничены — поддерживается только media_share и простые кнопки с ссылками.
Приём сообщений через webhook
{
"entry": [{
"id": "IG_ACCOUNT_ID",
"messaging": [{
"sender": { "id": "IG_USER_IGSID" },
"recipient": { "id": "IG_ACCOUNT_ID" },
"timestamp": 1710000000000,
"message": {
"mid": "aWdfZAG9...",
"text": "Сколько стоит доставка?"
}
}]
}]
}
IGSID (Instagram-Scoped ID) — уникальный ID пользователя для вашего приложения. Это не публичный Instagram ID.
Получение профиля пользователя Instagram
$profile = json_decode(file_get_contents(
"https://graph.instagram.com/{$igsid}?fields=name,username&access_token=" . IG_ACCESS_TOKEN
), true);
// Возвращает: name (display name), username (@handle)
Автоответ на упоминания в Stories
Когда пользователь упоминает ваш аккаунт в Stories, приходит webhook-событие messaging_referral с type=STORY_MENTION. Бот может автоматически поблагодарить:
if ($event['type'] === 'STORY_MENTION') {
sendIgMessage($igsid, "Спасибо, что отметили нас в Stories! 🙌 Хотите узнать об актуальных акциях?");
logLeadSource($igsid, 'story_mention');
}
Story mentions — тёплые лиды: человек уже взаимодействовал с брендом.
Сценарий квалификации лида
Входящее сообщение
↓
Состояние = null → приветствие + быстрые ответы
↓
Выбор: "Хочу заказать"
↓
Запрос телефона / email
↓
Создание лида в Б24 + уведомление менеджера
↓
Сообщение: "Менеджер свяжется с вами в течение часа"
Состояния диалога хранятся в Redis по ключу ig_dialog:{igsid}. TTL — 24 часа (окно активности в Instagram).
Интеграция с Битрикс24
function createInstagramLead(string $igsid, string $username, array $data): int {
return $b24->callMethod('crm.lead.add', [
'fields' => [
'TITLE' => "Instagram: @{$username}",
'SOURCE_ID' => 'WEBFORM',
'SOURCE_DESCRIPTION' => 'Instagram Direct',
'PHONE' => !empty($data['phone']) ? [['VALUE' => $data['phone'], 'VALUE_TYPE' => 'WORK']] : [],
'EMAIL' => !empty($data['email']) ? [['VALUE' => $data['email'], 'VALUE_TYPE' => 'WORK']] : [],
'COMMENTS' => "Instagram: @{$username}\nIGSID: {$igsid}",
'UF_CRM_IG_IGSID' => $igsid,
],
])['result'];
}
// История переписки — в активность
$b24->callMethod('crm.activity.add', [
'fields' => [
'OWNER_TYPE_ID' => 1,
'OWNER_ID' => $leadId,
'TYPE_ID' => 4,
'SUBJECT' => "Instagram Direct: @{$username}",
'DESCRIPTION' => implode("\n", $dialogMessages),
],
]);
Ice breakers: вопросы при первом открытии диалога
Через API приложения настраиваются подсказки, которые пользователь видит при первом открытии диалога с бизнес-аккаунтом:
callMetaApi('me/messenger_profile', 'POST', [
'platform' => 'instagram',
'ice_breakers' => [
['call_to_actions' => [
['type' => 'postback', 'title' => 'Узнать о доставке', 'payload' => 'DELIVERY_INFO'],
['type' => 'postback', 'title' => 'Оставить заявку', 'payload' => 'LEAVE_REQUEST'],
['type' => 'postback', 'title' => 'Посмотреть каталог', 'payload' => 'CATALOG'],
]],
],
]);
Ограничения платформы Meta для Instagram
- Сообщения от бота принимаются только в течение 24 часов после последнего сообщения пользователя.
- Нельзя инициировать диалог самостоятельно (бот не может написать первым).
- Приложение проходит ревью Meta:
instagram_manage_messages— расширенное разрешение, требует проверки. - Массовые рассылки запрещены условиями платформы.
Сроки
| Этап | Срок |
|---|---|
| Настройка Meta App, IG Business, webhook | 1–2 дня |
| Сценарий бота, состояния, ice breakers | 3–4 дня |
| Интеграция с Б24: лиды, активности, уведомления | 2–3 дня |
| Story mention автоответ | 1 день |
| Ревью Meta (instagram_manage_messages) | 3–7 рабочих дней |
| Тестирование | 1–2 дня |
Итого: 2–3 недели с учётом ревью Meta. Если приложение уже прошло ревью для Messenger-бота, Instagram-разрешения добавляются быстрее.







