실전 툴 연동n8n: 구글 서비스 마스터하기 (따라하기 가이드) | 가나투데이
2. 실전 툴 연동: 구글 서비스 마스터하기 (따라하기 가이드) | 가나투데이
단순 대화를 넘어 실제 업무를 수행하려면 외부 서비스와의 연동이 필수적입니다. 가장 활용도가 높은 구글 서비스를 n8n 에이전트와 연결하는 과정을 3단계로 나누어 완벽히 마스터해 보겠습니다.
Step 1. API 활성화: 구글에 '출입 허가' 받기
구글의 기능들을 n8n이 사용할 수 있도록 권한을 얻는 첫 번째 단계입니다.
1-1. 새 프로젝트 생성
- Google Cloud Console에 접속합니다.
- 상단의 프로젝트 선택 드롭다운을 클릭한 후 "새 프로젝트"를 선택합니다.
- 프로젝트 이름을 입력합니다 (예: "n8n-Agent-Project").
- "만들기" 버튼을 클릭하고 프로젝트가 생성될 때까지 기다립니다.
1-2. 필요한 API 활성화
- 왼쪽 메뉴에서 "API 및 서비스" > "라이브러리"로 이동합니다.
- 다음 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회)
- 왼쪽 메뉴에서 "API 및 서비스" > "OAuth 동의 화면"을 선택합니다.
- User Type을 "외부"로 선택하고 "만들기"를 클릭합니다.
- 앱 정보를 입력합니다:
- 앱 이름: "n8n Agent"
- 사용자 지원 이메일: 본인의 Gmail 주소
- 개발자 연락처 정보: 본인의 Gmail 주소
- "저장 후 계속"을 클릭합니다.
- 범위 단계는 건너뛰고 "저장 후 계속"을 클릭합니다.
- 테스트 사용자에 본인의 Gmail 주소를 추가합니다.
- "저장 후 계속"을 클릭하여 완료합니다.
2-2. OAuth 클라이언트 ID 생성
- 왼쪽 메뉴에서 "API 및 서비스" > "사용자 인증 정보"로 이동합니다.
- 상단의 "+ 사용자 인증 정보 만들기" 버튼을 클릭하고 "OAuth 클라이언트 ID"를 선택합니다.
- 애플리케이션 유형: "웹 애플리케이션" 선택
- 이름: "n8n-Google-Integration" (원하는 이름 입력)
- 승인된 리디렉션 URI 섹션에서 "URI 추가" 클릭
2-3. n8n에서 리디렉션 URI 복사하기
- n8n 워크플로우 편집 화면으로 이동합니다.
- Google Calendar, Gmail 등의 노드를 추가합니다.
- 노드 설정 창에서 "Credential to connect with" 옆의 "Create New"를 클릭합니다.
- 인증 방식을 "OAuth2"로 선택합니다.
- 화면에 표시되는 "OAuth Redirect URL"을 복사합니다.
- 예시:
https://your-n8n-instance.com/rest/oauth2-credential/callback
- 예시:
2-4. Google Cloud Console로 돌아가기
- 복사한 OAuth Redirect URL을 승인된 리디렉션 URI 필드에 붙여넣습니다.
- "만들기" 버튼을 클릭합니다.
- 팝업 창에 나타나는 클라이언트 ID와 클라이언트 보안 비밀번호를 안전한 곳에 복사해 둡니다.
2-5. n8n에 인증 정보 입력
- n8n의 Google 인증 정보 설정 창으로 돌아갑니다.
- Client ID 필드에 복사한 클라이언트 ID를 붙여넣습니다.
- Client Secret 필드에 클라이언트 보안 비밀번호를 붙여넣습니다.
- "Sign in with Google" 또는 "Connect my account" 버튼을 클릭합니다.
- Google 로그인 창이 열리면 계정을 선택하고 권한을 승인합니다.
- 인증이 완료되면 n8n 화면으로 돌아옵니다.
⚠️ 주의사항: 클라이언트 ID와 시크릿은 절대 외부에 공유하지 마세요. 이는 여러분의 Google 계정에 접근할 수 있는 마스터 키입니다.
Step 3. 에이전트를 위한 세부 작업(Tools) 정의
이제 에이전트가 실제로 수행할 구체적인 기능들을 연결합니다.
3-1. 일정 조회 기능 (Get Schedule)
목적: "오늘 일정 알려줘" 같은 요청에 자동 응답
- n8n 워크플로우에 Google Calendar 노드를 추가합니다.
- 노드 설정:
- Credential: 앞서 생성한 OAuth2 인증 정보 선택
- Resource:
Event선택 - Operation:
Get Many선택 - Calendar: 사용할 캘린더 선택 (기본: Primary)
- 추가 설정 (Options):
- Time Min:
{{$now.toISO()}}(현재 시간부터) - Time Max:
{{$now.plus({days: 7}).toISO()}}(7일 후까지) - Max Results: 10 (최대 10개 일정 표시)
- Time Min:
- Tool 이름 지정: "get_schedule" (AI가 이 이름으로 기능을 호출합니다)
- Tool 설명 작성: "사용자의 구글 캘린더에서 특정 기간의 일정을 조회합니다."
3-2. 일정 생성 기능 (Create Event)
목적: "내일 오후 3시에 팀 미팅 잡아줘" 같은 요청 처리
- Google Calendar 노드를 새로 추가합니다.
- 노드 설정:
- Credential: 동일한 OAuth2 인증 정보 선택
- Resource:
Event - Operation:
Create - Calendar: Primary
- 필수 필드 설정:
- Summary:
{{$json.eventTitle}}(AI가 추출한 제목) - Start:
{{$json.startTime}}(시작 시간) - End:
{{$json.endTime}}(종료 시간)
- Summary:
- 추가 옵션 활성화:
- Attendees: 참석자 이메일 추가 가능
- Send Updates:
all(자동으로 초대 이메일 발송) - Description: 추가 설명 입력 가능
- Location: 장소 정보
- Tool 이름: "create_event"
- Tool 설명: "새로운 캘린더 일정을 생성하고 참석자에게 초대장을 발송합니다."
3-3. 이메일 발송 기능 (Send Email)
목적: 브리핑, 리마인더, 보고서 자동 발송
- Gmail 노드를 추가합니다.
- 노드 설정:
- Credential: OAuth2 인증 정보 선택
- Resource:
Message - Operation:
Send
- 이메일 구성:
- To:
{{$json.recipient}}(받는 사람) - Subject:
{{$json.subject}}(제목) - Message:
{{$json.body}}(본문) - Email Type:
HTML(서식 있는 이메일)
- To:
- 추가 설정 (Options):
- CC: 참조자 추가
- BCC: 숨은 참조
- Attachments: 첨부파일 (Google Sheets 등)
- Tool 이름: "send_email"
- Tool 설명: "Gmail을 통해 이메일을 작성하고 발송합니다."
3-4. 구글 시트 데이터 조회 (Read Spreadsheet)
목적: 팀원 연락처, 프로젝트 정보 등 저장된 데이터 참조
- Google Sheets 노드를 추가합니다.
- 노드 설정:
- Credential: OAuth2 인증 정보 선택
- Resource:
Sheet - Operation:
Read - Document: 읽어올 스프레드시트 선택
- Sheet: 특정 시트 이름 입력 (예: "연락처")
- 데이터 범위 설정:
- Range:
A1:Z100(읽어올 범위) - RAW Data: false (서식 적용된 데이터)
- Range:
- Tool 이름: "read_contacts"
- 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
그린아프로




