본문 바로가기
n8n, Automation Tool

n8n + GPTs, AI비서 만들기(Gmail, Send mail)

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

핵심 아이디어

  • n8n을 백엔드로 사용해 이메일/캘린더 등의 기능을 수행하고
  • GPTs를 프론트처럼 활용해 사용자의 명령을 받아 API 호출까지 수행하게 만든다

결국 "GPT에게 말만 걸면 백엔드가 자동 실행되는 구조"를 만들 수 있다는 얘기다.

 

목표 / 기대 효과

GPTs에 액션 기능을 연결해 입력 → 처리 → 전달까지 완전 자동화된 AI 비서를 만들고 싶었다.
n8n의 백엔드 기능과 GPTs의 프론트 역할을 결합해 대화형 자동화 시스템을 구축하는 게 목표였다.

환경 정보:

    • OS: Windows 10
    • 플랫폼: ChatGPT Plus (GPTs 기능 포함), n8n (커뮤니티 클라우드 서버)
      • 문제: GPTs는 로컬 주소(localhost)를 인식할 수 없음
      • 해결: n8n을 클라우드 서버에 배포하거나 ngrok을 이용해 공개 URL 생성
    •  
  • 사용 도구: Gmail API, Google Calendar API, OpenAPI Assistant (GPTs 기반)
  • 인증 방식: OAuth2 (Google API 콘솔)

 

시스템 구성도

사용자 프롬프트 → GPTs (프론트 역할) → Actions(API 호출) → 
n8n (백엔드 역할) → Gmail/Google Calendar 등 외부 서비스

구현 방식

1. GPTs에서 나만의 액션 생성

  • GPTs (ChatGPT Plus 구독 중) 생성(+만들기)
  • OpenAPI 스펙은 도우미 GPT(OpenAPI Assistant)를 활용해 자동 생성
  • 이름, 설명 지침(GPT로 관련 프롬프트 작성)
  • 기능의 경우는 웹 검색만 선택(추후 성능 고도화 필요시 설정)
  • 작업(Action) - Webhook 노드를 통해서 연결을 해줌(https://cord-ai.tistory.com/193)
    • 해당 절차대로 했다면 작업란에 도메인 주소가 적혀있습니다.
    • 바퀴모양 들어가서 인증의 경우 중요하다 싶으시면 API키, OAuth 설정(Test의 경우 없음해도 무방)
  • 스키마( GPT  - 관련 스키마 작성 요청 )
    • 이메일 전송에 필요한 파라미터: to(누구에게), subject(제목), content(내용)
    • 캘린더 이벤트에 필요한 파라미터: eventTitle(일정), eventDate(시간), startTime(일정 시작), endTime(일정 종료)
    • 스키마 Error가 없다면 가능한 작업(Actions)에 활성화됨

이미지1

 

2. n8n에서 Webhook 기반 워크플로우 생성

[이메일 전송 워크플로우]

    1. Webhook 노드 생성 (POST 방식으로 설정)
    2. Gmail Send 노드 연결전에 데이터가 잘 들어오는지 확인
      1. n8n Webhook 노드에서 listen for test event 클릭
      2. 생성한 GPTs(이미지1)창에서 Test 클릭
      3. Action 활성화되고, 보안 이슈 관련 확인 안내문(Confirm 클릭)
      4. n8n Webhook에서 Data가 들어오는지 확인
    3. Gmail 노드 연결 (Send message)
    4. Gmail 노드 설정창에서, Webhook 요청 Body의 to, subject, content 값을 Gmail 노드에 매핑
      Gmail 노드
      5. Respond to Webhook 노드 추가 (최종 성공 여부를 GPT에게 응답)
      1. Respond with - No Data
      2. Options(add Option) - Response Code - 200
      3. 추가후 webhook 노드에서 respond설정(이미지2 참조, Using 'Respond to Webhook...)

< Respond to Webhook  하는 이유>

 🚨Webhook Issue

문제: n8n 기본 설정은 요청을 받자마자 200 응답을 보내 GPT가 무조건 성공했다고 착각
해결: Respond to Webhook 노드를 워크플로우 말미에 추가하여 실제 처리 완료 후 응답
  • webhook 노드에서 respond설정(3가지)
    • 즉시
    • 마지막 노드가 끝날때
    • 되돌려줌 = respond노드 추가하라고 뜸

이미지2

3. 결과

  1. 모든 설정이 끝났으면 (이미지1)창에서 우측 상단에 Update 클릭
  2. 업데이트 후 (이미지3)에서 GPT보기를 눌러 Chating 진행
  3. n8n 노드를 다 연결하고 'Test WorkFlow'

이미지3
이미지4
Test 결과물

 

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

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

 

반응형

댓글