mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-04-16 07:52:39 +00:00
* docs: add missing integration actions from OAuth config Sync enterprise integration docs with crewai-oauth apps.js config. Adds ~96 missing actions across 9 integrations: - Google Contacts: 4 contact group actions - Google Slides: 14 slide manipulation/content actions - Microsoft SharePoint: 27 file, Excel, and Word actions - Microsoft Excel: 2 actions (get_used_range_metadata, get_table_data) - Microsoft Word: 2 actions (copy_document, move_document) - Google Docs: 27 text formatting, table, and header/footer actions - Microsoft Outlook: 7 message and calendar event actions - Microsoft OneDrive: 5 path-based and discovery actions - Microsoft Teams: 8 meeting, channel, and reply actions * docs: add missing integration actions from OAuth config Sync pt-BR enterprise integration docs with crewai-oauth apps.js config. Adds ~96 missing actions across 9 integrations, translated to Portuguese: - Google Contacts: 2 contact group actions - Google Slides: 14 slide manipulation/content actions - Microsoft SharePoint: 27 file, Excel, and Word actions - Microsoft Excel: 2 actions (get_used_range_metadata, get_table_data) - Microsoft Word: 2 actions (copy_document, move_document) - Google Docs: 27 text formatting, table, and header/footer actions - Microsoft Outlook: 7 message and calendar event actions - Microsoft OneDrive: 5 path-based and discovery actions - Microsoft Teams: 8 meeting, channel, and reply actions * docs: add missing integration actions from OAuth config Sync Korean enterprise integration docs with crewai-oauth apps.js config. Adds ~96 missing actions across 9 integrations, translated to Korean: - Google Contacts: 2 contact group actions - Google Slides: 14 slide manipulation/content actions - Microsoft SharePoint: 27 file, Excel, and Word actions - Microsoft Excel: 2 actions (get_used_range_metadata, get_table_data) - Microsoft Word: 2 actions (copy_document, move_document) - Google Docs: 27 text formatting, table, and header/footer actions - Microsoft Outlook: 7 message and calendar event actions - Microsoft OneDrive: 5 path-based and discovery actions - Microsoft Teams: 8 meeting, channel, and reply actions --------- Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>
334 lines
14 KiB
Plaintext
334 lines
14 KiB
Plaintext
---
|
|
title: Microsoft Outlook 통합
|
|
description: "CrewAI를 위한 Microsoft Outlook 통합으로 이메일, 캘린더 및 연락처 관리."
|
|
icon: "envelope"
|
|
mode: "wide"
|
|
---
|
|
|
|
## 개요
|
|
|
|
에이전트가 Outlook 이메일, 캘린더 이벤트 및 연락처에 액세스하고 관리할 수 있도록 합니다. AI 기반 자동화로 이메일을 보내고, 메시지를 검색하고, 캘린더 이벤트를 관리하며, 연락처를 구성합니다.
|
|
|
|
## 전제 조건
|
|
|
|
Microsoft Outlook 통합을 사용하기 전에 다음 사항을 확인하세요:
|
|
|
|
- 활성 구독이 있는 [CrewAI AMP](https://app.crewai.com) 계정
|
|
- Outlook 액세스 권한이 있는 Microsoft 계정
|
|
- [통합 페이지](https://app.crewai.com/crewai_plus/connectors)를 통해 Microsoft 계정 연결
|
|
|
|
## Microsoft Outlook 통합 설정
|
|
|
|
### 1. Microsoft 계정 연결
|
|
|
|
1. [CrewAI AMP 통합](https://app.crewai.com/crewai_plus/connectors)으로 이동
|
|
2. 인증 통합 섹션에서 **Microsoft Outlook** 찾기
|
|
3. **연결**을 클릭하고 OAuth 플로우 완료
|
|
4. 이메일, 캘린더 및 연락처 액세스에 필요한 권한 부여
|
|
5. [통합 설정](https://app.crewai.com/crewai_plus/settings/integrations)에서 Enterprise Token 복사
|
|
|
|
### 2. 필요한 패키지 설치
|
|
|
|
```bash
|
|
uv add crewai-tools
|
|
```
|
|
|
|
### 3. 환경 변수 설정
|
|
|
|
<Note>
|
|
`Agent(apps=[])`와 함께 통합을 사용하려면 Enterprise Token으로
|
|
`CREWAI_PLATFORM_INTEGRATION_TOKEN` 환경 변수를 설정해야 합니다.
|
|
</Note>
|
|
|
|
```bash
|
|
export CREWAI_PLATFORM_INTEGRATION_TOKEN="your_enterprise_token"
|
|
```
|
|
|
|
또는 `.env` 파일에 추가하세요:
|
|
|
|
```
|
|
CREWAI_PLATFORM_INTEGRATION_TOKEN=your_enterprise_token
|
|
```
|
|
|
|
## 사용 가능한 작업
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="microsoft_outlook/get_messages">
|
|
**설명:** 사용자의 사서함에서 이메일 메시지를 가져옵니다.
|
|
|
|
**매개변수:**
|
|
- `top` (integer, 선택사항): 검색할 메시지 수 (최대 1000). 기본값: 10.
|
|
- `filter` (string, 선택사항): OData 필터 표현식 (예: "isRead eq false").
|
|
- `search` (string, 선택사항): 검색 쿼리 문자열.
|
|
- `orderby` (string, 선택사항): 필드별 정렬 (예: "receivedDateTime desc"). 기본값: "receivedDateTime desc".
|
|
- `select` (string, 선택사항): 반환할 특정 속성 선택.
|
|
- `expand` (string, 선택사항): 관련 리소스를 인라인으로 확장.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/send_email">
|
|
**설명:** 이메일 메시지를 보냅니다.
|
|
|
|
**매개변수:**
|
|
- `to_recipients` (array, 필수): 받는 사람의 이메일 주소 배열.
|
|
- `cc_recipients` (array, 선택사항): 참조 받는 사람의 이메일 주소 배열.
|
|
- `bcc_recipients` (array, 선택사항): 숨은 참조 받는 사람의 이메일 주소 배열.
|
|
- `subject` (string, 필수): 이메일 제목.
|
|
- `body` (string, 필수): 이메일 본문 내용.
|
|
- `body_type` (string, 선택사항): 본문 내용 유형. 옵션: Text, HTML. 기본값: HTML.
|
|
- `importance` (string, 선택사항): 메시지 중요도 수준. 옵션: low, normal, high. 기본값: normal.
|
|
- `reply_to` (array, 선택사항): 회신용 이메일 주소 배열.
|
|
- `save_to_sent_items` (boolean, 선택사항): 보낸 편지함 폴더에 메시지를 저장할지 여부. 기본값: true.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/get_calendar_events">
|
|
**설명:** 사용자의 캘린더에서 캘린더 이벤트를 가져옵니다.
|
|
|
|
**매개변수:**
|
|
- `top` (integer, 선택사항): 검색할 이벤트 수 (최대 1000). 기본값: 10.
|
|
- `skip` (integer, 선택사항): 건너뛸 이벤트 수. 기본값: 0.
|
|
- `filter` (string, 선택사항): OData 필터 표현식 (예: "start/dateTime ge '2024-01-01T00:00:00Z'").
|
|
- `orderby` (string, 선택사항): 필드별 정렬 (예: "start/dateTime asc"). 기본값: "start/dateTime asc".
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/create_calendar_event">
|
|
**설명:** 새 캘린더 이벤트를 만듭니다.
|
|
|
|
**매개변수:**
|
|
- `subject` (string, 필수): 이벤트 제목/제목.
|
|
- `body` (string, 선택사항): 이벤트 본문/설명.
|
|
- `start_datetime` (string, 필수): ISO 8601 형식의 시작 날짜 및 시간 (예: '2024-01-20T10:00:00').
|
|
- `end_datetime` (string, 필수): ISO 8601 형식의 종료 날짜 및 시간.
|
|
- `timezone` (string, 선택사항): 시간대 (예: 'Pacific Standard Time'). 기본값: UTC.
|
|
- `location` (string, 선택사항): 이벤트 위치.
|
|
- `attendees` (array, 선택사항): 참석자의 이메일 주소 배열.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/get_contacts">
|
|
**설명:** 사용자의 주소록에서 연락처를 가져옵니다.
|
|
|
|
**매개변수:**
|
|
- `top` (integer, 선택사항): 검색할 연락처 수 (최대 1000). 기본값: 10.
|
|
- `skip` (integer, 선택사항): 건너뛸 연락처 수. 기본값: 0.
|
|
- `filter` (string, 선택사항): OData 필터 표현식.
|
|
- `orderby` (string, 선택사항): 필드별 정렬 (예: "displayName asc"). 기본값: "displayName asc".
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/create_contact">
|
|
**설명:** 사용자의 주소록에 새 연락처를 만듭니다.
|
|
|
|
**매개변수:**
|
|
- `displayName` (string, 필수): 연락처의 표시 이름.
|
|
- `givenName` (string, 선택사항): 연락처의 이름.
|
|
- `surname` (string, 선택사항): 연락처의 성.
|
|
- `emailAddresses` (array, 선택사항): 이메일 주소 배열. 각 항목은 `address` (string)와 `name` (string)이 있는 객체.
|
|
- `businessPhones` (array, 선택사항): 사업용 전화번호 배열.
|
|
- `homePhones` (array, 선택사항): 집 전화번호 배열.
|
|
- `jobTitle` (string, 선택사항): 연락처의 직책.
|
|
- `companyName` (string, 선택사항): 연락처의 회사 이름.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/get_message">
|
|
**설명:** ID로 특정 이메일 메시지를 가져옵니다.
|
|
|
|
**매개변수:**
|
|
- `message_id` (string, 필수): 메시지의 고유 식별자. get_messages 작업에서 얻을 수 있습니다.
|
|
- `select` (string, 선택사항): 반환할 속성의 쉼표로 구분된 목록. 예: "id,subject,body,from,receivedDateTime". 기본값: "id,subject,body,from,toRecipients,receivedDateTime".
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/reply_to_email">
|
|
**설명:** 이메일 메시지에 회신합니다.
|
|
|
|
**매개변수:**
|
|
- `message_id` (string, 필수): 회신할 메시지의 고유 식별자. get_messages 작업에서 얻을 수 있습니다.
|
|
- `comment` (string, 필수): 회신 메시지 내용. 일반 텍스트 또는 HTML 가능. 원본 메시지가 이 내용 아래에 인용됩니다.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/forward_email">
|
|
**설명:** 이메일 메시지를 전달합니다.
|
|
|
|
**매개변수:**
|
|
- `message_id` (string, 필수): 전달할 메시지의 고유 식별자. get_messages 작업에서 얻을 수 있습니다.
|
|
- `to_recipients` (array, 필수): 전달할 받는 사람의 이메일 주소 배열. 예: ["john@example.com", "jane@example.com"].
|
|
- `comment` (string, 선택사항): 전달된 콘텐츠 위에 포함할 선택적 메시지. 일반 텍스트 또는 HTML 가능.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/mark_message_read">
|
|
**설명:** 메시지를 읽음 또는 읽지 않음으로 표시합니다.
|
|
|
|
**매개변수:**
|
|
- `message_id` (string, 필수): 메시지의 고유 식별자. get_messages 작업에서 얻을 수 있습니다.
|
|
- `is_read` (boolean, 필수): 읽음으로 표시하려면 true, 읽지 않음으로 표시하려면 false로 설정합니다.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/delete_message">
|
|
**설명:** 이메일 메시지를 삭제합니다.
|
|
|
|
**매개변수:**
|
|
- `message_id` (string, 필수): 삭제할 메시지의 고유 식별자. get_messages 작업에서 얻을 수 있습니다.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/update_event">
|
|
**설명:** 기존 캘린더 이벤트를 업데이트합니다.
|
|
|
|
**매개변수:**
|
|
- `event_id` (string, 필수): 이벤트의 고유 식별자. get_calendar_events 작업에서 얻을 수 있습니다.
|
|
- `subject` (string, 선택사항): 이벤트의 새 제목/제목.
|
|
- `start_time` (string, 선택사항): ISO 8601 형식의 새 시작 시간 (예: "2024-01-20T10:00:00"). 필수: 이 필드 사용 시 start_timezone도 제공해야 합니다.
|
|
- `start_timezone` (string, 선택사항): 시작 시간의 시간대. start_time 업데이트 시 필수. 예: "Pacific Standard Time", "Eastern Standard Time", "UTC".
|
|
- `end_time` (string, 선택사항): ISO 8601 형식의 새 종료 시간. 필수: 이 필드 사용 시 end_timezone도 제공해야 합니다.
|
|
- `end_timezone` (string, 선택사항): 종료 시간의 시간대. end_time 업데이트 시 필수. 예: "Pacific Standard Time", "Eastern Standard Time", "UTC".
|
|
- `location` (string, 선택사항): 이벤트의 새 위치.
|
|
- `body` (string, 선택사항): 이벤트의 새 본문/설명. HTML 형식 지원.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="microsoft_outlook/delete_event">
|
|
**설명:** 캘린더 이벤트를 삭제합니다.
|
|
|
|
**매개변수:**
|
|
- `event_id` (string, 필수): 삭제할 이벤트의 고유 식별자. get_calendar_events 작업에서 얻을 수 있습니다.
|
|
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
## 사용 예제
|
|
|
|
### 기본 Microsoft Outlook 에이전트 설정
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# Microsoft Outlook 기능을 가진 에이전트 생성
|
|
outlook_agent = Agent(
|
|
role="이메일 어시스턴트",
|
|
goal="이메일, 캘린더 이벤트 및 연락처를 효율적으로 관리",
|
|
backstory="Microsoft Outlook 작업 및 커뮤니케이션 관리 전문 AI 어시스턴트.",
|
|
apps=['microsoft_outlook'] # 모든 Outlook 작업을 사용할 수 있습니다
|
|
)
|
|
|
|
# 이메일 보내기 작업
|
|
send_email_task = Task(
|
|
description="'colleague@example.com'에게 제목 '프로젝트 업데이트'와 본문 '안녕하세요, 프로젝트의 최신 업데이트입니다. 감사합니다.'로 이메일을 보내세요",
|
|
agent=outlook_agent,
|
|
expected_output="colleague@example.com에게 이메일이 성공적으로 전송됨"
|
|
)
|
|
|
|
# 작업 실행
|
|
crew = Crew(
|
|
agents=[outlook_agent],
|
|
tasks=[send_email_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### 이메일 관리 및 검색
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# 이메일 관리에 특화된 에이전트 생성
|
|
email_manager = Agent(
|
|
role="이메일 관리자",
|
|
goal="이메일 메시지를 검색하고 가져와 정리",
|
|
backstory="이메일 정리 및 관리에 능숙한 AI 어시스턴트.",
|
|
apps=['microsoft_outlook/get_messages']
|
|
)
|
|
|
|
# 이메일 검색 및 가져오기 작업
|
|
search_emails_task = Task(
|
|
description="최신 읽지 않은 이메일 20건을 가져와 가장 중요한 것들의 요약을 제공하세요.",
|
|
agent=email_manager,
|
|
expected_output="주요 읽지 않은 이메일의 요약과 핵심 세부 정보."
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[email_manager],
|
|
tasks=[search_emails_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### 캘린더 및 연락처 관리
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# 캘린더 및 연락처 관리를 위한 에이전트 생성
|
|
scheduler = Agent(
|
|
role="캘린더 및 연락처 관리자",
|
|
goal="캘린더 이벤트를 관리하고 연락처 정보를 유지",
|
|
backstory="일정 관리 및 연락처 정리를 담당하는 AI 어시스턴트.",
|
|
apps=['microsoft_outlook/create_calendar_event', 'microsoft_outlook/get_calendar_events', 'microsoft_outlook/create_contact']
|
|
)
|
|
|
|
# 회의 생성 및 연락처 추가 작업
|
|
schedule_task = Task(
|
|
description="내일 오후 2시 '팀 회의' 제목으로 '회의실 A' 장소의 캘린더 이벤트를 만들고, 'john.smith@example.com' 이메일과 '프로젝트 매니저' 직책으로 'John Smith'의 새 연락처를 추가하세요.",
|
|
agent=scheduler,
|
|
expected_output="캘린더 이벤트가 생성되고 새 연락처가 추가됨."
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[scheduler],
|
|
tasks=[schedule_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
## 문제 해결
|
|
|
|
### 일반적인 문제
|
|
|
|
**인증 오류**
|
|
|
|
- Microsoft 계정이 이메일, 캘린더 및 연락처 액세스에 필요한 권한을 가지고 있는지 확인하세요.
|
|
- 필요한 범위: `Mail.Read`, `Mail.Send`, `Calendars.Read`, `Calendars.ReadWrite`, `Contacts.Read`, `Contacts.ReadWrite`.
|
|
- OAuth 연결에 필요한 모든 범위가 포함되어 있는지 확인하세요.
|
|
|
|
**이메일 보내기 문제**
|
|
|
|
- `send_email`에 `to_recipients`, `subject`, `body`가 제공되는지 확인하세요.
|
|
- 이메일 주소가 올바르게 형식화되어 있는지 확인하세요.
|
|
- 계정에 `Mail.Send` 권한이 있는지 확인하세요.
|
|
|
|
**캘린더 이벤트 생성**
|
|
|
|
- `subject`, `start_datetime`, `end_datetime`이 제공되는지 확인하세요.
|
|
- 날짜/시간 필드에 적절한 ISO 8601 형식을 사용하세요 (예: '2024-01-20T10:00:00').
|
|
- 이벤트가 잘못된 시간에 표시되는 경우 시간대 설정을 확인하세요.
|
|
|
|
**연락처 관리**
|
|
|
|
- `create_contact`의 경우 필수인 `displayName`이 제공되는지 확인하세요.
|
|
- `emailAddresses`를 제공할 때 `address`와 `name` 속성이 있는 올바른 객체 형식을 사용하세요.
|
|
|
|
**검색 및 필터 문제**
|
|
|
|
- `filter` 매개변수에 올바른 OData 문법을 사용하세요.
|
|
- 날짜 필터의 경우 ISO 8601 형식을 사용하세요 (예: "receivedDateTime ge '2024-01-01T00:00:00Z'").
|
|
|
|
### 도움 받기
|
|
|
|
<Card
|
|
title="도움이 필요하신가요?"
|
|
icon="headset"
|
|
href="mailto:support@crewai.com"
|
|
>
|
|
Microsoft Outlook 통합 설정 또는 문제 해결에 대한 지원이 필요하시면 지원팀에
|
|
문의하세요.
|
|
</Card>
|