실전 툴 연동n8n: 구글 서비스 마스터하기 (따라하기 가이드) | 가나투데이

2. 실전 툴 연동: 구글 서비스 마스터하기 (따라하기 가이드) | 가나투데이

단순 대화를 넘어 실제 업무를 수행하려면 외부 서비스와의 연동이 필수적입니다. 가장 활용도가 높은 구글 서비스를 n8n 에이전트와 연결하는 과정을 3단계로 나누어 완벽히 마스터해 보겠습니다.


Step 1. API 활성화: 구글에 '출입 허가' 받기

구글의 기능들을 n8n이 사용할 수 있도록 권한을 얻는 첫 번째 단계입니다.

1-1. 새 프로젝트 생성

  1. Google Cloud Console에 접속합니다.
  2. 상단의 프로젝트 선택 드롭다운을 클릭한 후 "새 프로젝트"를 선택합니다.
  3. 프로젝트 이름을 입력합니다 (예: "n8n-Agent-Project").
  4. "만들기" 버튼을 클릭하고 프로젝트가 생성될 때까지 기다립니다.

1-2. 필요한 API 활성화

  1. 왼쪽 메뉴에서 "API 및 서비스" > "라이브러리"로 이동합니다.
  2. 다음 3가지 API를 각각 검색하여 활성화합니다:

① Google Calendar API

  • 검색창에 "Google Calendar API" 입력
  • 검색 결과 클릭 후 "사용 설정" 버튼 클릭
  • 용도: 일정 조회, 생성, 수정

② Gmail API

  • 검색창에 "Gmail API" 입력
  • "사용 설정" 클릭
  • 용도: 이메일 발송, 리마인더 전송

③ Google Sheets API

  • 검색창에 "Google Sheets API" 입력
  • "사용 설정" 클릭
  • 용도: 연락처 관리, 데이터 참조

💡 확인 팁: 상단 메뉴의 "API 및 서비스" > "대시보드"에서 활성화된 API 목록을 확인할 수 있습니다.


Step 2. OAuth 2.0 인증: 보안 '출입 카드' 발급받기

가장 중요한 단계입니다. n8n과 구글 서비스 간의 안전한 연결을 위한 인증 정보를 설정합니다.

2-1. OAuth 동의 화면 구성 (최초 1회)

  1. 왼쪽 메뉴에서 "API 및 서비스" > "OAuth 동의 화면"을 선택합니다.
  2. User Type을 "외부"로 선택하고 "만들기"를 클릭합니다.
  3. 앱 정보를 입력합니다:
    • 앱 이름: "n8n Agent"
    • 사용자 지원 이메일: 본인의 Gmail 주소
    • 개발자 연락처 정보: 본인의 Gmail 주소
  4. "저장 후 계속"을 클릭합니다.
  5. 범위 단계는 건너뛰고 "저장 후 계속"을 클릭합니다.
  6. 테스트 사용자에 본인의 Gmail 주소를 추가합니다.
  7. "저장 후 계속"을 클릭하여 완료합니다.

2-2. OAuth 클라이언트 ID 생성

  1. 왼쪽 메뉴에서 "API 및 서비스" > "사용자 인증 정보"로 이동합니다.
  2. 상단의 "+ 사용자 인증 정보 만들기" 버튼을 클릭하고 "OAuth 클라이언트 ID"를 선택합니다.
  3. 애플리케이션 유형: "웹 애플리케이션" 선택
  4. 이름: "n8n-Google-Integration" (원하는 이름 입력)
  5. 승인된 리디렉션 URI 섹션에서 "URI 추가" 클릭

2-3. n8n에서 리디렉션 URI 복사하기

  1. n8n 워크플로우 편집 화면으로 이동합니다.
  2. Google Calendar, Gmail 등의 노드를 추가합니다.
  3. 노드 설정 창에서 "Credential to connect with" 옆의 "Create New"를 클릭합니다.
  4. 인증 방식을 "OAuth2"로 선택합니다.
  5. 화면에 표시되는 "OAuth Redirect URL"을 복사합니다.
    • 예시: https://your-n8n-instance.com/rest/oauth2-credential/callback

2-4. Google Cloud Console로 돌아가기

  1. 복사한 OAuth Redirect URL을 승인된 리디렉션 URI 필드에 붙여넣습니다.
  2. "만들기" 버튼을 클릭합니다.
  3. 팝업 창에 나타나는 클라이언트 ID클라이언트 보안 비밀번호를 안전한 곳에 복사해 둡니다.

2-5. n8n에 인증 정보 입력

  1. n8n의 Google 인증 정보 설정 창으로 돌아갑니다.
  2. Client ID 필드에 복사한 클라이언트 ID를 붙여넣습니다.
  3. Client Secret 필드에 클라이언트 보안 비밀번호를 붙여넣습니다.
  4. "Sign in with Google" 또는 "Connect my account" 버튼을 클릭합니다.
  5. Google 로그인 창이 열리면 계정을 선택하고 권한을 승인합니다.
  6. 인증이 완료되면 n8n 화면으로 돌아옵니다.

⚠️ 주의사항: 클라이언트 ID와 시크릿은 절대 외부에 공유하지 마세요. 이는 여러분의 Google 계정에 접근할 수 있는 마스터 키입니다.


Step 3. 에이전트를 위한 세부 작업(Tools) 정의

이제 에이전트가 실제로 수행할 구체적인 기능들을 연결합니다.

3-1. 일정 조회 기능 (Get Schedule)

목적: "오늘 일정 알려줘" 같은 요청에 자동 응답

  1. n8n 워크플로우에 Google Calendar 노드를 추가합니다.
  2. 노드 설정:
    • Credential: 앞서 생성한 OAuth2 인증 정보 선택
    • Resource: Event 선택
    • Operation: Get Many 선택
    • Calendar: 사용할 캘린더 선택 (기본: Primary)
  3. 추가 설정 (Options):
    • Time Min: {{$now.toISO()}} (현재 시간부터)
    • Time Max: {{$now.plus({days: 7}).toISO()}} (7일 후까지)
    • Max Results: 10 (최대 10개 일정 표시)
  4. Tool 이름 지정: "get_schedule" (AI가 이 이름으로 기능을 호출합니다)
  5. Tool 설명 작성: "사용자의 구글 캘린더에서 특정 기간의 일정을 조회합니다."

3-2. 일정 생성 기능 (Create Event)

목적: "내일 오후 3시에 팀 미팅 잡아줘" 같은 요청 처리

  1. Google Calendar 노드를 새로 추가합니다.
  2. 노드 설정:
    • Credential: 동일한 OAuth2 인증 정보 선택
    • Resource: Event
    • Operation: Create
    • Calendar: Primary
  3. 필수 필드 설정:
    • Summary: {{$json.eventTitle}} (AI가 추출한 제목)
    • Start: {{$json.startTime}} (시작 시간)
    • End: {{$json.endTime}} (종료 시간)
  4. 추가 옵션 활성화:
    • Attendees: 참석자 이메일 추가 가능
    • Send Updates: all (자동으로 초대 이메일 발송)
    • Description: 추가 설명 입력 가능
    • Location: 장소 정보
  5. Tool 이름: "create_event"
  6. Tool 설명: "새로운 캘린더 일정을 생성하고 참석자에게 초대장을 발송합니다."

3-3. 이메일 발송 기능 (Send Email)

목적: 브리핑, 리마인더, 보고서 자동 발송

  1. Gmail 노드를 추가합니다.
  2. 노드 설정:
    • Credential: OAuth2 인증 정보 선택
    • Resource: Message
    • Operation: Send
  3. 이메일 구성:
    • To: {{$json.recipient}} (받는 사람)
    • Subject: {{$json.subject}} (제목)
    • Message: {{$json.body}} (본문)
    • Email Type: HTML (서식 있는 이메일)
  4. 추가 설정 (Options):
    • CC: 참조자 추가
    • BCC: 숨은 참조
    • Attachments: 첨부파일 (Google Sheets 등)
  5. Tool 이름: "send_email"
  6. Tool 설명: "Gmail을 통해 이메일을 작성하고 발송합니다."

3-4. 구글 시트 데이터 조회 (Read Spreadsheet)

목적: 팀원 연락처, 프로젝트 정보 등 저장된 데이터 참조

  1. Google Sheets 노드를 추가합니다.
  2. 노드 설정:
    • Credential: OAuth2 인증 정보 선택
    • Resource: Sheet
    • Operation: Read
    • Document: 읽어올 스프레드시트 선택
    • Sheet: 특정 시트 이름 입력 (예: "연락처")
  3. 데이터 범위 설정:
    • Range: A1:Z100 (읽어올 범위)
    • RAW Data: false (서식 적용된 데이터)
  4. Tool 이름: "read_contacts"
  5. Tool 설명: "구글 시트에서 팀원 연락처 정보를 가져옵니다."

통합 테스트: 전체 워크플로우 확인

모든 설정이 완료되었다면 실제로 작동하는지 테스트해 봅시다.

테스트 시나리오 1: 일정 조회

  • AI 에이전트에게: "내일 일정 있어?"
  • 예상 동작: get_schedule 툴 호출 → 캘린더 조회 → 일정 목록 응답

테스트 시나리오 2: 일정 생성

  • AI 에이전트에게: "다음 주 월요일 오전 10시에 기획회의 잡아줘"
  • 예상 동작: create_event 툴 호출 → 캘린더에 일정 추가 → 확인 메시지

테스트 시나리오 3: 이메일 발송

  • AI 에이전트에게: "김팀장님께 오늘 회의 내용 요약해서 메일 보내줘"
  • 예상 동작: 회의 내용 정리 → send_email 툴 호출 → Gmail 발송

자주 발생하는 문제 해결

❌ "Invalid OAuth credentials" 오류

원인: 클라이언트 ID 또는 시크릿이 잘못 입력됨
해결: Google Cloud Console에서 정확한 값을 다시 복사하여 입력

❌ "Redirect URI mismatch" 오류

원인: n8n의 리디렉션 URI와 Google Cloud Console에 등록한 URI가 불일치
해결: 두 URI가 정확히 일치하는지 확인 (끝의 슬래시(/)까지 동일해야 함)

❌ "Access denied" 또는 "Insufficient permissions" 오류

원인: API가 활성화되지 않았거나 OAuth 동의 화면에서 필요한 권한을 승인하지 않음
해결: API 활성화 상태 재확인, OAuth 재인증 시 모든 권한 승인

❌ 테스트 사용자 제한

원인: OAuth 동의 화면이 "테스트" 모드로 설정되어 있어 등록된 사용자만 접근 가능
해결: "OAuth 동의 화면"에서 본인 이메일을 테스트 사용자에 추가


다음 단계

이제 구글 서비스와의 기본 연동이 완료되었습니다. 다음 포스트에서는:

  • 실제 비즈니스 시나리오에 맞춘 복잡한 워크플로우 설계
  • 조건부 로직분기 처리로 더 스마트한 에이전트 만들기
  • 에러 처리재시도 로직으로 안정성 높이기

를 다루겠습니다.


💬 궁금한 점이 있으시면 댓글로 남겨주세요!

#가나 투데이 #ganatoday

그린아프로