Перейти к содержимому
Socialift
Руководство

Как подключить Instagram к CRM

Чтобы подключить Instagram к CRM, нужны пять вещей: профессиональный аккаунт (Business или Creator), приложение Meta с нужными разрешениями, поток OAuth, HTTPS-endpoint для вебхуков и код, который записывает события в CRM. Страница Facebook обязательна только для входа через Facebook и для Lead Ads. Ниже — каждый этап с практическими деталями.

Опубликовано: Обновлено:

Короткий ответ

Выберите путь входа: Instagram Login (без страницы, instagram_business_manage_messages) или Facebook Login с привязанной страницей (instagram_manage_messages, для Lead Ads — leads_retrieval). Постройте OAuth, подпишитесь на вебхуки и подайте App Review с видеозаписью. После этого каждое новое сообщение Direct и заявка приходят на ваш endpoint событием, а ваш код записывает их в CRM.

Пошагово

  1. Подготовьте аккаунт

    Переведите аккаунт Instagram в тип Business или Creator — личные аккаунты не поддерживаются. Страницу Facebook привязывайте, если используете вход через Facebook или нужны Lead Ads.

  2. Создайте приложение Meta

    Заведите приложение в Meta for Developers, добавьте продукты Instagram и Webhooks, надёжно сохраните app secret.

  3. Запросите разрешения

    Для диалогов — instagram_manage_messages (или instagram_business_manage_messages при Instagram Login); для заявок — leads_retrieval, pages_manage_ads и ads_management; для страниц и вебхуков — pages_show_list, pages_read_engagement и pages_manage_metadata. Просите только то, что используете.

  4. Напишите поток OAuth

    Кнопка «Подключить Instagram» в CRM ведёт на выбранное окно входа (Facebook или Instagram). Полученный код меняете на токен на сервере: при Facebook Login сохраняете страницы и ID привязанного Instagram-аккаунта, при Instagram Login — ID пользователя Instagram.

  5. Подключите вебхук

    Откройте HTTPS-endpoint с валидным сертификатом, отвечайте на проверку hub.challenge (verify_challenge), сверяйте X-Hub-Signature-256 по сырому телу (verify_request) и подпишите каждую страницу на приложение (fb.subscribe_page). Для вебхуков комментариев нужны Advanced Access и режим Live.

  6. Сопоставьте события

    Новый диалог → контакт и сделка; лид-форма → лид; комментарий → задача. Проставляйте метку источника на каждую запись.

  7. Замкните поток ответа

    Пусть менеджер отвечает прямо из CRM. Это работает внутри 24-часового окна — показывайте окно в интерфейсе. За пределами окна тег human_agent позволяет ответить до 7 дней (нужна функция Human Agent); ig.send_message() тег не ставит.

OAuth-callback — страницы и Instagram-аккаунты

Путь Facebook Login: код меняется на токен, и каждая страница сохраняется вместе с привязанным Instagram-аккаунтом.

callback.py
import asyncio
from socialift import Facebook

async def main(code: str):
    # FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, SOCIALIFT_LICENSE_KEY — env
    async with Facebook.from_env() as fb:
        token = await fb.exchange_code(code, redirect_uri="https://ваш-домен/cb")
        for page in await fb.pages(token.access_token):
            # страница, её токен (храните зашифрованным) и привязанный Instagram
            crm.save_connection(page.id, page.access_token, page.instagram_id)

asyncio.run(main("CODE_FROM_CALLBACK"))

Превращаем диалоги в контакты CRM

sync.py
import asyncio, os
from socialift import Instagram

async def main():
    async with Instagram.via_facebook(app_secret=os.environ["FACEBOOK_APP_SECRET"]) as ig:
        chats = await ig.conversations(page_token, page_id=PAGE_ID, ig_user_id=IG_USER_ID)
        for chat in chats["data"]:
            c = chat["contact"]
            if not c:
                continue
            crm.upsert_contact(external_id=c["id"], name=c.get("name") or c.get("username"),
                               source="instagram_direct", followers=c.get("follower_count"),
                               is_follower=c.get("is_user_follow_business"))

asyncio.run(main())

Поля профиля приходят не всегда (например, если пользователь вас заблокировал), поэтому используется c.get(...).

Самые частые ошибки

  • Аккаунт остался личным (не Business и не Creator) — API не работает вообще.
  • Не пройден App Review: то, что работало на аккаунтах с ролью в приложении, не работает у других клиентов.
  • Приложение не переведено в Live или страница не подписана на приложение — вебхуки не приходят.
  • Подпись вебхука посчитана по повторно сериализованному JSON.
  • Нет дедупликации событий — в CRM появились дублирующиеся сделки.
  • Не учтено 24-часовое окно — ответ вернулся неотправленным.
  • Не отслеживается срок токена — интеграция тихо остановилась.

Сколько это занимает

Техническая часть — OAuth, вебхук и сопоставление событий — зависит от вашей CRM. Дольше всего обычно тянется App Review: срок рассмотрения в Meta от вас не зависит.

Поэтому правильный порядок: разработать и проверить интеграцию на аккаунтах с ролью в приложении (Standard Access), записать видео, затем подать App Review на Advanced Access.

← Назад в блог

Частые вопросы

Нужен ли разработчик, чтобы подключить Instagram к CRM?

Да. Процесс требует приложения Meta, OAuth и endpoint'а для вебхуков — без технических знаний это не сделать. Исключение — случаи, когда для вашей CRM есть готовый плагин.

Можно ли подключить несколько аккаунтов Instagram к одной CRM?

Да. При Facebook Login каждый аккаунт подключается через свою страницу и токен страницы, при Instagram Login — через свой токен пользователя Instagram. На стороне CRM храните их как отдельные подключения.

Отдаёт ли Instagram историю переписки?

С ограничениями: ig.conversations() читает диалоги, ig.messages() — сообщения, но Meta отдаёт детали только 20 последних сообщений диалога, а неактивные более 30 дней диалоги из папки Requests не возвращаются.

Что выбрать: Instagram Login или Facebook Login?

Если нужны только Direct и комментарии, хватит Instagram Login — страница Facebook не нужна. Если нужны ещё заявки Lead Ads или аккаунты клиентов уже привязаны к страницам, выбирайте Facebook Login: событие leadgen и leads_retrieval работают через страницу.

Открывает ли пробный токен Socialift всю эту интеграцию?

Да, в первые 30 дней: пробный токен открывает все возможности SDK — Direct, Lead Ads, статистику, публикацию и помощники вебхуков. Дальше токен продлевается 30-дневными периодами с баланса, и возможности зависят от плана токена — точный список показывает «Tekshirish va muhitlar» (проверка и окружения) в разделе «Tokenlar» (токены) кабинета. Playground в кабинете работает независимо от плана.

Источники

  1. Meta: Instagram API with Instagram Login
  2. Meta: Instagram Platform overview (permissions)
  3. Meta: Retrieving leads (Lead Ads)
  4. Meta: Instagram webhooks
  5. Meta: Conversations API
  6. Meta: Human Agent feature

Связанные страницы