본문 바로가기
n8n, Automation Tool

n8n + GPTs, AI비서 만들기(Google Calendar, 일정(Event) 잡기)

by 그때 그때 끄적 2025. 5. 12.
반응형

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 기반 워크플로우 생성

[일정 등록 워크플로우]

  1. Webhook 노드 생성 (POST 방식으로 설정)
  2. Google Calendar 노드 연결전에 데이터가 잘 들어오는지 확인
    1. n8n Webhook 노드에서 listen for test event 클릭
    2. 생성한 GPTs(이미지1)창에서 Test 클릭
    3. Action 활성화되고, 보안 이슈 관련 확인 안내문(Confirm 클릭)
    4. n8n Webhook에서 Data가 들어오는지 확인
  3. Calendar 노드 연결
  4. Calendar 노드 설정창에서, Webhook 요청 Body의 start, end 값을 Calendar 노드에 매핑
    1. Additional Fields에 일정 제목과 일정 내용을 추가로 설정할 수 있다.
    2. 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. 결과

  1. 모든 설정이 끝났으면 GPTs Update 클릭
  2. 업데이트 후 GPTs Chating 진행
  3. n8n 노드를 다 연결하고 'Test WorkFlow'
더보기

'Test WorkFlow'을 누르지 않고 상시 활성화 하는 방법

  1. n8n 만들어놓은 Workflow창에서 오른쪽 상단에 Active 클릭
  2. 이렇게 바꿔주면 Webhook에 있던 Test URL >> Production URL로 변경됨
  3. 그리고 스키마에 적혀있던 Url 수정이 필요하다(Test URL에는 test라는 문구가 있다.)
    -test 삭제(Servers에 해당 문구가 적혀있을 수 있음, 스키마에 따라 다름)

 

 

GPTs Chating
Google Calendar 등록 확인

최종 결과

  • GPTs를 통해 "이메일 보내줘", "캘린더 일정 잡아줘" 같은 요청을 하면 실제로 Gmail/Google Calendar에 반영됨
  • ChatGPT 앱에서도 음성 명령으로 사용 가능
  • 멘션 기능(@GPTs 이름)으로 다른 GPT 대화 중에도 액션 실행 가능
반응형

댓글