> This is a page from the ElevenLabs documentation. For an index of the documentation, fetch https://elevenlabs.io/docs/llms.txt.

# Odoo

리셉셔니스트는 발신자가 이미 Odoo 연락처인지 확인하고, 새 발신자를 필요한 정보와 함께 Odoo CRM에 리드로 추가하여 영업팀이 후속 조치를 취할 수 있게 합니다. 연결하는 방법은 두 가지입니다.

* **[Webhook 도구](#option-1-webhook-tools-recommended)** 는 Zapier 계정이나 Zapier 작업 사용 없이 Odoo의 JSON-2 API를 직접 호출합니다. odoo.com, Odoo.sh 또는 자체 서버에서 호스팅되는 Community 또는 Enterprise의 Odoo 19 이상이 필요합니다.
* **[Zapier](#option-2-zapier)** 는 이전 Odoo 버전에서도 작동하지만, 각 작업에 Zapier 요금제의 작업이 사용되며 자체 호스팅 데이터베이스는 검색할 수 없습니다.

데이터베이스에서 Odoo 19 이상을 실행한다면 webhook 도구를 사용하세요. Odoo의 이전 API인 JSON-RPC는 각 메서드의 인수를 값이 섞인 하나의 목록으로 받는데, webhook 도구는 이를 만들 수 없으므로 이전 버전에서는 Zapier를 사용해야 합니다.

> **Note**
>
> Odoo는 **Custom** 요금제에서만 외부 앱의 데이터 액세스를 허용합니다. 데이터베이스가
> One App Free 또는 Standard 요금제로 Odoo에서 호스팅되는 경우, 시작하기 전에 요금제를 확인하세요.

## 옵션 1: Webhook 도구(권장)

### Odoo 버전 확인

Odoo 버전은 **설정** 페이지 하단에 표시됩니다. Webhook 도구는 버전 19 이상이 필요합니다. 자체 호스팅 데이터베이스의 경우 서버가 HTTPS를 통해 인터넷에서 접근 가능해야 합니다.

### Reception.ai용 사용자 만들기

**설정** → **사용자 및 회사** → **사용자**에서 Reception.ai용 내부 사용자를 만드세요. API 키가 도구에 필요한 작업만 수행할 수 있도록 **영업**: **사용자: 모든 문서** 액세스 권한을 부여하고 다른 앱에는 액세스 권한을 주지 마세요. **사용자: 모든 문서** 권한을 사용하면 새 리드를 선택한 영업 담당자에게 할당할 수 있습니다.

### API 키 만들기

관리자가 아닌 사용자의 API 키는 최대 3개월 동안만 유효합니다. 1년 동안 유효한 키를 받으려면 다음을 따르세요.

1. 관리자로서 개발자 모드를 켠 다음 **설정** → **사용자 및 회사** → **그룹**으로 이동하세요.
2. 예를 들어 `Reception.ai API key`라는 그룹을 만들고 **API 키 최대 유효 기간(일)** 을 `365`로 설정한 후 Reception.ai 사용자를 추가하세요.

그런 다음 Reception.ai 사용자로 로그인하고 **환경설정** → **계정 보안**을 열어 **새 API 키**를 선택하세요. 예를 들어 `Reception.ai`라는 이름을 지정하고, 제공되는 가장 긴 유효 기간을 선택한 뒤 키를 즉시 복사하세요. Odoo는 키를 한 번만 표시합니다. 만료일을 기록하고 그 전에 키를 교체하세요.

> **Warning**
>
> API 키는 Reception.ai 사용자가 할 수 있는 모든 작업을 수행할 수 있습니다. 공유 문서에 넣지 말고,
> 유출된 경우 Odoo에서 삭제하세요.

### 영업 담당자 및 영업팀 ID 찾기

**설정** → **사용자 및 회사** → **사용자**에서 영업 담당자의 사용자를 여세요. 페이지 주소 끝의 숫자가 사용자 ID입니다. **CRM** → **구성** → **영업팀**에서 영업팀에도 같은 방법을 적용하세요.

### Webhook 도구 만들기

아래의 각 [도구](#find-the-caller)에 대해 **통합**으로 이동하여 **통합 추가**를 선택하고 **Webhook Tool**을 선택하세요. `YOUR_ODOO_ADDRESS`를 데이터베이스 주소(예: `mycompany.odoo.com`)로 바꾸세요.

모든 도구는 동일한 요청 헤더를 전송합니다.

* `Authorization` (Secret): `Bearer ` 뒤에 API 키
* `X-Odoo-Database` (Value): 데이터베이스 이름. 자체 서버에서 데이터베이스를 두 개 이상 호스팅하는 경우에만 필요합니다.

### 발신자 찾기

| 필드           | 값                                                                                                             |
| ------------ | ------------------------------------------------------------------------------------------------------------- |
| **이름**       | `find_odoo_contact`                                                                                           |
| **설명**       | "이메일 주소로 연락처에서 발신자를 찾고, 이메일이 없으면 전체 이름으로 찾습니다. 리드를 추가하기 전에 사용하세요."                                            |
| **메서드**      | POST                                                                                                          |
| **URL**      | `https://YOUR_ODOO_ADDRESS/json/2/res.partner/name_search`                                                    |
| **요청 헤더**    | `Authorization` (Secret): `Bearer ` 뒤에 API 키  `X-Odoo-Database` (Value): 필요한 경우에만 데이터베이스 이름                   |
| **본문 매개변수**  | `name` (문자열, 필수): "발신자의 이메일 주소 또는 철자대로 말한 전체 이름입니다."  `operator` (문자열, 고정값): `=ilike`  `limit` (정수, 고정값): `5` |
| **에이전트에 할당** | **Receptionist**                                                                                              |

`=ilike` 연산자는 대소문자를 무시하고 전체 이름 또는 이메일 주소와 일치하므로, "Jane"을 검색해도 모든 Jane이 나열되지는 않습니다. Odoo는 일치 항목의 ID와 이름만 반환합니다. Odoo의 연락처 검색은 전화번호를 지원하지 않으므로 리셉셔니스트가 이메일 주소나 이름을 물어봐야 합니다.

### 발신자를 리드로 추가

| 필드           | 값                                                                                           |
| ------------ | ------------------------------------------------------------------------------------------- |
| **이름**       | `create_odoo_lead`                                                                          |
| **설명**       | "발신자가 견적이나 콜백을 원할 때 CRM에 리드로 추가합니다."                                                        |
| **메서드**      | POST                                                                                        |
| **URL**      | `https://YOUR_ODOO_ADDRESS/json/2/crm.lead/create`                                          |
| **요청 헤더**    | `Authorization` (Secret): `Bearer ` 뒤에 API 키  `X-Odoo-Database` (Value): 필요한 경우에만 데이터베이스 이름 |
| **본문 매개변수**  | `vals_list` (객체, 필수), 아래 필드 포함                                                              |
| **에이전트에 할당** | **Receptionist**                                                                            |

Odoo는 새 리드의 필드를 `vals_list` 객체 안에 넣어야 합니다. 다음 항목마다 `vals_list`에서 **필드 추가**를 선택하세요.

* `name` (문자열, 필수, 대화에서 가져옴): "리드 제목(예: Kitchen quote - Jane Doe)입니다."
* `contact_name` (문자열, 필수, 대화에서 가져옴): "발신자의 전체 이름입니다."
* `email_from` (문자열, 대화에서 가져옴): "발신자가 제공한 경우 발신자의 이메일 주소입니다."
* `phone` (문자열, 필수, 대화에서 가져옴): "국제 형식의 발신자 전화번호(예: +14155550123)입니다."
* `description` (문자열, 필수, 대화에서 가져옴): "발신자가 필요로 하는 내용을 몇 문장으로 작성합니다."
* `user_id` (정수, 고정값): 영업 담당자의 사용자 ID
* `team_id` (정수, 고정값): 영업팀 ID

영업 담당자와 팀은 고정값이므로 AI가 다른 ID를 전송하더라도 모든 리드는 이들에게 배정됩니다. 예상 매출과 같은 필드는 제외하여 리셉셔니스트가 금액을 추측하지 않도록 하세요.

각 도구에서 **사용**을 선택한 다음, 이메일 주소를 제공하는 기존 연락처와 견적을 요청하는 새 발신자 역할로 [리셉셔니스트를 테스트](/docs/ko/reception-ai/receptionist/testing)하세요. 새 리드가 Odoo CRM 파이프라인에 표시됩니다.

## 옵션 2: Zapier

### Zapier 연결

아직 연결하지 않았다면 Reception.ai에서 [Zapier](/docs/ko/reception-ai/integrations/zapier)를 연결하세요.

### Odoo 작업 추가

[mcp.zapier.com](https://mcp.zapier.com)의 Zapier MCP 서버에서 **Odoo CRM** 앱의 아래 [작업](#zapier-actions)을 추가하고, Zapier에서 요청하면 Odoo에 로그인하세요. 나열된 대로 각 필드에 고정값을 설정하거나 AI가 채우도록 하세요.

**Odoo CRM** 앱은 odoo.com에서 호스팅되는 데이터베이스에서 작동합니다. 자체 호스팅 데이터베이스는 [제한 사항](#limitations)을 참조하세요.

작업은 로그인한 Odoo 사용자가 할 수 있는 모든 작업을 수행할 수 있습니다. CRM과 연락처에만 액세스할 수 있는 전용 사용자를 고려하세요.

### 도구 할당

Reception.ai에서 Zapier 통합의 **도구** 탭을 열고 **도구 새로고침**을 선택한 후 각 작업을 **Client**(리셉셔니스트)에 할당하세요.

### 테스트

이메일 주소를 제공하는 기존 연락처와 견적을 요청하는 새 발신자 역할로 [리셉셔니스트를 테스트](/docs/ko/reception-ai/receptionist/testing)하세요. 새 리드가 Odoo CRM 파이프라인에 표시됩니다.

### Zapier 작업

#### 발신자 찾기

| 필드              | 값                                |
| --------------- | -------------------------------- |
| **Zapier 작업**   | **Find Contact**                 |
| **Zapier에서 설정** | 없음.                              |
| **AI가 채우도록 설정** | 발신자의 이메일 주소 또는 이메일이 없는 경우 전체 이름. |
| **할당 대상**       | **Client**                       |

Odoo의 Zapier 앱은 전화번호가 아닌 이름이나 이메일 주소로 연락처를 찾으므로, 리셉셔니스트가 둘 중 하나를 물어봐야 합니다.

#### 발신자를 리드로 추가

| 필드              | 값                                                                                |
| --------------- | -------------------------------------------------------------------------------- |
| **Zapier 작업**   | **Create Lead**                                                                  |
| **Zapier에서 설정** | 계정에 해당 필드가 표시되는 경우, 새 리드가 배정될 영업 담당자 및 영업팀.                                      |
| **AI가 채우도록 설정** | 리드 제목(예: "Kitchen quote - Jane Doe"), 연락처 이름, 이메일, 전화번호 및 발신자가 필요로 하는 내용에 대한 설명. |
| **할당 대상**       | **Client**                                                                       |

예상 매출과 같은 필드는 비워 두어 리셉셔니스트가 금액을 추측하지 않도록 하세요.

> **Tip**
>
> 어떤 옵션을 사용하든, 리셉셔니스트가 리드를 만들기 전에 발신자의 이메일 주소를 묻고 검색하도록
> [절차](/docs/ko/reception-ai/receptionist/rules-and-procedures)를 추가하세요.

> **Warning**
>
> 검색 결과에는 발신자가 아닌 연락처가 포함될 수 있으며, Zapier의 **Find Contact**는
> 연락처에 저장된 내용을 모두 반환합니다. 리셉셔니스트에게 연락처 세부 정보를 발신자에게 절대
> 다시 읽어주지 말고 발신자를 식별하는 데만 사용하라고 안내하는
> [규칙](/docs/ko/reception-ai/receptionist/rules-and-procedures)을 추가하세요.

## 제한 사항

* 리셉셔니스트는 전화번호로 발신자를 찾을 수 없습니다. 이메일 주소 또는 정확한 이름이 필요합니다.
* 리드의 설명에는 발신자가 원한 내용이 들어갑니다. Zapier의 **Odoo CRM** 앱에는 메모를 추가하거나 통화를 기록하는 작업이 없습니다.
* Webhook 도구를 사용할 경우 API 키가 만료됩니다. 만료일 전에 교체하지 않으면 도구가 작동하지 않습니다.
* Zapier를 사용할 경우 자체 호스팅 Odoo 데이터베이스에는 대신 Zapier의 **Odoo ERP Self Hosted** 앱이 필요합니다. **Create Lead/Opportunity** 작업은 리드를 추가하지만 검색 작업은 없으므로 재방문 발신자가 두 번 추가될 수 있습니다. Webhook 도구는 Odoo 19 이상에서 자체 호스팅 데이터베이스를 검색할 수 있습니다.
* 리셉셔니스트는 Odoo에서 예약 가능 여부를 확인하거나 미팅을 예약할 수 없습니다. 대신 [Google Calendar](/docs/ko/reception-ai/integrations/google-calendar)를 사용한 Reception의 자체 예약 기능을 사용하세요.
* Zapier에서는 리셉셔니스트가 실행하는 각 작업에 Zapier 요금제의 작업이 사용됩니다. Zapier는 현재 성공한 호출당 2개의 작업을 계산하며, 실패한 호출은 계산하지 않습니다. 요금제 한도가 소진되면 재설정될 때까지 작업이 중지됩니다.

## 문제 해결

| 문제                             | 확인할 사항                                                                                                                              |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| Odoo의 401 오류                   | 헤더는 `Authorization`이어야 하며 `Bearer `, 공백, 키가 뒤따라야 합니다. 키가 만료되거나 삭제되지 않았는지 확인하세요.                                                     |
| Odoo의 404 오류                   | 주소와 URL이 `/json/2/res.partner/name_search` 또는 `/json/2/crm.lead/create`로 끝나는지 확인하세요. 데이터베이스는 Odoo 19 이상을 실행해야 하며 CRM이 설치되어 있어야 합니다. |
| Odoo에서 액세스 오류를 반환함             | Reception.ai 사용자에게 **영업**: **사용자: 모든 문서** 액세스 권한이 필요합니다.                                                                            |
| Odoo에서 데이터베이스를 찾을 수 없음         | 데이터베이스 이름으로 `X-Odoo-Database` 헤더를 추가하세요.                                                                                            |
| Reception.ai에 Odoo 작업이 표시되지 않음 | Zapier에서 작업을 추가한 후 Zapier 통합에서 **도구 새로고침**을 선택하세요.                                                                                  |
| 작업에 **Changed**가 표시되고 사용되지 않음  | Zapier에서 작업을 수정했습니다. **도구** 탭에서 **Update**를 선택하세요.                                                                                  |
| Zapier가 Odoo에 연결할 수 없음         | Odoo 요금제에서 외부 앱을 허용하는지, 그리고 데이터베이스 호스팅 위치에 맞는 앱을 사용하는지 확인하세요.                                                                       |
| 알려진 발신자를 찾을 수 없음               | 발신자에게 이메일 주소의 철자를 확인하세요. 이름 검색에는 Odoo에 저장된 이름이 필요하며, 회사에 속한 연락처는 회사 이름, 쉼표, 개인 이름 순으로 저장됩니다.                                        |
| 리드가 잘못된 영업 담당자 또는 팀에 배정됨       | Webhook 도구 또는 Zapier에서 영업 담당자와 영업팀을 고정값으로 설정하세요.                                                                                    |