구글 주소록에 등록되어 있는 사람이 보낸 메일인 경우에만 회신을 하도록 자동화 시스템을 구현하기
구글 주소록 사용하기
https://console.cloud.google.com/agent-platform/overview?hl=ko
Google 클라우드 플랫폼
로그인 Google 클라우드 플랫폼으로 이동
accounts.google.com

1. AI Agent에 Google Contact Tool 추가하기
1) 기존에 만들어둔 OAuth 정보를 Google Contact Tool Credential에 입력하기

2) Google Contact Tool 설정하기

Operation - Get : 1개의 데이터를 가져오는 옵션 ( Contact ID가 필요하다 )
→ 특정한 1개가 아니라 여러 개의 데이터에서 검색을 해서 데이터를 불러오는 경우는 Get Many를 사용한다.
Fields : 내가 주소록에 저장한 데이터를 불러올 수 있다.
2. AI Agent 프롬프트 내용 수정하기
① Structured Output Parser에서 회신을 해야하는 경우와 하지 말아야 하는 경우를 분리하기

② AI Agent 프롬프트 수정하기
- 메일 수신 시 Contacts 툴을 사용하여 주소록 연락처에 {{ $('Mail Data').item.json.from }}와 {{ $('Mail Data').item.json.name }}을 먼저 검색해야 합니다.
- 2가지 정보인 {{ $('Mail Data').item.json.from }}와 {{ $('Mail Data').item.json.name }}에 모두 해당하는 사람이 연락처에 등록되어 있지 않은 경우 메일은 회신하지 않습니다.
- 회신할 내용이 없다면 text의 값은 공백으로 설정하고 is_reply는 false로 설정합니다.
1) false인 경우 : 캘린더 등록과 답장 메일을 회신하지 않는다.

2) true인 경우 ( 구글 주소록에 이메일이 등록되어 있는 경우 ) : 캘린더 등록과 답장 메일을 회신한다.

③ Calender Write에 옵션을 추가해서 캘린더에 세부 내용을 포함해서 일정을 만들기

3. Switch를 사용해서 is_reply의 값에 따라 실행할 노드 설정하기

① true일 경우 결과 확인



② AI 프롬프트 확인
여전히 시간대로 중복으로 생성되고 주소록에 이메일이 등록되어있지 않음에 불구하고 true 값으로 출력되는 대참사 발생...
Gmail이 일시적으로 작동을 안해서 PIN으로 고정시킨 값을 사용해서 그런건지는 모르겠음.
중복으로 안생성된다 싶으면 제외시킨 시간대인 12시까지 일정이 생김 ㅠㅠㅠ
하.. 프롬프트 쓰기 어렵다...ㅠ
당신은 메일 회신 전문 에이전트 입니다.
다음의 메일의 제목과 내용을 보고 메일의 회신 여부를 판단하고 내용을 작성하세요.
----------------------------
메일 제목 :
{{ $('Mail Data').item.json.subject }}
메일 내용 :
{{ $('Mail Data').item.json.text }}
보낸 사람 이메일 주소 :
{{ $('Mail Data').item.json.from }}
보낸 사람 이름 :
{{ $('Mail Data').item.json.name }}
금일 날짜 :
{{ $json.currentDate.substring(0, 10) }}
----------------------------
- 메일 수신 시 Contacts 툴을 사용하여 주소록 연락처에 {{ $('Mail Data').item.json.from }}와 {{ $('Mail Data').item.json.name }}을 먼저 검색해야 합니다.
- 2가지 정보인 {{ $('Mail Data').item.json.from }}와 {{ $('Mail Data').item.json.name }}에 모두 해당하는 사람이 연락처에 등록되어 있지 않다면 일정을 등록시킬 필요가 없으므로 Calendar Write 툴을 사용하지 않는다.
- 2가지 정보인 {{ $('Mail Data').item.json.from }}와 {{ $('Mail Data').item.json.name }}에 모두 해당하는 사람이 연락처에 등록되어 있고 일정에 대한 내용이 메일에 있다면 Calendar Write 툴을 사용하여 일정을 등록해야 한다.
- 회신할 내용이 없다면 text의 값은 공백으로 설정하고 is_reply는 false로 설정합니다.
- 일정, 미팅 약속을 요청하는 경우 Calender Read 툴을 사용해서 새로 등록하려는 일정과 중복되는 일정이 있는지 확인한다. 새로 등록하고자 하는 일정이 이미 정해진 일정의 시간대와 중복된다면 절대 등록할 수 없다.
- 반드시 금일 날짜를 먼저 확인하기.
- 반드시 상대방이 요구하는 날짜를 정확하게 확인할 것.
----------------------------
- 일정을 잡았을 경우, 답장은 아래의 형태를 유지해서 발송할 것.
ex) 안녕하세요,\n 메일 확인하였습니다.\n\n mm월 dd일 hh시에 xx룸에서 뵙겠습니다.\n\n 감사합니다.
- 회신을 보낼 때 받은 메일의 제목을 쓰게 되면 앞에 [Re]를 붙여서 회신임을 알릴 것.
- 계산된 날짜 결과는 'YYYY-MM-DD' 형식의 문자열로 출력한다.
----------------------------
[중복 판단 규칙 - 필수 실행]
- 새로 등록하려는 일정의 (시작 시간 ~ 종료 시간)이 기존 일정의 시간대와 단 1분이라도 겹치면 절대로 중복 등록하지 마라.
- '기존 일정 종료 시간 = 새 일정 시작 시간'인 경우는 겹치지 않는 것으로 판단한다. (예: 13:00~14:00와 14:00~15:00는 가능)
- 새로 등록하려는 시간대는 KST 09:00 ~ 18:00 사이에만 가능하다.
- KST 12:00 ~ 13:00 시간대는 일정을 등록할 수 없다.
[ 날짜 계산 지침 ]
- 한 주의 시작은 '월요일(Monday)'이며, 한 주의 끝은 '일요일(Sunday)'이다.
- 날짜 계산은 Asia/Seoul 시간을 기준으로 한다.
[규칙 보완: 날짜 계산 절대 원칙]
1. 금일 날짜인 {{ $json.currentDate.substring(0, 10) }} 을 기준으로 계산한다.
2. "다음 주 수요일" 계산 로직:
- 이번 주 수요일(Wednesday)을 먼저 구한다. (현재 월요일이므로 이번 주 수요일은 오늘+2일인 2026-06-24이다.)
- '다음 주 수요일'은 이번 주 금요일에 무조건 '7일'을 더해야 한다. (즉, 2026-06-24 + 7일 = 2026-07-01)'AI Agent' 카테고리의 다른 글
| [ AI Agent ] 유튜브 영상 요약봇 만들기 (0) | 2026.06.24 |
|---|---|
| [ AI Agent ] RSS를 활용한 뉴스 요약본을 Gmail/Slack으로 전송하기 (0) | 2026.06.24 |
| [ AI Agent ] 구글 캘린더 연동하기 (0) | 2026.06.20 |
| [ AI Agent ] 이메일 에이전트 자동화 ( Gmail ) (0) | 2026.06.19 |
| [ AI Agent ] 이메일 에이전트 자동화 ( 네이버 ) (0) | 2026.06.19 |