Quy tắc tự động hoá

Automation rules are used to trigger automatic changes based on user actions (e.g., apply a modification when a field is set to a specific value), email events, time conditions (e.g., archive a record 7 days after its last update), or external events.

To create an automation rule with Studio, proceed as follows:

  1. Mở Studio và nhấp vào Tự động hóa, sau đó Mới.

  2. Select the Kích hoạt and, if necessary, fill in the fields that appear on the screen based on the chosen trigger.

  3. Nhấp Thêm hành động, sau đó chọn Loại hành động và điền vào các trường xuất hiện trên màn hình dựa trên hành động bạn đã chọn.

  4. Nhấp Lưu & Đóng hoặc Lưu & Mới.

Example

Example of an automated action on the Subscription model

Mẹo

  • To modify the model of the automation rule, switch models before clicking Automations in Studio, or activate the developer mode, create or edit an automation rule, and select the Model in the Automation Rules form.

  • You can also create automation rules from any kanban stage by clicking the gear icon ( ) next to the kanban stage name, then selecting Automations. In this case, the Trigger is set to Stage is set to by default, but you can change it if necessary.

    Tạo tự động hóa từ giai đoạn kanban

Kích hoạt

The Trigger is used to define when the automation rule should be applied. The available triggers depend on the model. Five trigger categories are available overall:

Mẹo

You can also define a Before Update Domain to specify the conditions that must be met before the automation rule is triggered. In contrast, the conditions defined using the Extra Conditions and Apply on filters are checked during the execution of the automation rule.

To define a Before Update Domain, activate the developer mode, create or edit an automation rule, click Edit Domain, then click New Rule.

For example, if you want the automated action to happen when an email address is set on a contact that did not have an address before (in contrast to modifying their existing address), define the Before Update Domain to Email is not set, and the Apply on domain to Email is set.

Ví dụ về trình kích hoạt với Miền cập nhật trước

Giá trị đã được cập nhật

The triggers available in this category depend on the model and are based on common field changes, such as adding a specific tag (e.g., to a task) or setting the User field. Select the trigger, then select a value if required.

Example of a Values Updated trigger

Sự kiện email

Kích hoạt các hành động tự động khi nhận hoặc gửi email.

Điều kiện thời gian

Trigger automated actions based on a date field. The following triggers are available:

  • Based on date field: Select the field to be used next to the Delay field.

  • After creation: The action is triggered when a record is created and saved.

  • After last update: The action is triggered when an existing record is edited and saved.

Sau đó bạn có thể xác định:

  • a Delay: Specify the number of minutes, hours, days, or months. To trigger the action before the trigger date, specify a negative number. If you selected the Based on date field trigger, you must also select the date field to be used to determine the delay.

  • Extra Conditions: Click Add condition, then specify the conditions to be met to trigger the automation rule. Click New Rule to add another condition.

The action is triggered when the delay is reached and the conditions are met.

Example

If you want to send a reminder email 30 minutes before the start of a calendar event, select the Start (Calendar Event) under Trigger Date and set the Delay to -30 Minutes.

Ví dụ về trình kích hoạt trường Dựa trên ngày

Ghi chú

By default, the scheduler checks for trigger dates every 4 hours, meaning lower granularity in time-based automations may not always be honored.

Tùy chỉnh

Kích hoạt các hành động tự động:

  • On save: When the record is saved;

  • On deletion: When a record is deleted;

  • On UI change: When a field's value is changed on the Form view, even before saving the record.

Đối với các trình kích hoạt Khi lưuKhi thay đổi giao diện, bạn phải chọn (các) trường sẽ được sử dụng để kích hoạt quy tắc tự động hóa trong trường Khi cập nhật.

Cảnh báo

Nếu không có trường nào được chọn trong trường Khi cập nhật, hành động tự động có thể được thực thi nhiều lần cho mỗi bản ghi.

Tùy chọn, bạn cũng có thể xác định các điều kiện bổ sung cần được đáp ứng để kích hoạt quy tắc tự động hóa trong trường Áp dụng cho.

Ghi chú

The On UI change trigger can only be used with the Thực thi mã action and only works when a modification is made manually. The action is not executed if the field is changed through another automation rule.

Bên ngoài

Trigger automated actions based on an external event using a webhook. A webhook is a method of communication between two systems where the source system sends an HTTP(S) request to a destination system based on a specific event. It usually includes a data payload containing information about the event that occurred.

To configure the On webhook trigger, copy the URL generated by Odoo into the destination system (i.e., the system receiving the request). Then, in the Target Record field, enter the code to run to define the record(s) to be updated using the automation rule.

Cảnh báo

The URL must be treated as confidential; sharing it online or without caution could potentially expose your system to malicious parties. Click the Rotate Secret button to change the URL's secret if necessary.

Ghi chú

  • The code defined by default in the Target Record field works for webhooks coming from another Odoo database. It is used to determine the record(s) to be updated using the information in the payload.

  • Nếu bạn muốn sử dụng nội dung của webhook cho mục đích khác ngoài việc tìm (các) bản ghi (ví dụ như tạo bản ghi mới), thì lựa chọn duy nhất là dùng tác vụ Thực thi mã. Trong trường hợp này, trường Bản ghi mục tiêu có thể chứa bất kỳ đoạn mã hợp lệ nào, nhưng kết quả của đoạn mã đó sẽ không ảnh hưởng đến tác vụ tự động.

  • The webhook content is available in the server action context as a payload variable (i.e., a dictionary that contains the GET parameters or POST JSON body of the incoming request).

Bạn cũng có thể chọn :guilabel:'Ghi nhật ký cuộc gọi' để ghi lại các payload đã nhận, ví dụ như để đảm bảo rằng dữ liệu được gửi từ hệ thống nguồn khớp với định dạng và nội dung mong đợi. Điều này cũng giúp xác định và chẩn đoán bất kỳ sự cố nào có thể phát sinh. Để truy cập nhật ký, hãy nhấp vào nút thông minh Nhật ký ở phía trên biểu mẫu Quy tắc tự động hóa.

Tác vụ cần thực hiện

Once you have defined the automation rule's trigger, click Add an action to define the action to be executed.

Mẹo

Bạn có thể xác định nhiều hành động cho cùng một quy tắc tự động/kích hoạt. Các hành động sẽ được thực thi theo thứ tự chúng được xác định. Điều này có nghĩa là nếu bạn xác định tác vụ Cập nhật bản ghi trước rồi đến tác vụ Gửi email, thì email sẽ sử dụng các giá trị đã được cập nhật. Tuy nhiên, nếu tác vụ Gửi email được xác định trước tác vụ Cập nhật bản ghi, thì email sẽ sử dụng các giá trị được đặt trước khi tác vụ cập nhật được thực thi.

Cập nhật tập dữ liệu

This action allows to update one of the record's (related) fields. Click the Update field and, in the list that opens, select or search for the field to be updated; click the right arrow next to the field name to access the list of related fields if needed.

Nếu bạn đã chọn trường many2many, hãy chọn xem trường đó phải được cập nhật bằng cách Thêm, Xóa, hoặc Đặt thành giá trị đã chọn hay bằng cách Xóa rỗng.

Example

If you want the automated action to remove a tag from the customer record, set the Update field to Customer > Tags, select By Removing, then select the tag.

Ví dụ về hành động Cập nhật bản ghi

Mẹo

Ngoài ra, bạn cũng có thể thiết lập trường của bản ghi một cách linh hoạt bằng mã Python. Để thực hiện, chọn Tính toán thay vì Cập nhật, sau đó nhập mã sẽ được sử dụng để tính giá trị của trường. Ví dụ, nếu bạn muốn quy tắc tự động tính toán trường ngày giờ tùy chỉnh khi mức độ ưu tiên của nhiệm vụ được đặt thành Cao (bằng cách đánh dấu sao cho nhiệm vụ), bạn có thể xác định trình kích hoạt Mức độ ưu tiên được đặt thành thành Cao và xác định hành động Cập nhật bản ghi như sau:

Tính toán trường datetime tùy chỉnh bằng biểu thức Python

Tạo hoạt động

Hành động này được sử dụng để lên lịch một hoạt động mới liên kết với bản ghi. Chọn Loại hoạt động, nhập Tiêu đề và mô tả, sau đó chỉ định thời điểm bạn muốn lên lịch hoạt động trong trường Hạn trong, và chọn Loại người dùng:

  • To always assign the activity to the same user, select Specific User and add the user in the Responsible field;

  • Để nhắm đến người dùng được liên kết với bản ghi một cách động, chọn Người dùng động (dựa trên bản ghi) và thay đổi Trường người dùng nếu cần thiết.

Example

Sau khi khách hàng tiềm năng được chuyển thành cơ hội, bạn muốn hành động tự động thiết lập cuộc gọi cho người dùng chịu trách nhiệm về khách hàng tiềm năng. Để làm như vậy, đặt Loại hoạt động thành Cuộc gọiLoại người dùng thành Người dùng động (dựa trên bản ghi).

Ví dụ về hành động Tạo hoạt động

Gửi email và gửi SMS

Những tác vụ này được sử dụng để gửi email hoặc tin nhắn văn bản đến một liên hệ được liên kết với một bản ghi cụ thể. Để thực hiện, hãy chọn hoặc tạo một Mẫu email hoặc Mẫu SMS. Sau đó, trong trường Gửi email dưới dạng hoặc Gửi SMS dưới dạng, chọn cách bạn muốn gửi email hoặc tin nhắn văn bản:

  • Email: để gửi tin nhắn dưới dạng email tới người nhận của Mẫu email.

  • Tin nhắn: để đăng tin nhắn lên bản ghi và thông báo cho người theo dõi bản ghi.

  • Ghi chú: để gửi tin nhắn dưới dạng ghi chú nội bộ hiển thị cho người dùng nội bộ trong trình trò chuyện.

  • SMS (không có ghi chú): để gửi tin nhắn dưới dạng tin nhắn văn bản tới người nhận của mẫu SMS.

  • SMS (có ghi chú): để gửi tin nhắn dưới dạng tin nhắn văn bản tới người nhận của mẫu SMS và đăng nó dưới dạng ghi chú nội bộ trong trình trò chuyện.

  • Chỉ ghi chú: để chỉ đăng tin nhắn dưới dạng ghi chú nội bộ trong trình trò chuyện.

Thêm người theo dõi và xóa người theo dõi

Use these actions to (un)subscribe existing contacts to/from the record.

Tạo tập dữ liệu

Hành động này được sử dụng để tạo bản ghi mới trên bất kỳ mô hình nào.

Chọn mô hình cần thiết trong trường Bản ghi cần tạo; mặc định trường này chứa mô hình hiện tại. Chỉ định Tên cho bản ghi, sau đó nếu muốn tạo bản ghi trên mô hình khác, hãy chọn một trường trong trường Trường liên kết để liên kết bản ghi đã kích hoạt việc tạo bản ghi mới.

Ghi chú

Danh sách thả xuống liên quan đến trường Trường liên kết chỉ chứa các trường one2many hiện có trên mô hình hiện tại được liên kết với trường many2one trên mô hình đích.

Mẹo

You can create another automation rule with Cập nhật tập dữ liệu actions to update the fields of the new record if necessary. For example, you can use a Create Record action to create a new project task and then assign it to a specific user using an Update Record action.

Thực thi mã

Hành động này được sử dụng để thực thi mã Python. Bạn có thể viết mã của mình vào tab bằng cách sử dụng các biến sau:

  • env: môi trường mà hành động được kích hoạt

  • model: mô hình của bản ghi mà hành động được kích hoạt; là một recordset rỗng

  • record: bản ghi mà hành động được kích hoạt; có thể rỗng

  • records: tập bản ghi của tất cả các bản ghi mà hành động được kích hoạt ở chế độ đa bản ghi; có thể để trống

  • time, datetime, dateutil, timezone: các thư viện Python hữu ích

  • float_compare: hàm tiện ích để so sánh số thực dựa trên độ chính xác cụ thể

  • log(message, level='info'): hàm ghi nhật ký để ghi lại thông tin gỡ lỗi trong bảng ir.logging

  • _logger.info(message): trình ghi nhật ký để phát ra thông báo trong nhật ký máy chủ

  • UserError: lớp ngoại lệ để đưa ra thông báo cảnh báo hướng đến người dùng

  • Command: không gian tên lệnh x2many

  • action = {...}: để trả về một hành động

Mẹo

Các biến khả dụng được mô tả trong cả hai tab CodeHelp.

Gửi thông báo webhook

This action allows to send a POST request with the values of the Fields to the URL specified in the URL field.

Sample Payload cung cấp bản xem trước dữ liệu được bao gồm trong yêu cầu bằng cách sử dụng dữ liệu của bản ghi ngẫu nhiên hoặc dữ liệu giả nếu không có bản ghi nào.

Thực thi tác vụ hiện có

Hành động này được sử dụng để kích hoạt nhiều hành động (liên kết với mô hình hiện tại) cùng một lúc. Để làm như vậy, nhấp Thêm dòng, sau đó trong cửa sổ bật lên Thêm: Hành động con, chọn một hành động hiện có hoặc nhấp Mới để tạo hành động mới.