https://cord-ai.tistory.com/199
GPTs + n8n을 활용한 AI비서 만들기(Gmail)
핵심 아이디어n8n을 백엔드로 사용해 이메일/캘린더 등의 기능을 수행하고GPTs를 프론트처럼 활용해 사용자의 명령을 받아 API 호출까지 수행하게 만든다결국 "GPT에게 말만 걸면 백엔드가 자동 실
cord-ai.tistory.com
<위의 글을 먼저 보고 오시는것을 추천드립니다. 구축 과정이 똑같은 부분은 생략 했습니다.>
핵심 아이디어
- n8n을 백엔드로 사용해 이메일/캘린더 등의 기능을 수행하고
- GPTs를 프론트처럼 활용해 사용자의 명령을 받아 API 호출까지 수행하게 만든다
결국 "GPT에게 말만 걸면 백엔드가 자동 실행되는 구조"를 만들 수 있다는 얘기다.
목표 / 기대 효과
GPTs에 액션 기능을 연결해 입력 → 처리 → 전달까지 완전 자동화된 AI 비서를 만들고 싶었다.
n8n의 백엔드 기능과 GPTs의 프론트 역할을 결합해 대화형 자동화 시스템을 구축하는 게 목표였다.
환경 정보:
- 사용 도구: Gmail API, Google Calendar API, OpenAPI Assistant (GPTs 기반)
- 인증 방식: OAuth2 (Google API 콘솔)
시스템 구성도
사용자 프롬프트 → GPTs (프론트 역할) → Actions(API 호출) →
n8n (백엔드 역할) → Gmail/Google Calendar 등 외부 서비스
구현 방식
1. 기존에 생성한 GPTs에 스키마 수정
- 스키마( GPT - 관련 스키마 작성 요청 )
- 캘린더 이벤트에 필요한 파라미터: eventTitle(일정), eventDate(시간), startTime(일정 시작), endTime(일정 종료)
- 추가로 잘 작성하게 되면 작업(Actions)에 Calendar 관련 작업이 생김
스키마 프롬프트 작성할때, 표현을 잘해야할듯..
입력받는다고 할때와 데이터를 받는다라는 표현에 따라 스키마 작성 방식이 달라짐
(PUSH <-> POST)
혹시라도 WEBHOOK HTTP Method를 바꾸지 않았을시 발생하는 Error
2. n8n에서 Webhook 기반 워크플로우 생성
[일정 등록 워크플로우]
- Webhook 노드 생성 (POST 방식으로 설정)
- Google Calendar 노드 연결전에 데이터가 잘 들어오는지 확인
- n8n Webhook 노드에서 listen for test event 클릭
- 생성한 GPTs(이미지1)창에서 Test 클릭
- Action 활성화되고, 보안 이슈 관련 확인 안내문(Confirm 클릭)
- n8n Webhook에서 Data가 들어오는지 확인
- Calendar 노드 연결
- Calendar 노드 설정창에서, Webhook 요청 Body의 start, end 값을 Calendar 노드에 매핑
- Additional Fields에 일정 제목과 일정 내용을 추가로 설정할 수 있다.
- Body 값의 경우 스키마 작성 방식에 따라 다르다. 아래처럼 dateTime을 기입해야할 수 도 있다.
🚨시간대 오차 Issue
문제: 캘린더 등록 시 미국 서버 기준 시간이 등록됨
해결: 시간 포맷에 +09:00 타임존 명시해 한국 시간으로 동기화(관련 스키마 GPT 요청)
5. Respond to Webhook 노드 추가 (최종 성공 여부를 GPT에게 응답)
< Respond to Webhook 하는 이유>
🚨Webhook Issue
문제: n8n 기본 설정은 요청을 받자마자 200 응답을 보내 GPT가 무조건 성공했다고 착각
해결: Respond to Webhook 노드를 워크플로우 말미에 추가하여 실제 처리 완료 후 응답
- webhook 노드에서 respond설정(3가지)
- 즉시
- 마지막 노드가 끝날때
- 되돌려줌 = respond노드 추가하라고 뜸

3. 결과
- 모든 설정이 끝났으면 GPTs Update 클릭
- 업데이트 후 GPTs Chating 진행
- n8n 노드를 다 연결하고 'Test WorkFlow'
'Test WorkFlow'을 누르지 않고 상시 활성화 하는 방법
- n8n 만들어놓은 Workflow창에서 오른쪽 상단에 Active 클릭
- 이렇게 바꿔주면 Webhook에 있던 Test URL >> Production URL로 변경됨
- 그리고 스키마에 적혀있던 Url 수정이 필요하다(Test URL에는 test라는 문구가 있다.)
-test 삭제(Servers에 해당 문구가 적혀있을 수 있음, 스키마에 따라 다름)
최종 결과
- GPTs를 통해 "이메일 보내줘", "캘린더 일정 잡아줘" 같은 요청을 하면 실제로 Gmail/Google Calendar에 반영됨
- ChatGPT 앱에서도 음성 명령으로 사용 가능
- 멘션 기능(@GPTs 이름)으로 다른 GPT 대화 중에도 액션 실행 가능
'n8n, Automation Tool' 카테고리의 다른 글
n8n + Slack 연동 방법 (1) | 2025.05.16 |
---|---|
n8n + Supabase + GPT, 나만의 RAG 기반 AI 챗봇 만들기 (0) | 2025.05.14 |
n8n + GPTs, AI비서 만들기(Gmail, Send mail) (0) | 2025.05.12 |
n8n, Google Credential 연동하기 (0) | 2025.05.12 |
n8n + OpenAI Chat Model 연동 시 발생한 오류 해결기 (1) | 2025.05.09 |
댓글