- 반복적인 유저 피드백(VOC) 수집 및 분류 작업을 자동화한 워크플로우를 만들어봄.
전체 자동화 아키텍처
Google Form (VOC 접수) ➡️ Google Sheet (데이터 저장) ➡️ Make (새 행 감지) ➡️ OpenAI API (GPT 분석 및 JSON 파싱) ➡️ Google Sheet (분석 결과 업데이트) ➡️ Make Router (이슈 여부 판단 및 분기) ➡️ [경로 A] Notion DB 등록 + Slack 알림 (이슈인 경우) / [경로 B] Slack 알림 (일반 의견)
주요 단계별 핵심 요약
1. 데이터 수집 및 분석 준비 (Google Form & Sheet)
- 유저 피드백용 Google Form을 생성하고 응답을 Sheet와 연동.
- 기존 질문 데이터 외에 GPT가 분석한 결과를 저장할 5가지 핵심 컬럼을 Sheet 맨 오른쪽에 수동으로 추가.
- 추가 컬럼: 요약, 기분분석, 키워드, 이슈등록필요, 이슈제목
2. AI(GPT)를 활용한 프롬프트 엔지니어링 & JSON 파싱
- OpenAI (Generate a completion) 모듈을 활용하여 VOC를 분석하되, 후속 자동화를 위해 반드시 지정된 JSON 포맷으로만 답변하도록 제한하는 것이 핵심.
- 구조화된 문자열로 반환된 GPT의 답변을 다음 모듈에서 변수로 활용할 수 있도록 Parse JSON 모듈을 거쳐 데이터 구조(Data Structure)화함.
3. 라우터(Router)를 활용한 조건별 업무 분기
- ifelse를 활용해 AI의 판단 결과(이슈등록필요 = 예/아니오)에 따라 프로세스를 이원화함.
- 경로 A (이슈 발생 시): 운영팀이 즉시 추적하고 해결해야 하는 버그나 심각한 불편 사항은 Notion DB(Issue Tracker)에 카드를 자동 생성하고, Slack으로 우선순위 알림을 발송.
- 경로 B (일반 의견 시): 단순 칭찬이나 가벼운 제안은 DB 등록 없이 Slack 참고용 채널로만 알림을 전송하여 업무 피로도를 줄임.
4. 실습 troubleshooting
1) JSON 변환 에러 (텍스트 vs 객체)
- 문제 상황: OpenAI 모듈이 결과를 정상 출력했음에도, 다음 모듈에서 빈 값(value is empty)이라며 에러 발생.
- 원인: GPT가 반환한 데이터는 눈으로 보기에만 JSON 구조일 뿐, 컴퓨터에게는 단순한 '텍스트(문자열)'였음. 후속 모듈은 구조화된 'JSON 객체'를 원했기 때문에 데이터를 인식하지 못함.
- 해결 방법: OpenAI 모듈 직후에 Parse JSON 모듈을 추가하여, 텍스트 형태의 답변을 실제 컴퓨터가 다룰 수 있는 JSON 객체 데이터로 파싱해 줌.
2) 구글 시트 데이터 전송 형식 오류 (400 Error)
- 문제 상황: 400: INVALID_ARGUMENT 오류가 나며 구글 시트에 값이 입력되지 않음.
- 원인: JSON 파싱 결과 중 '키워드' 데이터가 배열(List/Array) 형태(['멤버십 저렴', '배달 지연'])로 추출됨. 이를 일반 텍스트 셀에 통째로 밀어 넣으려 하자 구글 시트 API에서 거부함.
- 해결 방법: join() 함수를 활용하여 배열 속 원소들을 멤버십 저렴, 배달 지연처럼 쉼표로 구분된 하나의 일반 텍스트 문장으로 변환하여 매핑함.
3) 모듈 설정 변경 시 데이터 흐름 단절 (rowNumber 및 빈 값 오류)
- 문제 상황: 모듈을 수정하는 과정에서 rowNumber가 비어있다는 에러가 나거나 앞뒤 모듈에서 번갈아가며 빈 값 오류가 발생.
- 원인: 앞선 모듈(구글 시트)을 재설정하면서 Make가 어느 데이터부터 읽어야 할지 기준을 잃음. 이전 실행 데이터의 컨텍스트(흐름)가 끊긴 상태에서 개별 모듈만 테스트하니 빈 값이 전달됨.
- 해결 방법: 구글 시트 모듈 우클릭 후 Choose where to start 설정을 새로 잡아준 뒤 (상황에 따라 From now on 또는 All), 실제 구글 시트에 새로운 테스트 행 데이터를 직접 추가하고 전체 실행(Run once)을 돌려 데이터 흐름을 처음부터 끝까지 새로고침함.
4) 슬랙/노션 필수값 초기화 및 데이터 형식 불일치
- 문제 상황: Run once 실행 시 슬랙/노션 모듈에서 필수 값이 비어있다는 경고가 뜨거나, 노션 입력 단계에서 Couldn't read the field shape 에러 발생.
- 원인: 앞 단계 데이터 구조를 대폭 수정하면서 뒷단계에 물리려 있던 슬랙(Channel type)과 노션(Input method)의 필수 설정이 동반 초기화됨. 또한 노션의 "심각도" 필드 속성(다중 선택) 요구 형식과 매핑된 데이터 형식이 불일치함.
- 해결 방법: 풀려버린 슬랙과 노션 모듈을 직접 열어 필수 드롭다운 항목들을 다시 명시적으로 지정.
AI 심화(AI 툴 활용) 연습하기
- Claude Cowork - Scheduled vs. Code - Routine
| 구분 | Cowork - Scheduled Tasks | Code - Routine |
| 실행 위치 | 내 컴퓨터(로컬) | Anthropic 클라우드 |
| 전제 조건 | PC 켜짐 + Desktop 앱 열림 | 없음(노트북 꺼도 됨) |
| 접근 가능 자원 | 로컬 파일, 커밋 안 된 변경사항 | git에 커밋된 코드만 (매번 새로 클론) |
| 트리거 | 시간 기반만 | 시간 + API 호출 + GitHub 이벤트 |
| 주 사용자 | 비개발자, 문서/파일 작업 | 개발자, 코드 자동화 |
- Chat - plugin
- 플러그인을 매 chat마다 내가 직접 실행하는 것은 아니고, 일단 추가하면 관련 업무 요청 시 스킬들을 사용해서 요청 수행.
- 일단 anthropic에서 제공하는 design plugin 추가해봄.
- 가령, design plugin 추가했다면 다음과 같은 업무에 쓰일 수 있음.

오늘 인사이트, 느낀 점
Make 관련
- 이전 모듈 재실행하거나 다음 모듈이 추가하면 에러가 해결되는 경우 있음.
- 앞뒤 모듈의 설정 하나라도 변경하면 다른 모듈도 영향 받음.
- 어제 AI 내에서 MCP 연결하는 것을 배웠다면, 오늘은 아예 전체 워크플로우 내에 AI API를 포함하는, 더 거시적인 관점의 자동화를 배움. 약간 더 개발 지식 필요하긴 하지만, 반복 작업 자동화에 있어서는 확실히 더 유용함.
- JSON 간단히라도 공부해야 함.
- GPT API를 사비로 빌려주시다니.. 감사합니다!
계속 늘어나는 이번 주 공부 계획...
