Skip to main content
Beta. Automations API перебуває в бета-версії, і ми активно збираємо відгуки. Ендпоінти, payload’и та ліміти можуть змінюватися в міру ітерацій. Будь ласка, надсилайте відгуки та звіти про помилки в підтримку, щоб ми могли пріоритизувати правильні покращення.
Ендпоінти Automations дозволяють визначати правила, які автоматично реагують на вхідну engagement-активність Instagram. Кожна автоматизація поєднує один або кілька тригерів (подія, що спрацьовує) з однією чи кількома діями (що відбувається при спрацюванні). Одне правило може прослуховувати кілька тригерів і виконувати кілька дій — викликати webhook у ваш аналітичний конвеєр І надсилати DM з тієї самої взаємодії. Двигун реагує лише на engagement-активність, яку користувач спрямовує до вас (коментар, відповідь на історію, DM або реакція) — він ніколи не надсилає DM за підпискою, перших DM незнайомцям чи масової вихідної розсилки — і успадковує обмеження швидкості Ayrshare на акаунт, дедуплікацію на отримувача та ідемпотентне приймання webhook’ів.
sent означає, що Meta прийняла повідомлення, а не те, що отримувач його отримав. Доставка зрештою визначається параметром Message requests отримувача в Instagram: якщо він не дозволяє запити повідомлень від усіх, Meta повертає успішну відповідь і тихо відкидає повідомлення, і це невидимо на кожному рівні API. Навіть доставлений DM, спричинений коментарем, надходить як запит повідомлення, який отримувач має прийняти (якщо між двома акаунтами вже не існує розмови). Див. Automation DM Sent but Not Delivered для повного пояснення.

Як це працює

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 — перехідні; усі інші — термінальні.
sent — це квитанція про прийняття платформою, а не квитанція про доставку. Instagram не надає доставку повідомлень жодному API. Дію send_dm позначено як sent у той момент, коли Instagram прийме повідомлення; чи справді його отримає отримувач, залежить від параметра Message requests в Instagram, який Ayrshare не може ані прочитати, ані змінити. Див. Automation DM Sent but Not Delivered.

Коди помилок

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, реакція), перш ніж бізнес-акаунт зможе надіслати йому повідомлення. Кожен підтримуваний тригер прив’язаний саме до такої взаємодії — але зверніть увагу, що дозвіл надіслати не є тим самим, що й доставка повідомлення: параметр Message requests в Instagram отримувача все одно може змусити Meta прийняти та потім тихо відкинути повідомлення (див. Automation DM Sent but Not Delivered).
  • Масові вихідні кампанії. Погодинні ліміти DM та антифрод-евристики застосовуються на рівні платформи.

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

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

FAQ

Ні. Instagram не публікує webhook на підписку, і Meta не дозволяє стороннім застосункам надсилати DM користувачеві, який попередньо не взаємодіяв. Кожен підтримуваний тригер (comment_keyword, story_reply, dm_reaction, dm_keyword) прив’язаний саме до такої взаємодії, що й робить надсилання допустимим.
sent означає, що Instagram прийняв повідомлення, а не те, що воно було доставлене. Доставка залежить від параметра Message requests отримувача в Instagram — якщо він не дозволяє запити повідомлень від усіх, Meta повертає успішну відповідь і тихо відкидає повідомлення, без помилки, webhook чи іншого сигналу на жодному рівні API. Успішний DM, спричинений коментарем, також надходить як запит повідомлення, який отримувач має прийняти (якщо розмова вже не існує). Це постійне обмеження платформи Instagram. Див. Automation DM Sent but Not Delivered.
Рядок активності отримує статус 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, нові диспетчеризації не виконуються, але історичні рядки активності залишаються доступними для читання через ендпоінт активності.

Ендпоінти