Peraturan-peraturan otomatisasi

Aturan otomasi memungkinkan eksekusi satu atau lebih tindakan yang telah ditentukan sebagai respons terhadap pemicu tertentu, misalnya membuat aktivitas saat field diatur ke nilai tertentu, atau mengarsipkan record 7 hari setelah pembaruan terakhirnya.

Saat membuat aturan otomatis, domain filters memungkinkan Anda menambahkan kondisi yang harus dipenuhi agar aturan otomatis berjalan, mis., opportunity harus ditugaskan ke salesperson tertentu, atau status record tidak boleh Draft.

Untuk membuat aturan otomasi dengan Odoo Studio, lakukan langkah berikut:

  1. Buka Studio dan klik Automations, lalu New.

  2. Berikan aturan otomasi nama yang jelas dan bermakna yang mengidentifikasi tujuannya.

  3. Pilih pemicu dan, jika perlu, isi kolom yang muncul di layar berdasarkan pemicu yang dipilih.

  4. Klik Add an action, lalu pilih Type dari action dan isi kolom yang muncul di layar berdasarkan action yang Anda pilih.

  5. Klik Save & Close atau Save & New.

Example

Untuk memastikan tindak lanjut pada klien yang kurang puas, aturan otomasi ini membuat aktivitas 3 bulan setelah sales order dibuat untuk klien dengan persentase kepuasan lebih rendah dari 30%.

Contoh aturan otomasi pada model Subscription

Tip

  • Gunakan tab Notes untuk mendokumentasikan tujuan dan cara kerja aturan otomasi. Ini membuat aturan lebih mudah dipelihara dan memfasilitasi kolaborasi antar pengguna.

  • Untuk memodifikasi model yang ditargetkan oleh aturan otomasi, alihkan model sebelum mengklik Automations di Studio, atau aktifkan mode pengembang, buat atau edit aturan otomasi, dan pilih Model di formulir Automation Rules.

  • Aturan otomasi dapat dibuat dari tahap kanban mana pun dengan mengklik ikon (Settings) yang muncul saat mengarahkan kursor ke nama tahap kanban, lalu pilih Automations. Dalam hal ini, Trigger diatur ke Stage is set to secara default, tetapi dapat diubah jika perlu.

    Membuat automasi dari tahap kanban

Pemicu

Trigger digunakan untuk menentukan jenis peristiwa apa yang perlu terjadi agar aturan otomasi berjalan. Pemicu yang tersedia tergantung pada model. Lima kategori pemicu tersedia secara keseluruhan:

Menambahkan kondisi

Filter domain memungkinkan Anda menentukan record yang harus ditargetkan atau dikecualikan oleh aturan otomasi. Pemfilteran yang efisien meningkatkan kinerja keseluruhan karena menghindari pemrosesan yang tidak perlu pada record yang tidak terpengaruh oleh aturan.

Tip

Aktifkan mode pengembang sebelum membuat aturan otomasi untuk memiliki fleksibilitas maksimal dalam menambahkan filter domain.

Tergantung pada pemicu yang dipilih, dimungkinkan untuk menentukan satu atau lebih kondisi yang harus dipenuhi record sebelum dan/atau setelah pemicu terjadi.

  • Before Update Domain menentukan kondisi yang harus dipenuhi record sebelum peristiwa pemicu terjadi, misalnya record harus memiliki Type = Customer Invoice dan Status = Posted.

    Dengan mode pengembang diaktifkan, klik Edit Domain, jika tersedia, kemudian New Rule.

  • Extra Conditions, atau dalam beberapa kasus filter Apply on, mendefinisikan kondisi yang harus dipenuhi oleh rekaman setelah peristiwa pemicu terjadi, misalnya faktur pelanggan harus memiliki Payment Status = Partially Paid.

    Dengan mode pengembang diaktifkan jika diperlukan, klik Add conditions atau Edit Domain, sesuai kebutuhan, kemudian New Rule.

Ketika pemicu terjadi, misalnya status pembayaran faktur pelanggan yang diposting diperbarui, aturan otomasi memeriksa kondisi yang ditentukan dan hanya menjalankan aksi jika record cocok dengan kondisi tersebut.

Example

Jika aksi otomatis harus dijalankan ketika alamat email diatur untuk pertama kalinya (berbeda dengan memodifikasi alamat email) pada kontak yang sudah ada yang merupakan individu bukan perusahaan, gunakan Email is not set dan Is a Company is not set sebagai Before Update Domain dan Email is set sebagai domain Apply on.

Contoh pemicu dengan Domain Sebelum Update

Catatan

Before Update Domain tidak diperiksa saat pembuatan record.

Value Diupdate

Picu aksi otomatis ketika perubahan spesifik terjadi di database. Pemicu yang tersedia dalam kategori ini bergantung pada model dan didasarkan pada perubahan umum, seperti menambahkan tag tertentu (misalnya ke tugas) atau menetapkan nilai field (misalnya menetapkan field User).

Pilih pemicu, kemudian pilih nilai jika diperlukan.

Email Acara

Memicu tindakan otomatis saat menerima atau mengirim email.

Kondisi Timing

Picu aksi otomatis pada titik waktu relatif terhadap field tanggal atau terhadap pembuatan atau pembaruan record. Pemicu berikut tersedia:

  • Based on date field: Tindakan dipicu dalam periode waktu yang ditentukan sebelum atau sesudah tanggal dari kolom tanggal yang dipilih.

  • Setelah pembuatan: Tindakan dipicu dalam periode waktu tertentu setelah record dibuat dan disimpan.

  • Setelah pembaruan terakhir: Tindakan dipicu dalam periode waktu tertentu setelah record yang ada diedit dan disimpan.

Anda kemudian dapat menentukan:

  • Delay: Tentukan jumlah menit, jam, hari, atau bulan. Untuk menjalankan tindakan sebelum tanggal pemicu, tentukan angka negatif. Jika Anda memilih pemicu Based on date field, Anda juga harus memilih kolom tanggal yang akan digunakan untuk menentukan penundaan.

    Catatan

    Secara default, penjadwal memeriksa aturan otomasi berbasis waktu setiap 240 menit, atau 4 jam. Frekuensi ini umumnya cukup untuk penundaan seperti 3 bulan setelah tanggal pesanan atau 7 hari setelah pembaruan terakhir.

    Untuk penundaan kurang dari setara 2400 menit, atau 40 jam, sistem menghitung ulang frekuensi pemeriksaan ini untuk memastikan penundaan yang lebih terperinci, misalnya 1 jam sebelum tanggal dan waktu mulai acara, atau 30 menit setelah pembuatan, dapat dihormati sedekat mungkin.

    Pesan di layar menunjukkan kemungkinan penundaan setelah pemicu terjadwal dari aturan.

    Pesan tentang kemungkinan penundaan setelah eksekusi terjadwal

    Untuk melihat atau mengedit secara manual frekuensi penjadwal, dengan mode pengembang diaktifkan, buka Settings ‣ Technical ‣ Scheduled Actions untuk melihat semua tindakan terjadwal untuk database Anda.

    Masukkan Automation di bilah pencarian, kemudian, dalam daftar hasil, klik Automation Rules: check and execute. Jika diinginkan, perbarui nilai kolom Execute Every. Klik Run Manually kapan saja untuk memicu tindakan terjadwal ini secara manual.

  • Extra Conditions: Klik Add condition, kemudian tentukan kondisi yang harus dipenuhi agar aturan otomasi berjalan. Klik New Rule untuk menambahkan kondisi lain.

Tindakan dijalankan ketika penundaan tercapai dan kondisi terpenuhi.

Example

Untuk mengirim email pengingat 30 menit sebelum dimulainya acara kalender, pilih Start (Calendar Event) sebagai kolom tanggal untuk Trigger dan atur Delay ke -30 Minutes.

Contoh pemicu Based on date field

Khusus

Memicu tindakan otomatis:

  • On save: ketika rekaman disimpan.

  • Saat penghapusan: ketika record dihapus.

  • Saat perubahan UI: ketika nilai field diubah pada Tampilan Formulir, bahkan sebelum record disimpan.

Untuk pemicu On save dan On UI change, Anda harus memilih kolom yang akan digunakan untuk memicu aturan otomatis di kolom When updating.

Peringatan

Jika tidak ada field yang dipilih di field When updating, tindakan otomatis mungkin dijalankan beberapa kali per catatan.

Secara opsional, Anda juga dapat menentukan kondisi tambahan yang harus dipenuhi untuk memicu aturan automasi di field Apply on.

Example

Untuk memicu tindakan otomatis saat pembuatan rekaman, misalnya ketika kontak baru dibuat, pilih pemicu On save dan gunakan ID is not set sebagai domain Before Update Domain dan ID is set sebagai domain Apply on. Pastikan kolom yang benar dipilih di kolom When updating.

Ketika kontak baru disimpan, kontak tersebut secara otomatis ditetapkan ID database, sehingga memicu aturan otomasi.

Contoh memicu tindakan saat pembuatan rekaman

Catatan

Pemicu Saat perubahan UI hanya dapat digunakan dengan tindakan Jalankan Kode dan hanya berfungsi ketika modifikasi dilakukan secara manual. Tindakan tidak dijalankan jika field diubah melalui aturan otomasi lain.

Eksternal

Picu tindakan otomatis berdasarkan peristiwa tertentu di sistem atau aplikasi eksternal menggunakan webhook.

Setelah webhook dikonfigurasi di Odoo, di mana URL webhook dihasilkan dan record target ditentukan, webhook perlu diimplementasikan di sistem eksternal.

Peringatan

Sangat disarankan untuk berkonsultasi dengan developer, solution architect, atau peran teknis lainnya ketika memutuskan untuk menggunakan webhook dan selama proses implementasi. Jika tidak dikonfigurasi dengan benar, webhook dapat mengganggu database Odoo dan dapat memakan waktu untuk dikembalikan.

Contoh pemicu Based on date field

Catatan

Dimungkinkan juga untuk mengatur tindakan otomatis yang mengirim data ke webhook sistem eksternal ketika peristiwa terjadi di database Odoo Anda.

Action

Setelah Anda mendefinisikan pemicu aturan otomasi, klik Add an action di tab Actions To Do untuk menentukan tindakan yang akan dijalankan.

Tip

Anda dapat menentukan beberapa tindakan untuk aturan otomasi yang sama. Secara default, tindakan dijalankan sesuai urutan saat ditentukan.

Ini berarti, misalnya, jika Anda menentukan tindakan Perbarui record dan kemudian tindakan Kirim email di mana email mereferensikan field yang diperbarui, email menggunakan nilai yang diperbarui. Namun, jika tindakan Kirim email ditentukan sebelum tindakan Perbarui record, email menggunakan nilai yang ditetapkan sebelum record diperbarui.

Untuk mengubah urutan tindakan yang ditentukan, klik ikon (pegangan tarik) di samping tindakan dan seret ke posisi yang diinginkan.

Update Record

Tindakan ini memperbarui salah satu field (terkait) dari record. Klik field Update dan, dalam daftar yang terbuka, pilih atau cari field yang akan diperbarui. Jika diperlukan, klik (panah kanan) di sebelah nama field untuk mengakses daftar field terkait.

Jika Anda memilih many2many field, pilih apakah kolom harus diperbarui dengan Adding, Removing, atau Setting it to nilai yang dipilih atau dengan Clearing it.

Example

Jika Anda ingin tindakan otomatis menghapus tag dari record pelanggan, atur field Update ke Customer > Tags, pilih by Removing, kemudian pilih tag tersebut.

Contoh tindakan Update Record

Tip

Atau, Anda juga dapat mengatur kolom record secara dinamis menggunakan kode Python. Untuk melakukannya, pilih Compute alih-alih Update, lalu masukkan kode yang akan digunakan untuk menghitung nilai kolom. Misalnya, jika Anda ingin aturan otomatis menghitung datetime field kustom ketika prioritas tugas diatur ke High (dengan memberi bintang pada tugas), Anda dapat menentukan pemicu Priority is set to ke High dan menentukan action Update Record sebagai berikut:

Menghitung field datetime khusus menggunakan ekspresi Python

Buat Kegiatan

Action ini digunakan untuk menjadwalkan aktivitas baru yang terhubung ke record. Pilih Activity Type, masukkan Title dan deskripsi, lalu tentukan kapan Anda ingin aktivitas dijadwalkan di kolom Due Date In, dan pilih User type:

  • Untuk selalu menetapkan aktivitas kepada user yang sama, pilih Specific User, kemudian tambahkan user di field Responsible;

  • Untuk menargetkan user yang terhubung ke record secara dinamis, pilih Dynamic User (based on record) dan ubah User Field jika perlu.

Example

Setelah lead diubah menjadi opportunity, Anda ingin action otomatis menyiapkan panggilan untuk user yang bertanggung jawab atas lead. Untuk melakukannya, atur Activity Type ke Call dan User Type ke Dynamic User (based on record).

Contoh tindakan Create Activity

Send Email dan Send SMS

Action ini digunakan untuk mengirim email atau pesan teks ke kontak yang terhubung ke record tertentu. Untuk melakukannya, pilih atau buat Email Template atau SMS Template, lalu, di kolom Send Email As atau Send SMS As, pilih bagaimana Anda ingin mengirim email atau pesan teks:

  • Email: untuk mengirim pesan sebagai email kepada penerima Email Template.

  • Message: untuk memposting pesan pada catatan dan memberi tahu pengikut catatan.

  • Note: untuk mengirim pesan sebagai catatan internal yang terlihat oleh pengguna internal di chatter.

  • SMS (without note): untuk mengirim pesan sebagai pesan teks kepada penerima SMS template.

  • SMS (with note): untuk mengirim pesan sebagai pesan teks kepada penerima SMS template dan mempostingnya sebagai catatan internal di chatter.

  • Note only: untuk hanya memposting pesan sebagai catatan internal di chatter.

Kirim WhatsApp

Penting

Untuk mengotomatiskan pengiriman pesan WhatsApp, satu atau lebih template WhatsApp harus dibuat.

Tindakan ini digunakan untuk mengirim pesan WhatsApp ke kontak yang terhubung dengan record tertentu. Untuk melakukannya, pilih WhatsApp Template yang sesuai dari menu dropdown.

Tambah Pengikut dan Hapus Pengikut

Tindakan ini digunakan untuk berlangganan/berhenti berlangganan kontak yang ada ke/dari record.

Buat Record

Action ini digunakan untuk membuat record baru pada model apa pun.

Pilih model yang diperlukan di kolom Record to Create; secara default berisi model saat ini. Tentukan Name untuk record, lalu, jika Anda ingin membuat record pada model lain, pilih kolom di kolom Link Field untuk menghubungkan record yang memicu pembuatan record baru.

Catatan

Daftar dropdown yang terkait dengan kolom Link Field hanya berisi one2many fields yang ada pada model saat ini yang terhubung ke many2one field pada model target.

Tip

Anda dapat membuat aturan otomasi lain dengan Update Record tindakan untuk memperbarui field dari record baru jika diperlukan. Misalnya, Anda dapat menggunakan tindakan Create Record untuk membuat tugas project baru dan kemudian menetapkannya kepada user tertentu menggunakan tindakan Update Record.

Jalankan Kode

Penting

Untuk aturan otomasi yang memerlukan eksekusi custom code, perhatikan bahwa pemeliharaan custom code tidak termasuk dalam paket harga Standard atau Custom dan dikenakan biaya tambahan.

Aksi ini digunakan untuk menjalankan kode Python. Anda dapat menulis kode Anda ke dalam tab Code menggunakan variabel berikut:

  • env: environment tempat aksi dipicu

  • model: model dari record tempat aksi dipicu; merupakan recordset kosong

  • record: record tempat aksi dipicu; mungkin kosong

  • records: recordset dari semua record tempat aksi dipicu dalam mode multi; ini mungkin dibiarkan kosong

  • time, datetime, dateutil, timezone: pustaka Python yang berguna

  • float_compare: fungsi utilitas untuk membandingkan float berdasarkan presisi tertentu

  • log(message, level='info'): fungsi logging untuk mencatat informasi debug dalam tabel ir.logging

  • _logger.info(message): logger untuk mengeluarkan pesan dalam log server

  • UserError: kelas exception untuk memunculkan pesan peringatan yang menghadap user

  • Command: namespace perintah x2many

  • action = {...}: untuk mengembalikan sebuah aksi

Tip

Variabel yang tersedia dijelaskan di tab Code dan Help.

Lihat juga

Kemampuan ORM Odoo

Kirim Notifikasi Webhook

Tindakan ini digunakan untuk mengirim permintaan API POST dengan nilai dari Fields yang dipilih ke URL webhook yang ditentukan dalam field URL.

Sample Payload menyediakan pratinjau data yang disertakan dalam permintaan menggunakan data record acak atau data dummy jika tidak ada record yang tersedia.

Catatan

Dimungkinkan juga untuk menyiapkan tindakan otomatis yang menggunakan webhook untuk menerima data dari sistem eksternal ketika event yang telah ditentukan terjadi di sistem tersebut.

Jalankan Action yang Tersedia

Action ini digunakan untuk memicu beberapa action (yang terhubung ke model saat ini) secara bersamaan. Untuk melakukannya, klik Add a line, lalu, di pop-up Add: Child Actions, pilih action yang ada atau klik New untuk membuat yang baru.