Otomasi
Otomasi menjalankan instruksi sesuai jadwal dan mengirim hasil sebagai chat. Ringkasan harian, ulasan mingguan, laporan bulanan — setiap proses berjalan di server, masuk daftar chat, dan dapat dilanjutkan.
Anatomi
Otomasi memiliki nama, instruksi, maksimal lima pemicu, model opsional, target, dan pemberitahuan. Chat session mengantrekan percakapan; Work task memulai Work terisolasi dengan kebijakan opsional. Kegagalan masuk kotak pemberitahuan. Nama dan instruksi terenkripsi. Otomasi milik pembuat.
Pemicu: once, hourly, daily, weekly, monthly, yearly. Proses berikutnya adalah kejadian terdekat menurut zona server.
Eksekusi
Penjadwal bersewa berjalan tiap menit agar satu replika memajukan jadwal. Saat jatuh tempo, ia mencatat proses, mengantrekan automation.run.v1, dan memperbarui next_run_at dengan compare-and-set. Pekerjaan membuat chat dan memakai jalur generasi persisten.
Jika server mati, kejadian terakhir berjalan sekali dan yang lama dilewati. Jeda membersihkan jadwal; lanjut/sunting menghitung ulang. Hapus menghapus riwayat.
Status berasal dari jurnal: berhasil setelah generasi, gagal pada dead-letter, stalled jika tidak mulai 30 menit.
Target Work memakai siklus Work. Akses diperiksa saat jadwal; pencabutan memberi work-access-denied. Kebijakan diverifikasi dan model harus mendukung alat.
Rutinitas Agen
Otomasi dapat mengikat tugas yang ada melalui workTaskId (panel agen). Setiap kejadian memakai ruang, percakapan, model, penyedia, dan kebijakan tugas. Tugas hilang memberi work-task-missing; sibuk memberi work-task-busy.
Pemicu webhook
Selain jadwal, otomasi dapat dipicu sistem eksternal — pipeline CI, layanan cron, otomasi rumah. Dalam dialog sunting otomasi, Pemicu webhook → Aktifkan membuat secret per otomasi; hanya SHA-256-nya yang disimpan, jadi teks aslinya ditampilkan tepat sekali. Merotasi secret langsung membatalkan yang lama, dan menonaktifkan webhook menutup endpoint kembali.
Sistem eksternal memicu otomasi dengan:
curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..."
(X-Libre-Webhook-Secret: lwh_... juga berfungsi sebagai header alternatif.) Responsnya 202 berisi id proses yang diantrekan — jalur jalankan-manual yang sama dengan Jalankan sekarang, sehingga proses selesai, memberi notifikasi, dan muncul di riwayat secara identik. Perbandingan secret bersifat constant-time, otomasi yang tidak ada dan secret yang salah menjawab identik (tidak ada oracle id otomasi), dan otomasi yang dijeda menjawab 409: berbeda dengan Jalankan sekarang milik pemilik, pemanggil eksternal tidak dapat menembus jeda.
API
Semua endpoint kecuali pemicu webhook memerlukan autentikasi dan hanya bekerja pada otomasi milik pemanggil; pemicu webhook diautentikasi dengan secret per otomasi.
| Metode | Jalur | Tujuan |
|---|---|---|
GET | /api/automations | Daftar |
POST | /api/automations | Buat |
GET | /api/automations/occurrences?from=&to= | Kejadian |
GET | /api/automations/runs | Riwayat |
GET | /api/automations/runs/summary | Ringkasan |
POST | /api/automations/runs/seen | Tandai dilihat |
GET | /api/automations/:automationId | Baca |
PUT | /api/automations/:automationId | Ubah |
DELETE | /api/automations/:automationId | Hapus |
POST | /api/automations/:automationId/pause | Jeda |
POST | /api/automations/:automationId/resume | Lanjut |
POST | /api/automations/:automationId/run | Jalankan |
POST | /api/automations/:automationId/webhook | Picu via secret (202) |
POST | /api/automations/:automationId/webhook-secret | Buat/rotasi secret |
DELETE | /api/automations/:automationId/webhook-secret | Nonaktifkan webhook |
Pengguna dapat menyimpan 50 otomasi; nama 200 karakter, instruksi 20.000.