자동화 규칙

자동화 규칙은 사용자 작업 (예: 필드를 특정 값으로 설정할 때 수정 사항 적용), 이메일 행사, 시간 조건 (예: 최근 업데이트 후 7일간 기록 보관) 또는 외부 행사에 따라 자동 변경이 트리거되게 하는데 사용합니다.

스튜디오를 사용하여 자동화 규칙을 생성하려면 다음과 같이 진행합니다.

  1. 스튜디오를 열고 자동화 클릭한 다음 새로 만들기 를 클릭합니다.

  2. 자동 실행 를 선택한 후 필요한 경우 선택한 트리거 항목에 따라 화면에 나타나는 항목에 입력합니다.

  3. 활동 추가 를 클릭한 다음 활동 유형 을 선택하고 선택한 활동에 따라 화면에 나타나는 항목을 입력합니다.

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

Example

구독 모델에 대해 자동화된 활동 예시

  • 자동화 규칙의 모델 을 수정하려면 스튜디오에서 자동화 를 클릭하기 전에 모델을 전환하거나 개발자 모드 활성화 를 클릭하고 자동화 규칙을 생성 또는 편집한 후 자동화 규칙 양식에서 :guilabel:`모델`을 선택합니다.

  • 칸반 단계 이름 옆에 있는 톱니바퀴 아이콘 ()을 클릭한 다음 자동화 를 선택하여 모든 칸반 단계에서 자동화 규칙을 생성할 수도 있습니다. 이 경우 트리거 는 기본적으로 단계가 설정됨 으로 설정되어 있으나 필요한 경우 변경할 수 있습니다.

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

자동 실행

트리거`는 자동화 규칙이 적용되는 시기를 지정하는 데 사용합니다. 사용할 수 있는 트리거는 :doc:`모드 <models_modules_apps> 에 따라 다릅니다. 전체적으로 5가지 트리거 카테고리를 사용할 수 있습니다.

자동화 규칙이 트리거되기 위해 이전에 반드시 충족해야 하는 조건을 특정하도록 도메인 업데이트 전 을 지정할 수도 있습니다. 반대로 추가 조건적용 필터를 사용하여 정의한 조건은 자동화 규칙을 실행하는 과정에서 검증됩니다.

업데이트 전 도메인 을 지정하려면 개발자 모드 활성화 를 하고 자동화 규칙을 생성 또는 편집한 후 도메인 편집`을 클릭한 다음 :guilabel:`새 규칙 을 클릭합니다.

예를 들어, 이전에 주소 정보가 없던 연락처에 이메일 주소를 설정한 경우 (기존 주소를 수정하는 것과 달리) 자동화된 작업이 수행되도록 하려면 도메인 업데이트 전 을 guilabel:` 이메일이 설정되지 않음` 으로, 적용 도메인을 이메일이 설정됨 으로 지정합니다.

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

값 업데이트

이 카테고리에서 사용할 수 있는 트리거는 모델에 따라 다르며 특정 태그를 추가하거나 (예: 작업에 추가) 사용자 필드를 설정하는 것과 같이 일반적인 필드 변경을 기반으로 합니다. 트리거를 선택한 다음 필요한 경우 값을 선택합니다.

값 업데이트 트리거의 예시

행사 이메일

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

시간 조건

날짜 필드를 기준으로 자동화 작업을 트리거합니다. 다음과 같이 트리거가 되도록 할 수 있습니다.

  • 날짜 필드 기준: 지연 필드 옆에 사용할 필드를 선택합니다.

  • 생성 후: 레코드를 생성 후 저장하면 활동이 트리거됩니다.

  • 마지막 업데이트 후: 기존 레코드를 편집 후 저장하면 활동이 트리거됩니다.

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

  • 지연: 분, 시간, 일 또는 월 기간을 지정합니다. 트리거할 날짜 이전에 활동이 트리거되게 하려면 음수로 지정합니다. 날짜 필드 기준 트리거를 선택한 경우 지연하도록 지정하려면 반드시 날짜 필드도 선택해야 합니다.

  • 추가 조건: 조건 추가 를 클릭한 다음 자동화 규칙이 트리거되려면 충족되어야 하는 조건을 지정합니다. 다른 조건을 추가하려면 새 규칙 을 클릭하세요.

지연 상황에 도달하고 조건이 충족되면 작업이 트리거됩니다.

Example

캘린더 행사 시작 30분 전에 알림 이메일을 보내려면 트리거 날짜 에서 시작 (캘린더 행사) 를 선택하고 지연`를 **-30** :guilabel:`분 으로 설정합니다.

날짜 필드 기준 트리거 예시

참고

기본값으로 스케줄러로 4시간마다 트리거 날짜가 확인되므로, 시간 기준 자동화를 항상 낮게 세분화할 수 있는 것은 아닙니다.

사용자 지정

자동화 작업 트리거:

  • 저장 시: 레코드가 저장될 때;

  • 삭제 시: 레코드가 삭제될 때;

  • UI 변경 시: 레코드가 저장되기 전이라도 양식 보기 에서 필드 값이 변경될 때.

저장 시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.

참고

UI 변경 시 트리거는 코드 실행 작업과 함께 하는 경우에만 구동되며 수동으로 수정하는 경우에만 작동합니다. 다른 자동화 규칙으로 인해 필드가 변경된 경우에는 작업이 실행되지 않습니다.

외부

웹훅을 사용하여 외부 행사에 따라서 자동화 작업을 트리거합니다. 웹훅은 소스 시스템이 특정 행사를 기반으로 대상 시스템에 HTTP (S) 요청을 보내는 두 시스템 간의 통신 방법입니다. 일반적으로 개최하는 행사에 대한 정보를 담은 데이터 페이로드가 포함됩니다.

웹훅 온 트리거를 설정하려면 Odoo에서 생성된 URL 을 대상 시스템 (예: 요청을 수신하는 시스템)에 복사합니다. 그런 다음 자동화 규칙을 적용하여 업데이트할 레코드를 지정할 수 있도록 대상 레코드 필드에 실행할 코드를 입력하여 실행합니다.

경고

URL은 반드시 기밀 로 취급해야 하며, 온라인으로 공유하거나 주의하여 공유하지 않을 경우 시스템이 공격자에게 노출될 수 있습니다. 필요한 경우 URL의 비밀번호을 변경하려면 비밀번호 변경하기 버튼을 클릭합니다.

참고

  • 대상 레코드 필드에 기본값으로 지정되어 있는 코드는 다른 Odoo 데이터베이스에서 들어온 웹훅에 대해 작동합니다. 이 코드는 페이로드의 정보를 사용하여 업데이트할 레코드를 정하는 데 사용합니다.

  • 웹훅의 콘텐츠를 레코드 검색 이외의 목적 (예: 레코드 만들기)으로 사용하려는 경우, 코드 실행 작업으로만 진행할 수 있습니다. 이 경우 대상 레코드 필드에는 반드시 유효한 코드가 들어 있어야 하지만 그 결과는 자동화된 작업 자체에는 영향이 없습니다.

  • 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).

또한 로그 콜 을 선택하면 수신된 페이로드를 기록하며 이를테면 소스 시스템에서 전송한 데이터가 예상 형식 및 내용과 일치하는지 확인할 수도 있습니다. 이는 발생할 수 있는 문제를 식별하고 진단하는 데에도 도움이 됩니다. 로그에 액세스하려면 자동화 규칙 양식 상단에 있는 로그 스마트 버튼을 클릭하세요.

활동

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

동일한 트리거/자동화 규칙에 대해 여러 개의 활동을 정의할 수 있습니다. 활동은 지정된 순서대로 실행됩니다. 예를 들어 레코드 업데이트 활동을 지정한 다음 이메일 보내기 활동을 지정해 놓으면 이메일에서는 업데이트된 값을 사용합니다. 그러나 이메일 보내기 활동이 레코드 업데이트 활동 전으로 지정되어 있으면 이메일은 업데이트 작업이 실행되기 전에 설정된 값을 사용합니다.

레코드 업데이트

이 활동을 통해 레코드의 (관련) 필드 중 하나를 업데이트할 수 있습니다. 업데이트 필드를 클릭하고 목록이 열리면 업데이트할 필드를 선택하거나 검색합니다. 필요한 경우 관련 필드 목록에 액세스하려면 필드명 옆에 있는 오른쪽 화살표를 클릭합니다.

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.

Example of an Update Record action

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

Compute a custom datetime field using a Python expression

활동 생성

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

  • To always assign the activity to the same user, select Specific User and 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

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

Example of a Create Activity action

Send Email and Send SMS

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

  • Email: to send the message as an email to the recipients of the Email Template.

  • Message: to post the message on the record and notify the record’s followers.

  • Note: to send the message as an internal note visible to internal users in the chatter.

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

  • SMS (with note): to send the message as a text message to the recipients of the SMS template and post it as an internal note in the chatter.

  • Note only: to only post the message as an internal note in the chatter.

Add Followers and Remove Followers

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

레코드 생성

This action is used to create a new record on any model.

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

참고

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

필요한 경우 레코드 업데이트 활동을 통해 또 다른 자동화 규칙을 생성하여 새 레코드의 필드를 업데이트할 수 있습니다. 예를 들어, 레코드 만들기 활동을 사용하여 새 프로젝트 작업을 생성한 다음 레코드 업데이트 활동으로 특정 사용자에게 배정할 수 있습니다.

코드 실행

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

  • env: environment on which the action is triggered

  • model: model of the record on which the action is triggered; is a void recordset

  • record: record on which the action is triggered; may be void

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

  • time, datetime, dateutil, timezone: useful Python libraries

  • float_compare: utility function to compare floats based on specific precision

  • log(message, level='info'): logging function to record debug information in ir.logging table

  • _logger.info(message): logger to emit messages in server logs

  • UserError: exception class for raising user-facing warning messages

  • Command: x2many commands namespace

  • action = {...}: to return an action

The available variables are described both in the Code and Help tabs.

웹훅 알림 보내기

This action allows to send a POST request with the values of the Fields to the 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.

기존 작업 실행

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