You know the pain: an inquiry arrives at 3 a.m. while you sleep, or during a meeting when you can't reply. Customers leave after 10 minutes of silence. In 2 hours this workshop wires a live auto-reply pipeline into your actual service — **Google Form → Spreadsheet → visual automation tool → Claude/GPT API → Gmail**. This isn't a read-through tutorial. When you finish, a real customer hitting your real URL gets an AI-drafted reply within 15 minutes, while you're doing anything else.
Following this workshop end-to-end leaves you with four things.
What gets built
📖 Term: Trigger and Action A trigger is the "when something happens" start signal. "When a new row is added," "when a new email arrives," "at a scheduled time" — those are all triggers. An action is the "then do this" execution. "Send an email," "notify Slack," "record in a sheet" — those are actions. Automation = trigger + action. The scenario you'll build in this workshop is structured as new-row detection (trigger) → AI response + Gmail send (actions).
Workshop metadata
| Item | Value |
|---|---|
| Time | 2 hours (fast: 90 min, unhurried: 3 hr) |
| Level | Intermediate (basic Forms/Sheets/Email experience assumed) |
| Tools | Web browser + Google account + one AI API key (Claude or GPT) |
| Coding knowledge | None (everything via GUI) |
| Payment | Zapier/Make free tiers work; $5 prepaid to AI API recommended for testing |
| Deliverable | A running auto-reply system (not a demo) |
Why build this — customer abandonment happens in minutes
"I don't get that many inquiries; why bother automating?" Fair question. The numbers tell a different story. For early-stage services, a first response within 10 minutes correlates with conversion rates in the 10% range, while responses after an hour drop to 1% or below, a pattern that shows up across industries. Of three inquiries arriving during your 8 hours of sleep, two are already mentally gone by breakfast. The AI doesn't have to be perfect. Even "We've received your inquiry, here's our understanding of it, a team member will follow up with specifics" — auto-sent — prevents the drop-off. Immediacy beats accuracy.
Where you are now: you understand what this workshop produces. Next we verify the tools and accounts you need are in place.
Four things, and you'll finish in 2 hours.
Required
zapier.com) or Make (make.com), either one. Both free tiers cover this workshop. Personally I recommend Make — its node limits are more generous, and as of 2026 it remains the best free-tier optionconsole.anthropic.com) or OpenAI Platform (platform.openai.com). After adding a card and prepaying about $5, you can test all workshop long and still not spend $1Not required
📖 Term: API Key An API key is a "delegation password" that lets an external service talk to an AI on your behalf. The password you type into ChatGPT's web login is for humans; the API key is a password for programs. When Zapier or Make says "I'll send a question to Claude on this user's behalf," the API key proves the identity. Warning: this key has the same sensitivity as a password. If leaked, someone else can run AI workloads on your account's dime. Never post it to GitHub, blogs, or screenshots — only drop it into the automation tool's Credentials store.
Environment check (3 min)
Type each of these into your browser's address bar. All four should load while you're logged in.
forms.google.com — Google Forms dashboardsheets.google.com — Google Sheets dashboardmake.com or zapier.com — your automation dashboardconsole.anthropic.com or platform.openai.com — your AI API console All four loaded, and an API key copied? You're ready. The key on the console screen will start with sk-ant- or sk-; copy it into a scratch note temporarily, and delete the scratch note when the workshop ends.
Where you are now: all tools are in hand. Before clicking anything, we decide what to receive. Skipping the design step means redoing two hours of work two hours later.
Lots of people try similar automations and get tangled mid-build. The common pattern: start with the AI prompt. Or start with the Gmail template. That reverses the data flow and forces rework at every step.
This workshop's order matches the direction data actually flows.
Customer (form) → Sheet (store) → Automation (detect) → AI (generate) → Gmail (send) → Customer (receive)
In this chain, each stage's output is the next stage's input. Form questions must be locked before sheet columns; sheet columns before AI prompt variables; AI output shape before Gmail body content. Reverse the order, and every new stage forces you to reopen the previous one.
Five tools, but each tool has exactly one role. Form collects, sheet stores, automation detects and orchestrates, AI judges, Gmail sends. When roles don't overlap, the system stays simple.
Where you are now: you know why this order. Now we execute it, one stage at a time, within two hours.
First, decide what to receive. Skipping this and jumping to the form builder means changing questions mid-build — and every question change cascades into sheet columns and automation variables.
1-1. Pick one input type (3 min)
Three broad categories. Pick one today.
| Type | Example question | AI response flavor |
|---|---|---|
| Inquiry | What are you curious about? | Explanatory, referral to resources |
| Signup | What problem do you want to solve? | Welcome, next-step guidance |
| Feedback | How was your experience? | Thanks, improvement commitment |
This workshop uses "Inquiry" as the example, but the structure is identical for the other two. Later, when you want to add signups or feedback, just duplicate this scenario and swap the prompt.
1-2. Lock three questions (5 min)
On paper or in a note, fill in this template. Exactly three questions. More than that crushes submission rates.
Q1 (required): Email address → short answer + email-format validation ON
Q2 (required): [your service's core question] → long answer
Q3 (optional): [additional context] → short answer OR multiple choice
Example — if your service is a fictional calendar SaaS called "SmartDay":
Q1: Email
Q2: How many meetings do you have in a day on average? When do you need focus time?
Q3: Which calendar do you currently use? (Google / Outlook / Other)
1-3. Create the Google Form (7 min)
Go to forms.google.com and click "Blank form."
[your service] — Inquiry1-4. Connect the spreadsheet (3 min)
Top tab "Responses" → green Sheets icon → "Create a new spreadsheet" → done. The sheet should be empty with headers only — that's correct.
1-5. Test submission (2 min)
Top-right preview (eye icon) → new tab opens the form → submit a response to your own email ("Test #1") → back to the sheet, refresh → row 1 should now exist. Step 1 complete.
Step 1 checkpoint: at least one test response row must appear in the sheet. If not, the form-sheet connection is broken — reconfigure from the "Responses" tab.
I'll use Make for the walkthrough, but Zapier is the same concept with different labels ("Zap" = "Scenario," trigger and action terminology matches).
2-1. New scenario (3 min)
make.com → sign in → left menu "Scenarios" → top-right "Create a new scenario" → blank canvas. The large gray circle in the middle is where the first node (trigger) goes.
2-2. Google Sheets trigger node (10 min)
2-3. Test the trigger (5 min)
Right-click the node → "Run this module only" → your Step 1 test response should appear as output. Email address, Q2 text, Q3 text should each be captured as separate fields. If no output, re-check sheet permissions and tab name.
2-4. Scheduling (5 min)
Clock icon at the bottom of the screen → "Run scenario" → "At regular intervals" → select 15 minutes. Once toggled ON later, it will check every 15 minutes. Don't turn it ON yet.
2-5. Save (2 min)
Bottom Save button (floppy disk). Name it something like ${your service} — Inquiry auto-reply.
Step 2 checkpoint: "Run this module only" should return the most recent form response as structured output, with email, Q2, and Q3 each in its own mappable field.
This is the heart of the workshop. Prompt quality = reply quality.
3-1. Add the AI node (7 min)
Click + to the right of the first node → search "Anthropic" (for Claude) or "OpenAI" (for GPT) → pick "Create a Message" (Claude) or "Create a Chat Completion" (OpenAI).
"Create a connection" → paste the API key from Prerequisites → Save.
3-2. Write the prompt (15 min)
Copy this template into the AI node's "Messages" or "Prompt" field and replace bracketed parts with your service's specifics.
You are a customer service representative for [service name].
[service name] provides [one-line description].
Core value: [one line]
Primary audience: [one line]
A customer just submitted the following inquiry:
- Email: {{1.Email}}
- Inquiry: {{1.Q2 answer}}
- Additional context: {{1.Q3 answer}}
Write a friendly, helpful reply in English (or the customer's language).
Guidelines:
1. Address the customer as "Hi there" or similar — no assumptions about name
2. First paragraph: one-line summary of their inquiry to show you understood
3. Second paragraph: 3–4 concrete sentences answering or guiding
4. Third paragraph: close with "reply to this email if you have follow-ups"
5. Overall 3–4 paragraphs, ready to paste into an email body
6. If uncertain, don't guess — say "A team member will follow up with specifics"
Variable insertion: inside the prompt, replace the {{1.Email}} placeholder by deleting the curly braces and clicking the matching field in Make's variable picker (blue bubble on the right panel). The tool auto-inserts the correct binding. Zapier uses a similar variable picker.
📖 Term: Variable mapping Variable mapping is the visual way of specifying "which output of the previous node connects to which input of this node." Instead of writing
email = row.emailin code, you click fields in a GUI and link them with arrows. Make uses drag-and-drop, Zapier uses dropdowns, but the idea is the same. Bad mapping means the wrong customer's email gets the wrong reply. Always test with your own email first.
3-3. AI node settings (5 min)
claude-sonnet-4-6 (Claude) — cost-efficient and well-calibrated for auto-reply workloads, or gpt-5.4 (OpenAI)3-4. Test the AI node (3 min)
Right-click the node → "Run this module only" → the output pane should show the AI-generated reply. Natural, well-formed text with the customer's inquiry reflected — success. Robotic or translation-flavored text — add "write in natural, fluent English" to the prompt.
Step 3 checkpoint: output shows a 3–4 paragraph reply, opens by summarizing the inquiry, and closes with "reply if you have follow-ups." Miss any of these? Make the prompt rules more explicit and retry.
The AI wrote a reply. Time to actually send it to the customer.
4-1. Add the Gmail node (5 min)
+ to the right of the AI node → search "Gmail" → "Send an Email" → "Create a connection" → Google sign-in → permission grant.
4-2. Field mapping (10 min)
| Field | Value |
|---|---|
| To | {{1.Email}} (customer email from first node) |
| Subject | [${your service}] Thanks for reaching out as fixed text |
| Content Type | HTML |
| Content | {{2.content[0].text}} (AI node output) |
| From Name | ${your service} Support |
The most common mapping mistake is the Content field. The exact field holding "the actual reply text" differs per AI service. Claude: content[0].text. OpenAI: choices[0].message.content. Expand the variable picker and find the field that contains real text (not metadata).
4-3. Send test (10 min)
This is the real test. Do these steps in order.
If the email landed with clean subject and body, success. If not, click the red exclamation icon on the failing node in Make → read the error. 90% of the time it's a mapping typo or Gmail permission not granted.
Step 4 checkpoint: your Gmail shows an inbox email with subject "[your service] Thanks for reaching out," body contains the AI's 3–4 paragraph reply, and sender name is set correctly.
Manual execution isn't automation. Real automation runs without you pressing a button.
5-1. Activate the scenario (3 min)
Make scenario, bottom-left toggle: OFF → ON. Zapier: top-right On/Off switch. Now it checks the sheet every 15 minutes on its own.
5-2. Ask a friend to test (5 min)
Send the form URL to one friend via messenger. "I built an auto-reply system — mind submitting once with your real email?" When they submit, the next run cycle (within 15 minutes) will send them an AI-drafted reply automatically.
5-3. Collect friend feedback (7 min)
Ask your friend "How was the reply?" One of three patterns usually comes back.
| Feedback | Cause | Where to fix |
|---|---|---|
| "Too stiff" | Prompt lacks tone guidance | Add "warm, friendly tone" to the AI prompt |
| "Didn't seem to understand me" | Q2 variable not mapped into prompt | Re-check {{1.Q2}} mapping |
| "Took 15 minutes" | Schedule interval too long | Shrink Make clock to 5 min (mind free-tier ops limit) |
5-4. Check execution logs (5 min)
Make left menu "Scenarios" → your scenario → "History" tab. A table of every run in the last 24 hours. Click any row to see exactly what data came in and what reply went out. In live operations, skim this log once a day to catch odd replies before they pile up.
Step 5 checkpoint: scenario toggle is ON, your friend's test submission got an AI reply via email, and History shows at least two successful runs. Workshop complete.
Where you are now: the auto-reply system is actually running. Next we do a final 4-point verification that you built it correctly.
All four should be "yes" before you call this done.
If any is "no," trace backwards through the stages. The most common failure spots are Step 4 variable mapping (empty Content field, wrong field linked) and Step 5 scenario OFF (saved but not activated). The Make scenario's History tab surfaces the precise failure reason in English — and if the error jargon confuses you, paste it into Claude with "explain this error in plain language" and you'll have a translation in seconds.
Why the friend test is mandatory: when you test with your own Google account sending to itself, Google does special handling that differs from how external recipients receive mail. A friend's inbox (different domain) is the closest proxy to a real customer.
Variation 1 — AI auto-classifies inquiry type
Add this single line to the end of your prompt and the AI will classify too.
Before the reply, output a line: [Category: urgent / general / spam]
Then add a Router (branch module) in Make to handle categories differently: urgent → instant Slack/SMS to you; general → AI reply auto-sends; spam → do nothing. This single variation cuts your operational load in half.
Variation 2 — Slack mirror alerts
Add a Slack node next to the Gmail node, mirroring the same data to your personal Slack channel. The instant a reply goes out to a customer, your phone pings. Far faster than discovering in the morning that the AI sent something strange at 3 a.m.
Variation 3 — Notion database log
Add a Notion node that writes each inquiry to a database row. Three months in, when you ask "which inquiries come up most?", this DB becomes the seed of your FAQ. Pulling the top 3 recurring questions onto your landing page typically cuts inquiry volume by 30%.
Variation 4 — Multi-language auto-handling
Add "Detect the customer's language and respond in the same language" to the prompt. English, Japanese, Korean inquiries all get handled by the same AI. The biggest wall for a solo global service is "the overhead of customer service in English" — one prompt line removes that wall.
❓ Make shows "Module execution failed" Usually API key expiration or credit exhaustion. Anthropic/OpenAI console → Usage → check balance. Under $1? Top up. Or you may have burned through Make's free-tier "operations" quota (1,000/month). Upgrade plan, or stretch schedule from 15 min to 30 min to conserve.
❓ AI reply comes back in the wrong language Add to the top of the prompt: "Respond only in [target language]. Avoid foreign phrases unless strictly necessary." Claude fixes almost immediately; GPT complies under the same instruction.
❓ Variable picker doesn't show the AI reply text field
The AI node's output is nested. In Make's variable picker, click the triangle next to a field to expand nested sub-fields. Claude path: content → [1] → text. OpenAI path: choices → [1] → message → content. After running the scenario once with "Run once," reopen the picker — you'll see the actual returned structure, making mapping much easier.
❓ Replies only go to my email, not the customer's The To field has your email hard-coded. Click the To field → variable picker → connect it to the Google Sheets node's "Email" field (Q1 mapping). Must be a variable, not a static value.
❓ 15 minutes pass and no auto-run Double-check the toggle is ON. Make: circle toggle at scenario card's bottom-left. Zapier: On/Off switch top-right of the Zap page. People most often save but forget to activate.
❓ AI replies are consistently too long or too short Adjust the AI node's Max Tokens. Too long? Try 800. Too short? Try 1500. Or add explicit length constraints to the prompt: "Respond in exactly 3 paragraphs, each 2–4 sentences."
Two hours ago you may have been the person who manually typed replies to every inquiry. Now you're the person running a system that replies on your behalf while you sleep, train, or travel. This isn't just convenience — it's the lever that makes a solo-scale service survivable as volume grows.
This workshop is the operational-phase hands-on of the SPIN series. The path continues:
The best way to keep this system alive is a daily 5-minute sweep of Make's History tab. Any weird AI replies? Any unusually slow responses? Any new inquiry types? Those 5 minutes are your service's feedback loop and the source of every future prompt improvement. What you built is a beginning, not an end. The first wheel is rolling; you now just oil it daily so it keeps rolling.
이 워크숍을 끝까지 따라오시면 다음 네 가지가 남습니다.
완성되는 것
📖 용어: 트리거(Trigger)와 액션(Action)이란 무엇인가 트리거는 "무엇이 일어나면"에 해당하는 시작 신호입니다. "새 행이 추가되면", "새 이메일이 오면", "정해진 시간이 되면" 같은 것이 전부 트리거입니다. 액션은 "그러면 무엇을 해라"에 해당하는 실행입니다. "이메일을 보내라", "슬랙에 알려라", "시트에 기록해라" 같은 것이 액션입니다. 자동화 = 트리거 + 액션. 이 워크숍에서 만드시는 시나리오도 새 행 감지(트리거) → AI 응답 생성 + Gmail 발송(액션) 구조입니다.
이 워크숍의 메타 정보
| 항목 | 값 |
|---|---|
| 소요 시간 | 2시간 (빠르게 90분, 차분히 3시간) |
| 난이도 | 중급 (폼·시트·이메일 기본 사용 경험 필요) |
| 필요 도구 | 웹 브라우저 + 구글 계정 + AI API 키 1개 (Claude or GPT) |
| 사전 코딩 지식 | 필요 없음 (전부 GUI) |
| 결제 | Zapier/Make 무료 티어 OK, AI API는 테스트용 $5 충전 권장 |
| 결과물 | 실제 작동하는 자동 응답 시스템 (데모 아님) |
왜 이걸 만드시나 — 고객 이탈은 분 단위로 일어납니다
"문의가 많이 오는 것도 아닌데 굳이 자동화를 왜?" 이 질문이 자연스럽습니다. 그런데 수치를 보시면 다릅니다. 초기 단계 서비스에서 첫 응답 10분 이내면 전환율이 10%대, 1시간 넘어가면 1%대로 급락한다는 지표가 반복적으로 관찰됩니다. 당신이 자는 8시간 동안 들어온 3건의 문의 중, 2건은 이미 떠난 상태로 아침을 맞습니다. AI가 완벽한 답을 쓰지 못해도 괜찮습니다. "문의 받았습니다, 이런 내용으로 이해했고, 구체 답변은 담당자가 확인 후 보내드리겠습니다"만 자동 발송되어도 이탈이 막힙니다. 즉각성이 정확성을 이깁니다.
여기까지 오신 상황: 이 워크숍이 무엇을 만들어주는지 확인하셨습니다. 다음으로 진행 전 필요한 도구와 계정이 갖춰져 있는지 점검합니다.
딱 네 가지만 갖춰져 있으면 2시간 안에 끝납니다.
필수 준비물
zapier.com) 또는 Make (make.com) 둘 중 하나. 무료 티어로 이 워크숍은 전부 됩니다. 개인적으론 Make가 노드 수 제한이 너그러워 추천드립니다 — 2026년 현재도 무료 티어 기준 최선택입니다console.anthropic.com) 또는 OpenAI Platform (platform.openai.com) 둘 중 하나. 신용카드 등록 후 $5 정도만 충전해두시면 이 워크숍 내내 테스트해도 $1도 안 씁니다필요 없는 것
📖 용어: API 키(API Key)란 무엇인가 API 키는 외부 서비스가 당신 대신 AI에 접근하도록 해주는 "위임 비밀번호"입니다. 웹 브라우저에서 ChatGPT에 로그인하실 때 쓰시는 비밀번호는 사람용이고, API 키는 프로그램용 비밀번호입니다. Zapier나 Make 같은 자동화 도구가 "이 사용자 대신 Claude에 질문 좀 보낼게요"라고 할 때 API 키로 신원을 증명합니다. 주의: 이 키는 비밀번호와 동일한 민감도입니다. 노출되면 남이 당신 계정으로 AI를 쓰면서 비용을 발생시킬 수 있습니다. 깃허브·블로그·스크린샷에 절대 올리지 마시고, 자동화 도구의 Credentials 저장소에만 넣어두세요.
환경 체크 (3분)
브라우저 주소창에 다음 네 곳이 전부 로그인 상태로 뜨는지 확인하세요.
forms.google.com — 구글 폼 대시보드sheets.google.com — 구글 시트 대시보드make.com 또는 zapier.com — 자동화 도구 대시보드console.anthropic.com 또는 platform.openai.com — AI API 콘솔 네 곳 전부 로그인되고 API 키도 발급·복사해두셨다면 본격 시작 준비 완료입니다. API 키 발급 화면에서 보이는 sk-ant- 또는 sk-로 시작하는 문자열을 메모장에 임시로 복사해두시되, 끝나면 반드시 삭제하세요.
여기까지 오신 상황: 도구가 전부 손에 들어와 있습니다. 이제 본격 작업 전에 "무엇을 받을지"부터 정합니다. 설계 없이 만드시면 2시간 뒤 재작업이 2시간 추가됩니다.
많은 분이 비슷한 자동화를 시도하셨다가 도중에 엉키시는 패턴이 있습니다. 보통 AI 프롬프트부터 먼저 만드십니다. 혹은 Gmail 템플릿부터 쓰십니다. 순서가 거꾸로라 결국 데이터 구조를 뒤집으셔야 합니다.
이 워크숍의 순서는 **"데이터 흐름 방향 그대로"**입니다.
고객(폼 입력) → 시트(저장) → 자동화(감지) → AI(생성) → Gmail(발송) → 고객(수신)
이 흐름에서 앞 단계의 출력이 다음 단계의 입력이 됩니다. 그래서 폼 질문을 먼저 확정하셔야 시트 컬럼이 정해지고, 시트 컬럼이 정해져야 AI 프롬프트의 변수가 정해지고, AI 출력 형식이 정해져야 Gmail 본문에 뭘 넣을지 정해집니다. 순서가 뒤집히면 매 단계에서 전 단계를 다시 고치시게 됩니다.
도구가 다섯 개지만, 각 도구는 한 가지 역할만 맡습니다. 폼은 수집, 시트는 저장, 자동화는 감지·조율, AI는 판단, Gmail은 발송. 역할이 겹치지 않아야 시스템이 단순해집니다.
여기까지 오신 상황: 왜 이 순서대로 빌드하는지 이해하셨습니다. 이제 2시간 안에 5단계를 하나씩 끝내십니다.
먼저 무엇을 받을지 정하셔야 합니다. 설계 없이 폼부터 만드시면 중간에 질문을 바꾸시게 되고, 그때마다 시트 컬럼도 자동화 변수도 전부 따라 바뀝니다.
1-1. 입력 종류 하나 고르기 (3분)
크게 세 가지 중 하나를 고르세요. 오늘은 하나만 만드시면 됩니다.
| 종류 | 질문 예 | AI 답변 성격 |
|---|---|---|
| 문의(Inquiry) | 어떤 점이 궁금하신가요? | 설명형, 추가 자료 안내 |
| 신청(Signup) | 어떤 문제를 해결하고 싶으신가요? | 안내형, 다음 단계 제시 |
| 후기(Feedback) | 사용해보시니 어떠셨나요? | 감사형, 개선 약속 |
이 워크숍에서는 예시로 "문의"를 기준으로 설명드리지만, 나머지 두 종류도 구조는 완전히 동일합니다. 나중에 추가로 만드실 때는 이 워크숍의 시나리오를 복제(duplicate)하시고 프롬프트만 바꾸시면 됩니다.
1-2. 질문 3개 확정 (5분)
종이나 메모장에 아래 템플릿을 채워 적으세요. 질문은 정확히 3개. 더 많이 넣으시면 제출률이 급락합니다.
Q1 (필수): 이메일 주소 → 단답형 + 이메일 형식 검증 ON
Q2 (필수): [당신 서비스의 핵심 질문] → 장문형
Q3 (선택): [추가 맥락] → 단답형 OR 객관식
예시 — "SmartDay"라는 가상의 일정관리 SaaS라면:
Q1: 이메일 주소
Q2: 하루에 회의가 평균 몇 개 있으신가요? 집중 업무 시간이 언제 필요하신가요?
Q3: 현재 쓰시는 캘린더는 무엇인가요? (구글/아웃룩/네이버/기타)
1-3. 구글 폼 생성 (7분)
forms.google.com에 접속하셔서 "빈 양식"을 클릭합니다.
[당신 서비스명] 문의 입력1-4. 스프레드시트 연결 (3분)
상단 "응답" 탭 클릭 → 초록색 스프레드시트 아이콘 클릭 → "새 스프레드시트 만들기" 선택 → 생성됩니다. 시트는 처음엔 헤더만 있고 행이 비어 있어야 정상입니다.
1-5. 테스트 제출 (2분)
오른쪽 위 "미리보기" (눈 모양) 아이콘 클릭 → 새 탭에서 폼 열림 → 본인 이메일로 테스트 응답 제출 → 스프레드시트로 돌아가 새로고침 → 첫 행이 생겼으면 Step 1 완료입니다.
Step 1 체크포인트: 스프레드시트에 최소 1개의 테스트 응답이 기록되어 있어야 합니다. 없으시면 폼-시트 연결에 문제가 있는 것이니 "응답" 탭에서 연결을 재설정하세요.
Make를 예로 설명드리지만, Zapier도 이름만 다를 뿐 개념은 동일합니다 ("Zap" = "Scenario", "Trigger" = "Trigger", "Action" = "Action").
2-1. 새 시나리오 만들기 (3분)
make.com → 로그인 → 좌측 메뉴 "Scenarios" → 오른쪽 위 "Create a new scenario" → 빈 캔버스가 열립니다. 큰 회색 원이 화면 가운데 있는데, 이곳이 첫 번째 노드(트리거) 자리입니다.
2-2. Google Sheets 트리거 노드 추가 (10분)
2-3. 트리거 테스트 (5분)
노드 위에서 마우스 오른쪽 클릭 → "Run this module only" 선택 → Step 1에서 제출한 테스트 응답 데이터가 출력으로 뜨는지 확인. 이메일 주소, Q2 답변, Q3 답변이 각각 잡혀 있어야 합니다. 출력이 안 보이시면 시트 권한이나 탭 이름을 재확인하세요.
2-4. 스케줄링 설정 (5분)
화면 하단 시계 아이콘 클릭 → "Run scenario" → "At regular intervals" → 15분 선택. 나중에 ON 시 15분마다 자동 체크합니다. 아직 ON으로 바꾸지는 마세요.
2-5. 저장 (2분)
하단 Save 버튼 (플로피 디스크 아이콘) 클릭. 시나리오 이름을 ${당신 서비스명} — 문의 자동응답처럼 정해두세요.
Step 2 체크포인트: "Run this module only"로 실행 시 가장 최근 폼 응답 1건의 데이터가 노드 출력에 보여야 합니다. 이메일·Q2·Q3 값이 각각 맵핑 가능한 필드로 분리되어 있으면 OK입니다.
이 Step이 워크숍의 핵심입니다. 프롬프트 품질이 곧 답변 품질입니다.
3-1. AI 노드 추가 (7분)
첫 번째 노드 오른쪽에 + 아이콘 → 검색 "Anthropic" (Claude 사용 시) 또는 "OpenAI" (GPT 사용 시) → "Create a Message" (Claude) 또는 "Create a Chat Completion" (OpenAI) 선택.
"Create a connection" 클릭 → API Key 필드에 Prerequisites에서 발급받은 키 붙여 넣기 → Save.
3-2. 프롬프트 템플릿 작성 (15분)
아래 템플릿을 그대로 복사해서 AI 노드의 "Messages" 또는 "Prompt" 필드에 붙여 넣으시고, 대괄호 안의 내용을 당신 서비스에 맞게 바꾸세요.
당신은 [서비스명]의 고객 서비스 담당자입니다.
[서비스명]은 [한 문장 서비스 설명]을 제공합니다.
핵심 가치: [한 줄]
주요 타겟: [한 줄]
방금 고객 한 분이 다음 문의를 보내셨습니다.
- 이메일: {{1.이메일 주소}}
- 문의 내용: {{1.Q2 답변}}
- 추가 맥락: {{1.Q3 답변}}
이 문의에 대해 친절하고 도움이 되는 답변을 한국어로 작성해주세요.
답변 작성 지침:
1. 호칭은 "고객님"으로 통일할 것
2. 첫 문단에서 문의 내용을 한 줄로 요약해 "이해했음"을 보여줄 것
3. 두 번째 문단에서 구체적 답변·안내를 3~4문장 제공할 것
4. 세 번째 문단에서 "추가 질문이 있으시면 이 메일에 회신 주세요"로 마무리할 것
5. 전체 3~4단락, 이메일 본문으로 바로 쓸 수 있는 깔끔한 형태로
6. 확실하지 않은 정보는 추측하지 말고 "담당자가 확인 후 추가 안내드리겠습니다"로 처리할 것
변수 삽입은 프롬프트 안의 {{1.이메일 주소}} 부분에서 중괄호를 지우고 Make 변수 피커(오른쪽 패널의 파란 풍선)에서 해당 필드를 클릭하시면 자동 삽입됩니다. Zapier도 유사한 변수 피커 방식입니다.
📖 용어: 변수 매핑(Variable Mapping)이란 무엇인가 변수 매핑은 "앞 노드의 어떤 출력을 이 노드의 어떤 입력에 연결할지"를 시각적으로 지정하는 것입니다. 프로그래밍에서
email = row.email이라고 쓰는 대신, GUI에서 필드를 클릭해 화살표로 연결하는 방식입니다. Make는 드래그 앤 드롭, Zapier는 드롭다운 선택 방식이지만 원리는 똑같습니다. 매핑이 틀리시면 엉뚱한 고객 이메일 주소로 엉뚱한 답변이 갑니다. 테스트 단계에서 반드시 본인 이메일로 먼저 돌려보세요.
3-3. AI 노드 설정 추가 (5분)
claude-sonnet-4-6 (Claude) 또는 gpt-5.4 (OpenAI) — 자동 응답 용도에 최적화된 비용 효율 모델3-4. AI 노드 테스트 (3분)
노드 오른쪽 클릭 → "Run this module only" → 출력 창에서 AI가 생성한 답변 확인. "고객님께서 문의 주신 내용을 잘 받았습니다..."처럼 자연스러운 한국어가 나왔으면 성공. 영어로 나오거나 기계 번역 말투면 프롬프트에 "반드시 자연스러운 한국어로"를 추가하세요.
Step 3 체크포인트: 출력에 3~4단락의 한국어 답변 텍스트가 보이고, 호칭이 "고객님"으로 되어 있고, 마무리가 "추가 질문 회신" 문구로 끝나면 OK입니다. 하나라도 틀리시면 프롬프트 지침을 더 명시적으로 고쳐 재시도하세요.
AI가 답을 썼으니 이제 고객에게 실제로 보냅니다.
4-1. Gmail 노드 추가 (5분)
AI 노드 오른쪽 + → 검색 "Gmail" → "Send an Email" 선택 → "Create a connection" → 구글 로그인 → 권한 허용.
4-2. 필드 매핑 (10분)
| 필드 | 값 |
|---|---|
| To | {{1.이메일 주소}} (첫 번째 노드의 고객 이메일 매핑) |
| Subject | [${서비스명}] 문의 주셔서 감사합니다 같은 고정 텍스트 |
| Content Type | HTML |
| Content | {{2.content[0].text}} (AI 노드 출력 매핑) |
| From Name | ${서비스명} 고객지원팀 |
매핑 시 가장 많이 실수하시는 곳이 Content 필드입니다. AI 노드의 어떤 필드가 "실제 답변 텍스트"인지 서비스마다 이름이 다릅니다. Claude는 content[0].text, OpenAI는 choices[0].message.content가 일반적입니다. 변수 피커를 펼쳐서 실제 텍스트가 들어 있는 필드를 고르세요.
4-3. 발송 테스트 (10분)
여기가 진짜 테스트입니다. 순서 그대로 하세요.
이메일이 제목·본문 깔끔하게 도착하셨으면 성공입니다. 도착하지 않으셨다면 Make 시나리오의 노드 위 빨간 느낌표 아이콘 클릭 → 에러 메시지 확인. 90%는 변수 매핑 오타이거나 Gmail 권한 미승인입니다.
Step 4 체크포인트: 본인 Gmail에 "[서비스명] 문의 주셔서 감사합니다" 제목의 메일이 3~4단락 한국어 AI 답변 본문으로 도착해 있어야 합니다. 제목·본문·발신자 이름이 전부 맞으면 OK입니다.
수동 실행은 자동화가 아닙니다. 진짜 자동화는 버튼을 안 눌러도 돌아가야 합니다.
5-1. 시나리오 활성화 (3분)
Make 시나리오 하단 왼쪽의 토글 스위치를 OFF → ON으로 전환. Zapier는 상단 오른쪽의 "Off" 토글을 "On"으로. 이제 15분마다 자동으로 시트를 체크합니다.
5-2. 친구에게 테스트 폼 보내기 (5분)
폼 URL을 친구 한 명에게 카톡으로 보내세요. "내가 만든 자동응답 시스템 테스트인데, 진짜 이메일로 제출 한번만 해줄래?"라고 부탁하시면 됩니다. 친구가 제출하면 다음 실행 주기(최대 15분 후)에 자동으로 AI 답변이 친구 이메일로 갑니다.
5-3. 친구 피드백 수집 (7분)
친구에게 "받은 답변이 어땠어?" 물어보세요. 대부분 세 가지 피드백 중 하나가 옵니다.
| 피드백 | 원인 | 수정 위치 |
|---|---|---|
| "답변이 너무 딱딱해" | 프롬프트 톤앤매너 지침 부족 | AI 노드 프롬프트에 "친근하고 따뜻한" 추가 |
| "내 질문을 이해 못한 것 같아" | Q2 답변 변수가 프롬프트에 누락 | 프롬프트 {{1.Q2}} 매핑 재확인 |
| "메일이 15분 늦게 왔어" | 스케줄 간격이 길어서 | Make 시계 → 5분으로 줄이기 (무료 티어 한도 주의) |
5-4. 실행 로그 확인 (5분)
Make 좌측 "Scenarios" → 해당 시나리오 → "History" 탭. 지난 24시간 동안의 모든 실행 기록이 표로 보입니다. 각 행을 클릭하시면 어떤 데이터가 들어와서 어떤 답변이 나가셨는지 전부 확인 가능합니다. 실서비스 운영 시 하루 1번 이 로그를 훑어보시면 이상한 답변이 나간 경우를 조기에 잡을 수 있습니다.
Step 5 체크포인트: 시나리오 토글이 ON 상태이고, 친구가 제출한 테스트 응답에 대해 AI 답변 이메일이 정상 발송되었으며, History에 최소 2건의 성공 실행 기록이 남아 있으면 이 워크숍 완료입니다.
여기까지 오신 상황: 자동 응답 시스템이 실제로 돌아가고 있습니다. 다음은 제대로 완성된 것인지 4가지 기준으로 최종 확인합니다.
다음 네 가지 모두 "네"라고 답하실 수 있으시면 이 워크숍은 완료입니다.
이 중 하나라도 "아니오"시면 어느 단계에서 멈추셨는지 역방향으로 추적하세요. 가장 흔한 실패 지점은 Step 4의 변수 매핑(Content 필드가 비어 있거나 엉뚱한 필드 연결)과 Step 5의 시나리오 OFF(저장만 하고 활성화를 깜빡)입니다. Make 시나리오 History 탭에서 빨간 에러 행을 클릭하시면 정확한 실패 원인이 영어로 나옵니다. 모르는 용어는 Claude에 "이 에러 메시지 뜻을 한국어로 설명해줘"라고 물어보시면 바로 해석됩니다.
왜 친구 테스트가 필수인가: 본인 계정으로만 테스트하시면 구글 권한이 자기 자신에게 메일을 보낼 때 특수 처리가 돼서, 실제 외부 고객에게 가는 상황과 다를 수 있습니다. 친구(다른 이메일 도메인) 테스트가 실환경에 가장 가깝습니다.
변형 1 — 문의 유형 자동 분류
프롬프트 끝에 다음 한 줄을 추가하시면 AI가 분류까지 합니다.
답변 시작 전 맨 위에 [카테고리: 긴급/일반/스팸] 형식으로 분류를 붙여주세요.
그 다음 Make에 Router(분기 모듈)를 추가해 카테고리별로 다르게 처리하실 수 있습니다. 긴급이면 본인 슬랙·문자로 즉시 알림, 일반이면 AI 답변 자동 발송, 스팸이면 아무것도 안 함. 이 변형만 추가하셔도 운영 부담이 절반이 됩니다.
변형 2 — 슬랙 동시 알림
Gmail 노드 옆에 Slack 노드를 추가하셔서 같은 데이터를 본인 슬랙 채널로도 보내세요. 고객에게 답이 나간 즉시 당신 휴대폰에 푸시 알림이 뜹니다. 새벽에 AI가 뭔가 이상한 답을 보냈다는 걸 아침에 알게 되는 것보다 훨씬 빨리 개입 가능합니다.
변형 3 — 노션 데이터베이스 기록
Notion 노드를 추가해 각 문의를 데이터베이스 행으로 저장하세요. 3개월 뒤 "어떤 문의가 많이 오는가?" 분석할 때 노션 DB가 FAQ의 씨앗이 됩니다. 많이 들어오는 질문 3개만 추려서 랜딩 페이지에 FAQ로 올려두시면 문의량 자체가 30%는 줄어듭니다.
변형 4 — 다국어 자동 대응
프롬프트에 "고객 문의 언어를 감지하고, 같은 언어로 답변하세요"를 추가하시면 영어·일본어 문의에도 같은 AI가 자동 대응합니다. 1인 글로벌 서비스의 가장 큰 벽이 "영어로 쓰는 고객 서비스 부담"인데 이 한 줄이 그 벽을 치웁니다.
❓ Make에서 "Module execution failed" 에러가 뜹니다 대부분 API 키 만료나 크레딧 소진입니다. Anthropic/OpenAI 콘솔 → Usage 탭 → 잔액 확인. $1 미만이면 충전하세요. 또는 Make 무료 티어의 "operations" 할당량을 다 쓰셨을 수도 있습니다 (월 1,000회 제한). 이 경우 유료 플랜이나 주기를 15분 → 30분으로 늘려 해결하세요.
❓ AI 답변이 영어로 나옵니다 프롬프트 가장 위에 "답변은 반드시 자연스러운 한국어로만 작성하세요. 영어 단어는 꼭 필요한 경우가 아니면 쓰지 마세요"를 추가하세요. 모델이 Claude면 거의 즉시 해결되고, GPT도 동일 지시로 고쳐집니다.
❓ 변수 매핑에서 AI 답변 텍스트 필드가 안 보입니다
AI 노드의 출력 구조가 중첩(nested)되어 있어서입니다. Make의 경우 변수 피커에서 필드명 왼쪽 삼각형을 클릭하시면 하위 필드가 펼쳐집니다. Claude: content > [1] > text, OpenAI: choices > [1] > message > content 경로로 내려가시면 됩니다. 한 번 시나리오를 "Run once"로 실행하신 뒤에 변수 피커를 다시 여시면 실제 반환된 구조가 보이므로 매핑이 훨씬 쉬워집니다.
❓ 고객 이메일로 답이 안 갑니다. 본인 이메일로만 갑니다 To 필드에 고정 이메일 주소를 하드코딩하신 경우입니다. To 필드를 클릭하셔서 변수 피커 → Google Sheets 노드의 "이메일 주소" 필드(Q1 매핑)로 연결하세요. 값이 아니라 변수여야 합니다.
❓ 15분 지나도 자동 실행이 안 됩니다 시나리오 토글이 ON인지 재확인하세요. Make는 시나리오 카드 왼쪽 하단의 동그란 토글, Zapier는 Zap 페이지 오른쪽 위의 On/Off 스위치입니다. 저장만 하고 활성화를 깜빡하시는 경우가 가장 많습니다.
❓ AI 답변이 매번 너무 길거나 너무 짧습니다 AI 노드 설정의 Max Tokens를 조절하세요. 너무 길면 800, 너무 짧으면 1500으로. 또는 프롬프트에 "답변은 반드시 3단락, 각 단락 2~4문장 이내"처럼 명시적 길이 제약을 추가하세요.
2시간 전 당신은 "문의가 오면 손으로 답장하던 사람"이었을 수 있습니다. 지금 당신은 자는 동안에도, 운동하시는 동안에도, 여행 중에도 AI가 대신 답하는 시스템을 운영하는 사람입니다. 이 전환은 단순한 편의가 아니라 서비스 규모를 혼자 감당 가능한 수준으로 끌어올리는 지렛대입니다.
이 워크숍은 SPIN 시리즈 운영 단계의 실습편입니다. 이어지는 흐름은 다음과 같습니다.
이 시스템을 가장 오래 가져가시는 방법은 매일 아침 5분만 Make의 History 탭을 훑어보시는 것입니다. AI 답변 중 이상한 건 없는지, 응답이 너무 늦지는 않았는지, 새로운 유형의 문의가 들어왔는지. 이 5분이 당신 서비스의 피드백 루프이자 프롬프트 개선의 원천입니다. 만드신 것은 끝이 아니라 시작입니다. 첫 바퀴가 굴러가기 시작했으니, 이제 바퀴가 멈추지 않도록 매일 기름칠만 해주시면 됩니다.
Three short questions. Get them all right and the completion stamp is auto-granted. Answers stay on your device.
Q1. Why does this workshop emphasize building in the order "Form → Sheet → Automation → AI → Gmail"?
Each stage's output becomes the next stage's input. You can't correctly map AI prompt variables until sheet columns exist, and sheet columns are determined by the form questions. Building in reverse forces you to reopen every prior stage for edits. The WHY section's diagram visualizes this principle.
Q2. Why does VERIFICATION specify that the test must go to a friend's email, not your own?
When you send email from your own account to yourself, Google handles authentication and routing in ways that can differ from how external recipients receive mail. A friend's inbox (on a different domain) is the closest proxy to real customer delivery. The workshop makes this a mandatory Step 5 check for that reason.
Q3. According to the TROUBLE section, what is the recommended fix when the AI reply comes back in the wrong language?
The workshop repeatedly stresses that prompt quality determines output quality. A language mismatch isn't a model problem — it's a missing language directive in the prompt. Adding "Respond only in [target language]. Avoid foreign phrases unless strictly necessary." at the top of the prompt resolves the issue immediately, in both Claude and GPT.
Completion is stored on this device only. See your full passport at /member.