자동화 규칙

Automation rules allow the execution of one or more predefined actions in response to a specific trigger, e.g., create an activity when a field is set to a specific value, or archive a record 7 days after its last update.

When creating an automation rule, domain filters allow you to add conditions that must be met for the automation rule to run, e.g., the opportunity must be assigned to a specific salesperson, or the state of the record must not be Draft.

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

  1. 스튜디오를 열고 자동화 를 클릭한 다음 신규 를 클릭합니다.

  2. Give the automation rule a clear, meaningful name that identifies its purpose.

  3. Select the trigger and, if necessary, fill in the fields that appear on the screen based on the chosen trigger.

  4. 활동 추가 를 클릭한 다음 활동 유형 을 선택하고 선택한 활동에 따라 화면에 표시되는 필드에 입력합니다.

  5. 저장 후 닫기 또는 저장 후 새로 만들기 를 클릭합니다.

Example

To ensure follow-up on less satisfied clients, this automation rule creates an activity 3 months after a sales order is created for clients with a satisfaction percentage lower than 30%.

Example of an automation rule on the Subscription model

  • Use the Notes tab to document the purpose and functioning of automation rules. This makes rules easier to maintain and facilitates collaboration between users.

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

  • Automation rules can be created from any kanban stage by clicking the (Settings) icon that appears when hovering over the kanban stage name, then selecting Automations. In this case, the Trigger is set to Stage is set to by default, but it can be changed if necessary.

    칸반 단계에서 자동화 만들기

자동 실행

The Trigger is used to define what kind of event needs to occur for the automation rule to run. The available triggers depend on the model. Five trigger categories are available overall:

Adding conditions

Domain filters allow you to determine the records an automation rule should target or exclude. Efficient filtering enhances overall performance as it avoids unnecessary processing on records that are not impacted by the rule.

Activate developer mode before creating an automation rule to have the most flexibility in adding domain filters.

Depending on the trigger chosen, it is possible to define one or more conditions a record must meet before and/or after a trigger occurs.

  • The Before Update Domain defines the conditions a record must meet before the trigger event occurs, e.g., the record must have Type = Customer Invoice and Status = Posted.

    With developer mode activated, click Edit Domain, if available, then New Rule.

  • Extra Conditions, or in some cases Apply on filters, define the conditions a record must meet after the trigger event occurs, e.g., the customer invoice must have Payment Status = Partially Paid.

    With developer mode activated if needed, click Add conditions or Edit Domain, as relevant, then New Rule.

When a trigger occurs, e.g., the payment status of a posted customer invoice is updated, the automation rule checks the defined conditions and only executes the action if the record matches those conditions.

Example

If the automated action should be executed when an email address is set for the first time (in contrast to modifying an email address) on an existing contact that is an individual rather than a company, use Email is not set and Is a Company is not set as the Before Update Domain and Email is set as the Apply on domain.

업데이트 전 도메인 트리거의 예시

참고

The Before Update Domain is not checked upon the creation of a record.

값 업데이트

Trigger automated actions when specific changes happen in the database. The triggers available in this category depend on the model and are based on common changes, such as adding a specific tag (e.g., to a task) or setting a field’s value (e.g., setting the User field).

Select the trigger, then select a value if required.

행사 이메일

이메일을 수발신할 때 자동화된 작업을 트리거합니다.

시간 조건

Trigger automated actions at a point in time relative to a date field or to the creation or update of a record. The following triggers are available:

  • Based on date field: The action is triggered a defined period of time before or after the date of the selected date field.

  • After creation: The action is triggered a defined period of time after a record is created and saved.

  • After last update: The action is triggered a defined period of time after an existing record is edited and saved.

그런 다음 다음 내용을 지정할 수 있습니다.

  • a Delay: Specify the number of minutes, hours, days, or months. To have an action executed 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.

    참고

    By default, the scheduler checks for time-triggered automation rules every 240 minutes, or 4 hours. This frequency is generally sufficient for delays such as 3 months after the order date or 7 days after the last update.

    For delays of less than the equivalent of 2400 minutes, or 40 hours, the system recalculates the frequency of this check to ensure that more granular delays, e.g., 1 hour before the event start date and time, or 30 minutes after creation, can be respected as closely as possible.

    An on-screen message indicates the possible delay after the scheduled triggering of the rule.

    Message about possible delay after scheduled execution

    To view or manually edit the frequency of the scheduler, with developer mode activated, go to Settings ‣ Technical ‣ Scheduled Actions to see all scheduled actions for your database.

    Enter Automation in the search bar, then, in the list of results, click Automation Rules: check and execute. If desired, update the value of the Execute Every field. Click Run Manually at any time to manually trigger this scheduled action.

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

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

Example

To send a reminder email 30 minutes before the start of a calendar event, select Start (Calendar Event) as the date field for the Trigger and set the Delay to -30 Minutes.

날짜 필드 기준 트리거 예시

사용자 정의

자동화 작업 트리거:

  • On save: when a 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 the record is saved.

저장 시UI 변경 시 트리거가 되게 하는 경우 반드시 업데이트 시 에서 자동화 규칙을 트리거하는 데 사용할 필드를 선택해야 합니다.

경고

If no field is selected in the When updating field, the automated action may be executed multiple times per record.

Optionally, you can also define additional conditions to be met to trigger the automation rule in the Apply on field.

Example

To trigger an automated action upon the creation of a record, e.g., when a new contact is created, select the On save trigger and use ID is not set as the Before Update Domain and ID is set as the Apply on domain. Make sure the correct field is selected in the When updating field.

When a new contact is saved, it is automatically assigned a database ID, thereby triggering the automation rule.

Example of a triggering an action upon creation of a record

참고

The On UI change trigger can only be used with the Execute Code action and only works when a modification is made manually. The action is not executed if the field is changed through another automation rule.

외부

Trigger automated actions based on a specific event in an external system or application using a webhook.

After the webhook is configured in Odoo, where the webhook’s URL is generated and the target record defined, it needs to be implemented in the external system.

경고

개발자, 솔루션 설계자 또는 기타 기술 담당자와 웹훅 사용 시기 및 구현 프로세스 전반에 대한 내용을 상의하는 것을 강력히 권장합니다. 웹훅이 제대로 구성되지 않으면 Odoo 데이터베이스가 중단될 수 있으며 복구까지 장시간이 소요될 수 있습니다.

날짜 필드 기준 트리거 예시

참고

It is also possible to set up an automated action that sends data to a external system’s webhook when an event occurs in your Odoo database.

활동

Once you have defined the automation rule’s trigger, click Add an action in the Actions To Do tab to define the action to be executed.

You can define multiple actions for the same automation rule. By default, actions are executed in the order in which they were defined.

This means, for example, that if you define an Update record action and then a Send email action where the email references the field that was updated, the email uses the updated values. However, if the Send email action is defined before the Update record action, the email uses the values set before the record is updated.

To change the order of defined actions, click the (drag handle) icon beside an action and drag it to the desired position.

레코드 업데이트

This action updates 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. If needed, click the (right arrow) next to the field name to access the list of related fields.

If you selected a many2many field, choose whether the field must be updated by Adding, Removing, or Setting it to the selected value or by Clearing it.

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.

업데이트 레코드 작업의 예시

또는 Python 코드를 활용하여 레코드 필드를 동적으로 설정할 수도 있습니다. 이렇게 하려면 업데이트 대신 계산 을 선택한 다음 필드 값을 계산할 때 적용할 코드를 입력합니다. 예를 들어 작업의 우선순위가 ‘높음’으로 설정되어 있는 경우(작업에 별표 표시) 자동화 규칙을 통해 사용자 지정된 날짜 및 시간 필드 를 계산하려면, 우선순위 설정높음`으로 살장하고 :guilabel:`레코드 업데이트 동작을 다음과 같이 지정합니다:

Python 표현식을 사용하여 사용자 지정 일시 필드 계산하기

활동 생성

이 작업은 레코드에 연결된 새 활동을 예약하는 데 사용됩니다. 활동 유형 을 선택하여 제목 과 설명을 입력한 다음 기한까지 남은 날짜 필드에서 활동을 예약할 시기를 지정하고 사용자 유형 을 선택합니다.

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

  • To target a user linked to the record dynamically, select Dynamic User (based on record) and change the User Field if necessary.

Example

영업제안이 영업기회로 전환된 후에는 자동화 작업을 통해 영업제안 담당자에게 전화를 걸도록 설정할 수 있습니다. 진행하려면 활동 유형통화 로 설정하고 사용자 유형동적 사용자 (레코드 기반) 으로 설정합니다.

활동 만들기 작업의 예시

이메일 보내기 및 SMS 보내기

이러한 활동으로 특정 레코드에 연결된 연락처로 이메일이나 문자 메시지를 보냅니다. 그진행하려면 이메일 템플릿 또는 SMS 템플릿 을 선택하거나 생성한 다음 다른 이름으로 이메일 보내기 또는 다른 이름으로 SMS 보내기 필드에서 이메일 또는 문자 메시지를 전송할 방법을 선택합니다.

  • 이메일: 이메일 템플릿 수신자에게 이메일로 메시지를 전송합니다.

  • 메시지: 레코드에 메시지를 게시하고 레코드 팔로워에게 안내합니다.

  • 메모: 내부 메모로 내부 사용자에게 표시되는 메시지를 메시지창에서 전송합니다.

  • SMS (without note): to send the message as a text message to the recipients of the SMS template.

  • SMS(메모 포함): 문자 메시지로 SMS 템플릿 수신자에게 메시지를 보내고 내부 메모로 메시지창에 게시합니다.

  • 메모 전용: 메시지창에서 내부용 메모로만 메시지를 게시합니다.

WhatsApp 전송

중요

To automate the sending of WhatsApp messages, one or more WhatsApp templates must be created.

This action is used to send a WhatsApp message to a contact linked to a specific record. To do so, select the appropriate WhatsApp Template from the dropdown menu.

팔로워 추가 및 팔로워 제거하기

This action is used to subscribe/unsubscribe existing contacts to/from the record.

레코드 생성

이 작업은 모델에서 새 레코드를 생성할 때 적용됩니다.

만들 레코드 필드에서 필요한 모델을 선택합니다. 기본적으로 현재 모델로 되어 있습니다. 레코드 이름 을 지정한 다음, 다른 모델에서 레코드를 생성하려면 필드 링크 에서 필드를 선택하여 새 레코드가 만들어지도록 트리거하는 레코드에 연결합니다.

참고

필드 연결 필드와 관련된 드롭다운 목록에는 현재 사용 중인 모델에 대한 일대다 필드 만 있으며, 대상 모델의 다대일 항목 에 연결되어 있습니다.

You can create another automation rule with 레코드 업데이트 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.

코드 실행

중요

For automation rules that require the execution of custom code, note that maintenance of custom code is not included in the Standard or Custom pricing plans and incurs additional fees.

This action is used to execute Python code. You can write your code into the Code tab using the following variables:

  • env: 작업이 트리거되는 환경

  • model: 활동을 작동시키는 레코드의 모델입니다. 무효 레코드 세트입니다.

  • record: 작업이 트리거되는 레코드입니다. 레코드는 무효일 수 있습니다.

  • records: recordset of all records on which the action is triggered in multi-mode; this may be left empty

  • time, datetime, dateutil, timezone: 유용한 Python 라이브러리

  • float_compare: 특정 정밀도를 기준으로 소수점을 비교하는 유틸리티 함수

  • log(message, level='info'): ir.logging 테이블에 디버그 정보를 기록하는 로깅 함수입니다.

  • _logger.info(message): 서버 로그로 메시지를 내보내는 로거

  • UserError: 사용자에게 경고 메시지를 발생시키는 예외 클래스

  • 명령어: x2many 명령어 입력 공간

  • action = {...}: 작업을 반환합니다.

사용이 가능한 변수는 코드도움말 탭에 모두 설명되어 있습니다.

웹훅 알림 보내기

This action is used to send a POST API request with the values of the selected Fields to the webhook URL specified in the URL field.

The Sample Payload provides a preview of the data included in the request using a random record’s data or dummy data if no record is available.

참고

It is also possible to set up an automated action that uses a webhook to receive data from an external system when a predefined event occurs in that system.

기존 작업 실행

활동은 여러 개의 활동 (현재 모델에 연결)을 동시에 트리거하는 데 사용합니다. 이렇게 하려면 줄 추가 를 클릭한 다음 추가: 하위 활동 팝업에서 기존 활동을 선택하거나 새로 만들기 를 클릭하여 새 활동을 만듭니다.