Beta. Automations API перебуває в бета-версії, і ми активно збираємо відгуки. Ендпоінти, payload’и та ліміти можуть змінюватися в міру ітерацій. Будь ласка, надсилайте відгуки та звіти про помилки в підтримку, щоб ми могли пріоритизувати правильні покращення.
Як це працює
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) задовольняє вимогу «користувач звернувся до вас першим».Що станеться, якщо мій access-токен буде недійсним, коли автоматизація спрацює?
Що станеться, якщо мій access-токен буде недійсним, коли автоматизація спрацює?
Рядок активності отримує статус
auth_error, і DM не повторюється. Перепідключіть акаунт — і наступна відповідна взаємодія спрацює нормально.Чому є затримка перед надсиланням DM?
Чому є затримка перед надсиланням DM?
Кожне диспетчерування
send_dm планується на 20–60 секунд після взаємодії, щоб виглядати органічно для антиспам-систем Instagram. Дії fire_webhook і send_email НЕ мають jitter. Timestamp created у рядку активності — це коли тригер збігся; completedAt — коли диспетчеризація завершилася.Чи зберігаються рядки активності назавжди?
Чи зберігаються рядки активності назавжди?
Рядки активності зберігаються безстроково для трасування та аналітики. Ендпоінт
GET /automations/:id/activity повертає рядки за останні 30 днів для продуктивності. (Захист від дедуплікації використовує власне вікно на дію — типово 7 днів — яке не пов’язане з періодом перегляду активності.)Чи видалення автоматизації прибирає її історію активності?
Чи видалення автоматизації прибирає її історію активності?
Ні. Видалення є soft-delete: основний рядок позначається як
deleted, нові диспетчеризації не виконуються, але історичні рядки активності залишаються доступними для читання через ендпоінт активності.Ендпоінти
POST /automations— створити нову автоматизаціюGET /automations— переглянути список ваших автоматизаційGET /automations/:id— отримати одну автоматизацію з її тригерами та діямиPUT /automations/:id— часткове оновлення; призупиніть за допомогоюactive: falseDELETE /automations/:id— soft-deleteGET /automations/:id/activity— журнал аудиту диспетчеризацій із пагінацією через курсор
