Ở bài 186, Server Action giúp làm một việc hàng loạt — nhưng phải có người bấm nút. Câu hỏi tự nhiên: làm sao để Odoo tự chạy khi có sự kiện, khỏi cần ai nhớ? Ví dụ: "cứ tạo sản phẩm mới mà chưa có ghi chú giao hàng thì tự điền vào". Đó là việc của Automated Action (Quy tắc tự động hoá).
Công thức của nó rất gọn: ĐIỀU KIỆN + HÀNH ĐỘNG. "Khi điều kiện này xảy ra → làm việc kia." Odoo canh chừng, tự thực thi.
Tính năng này nằm trong phân hệ base_automation (thuộc Community, cài được). Sau khi cài, vào Cài đặt → Kỹ thuật → Quy tắc tự động hoá.
Dựng một quy tắc tự động
Ta làm đúng ví dụ trên: tự điền ghi chú giao hàng cho mọi sản phẩm mới tạo. Đây là quy tắc sau khi khai:

Hình 1: Một Quy tắc tự động hoá. Ba phần cốt lõi: Mô hình (áp cho bảng nào — "Sản phẩm"); Kích hoạt ("Khi tạo" — tức mỗi khi có sản phẩm mới); và Áp dụng cho ("Khớp tất cả hồ sơ", có nút Sửa miền để thêm điều kiện lọc). Tab Tác vụ cần thực hiện liệt kê việc sẽ chạy: server action "[Auto] Điền ghi chú giao hàng mặc định" — chính là hành động ta làm ở bài 186.
Thấy chưa: Automated Action không tự làm gì cả — nó chỉ canh điều kiện rồi gọi một Server Action. Hai thứ ghép lại: Server Action là "làm gì", Automated Action là "khi nào tự làm".
Kiểm chứng: tạo sản phẩm, ghi chú tự hiện
Nói tự động thì phải thử. Ta tạo một sản phẩm mới toanh, không đụng gì tới ô ghi chú, rồi mở tab giao hàng:

Hình 2: Sản phẩm vừa tạo — "Cà phê thử nghiệm tự động (test)". Ô Hướng dẫn đóng gói & giao đã có sẵn "Đóng gói cẩn thận, tránh ẩm (tự điền)" — dù ta không hề gõ vào đó. Chữ "(tự điền)" là dấu vết của quy tắc: ngay khi sản phẩm được tạo, Odoo tự chạy hành động và điền vào. Không ai bấm nút cả.
Đó là điểm khác biệt cốt lõi so với Server Action: không cần thao tác của con người — sự kiện "tạo sản phẩm" tự châm ngòi.
Các kiểu "Kích hoạt" hay dùng
Ô Kích hoạt quyết định khi nào quy tắc chạy. Vài kiểu thông dụng:
- Khi tạo: mỗi lần có bản ghi mới (như ví dụ).
- Khi cập nhật: khi một bản ghi bị sửa (ví dụ trạng thái đơn đổi sang "Hoàn tất").
- Khi tạo hoặc cập nhật: cả hai trường hợp.
- Khi xóa: trước khi bản ghi bị xóa.
- Theo thời gian / theo lịch: chạy định kỳ, hoặc N ngày trước/sau một mốc ngày (ví dụ "gửi nhắc 3 ngày trước hạn giao").
Kết hợp với miền lọc ("Áp dụng cho"), bạn nhắm rất trúng: "khi cập nhật đơn hàng, và giá trị đơn > 5 triệu → thông báo cho quản lý".
Server Action vs Automated Action — đừng lẫn
| Server Action | Automated Action | |
|---|---|---|
| Ai kích hoạt | Người bấm (menu Tác vụ) | Sự kiện tự châm (tạo/sửa/lịch) |
| Dùng khi | Làm hàng loạt theo ý muốn | Tự động lặp lại theo quy tắc |
| Quan hệ | Là "hành động" | Gọi một Server Action khi điều kiện đúng |
Một câu để nhớ: Server Action là "cây búa", Automated Action là "cánh tay tự vung búa khi có tín hiệu".
Cẩn thận — tự động là con dao hai lưỡi
- Chạy âm thầm, không hỏi. Quy tắc sai là sửa nhầm hàng loạt trong im lặng — nguy hiểm hơn Server Action (ít ra cái kia có người bấm). Bắt buộc thử trên bản test.
- Coi chừng vòng lặp. Nếu quy tắc "khi cập nhật" lại đi cập nhật chính bản ghi đó, nó có thể tự châm lại mình. Odoo có phòng ngừa, nhưng phải khai điều kiện cho khéo.
- Điều kiện lọc là bạn. Đừng để "Khớp tất cả hồ sơ" nếu chỉ muốn áp cho một nhóm — dùng "Sửa miền" để giới hạn.
- Sửa quy tắc xong nên làm mới/khởi động lại để nó có hiệu lực đúng.
Nhớ ba ý
- Automated Action = ĐIỀU KIỆN + HÀNH ĐỘNG: Odoo tự chạy một Server Action khi sự kiện xảy ra (khi tạo/sửa/xóa/theo lịch), không cần ai bấm.
- Khác Server Action (phải bấm tay): Automated Action canh sự kiện rồi gọi Server Action — hai thứ ghép lại.
- Tự động chạy âm thầm nên rủi ro cao hơn: thử trên bản test, dùng miền lọc để nhắm trúng, coi chừng vòng lặp.
Một trong những việc tự động hữu ích nhất là liên lạc với khách. Phần sau đi vào gửi email/SMS tự động theo sự kiện — ví dụ tự cảm ơn khi khách đặt hàng, hay nhắc trước ngày giao.