Автоматизації
Автоматизація визначає коли, якщо і тоді: коли завдання переходить у «Готово» — записати час; коли надходить негативний відгук — сповістити відповідальну особу й написати в Slack; щопонеділка о 9:00 — створити рядок для зустрічі команди. А коли однієї дії замало, вона виконує потік: знайти рядок, піти тією чи іншою гілкою залежно від того, що в ньому, повторити кроки на кожному рядку, що відповідає фільтру, і використати на одному кроці те, що знайшов або записав попередній крок, зачекати три дні перед нагадуванням, надіслати PDF у долученні.
Їх відкривають через Автоматизації в блоці відкритої бази внизу бічної панелі, і вони потребують рівня Керування.

Потік малюється згори донизу: тригер, а потім кожен крок. + на лінії відкриває список кроків, розподілених за категоріями — Рядки, Комунікація, Документи, ШІ, Логіка — з пошуком, і додає вибраний крок у цьому місці; картка відкриває свої налаштування праворуч. Проста автоматизація — тригер і одна дія — вміщується у дві картки й налаштовується, як і раніше.
| Тригер | Налаштування |
|---|---|
| Рядок створено | таблиця |
| Рядок змінено | таблиця і, за потреби, лише ті поля, за якими треба стежити |
| За розкладом | щогодини, щодня чи щотижня, у вибраний час і часовому поясі |
| Натиснуто кнопку | поле «Кнопка» таблиці |
| Рядок видаляється | таблиця; кроки посилаються на рядок таким, яким він був |
| Рядок потрапляє у фільтр | таблиця і фільтр: автоматизація запускається, коли рядок у нього потрапляє, і повторно запускається лише після того, як він із нього вийде — «рахунок стає простроченим», а не «прострочений рахунок змінюється» |
| Настає дата | поле «Дата» таблиці, зсув — за три дні до, того самого дня, тиждень після — і час: нагадування про термін, річниці договору |
| Отримано вебхук | нічого: автоматизація отримує власну адресу, яку викликає інша програма (деталі) |
Тригер на рядках бачить усі записи: з інтерфейсу, API, від агента, з опублікованої форми і навіть із прямого SQL — автоматизації запускаються з історії, яка фіксує їх усі.
Лише якщо
Section titled “Лише якщо”Необов’язкова умова мовою фільтрів —
statut eq "fait", montant gte 10000 and payee eq false, — яка перевіряється для рядка в
момент дії. Запуск, умова якого не виконується, «пропускається», і про це повідомляється.
До сорока кроків по черзі; перший крок, що завершився помилкою, зупиняє наступні — окрім випадків усередині блоку Спроба (деталі).
| Крок | Що він робить |
|---|---|
| Змінити рядок | записує значення в рядок, який запустив автоматизацію, — або в той, що його знайшов чи створив один із кроків |
| Створити рядок | у цій таблиці або в іншій таблиці бази |
| Знайти рядок | перший рядок таблиці, що відповідає фільтру, щоб наступні кроки посилалися на нього чи змінювали його |
| Сповістити когось | сповіщення вибраним людям або людині з поля «Особа» |
| Надіслати електронний лист | людям з команди, особі з поля «Особа», на адресу з поля «Електронна пошта» — клієнту, постачальнику — або на вписані адреси; тема та текст цитують рядок і попередні кроки |
| Викликати вебхук | запит HTTPS до служби — метод, адреса, заголовки та тіло на ваш розсуд (деталі); на його відповідь потім можна посилатися |
| Надіслати в Slack | повідомлення в підключений канал |
| Запитати ШІ | відповідь постачальника ШІ на інструкцію, яка посилається на рядок і попередні кроки, — написати, підсумувати, класифікувати, — прочитана як текст, число, так чи ні, дата або варіант зі списку |
| Умова | кілька гілок: вибирається перша, умова якої виконується, або «Інакше», якщо не виконується жодна; потім гілки знову сходяться |
| Для кожного рядка | кроки, які вона містить, — один раз для кожного рядка таблиці, що відповідає фільтру (деталі) |
| Видалити рядок | рядок, який запустив автоматизацію, або той, що знайшов один із кроків, — він потрапляє в кошик |
| Підрахувати й підсумувати | кількість рядків фільтру, їхня сума, середнє, мінімум або максимум — щоб процитувати чи перевірити далі |
| Згенерувати PDF | документ рядка, доданий до поля файлу або долучений до листа |
| Зачекати | тривалість, або дата поля (деталі) |
| Спроба | кроки, і інші, якщо один з них завершиться помилкою (деталі) |
| Запустити автоматизацію | іншу автоматизацію бази, на рядку її таблиці |
Пошук, який нічого не знайшов, не зупиняє потік: кроки, що мали змінити його рядок, пропускаються. Щоб у такому разі зробити щось інше, Якщо жодного рядка не знайдено…, під пошуком, додає умову, яка це перевіряє.
Умова перевіряє рядок за фільтром, або значення: відповідь ШІ, код вебхука, підсумок —
«{{e2.reponse}} дорівнює «Терміново»», «{{e3.somme.montant}} більше або дорівнює 1000».
Числа порівнюються як числа, тексти — без діакритики та регістру.
Для кожного рядка
Section titled “Для кожного рядка”Крок Для кожного рядка читає рядки таблиці, що відповідають його фільтру — порожній: усі, —
у вибраному порядку, до своєї межі (типово 50, не більше 200), а потім виконує один раз для
кожного з них кроки, розміщені в його рамці. «Щопонеділка нагадувати про неоплачені рахунки»
записується так: У визначений час, потім Для кожного рядка рахунків
payee eq false and relancee eq false, а в циклі — електронний лист контактній особі рахунку
та Змінити рядок, яка встановлює прапорець «Relancée».
У циклі ідентифікатор кроку називає рядок цього проходу: {{e1.client}} посилається на
нього, а Змінити рядок пропонує його серед рядків для зміни. Після циклу {{e1.nombre}}
показує, скільки рядків він опрацював, — наприклад, для підсумку в Slack. Фільтр може
посилатися на те, що передує кроку: якщо автоматизацію запустив оплачений рахунок,
facture eq {{_id}} перебирає його рядки деталізації.
Рядки, що перевищують межу, чекають наступного запуску, який про це повідомляє: щоб опрацювати їх усі протягом кількох запусків, виводьте з фільтра ті, що вже опрацьовані, — прапорець «relancée», дата. Цикл не може містити інший цикл, а запуск зупиняється через дві хвилини.
Зачекати
Section titled “Зачекати”Крок Зачекати призупиняє виконання — на три години, два дні — або до дати поля рядка, із зсувом і часом: «за день до терміну, о 9:00». Виконання з’являється як Призупинено на вкладці Запуски, із датою відновлення.
Виконання продовжується з наступного кроку, перечитуючи свої рядки: «через три дні після надсилання комерційної пропозиції, якщо вона досі не прийнята, нагадати» записується як Зачекати 3 дні, а потім умова за статусом комерційної пропозиції — таким, яким він є на той день. Вимкнення автоматизації зупиняє призупинені виконання; очікування не можна розмістити ні в циклі, ні в блоці Спроба, і воно триває щонайбільше рік.
Спроба
Section titled “Спроба”Блок Спроба має дві гілки. Перша виконується; якщо один з її кроків завершується
помилкою, потік переходить до другої — У разі помилки — яка посилається на саму помилку:
{{e4.erreur}}, код, і {{e4.etape}}, крок, — а потім потік продовжується після блоку. Це
дозволяє попередити когось, коли служба не відповідає, не зупиняючи все інше.
Простіше: вебхук може сам повторити спробу до трьох разів після збою служби, а цикл може продовжити роботу, незважаючи на рядок з помилкою.
PDF і електронний лист
Section titled “PDF і електронний лист”Згенерувати PDF створює документ рядка — за шаблоном документа його таблиці, або за карткою всіх його полів — і може додати його до поля файлу. Надіслати електронний лист може потім долучити його, разом із файлами поля файлу чи зображення:
- лист кожному окремо, або один для всіх, з одержувачами в копії;
- повідомлення у форматованому тексті — жирний, списки, посилання — що цитує рядок;
- адреса для відповіді: ваша за замовчуванням, або адреса з поля «Електронна пошта»;
- до 50 одержувачів, 10 вкладень і 15 МБ.
«Коли комерційна пропозиція переходить у «Прийнято», надіслати рахунок клієнту, бухгалтерію в
копії»: Рядок потрапляє у фільтр statut eq "accepte", Згенерувати PDF із шаблоном
«Рахунок», Надіслати електронний лист на поле «Електронна пошта» клієнта, з долученим
рахунком.
Служба, що викликає basedb
Section titled “Служба, що викликає basedb”З тригером Отримано вебхук автоматизація має власну секретну адресу, яку треба дати програмі, що має її запускати, — інтернет-магазину, зовнішній формі, інструменту автоматизації:
curl -X POST "https://basedb.example.com/api/v1/hooks/<secret>" \ -H "content-type: application/json" \ -d '{"client": {"nom": "Dupont"}, "total": 120}'Кроки посилаються на надіслане: {{trigger.client.nom}}, {{trigger.total}}; форма
зчитується так само, текст — через {{trigger.texte}}. Адреса копіюється з налаштувань
тригера; Змінити адресу замінює її, і стара відразу припиняє діяти. Запит отримує 202,
автоматизація запускається за секунду.
Викликати службу
Section titled “Викликати службу”Крок Викликати вебхук типово надсилає методом POST дані автоматизації: вибраний рядок і
те, що знайшли або записали попередні кроки. Щоб звернутися до служби так, як вона цього
очікує, налаштовують:
- метод:
POST,PUT,PATCH,GETабоDELETE— два останні без тіла; - адресу, яка може посилатися на значення після свого хоста —
https://api.exemple.fr/clients/{{e2.numero}}; кожне значення в ній кодується; - заголовки, значення яких може посилатися на щось:
Idempotency-Key: {{_id}}; - тіло: дані автоматизації, JSON для складання, форма (пара
ключ=значенняна рядок) або текст. У JSON посилання в лапках — це текст, а поза лапками — значення: число, так чи ні, список:
{ "facture": "{{e1.numero}}", "montant": {{e1.montant}}, "payee": {{e1.payee}} }Ключ API чи токен кладуть у секретний заголовок (замок): зашифрований ключем екземпляра, він більше ніколи не показується — ні на екрані, ні через API, ні Copilot-у — і йде лише на той хост, для якого ви його дали. Зміна хоста адреси вимагає дати його знову; Замінити дає ввести новий.
Запитати ШІ
Section titled “Запитати ШІ”Як і поле ШІ, крок надсилає постачальнику свою інструкцію, де кожне посилання замінено його значенням:
Cet avis de {{auteur}} demande-t-il une action de notre part ? {{avis}}Ви вибираєте очікувану відповідь — вільний чи короткий текст, число, так чи ні, дату,
вебадресу або варіант зі списку, який можна взяти з поля вибору. Модель про це попереджають, і
відповідь, яка його не містить, призводить до помилки кроку. Наступні кроки посилаються на неї
через {{e1.reponse}}: у назві створеного завдання, у повідомленні чи в полі вибору, де вона
потрапляє у варіант із тим самим підписом.
Те, на що посилається інструкція, надсилається постачальнику: крок потребує вашої згоди,
яку треба надати знову, коли інструкція змінюється. Кожен виклик журналюється й враховується
разом із полями ШІ в BASEDB_AI_FIELD_QUOTA (типово 300 на годину). ШІ нічого не робить
самостійно: записують чи сповіщають кроки, розташовані після нього.
Посилання на значення
Section titled “Посилання на значення”Значення, повідомлення й фільтри можуть посилатися на те, що було раніше, через кнопку { } поруч із кожним текстом:
{{Titre}},{{_id}}: рядок, який запустив автоматизацію;{{e2.titre}},{{e2._id}}: рядок, знайдений, створений чи змінений крокомe2, — кожен крок має свій ідентифікатор на картці;{{e3.statut}},{{e3.reponse.numero}}: що відповів вебхукe3;{{e4.reponse}}: відповідь кроку ШІe4;{{e5.client}}у цикліe5— рядок цього проходу;{{e5.nombre}}після циклу — кількість опрацьованих рядків;{{e6.nombre}},{{e6.somme.montant}},{{e6.moyenne.montant}},{{e6.max.echeance}}: те, що підрахував крокe6;{{e7.erreur}},{{e7.etape}}: помилка, яку перехопив блок Спробаe7;{{e8.nom}}: назва PDF крокуe8;{{trigger.client.nom}}: те, що надіслав вхідний вебхук;{{_maintenant}}: момент запуску.
Значення, що складається з одного посилання, передає саме значення: зв’язок, особу, варіант вибору — саме так створений рядок пов’язується з тим, який знайшов пошук. У фільтрі посилання завжди є значенням для порівняння, а не частиною мови фільтрів.
Крок може посилатися лише на те, що гарантовано відбулося до нього: на те, що знайшла одна з гілок, після умови посилатися вже не можна. Редактор повідомляє про це на картці ще до збереження.
Copilot
Section titled “Copilot”Copilot у заголовку відкриває праворуч розмову природною мовою про автоматизації бази: «коли завдання переходить на перевірку, сповісти призначену людину», «додай підсумок від ШІ в нотатки», «чому останній запуск завершився помилкою?». Він відповідає і пропонує цілу автоматизацію — ту, що у вас на екрані, змінену, або нову, — зі списком змін.
Copilot нічого не зберігає: Накласти на потік показує пропозицію в редакторі, де ви переглядаєте її перед збереженням, — а Скасувати на картці повертає потік до попереднього стану. Нова автоматизація відкривається в редакторі, готова до створення. Кожну пропозицію перевіряють так само, як перевіряли б збереження; те, що не проходить перевірку, відкидається, і про це повідомляється.
Типово постачальнику ШІ разом із розмовою надсилається лише структура: таблиці та їхні
поля, автоматизації бази, та, що на екрані, у тому вигляді, як її показує редактор, і її
останні запуски — їхні статуси й коди помилок, ніколи жодних значень. Люди й канали Slack
надсилаються під умовними позначками (p1, s1), ніколи за своїми ідентифікаторами. Прапорець
Дозволити читання даних дає Copilot змогу в межах розмови читати рядки (не більше 50 за одне
читання), і кожне читання наводиться під його відповіддю.
Тестування й відстеження
Section titled “Тестування й відстеження”Протестувати на рядку виконує збережену автоматизацію на вибраному рядку — по-справжньому. Вкладка Запуски зберігає останні 50 запусків протягом 30 днів: очікує, виконується, успішний, пропущений із причиною, невдалий із кодом. Вибраний запуск накладається на потік — пройдену гілку підсвічено, кожен виконаний крок показує, що він зробив і скільки часу це зайняло, а решту приглушено. У циклі кожен крок також показує, скільки разів він виконався.
Від чийого імені вона діє
Section titled “Від чийого імені вона діє”Автоматизація діє з дозволами людини, яка зберегла її останньою, і вони перевіряються заново під час кожного запуску: якщо ця людина втратить дозвіл, крок, якому він був потрібен, завершиться помилкою замість того, щоб оминути обмеження, а пошук знаходить лише те, що вона може читати. Історія показує це як «Автоматизація „Tâche terminée“ · від імені …», а її записи скасовуються так само, як і інші.
Обмеження
Section titled “Обмеження”- Те, що записує автоматизація, не запускає жодної іншої: те, що має виконуватися ланцюжком, описують в одному потоці, або через Запустити автоматизацію, не більше трьох рівнів.
- Пошук повертає один рядок — перший; цикл опрацьовує щонайбільше 200 рядків за запуск. Виконання триває щонайбільше дві хвилини, без урахування очікувань.
- Немає скриптів. Лист надсилається через сервер вихідної пошти екземпляра.
- Шаблон бази переносить лише автоматизації без пошуку, циклів, умов і кроків ШІ, і ніколи — вебхук.
- Вебхук не переходить за перенаправленнями й чекає щонайбільше 10 секунд; відповідь, відмінна від 2xx, призводить до помилки кроку після повторних спроб.
- Дату, що настає, перевіряють щохвилини; враховуються лише ті, що настали після збереження автоматизації.
- 100 запусків на годину для кожної автоматизації; пропущений погодинний запуск надолужується лише один раз.
- Затримка між записом і дією — близько секунди.
basedb — вільне програмне забезпечення від Eodia, студії ШІ-орієнтованого програмного забезпечення.