Quy tắc tự động hóa

Quy tắc tự động hóa được sử dụng để kích hoạt các thay đổi tự động dựa trên hành động của người dùng (ví dụ: áp dụng sửa đổi khi một trường được đặt thành giá trị cụ thể), sự kiện email, điều kiện thời gian (ví dụ: lưu trữ bản ghi 7 ngày sau lần cập nhật cuối cùng) hoặc sự kiện bên ngoài.

Để tạo quy tắc tự động hóa bằng Studio, hãy thực hiện như sau:

  1. Mở Studio và nhấp vào Automations, sau đó nhấp vào New.

  2. Chọn Bộ khởi động và nếu cần, hãy điền vào các trường xuất hiện trên màn hình dựa trên kích hoạt đã chọn.

  3. Nhấp vào Thêm hành động, sau đó chọn Loại của :ref:`hành động<studio/automated-actions/action> ` 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 vào Lưu amp; Đóng hoặc Lưu amp; Mới.

Example

Ví dụ về hành động tự động trên mô hình Đăng ký

Mẹo

  • Để sửa đổi model<models_modules_apps> ` của quy tắc tự động hóa, chuyển đổi mô hình trước khi nhấp vào :guilabel:`Tự động hóa trong Studio hoặc kích hoạt chế độ nhà phát triển<developer-mode> `, tạo hoặc chỉnh sửa quy tắc tự động hóa và chọn :guilabel:`Mô hình trong biểu mẫu Quy tắc tự động hóa.

  • Bạn cũng có thể tạo quy tắc tự động hóa từ bất kỳ giai đoạn kanban nào bằng cách nhấp vào biểu tượng bánh răng () bên cạnh tên giai đoạn kanban, sau đó chọn Automations. Trong trường hợp này, Trigger được đặt thành Giai đoạn được đặt thành theo mặc định, nhưng bạn có thể thay đổi nếu cần.

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

Bộ khởi động

Trigger được sử dụng để xác định thời điểm áp dụng quy tắc tự động hóa. Các trigger khả dụng phụ thuộc vào :doc:`model<models_modules_apps> `. Có năm loại kích hoạt có sẵn:

Mẹo

Bạn cũng có thể định nghĩa Before Update Domain để chỉ định các điều kiện phải được đáp ứng trước khi quy tắc tự động hóa được kích hoạt. Ngược lại, các điều kiện được định nghĩa bằng cách sử dụng :ref:`Extra Conditions<studio/automated-actions/trigger/values-timing-conditions> ` và :ref:`Áp dụng trên<studio/automated-actions/trigger/custom> ` bộ lọc được kiểm tra trong khi thực hiện quy tắc tự động hóa.

Để xác định Trước khi cập nhật miền, kích hoạt chế độ nhà phát triển<developer-mode> `, tạo hoặc chỉnh sửa quy tắc tự động hóa, nhấp vào :guilabel:`Chỉnh sửa miền, sau đó nhấp vào Quy tắc mới.

Ví dụ, nếu bạn muốn hành động tự động xảy ra khi địa chỉ email được đặt trên một liên hệ chưa từng có địa chỉ trước đó (khác với việc sửa đổi địa chỉ hiện tại của họ), hãy xác định :guilabel: Trước khi cập nhật tên miền thành :guilabel: Email chưa được đặt và :guilabel: Áp dụng trên tên miền thành :guilabel: Email đã được đặt.

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

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

Các trình kích hoạt có sẵn trong danh mục này phụ thuộc vào mô hình và dựa trên các thay đổi trường phổ biến, chẳng hạn như thêm thẻ cụ thể (ví dụ: vào tác vụ) hoặc đặt trường User. Chọn trình kích hoạt, sau đó chọn giá trị nếu cần.

Ví dụ về kích hoạt Cập nhật giá trị

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

Kích hoạt các hành động tự động dựa trên trường ngày. Các kích hoạt sau đây khả dụng:

  • Dựa trên trường ngày: Chọn trường sẽ được sử dụng bên cạnh trường Trì hoãn.

  • Sau khi tạo: Hành động được kích hoạt khi bản ghi được tạo và lưu.

  • Sau lần cập nhật cuối: Hành động này được kích hoạt khi một bản ghi hiện có được chỉnh sửa và lưu.

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

  • a Delay: Chỉ định số phút, giờ, ngày hoặc tháng. Để kích hoạt hành động trước ngày kích hoạt, hãy chỉ định một số âm. Nếu bạn đã chọn kích hoạt Dựa trên trường ngày, bạn cũng phải chọn trường ngày sẽ được sử dụng để xác định độ trễ.

  • Điều kiện bổ sung: Nhấp vào Thêm điều kiện, sau đó chỉ định các điều kiện cần đáp ứng để kích hoạt quy tắc tự động hóa. Nhấp vào Quy tắc mới để thêm một điều kiện khác.

Hành động này được kích hoạt khi đạt đến độ trễ và các điều kiện được đáp ứng.

Example

Nếu bạn muốn gửi email nhắc nhở 30 phút trước khi bắt đầu sự kiện lịch, hãy chọn Bắt đầu (Sự kiện lịch) trong Ngày kích hoạt và đặt Trì hoãn thành -30 Phút.

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

Ghi chú

Theo mặc định, trình lập lịch sẽ kiểm tra ngày kích hoạt sau mỗi 4 giờ, nghĩa là mức độ chi tiết thấp hơn trong các hoạt động tự động dựa trên thời gian có thể không phải lúc nào cũng được tôn trọng.

Tùy chỉnh

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

  • Khi lưu: Khi bản ghi được lưu;

  • Khi xóa: Khi một bản ghi bị xóa;

  • Khi thay đổi UI: Khi giá trị của một trường được thay đổi trên :ref:`Lượt xem biểu mẫu<studio/views/general/form> `, thậm chí trước khi lưu bản ghi.

Đối với các kích hoạt Khi lưuKhi thay đổi giao diện người dùng, sau đó bạn phải chọn trường(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 When updated, hành động tự động có thể được thực hiện 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 đáp ứng để kích hoạt quy tắc tự động hóa trong trường Apply on.

Ghi chú

Trigger On UI change chỉ có thể được sử dụng với action Thực thi mã và chỉ hoạt động khi có sửa đổi thủ công. Action không được thực hiện nếu trường được thay đổi thông qua một quy tắc tự động hóa khác.

Bên ngoài

Kích hoạt các hành động tự động dựa trên sự kiện bên ngoài bằng cách sử dụng webhook. Webhook là phương pháp giao tiếp giữa hai hệ thống trong đó hệ thống nguồn gửi yêu cầu HTTP(S) đến hệ thống đích dựa trên một sự kiện cụ thể. Nó thường bao gồm một tải dữ liệu chứa thông tin về sự kiện đã xảy ra.

Để cấu hình trình kích hoạt On webhook, hãy sao chép URL do Odoo tạo ra vào hệ thống đích (tức là hệ thống nhận được yêu cầu). Sau đó, trong trường Target Record, hãy nhập mã để chạy để xác định bản ghi sẽ được cập nhật bằng quy tắc tự động hóa.

Cảnh báo

URL phải được coi là bí mật; việc chia sẻ trực tuyến hoặc không thận trọng có thể khiến hệ thống của bạn bị các bên độc hại tấn công. Nhấp vào nút Xoay bí mật để thay đổi bí mật của URL nếu cần.

Ghi chú

  • Mã được định nghĩa theo mặc định trong trường Target Record hoạt động với các webhook đến từ cơ sở dữ liệu Odoo khác. Mã này được sử dụng để xác định bản ghi cần cập nhật bằng thông tin trong 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 bản ghi (ví dụ: tạo bản ghi), tùy chọn duy nhất của bạn là sử dụng hành động Thực thi mã. Trong trường hợp này, trường Target record phải chứa bất kỳ mã hợp lệ nào, nhưng kết quả của nó không có bất kỳ tác động nào đến hành động tự động.

  • Nội dung webhook có sẵn trong ngữ cảnh hành động của máy chủ dưới dạng biến payload (tức là một từ điển chứa các tham số GET hoặc nội dung JSON POST của yêu cầu đến).

Bạn cũng có thể chọn Log Calls để ghi lại các payload đã nhận, ví dụ, để đảm bảo dữ liệu được gửi bởi 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ỳ vấn đề nào có thể phát sinh. Để truy cập nhật ký, hãy nhấp vào nút thông minh Logs ở đầu biểu mẫu Quy tắc tự động hóa.

Tác vụ

Sau khi bạn đã xác định quy tắc tự động hóa trigger<studio/automated-actions/trigger> `, nhấp vào :guilabel:`Thêm hành động để xác định hành động sẽ được thực hiện.

Mẹo

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

Cập nhật bản ghi

Hành động này cho phép cập nhật một trong các trường (có liên quan) của bản ghi. Nhấp vào trường Cập nhật và trong danh sách mở ra, hãy chọn hoặc tìm kiếm trường cần cập nhật; nhấp vào mũi tên phải bên cạnh tên trường để truy cập danh sách các trường có liên quan nếu cần.

Nếu bạn chọn trường many2many<studio/fields/relational-fields/many2many> `, chọn xem trường có phải được cập nhật bằng cách :guilabel:`Thêm, Xóa, hoặc Đặt thành giá trị đã chọn hoặc bằng cách Xóa.

Example

Nếu bạn muốn hành động tự động xóa thẻ khỏi hồ sơ khách hàng, hãy đặt trường Cập nhật thành Khách hàng gt; Thẻ, chọn Bằng cách xóa, sau đó chọn thẻ.

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 động bằng mã Python. Để thực hiện, hãy chọn Compute thay vì Update, 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 datetime tùy chỉnh<studio/fields/simple-fields/date-time> ` khi mức độ ưu tiên của tác vụ được đặt thành `Cao (bằng cách đánh dấu sao cho tác vụ), bạn có thể xác định trình kích hoạt Mức độ ưu tiên được đặt thànhCao và xác định hành động Cập nhật bản ghi như sau:

Tính toán trường ngày giờ tùy chỉnh bằng cách sử dụng biểu thức Python

Tạo hoạt động

Hành động này được sử dụng để lên lịch cho một hoạt động mới được 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 hoạt động được lên lịch trong trường Ngày đến hạn trong và chọn Loại người dùng:

  • Để luôn chỉ định hoạt động cho cùng một người dùng, hãy chọn Người dùng cụ thể và thêm người dùng vào trường Người chịu trách nhiệm;

  • Để nhắm mục tiêu đến người dùng được liên kết động với bản ghi, hãy 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.

Example

Sau khi một 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 đó. Để thực hiện, hãy đặt Activity Type thành CallUser Type thành Dynamic User (based on record).

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

Gửi Email và Gửi SMS

Các hành động 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ột Mẫu SMS, sau đó, trong trường Gửi email dưới dạng hoặc Gửi SMS dưới dạng, hãy 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 Mẫu email.

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

  • Lưu ý: gửi tin nhắn dưới dạng ghi chú nội bộ để người dùng nội bộ trong cuộc trò chuyện có thể nhìn thấy.

  • 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 mẫu SMS và đăng nó dưới dạng ghi chú nội bộ trong cuộc trò chuyện.

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

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

Sử dụng các hành động này để (hủy) đăng ký các liên hệ hiện có vào/ra khỏi hồ sơ.

Tạo bản ghi

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 Record to Create; theo mặc định, nó chứa mô hình hiện tại. Chỉ định Name cho bản ghi, sau đó, nếu bạn muốn tạo bản ghi trên một mô hình khác, hãy chọn một trường trong trường Link Field để 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 Link Field chỉ chứa :ref:`one2many fields<studio/fields/relational-fields/one2many> ` tồn tại trên mô hình hiện tại được liên kết với trường :ref:`many2one<studio/fields/relational-fields/many2one> ` trên mô hình mục tiêu.

Mẹo

Bạn có thể tạo một quy tắc tự động hóa khác với các hành động Cập nhật bản ghi để cập nhật các trường của bản ghi mới nếu cần. Ví dụ, bạn có thể sử dụng hành động Create Record để tạo một tác vụ dự án mới và sau đó chỉ định cho một người dùng cụ thể bằng hành động Update Record.

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 Code 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 tập bản ghi rỗng

  • record: bản ghi mà hành động được kích hoạt; có thể vô hiệu

  • 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; mục này 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 các số float dựa trên độ chính xác cụ thể

  • log(message, level=&#39;info&#39;): 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 các 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 có sẵn được mô tả trong cả tab Trợ giúp.

Gửi thông báo webhook

Hành động này cho phép gửi yêu cầu POST với các giá trị của Fields đến URL được chỉ định trong trường URL.

Sample Payload cung cấp bản xem trước dữ liệu có 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 khả dụng.

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. Để thực hiện, hãy nhấp vào Thêm một dòng, sau đó, trong cửa sổ bật lên Thêm: Hành động con, hãy chọn một hành động hiện có hoặc nhấp vào Mới để tạo một hành động mới.