Перейти до основного вмісту
Beta. Automations API перебуває в бета-версії, і ми активно збираємо відгуки. Ендпоінти, payload’и та ліміти можуть змінюватися в міру ітерацій. Будь ласка, надсилайте відгуки та звіти про помилки в підтримку, щоб ми могли пріоритизувати правильні покращення.
Ендпоінти Automations дозволяють визначати правила, які автоматично реагують на вхідну engagement-активність Instagram. Кожна автоматизація поєднує один або кілька тригерів (подія, що спрацьовує) з однією чи кількома діями (що відбувається при спрацюванні). Одне правило може прослуховувати кілька тригерів і виконувати кілька дій — викликати webhook у ваш аналітичний конвеєр І надсилати DM з тієї самої взаємодії. Двигун повністю працює всередині політики Meta (без DM за підписку, без першого повідомлення незнайомцям, без масової вихідної розсилки) і успадковує обмеження швидкості Ayrshare на акаунт, дедуплікацію на отримувача та ідемпотентне приймання webhook’ів.

Як це працює

1

Створіть автоматизацію

POST /automations з бажаними тригерами й діями. Автоматизація активується миттєво.
2

Кінцевий користувач взаємодіє

Хтось коментує ваш допис, відповідає на вашу історію, надсилає DM або реагує на DM. Meta доставляє webhook в Ayrshare.
3

Ayrshare зіставляє та диспетчеризує

Двигун знаходить кожне правило, що відповідає події, перевіряє дедуплікацію на дію та ваш добовий ліміт DM, а потім виконує кожну дію. До надсилання DM застосовується jitter 20–60 секунд, щоб залишатися в межах антиспам-евристик Instagram.
4

Перегляньте, що спрацювало

GET /automations/:id/activity повертає журнал аудиту — кожну спробу диспетчеризації, результати кожної дії та будь-які помилки.

Тригери

До однієї автоматизації можна приєднати до 50 тригерів. Кожен тригер є discriminated union по полю type; поля, специфічні для типу, розташовані на тому ж рівні. У v1 усі тригери працюють лише для Instagram. Зіставлення ключових слів — регістронезалежне та по цілому слову. Подія задовольняє тригер із фільтром ключових слів, якщо містить будь-яке з налаштованих ключових слів. Пропустіть storyId у тригері історії, щоб він спрацьовував на кожну історію підключеного акаунта.

Дії

До однієї автоматизації можна приєднати до 50 дій. Вони виконуються послідовно; кожен результат записується у рядок активності.

Вікно дедуплікації на дію

Кожна дія — незалежно від типу — додатково приймає необов’язкове поле верхнього рівня dedupWindowMinutes, яке перевизначає типове 7-денне вікно дедуплікації на отримувача лише для цієї дії.
  • Установіть 0, щоб повністю вимкнути дедуплікацію для цієї дії (типово для fire_webhook / send_email, де отримувач очікує кожну подію).
  • Обмеження — 525600 (один рік).
Action with a 24h dedup override

Payload fire_webhook

Коли виконується fire_webhook, він надсилає POST з JSON-тілом на webhook-URL рівня акаунта:
recipientUsername і keyword мають значення null, коли тригер їх не заповнює (наприклад, dm_keyword не несе username у payload’і Meta; story_reply не має ключового слова).

Змінні шаблону

send_dm.message, send_email.subject і send_email.message підтримують підстановку {{placeholder}}. Невідомі placeholder’и відхиляються під час створення/оновлення (як помилка валідації 473), тож помилка друку ніколи мовчки не пропустить дослівний {{foo}} у повідомлення, яке бачить клієнт.
Немає sender_email / recipient_email. Вони навмисно не надаються — вашому email для білінгу немає легітимного місця в DM незнайомій людині, і Meta не надає email отримувача в жодному IG-webhook. Відсутність placeholder’ів запобігає випадковому розкриттю.
Приклад шаблону:

Обмеження швидкості та ліміти

Ліміт активних автоматизацій рахується на User Profile, а не на батьківський акаунт. Кожен профіль вашого акаунта отримує свої Business 10 / Enterprise 50, тож акаунт із багатьма профілями може запускати відповідну кількість автоматизацій у кожному з них. Він рахує активні автоматизації та застосовується як при POST (створення), так і при повторній активації через PUT (active: false → true), у кожному випадку повертаючи код помилки 470. Потрібен вищий ліміт на профіль? Зв’яжіться з підтримкою, щоб його підвищили для вашого акаунта. Добовий ліміт DM застосовується на батьківський акаунт Ayrshare, спільно для всіх ваших профілів, з підлімітом на профіль, щоб один активний профіль не вичерпав квоту всього акаунта. Коли досягнуто ліміт DM, рядок активності отримує статус rate_limited і DM не надсилається. Структурні ліміти на одну автоматизацію: 1–50 тригерів, 1–50 дій. Сам Instagram обмежує DM приблизно 200/годину на акаунт. Двигун виконує диспетчеризацію з jitter 20–60 секунд, щоб залишатися в безпечних межах.

Статуси активності

Рядок у GET /automations/:id/activity має статус верхнього рівня status плюс статус кожної дії всередині actionResults[]: pending і in_flight — перехідні; усі інші — термінальні.

Коди помилок

API повертає два види помилок:
  • Бізнес-правила несуть номерний code автоматизації (наприклад, { "action": "automation", "code": 469, ... }).
  • Помилки валідації — будь-яке некоректне тіло запиту (відсутні або невалідні поля, невідомі змінні шаблону, нерозпізнані ключі) — повертаються як єдина відповідь 473 з об’єктом details, що містить перелік некоректних полів. details — це вивід валідатора (formErrors плюс fieldErrors). Розгалужуйтеся за details, а не за окремим кодом умови. У fieldErrors ключі — це поля верхнього рівня запиту (triggers, actions): проблема всередині конкретного запису, наприклад відсутність keywords у тригера, повідомляється під відповідним полем (наприклад, triggers), тоді як formErrors містить проблеми рівня об’єкта, як-от нерозпізнані ключі.

Що Meta НЕ дозволяє

Кілька часто запитуваних можливостей не підтримуються, оскільки Meta не дозволяє їх у публічному Instagram API:
  • Автоматичне DM новим підписникам. Instagram не публікує webhook на підписку.
  • Перше DM-повідомлення незнайомцям. Meta вимагає, щоб отримувач ініціював контакт (коментар, відповідь, DM, реакція), перш ніж бізнес-акаунт зможе надіслати йому повідомлення — саме це й представляє кожен підтримуваний тут тригер.
  • Масові вихідні кампанії. Погодинні ліміти DM та антифрод-евристики застосовуються на рівні платформи.

Використання з кількома профілями

Ендпоінти враховують заголовок profileKey. Передайте ключ дочірнього профілю — і автоматизація буде створена/керована в межах цього профілю. Обмеження швидкості поділяються між профілями через підліміт на профіль, щоб один активний профіль не вичерпав квоту батьківського акаунта.

FAQ

Ні. Instagram не публікує webhook на підписку, і Meta не дозволяє стороннім застосункам надсилати DM користувачеві, який не ініціював розмову. Кожен підтримуваний тригер (comment_keyword, story_reply, dm_reaction, dm_keyword) задовольняє вимогу «користувач звернувся до вас першим».
Рядок активності отримує статус auth_error, і DM не повторюється. Перепідключіть акаунт — і наступна відповідна взаємодія спрацює нормально.
Кожне диспетчерування send_dm планується на 20–60 секунд після взаємодії, щоб виглядати органічно для антиспам-систем Instagram. Дії fire_webhook і send_email НЕ мають jitter. Timestamp created у рядку активності — це коли тригер збігся; completedAt — коли диспетчеризація завершилася.
Рядки активності зберігаються безстроково для трасування та аналітики. Ендпоінт GET /automations/:id/activity повертає рядки за останні 30 днів для продуктивності. (Захист від дедуплікації використовує власне вікно на дію — типово 7 днів — яке не пов’язане з періодом перегляду активності.)
Ні. Видалення є soft-delete: основний рядок позначається як deleted, нові диспетчеризації не виконуються, але історичні рядки активності залишаються доступними для читання через ендпоінт активності.

Ендпоінти