Be honest with yourself: the automation you built in 3-3 isn't smart. When new data arrives, it just fires an alert — it doesn't read the content, doesn't weigh urgency, doesn't decide. This tutorial teaches you, in 35 minutes, how to **plug an AI node** into the middle of that scenario. Treat the prompt as a job manual, pipe upstream variables into it, return structured JSON the next node can consume. This is the exact moment a dumb action becomes an agent action — and the moment you build your first **single neuron** of the "AI agent" everyone else is nervous about.
Following this tutorial leaves you with four things.
What gets built
📖 Term: What is an "agent action"? In Chapter 3-2 we split actions into two classes. A simple action runs by a fixed rule — "when a new row appears, send an alert." Conditions met, action fires, no thought involved. A vending machine. An agent action reads the content and decides what to do. The same trigger produces different behavior depending on the data — a "product damaged" inquiry goes to the urgent lane, a "shipping question" goes to the auto-reply lane. A trained employee. The AI node is what produces that judgment, and in this tutorial you plug one into your scenario with your own hands.
Tutorial metadata
| Item | Value |
|---|---|
| Time | 35 min (fast: 25, unhurried: 50) |
| Level | Intermediate (for those who finished 3-3) |
| Tools | Make account + one AI API key (Gemini 3 or Claude Sonnet 4.6) |
| Payment | Make free plan + AI free/low tier is plenty |
| Prerequisite | Completed the 3-3 Sheets→Slack/Gmail scenario |
Why this — the difference 35 minutes makes
Your 3-3 scenario runs but isn't smart. Fifty inquiries, fifty identical alerts. Thirty-five minutes from now, the same fifty produce fifty tailored replies — three urgent ones pinged to the owner, forty-seven shipped to customer inboxes. Your labor stays at zero. Once you've felt "zero effort, judgment delegated," you'll reflexively ask "Can I plug AI here?" for every task. That one question reshapes the next decade.
Where you are now: you've confirmed what this tutorial produces. Next up: prerequisites check before we roll.
Only three things.
Required
Not required
📖 Term: What is an API key? API = Application Programming Interface — the counter through which programs talk. Gemini 3 and Claude open counters so automation tools like Make can call them. Your API key is the badge you flash at that counter — a long password-like string. In 3-3 you used Gmail OAuth; AI services replace OAuth with an API key. Same purpose, different procedure. Warning: keys are passwords. Never commit to public repos, or someone else spends your money tonight.
Environment check (2 min)
Three yeses, you're ready. Any gap — fill it first. Half-prepared guarantees a mid-flow wall.
Where you are now: materials in place. Next — why plugging AI in elevates the whole discipline. Then hands-on.
Not because "AI is trendy." Three specific reasons.
Reason one — traditional automation's limit was "no judgment."
Your 3-3 scenario works but cannot decide. New row → Slack alert, regardless of content. Vending machine: coin in, coffee out. Only useful in domains with no exceptions. Ninety percent of real work has exceptions — urgent/normal, product/technical/refund/partnership, Korean/English. Hand-coded if-else takes a month and still misses cases. One AI node handles the infinity of exceptions with a single paragraph of natural language.
Reason two — an AI node obeys the same rules as any other node.
People assume "AI is special, I'll need to learn it separately." Not true. From Make's perspective an AI node is just another external node, as vanilla as Gmail or Slack. Previous node's output becomes its input, its result becomes the next node's input. The only difference: instead of sending a message, it asks the AI for one. Everything from 3-3 — output→input, variable mapping, connection reuse — applies one-for-one. Almost nothing is new except the prompt.
| Angle | Gmail node | Slack node | AI node |
|---|---|---|---|
| Input | to, subject, body | channel, message | prompt (natural-language instruction) |
| Output | message ID, success flag | message ID | AI response text (or JSON) |
| Connection method | Google OAuth | Slack OAuth | API key |
| Upstream variable mapping | double braces {{}} | double braces {{}} | double braces {{}} |
| Connection reuse | one connection, many nodes | same | same |
Two new concepts — prompt and API key. The rest is 3-3 one-for-one.
Reason three — "agent" sounds scary but the actual thing is what you're building.
"AI agent" is everywhere in the news. LangGraph, CrewAI, Claude Skills, OpenAI Assistants — agent frameworks are now mainstream. But the underlying structure is exactly what you're building here: input → AI judges → output. Complex agents are this cell chained with branches and loops. Today you build that cell with your own hands. Next "AI agent project" pitch, you'll be the one who has actually run one.
Where you are now: three reasons are clear. Time for the real thing. Seven steps, 25–35 min.
No preference? Start with Gemini 3 — most generous free tier (1,500 req/day, 15 req/min — sufficient for most 2026 workflows) and quality at this tutorial's level is fine.
Keys look like AIza... (Gemini), sk-ant-... (Claude), sk-... (OpenAI). Copy before closing the tab. Claude and OpenAI show it once only.
📖 Term: What is a "connection"? In 3-3 the Gmail node triggered a "sign in with Google" prompt — that was connection creation, handing Make permission to act for you. Create once, reuse across ten Gmail nodes. AI connections work identically — you paste an API key instead of OAuth. One connection, reusable across every future Gemini/Claude/OpenAI node.
From the Make dashboard, open the 3-3 scenario, click three-dot menu → Clone. Never touch the original. Experiments live in clones.
Rename the clone "3-4 AI Auto-Reply Practice" and open it. Current chain: Google Sheets Watch New Rows → Slack Send Message.
Insert an AI node in front of Slack. Hover the connecting line, a "+" button appears, click it, search "Gemini" (or "Claude", "OpenAI"), select the service, then pick "Create a Completion" / "Generate a Message" / "Generate Response" — exact name varies but the semantic is identical.
First field in the node pane is Connection. Drop down → "Add."
Done. Future AI nodes list this connection for one-click reuse, just like Gmail in 3-3.
This step is the heart of the tutorial. Prompt quality determines 80% of the result.
Find the "Prompt" or "Messages" field in the AI node settings. A good prompt always has three blocks: role + specific instructions + tone & manner.
Copy the template below. Leave the placeholders blank for now — Step 5 fills them in.
You are the customer support specialist for a tech startup called "Innovation."
Customer info:
- Name: [customer name goes here]
- Email: [email goes here]
Inquiry info:
- Inquiry type: [inquiry type goes here]
- Inquiry content: [inquiry content goes here]
Follow these instructions when writing the reply:
1. Greet the customer by name, warmly.
2. Summarize the inquiry in one sentence to show you understood it.
3. Give a concrete, step-by-step solution matched to the inquiry type.
- Product inquiry: include key features and pricing
- Technical support: give step-by-step troubleshooting
- Refund/exchange: explain the policy and timeline
- Partnership: include a contact and propose a meeting
4. Close by inviting them to reply if they need more help.
Style:
- Friendly and professional tone
- 3–4 paragraphs
- Explain any technical terms plainly
Role, specific instructions, tone — all explicit. Three blocks = your AI-as-new-hire's job manual.
📖 Term: Prompt-as-a-node In classic automation the atomic unit was "when data arrives, run this code." In AI-native automation it becomes "when data arrives, ask the AI with this prompt." The prompt itself is a workflow step — hence "prompt as a node." This is what opens automation to people who don't code: you author in natural language instead of a programming language. The single biggest shift in the automation world — and now MCP (Model Context Protocol) is standardizing how tools, APIs, and databases connect to AI nodes, making the whole system even more composable.
Your prompt has four placeholders. Wire Google Sheets node outputs into them as variables.
Works exactly like the Slack step in 3-3: cursor into the placeholder, expand the Google Sheets entry in the right panel, click Name/Email/Type/Content. Double-brace tokens like {{name}} drop in automatically.
Finished prompt:
You are the customer support specialist for a tech startup called "Innovation."
Customer info:
- Name: {{name}}
- Email: {{email}}
Inquiry info:
- Inquiry type: {{inquiry_type}}
- Inquiry content: {{inquiry_content}}
Follow these instructions when writing the reply:
(rest unchanged)
When the scenario runs, {{name}} becomes "John Kim" on one row, "Jane Lee" on the next. One prompt, as many tailored replies as customers.
Author once; every inquiry gets a custom answer at runtime. Fifty rows, fifty replies. Effort stays at zero.
The AI node returns text. Pipe it into the next node to complete the agent action.
Current chain: Sheets → AI → Slack. Slack is fine internally, but the real win is a customer-facing auto-reply. Swap Slack for Gmail Send Email, or keep Slack and add Gmail alongside.
Gmail settings:
{{email}} from Sheets[Innovation] Your {{inquiry_type}} responsechoices[0].message.content by provider)Key: AI output becomes Gmail input — the same "output→input" rule from 3-3.
Click "Run once" bottom-left. New row detected, AI generates, Gmail ships.
Check the test inbox. A tailored reply. Congrats — your first agent action is live.
Add 2–3 more rows and rerun. Different reply per row is when it clicks.
Errors flag red at the offending node. Click, open "Output", inspect data. Most issues — TROUBLE below.
Where you are now: an agent-action scenario is running. Next — verification checkpoint.
Five yeses and you're complete.
Any "no"? Common failures: item 2 (prompt too short/vague) and item 4 (variable unfilled, {{name}} passes through literally). Return to Steps 4–5.
Variation 1 — Structured output via JSON
So far the AI returns one blob. Make it return labeled fields and downstream branches get sharper. In 2026, Gemini 3, Claude Sonnet 4.6, and GPT-5.4 all support structured JSON output reliably — enable "JSON mode" or "Response format: JSON object" in node settings alongside your prompt instruction.
Append to your prompt:
Return the result in the following JSON format. Output pure JSON text only — no markdown code fences.
{
"subject": "email subject",
"body": "email body",
"priority": "urgent or normal",
"category": "product / technical / refund / partnership"
}
Drop a Parse JSON node after the AI node — four fields come out separately. Wire {{subject}} to Gmail Subject, {{body}} to Body. Add a Router that fires an extra Slack alert only when {{priority}} equals "urgent."
📖 Term: Structured output Asking the AI for JSON so the next program reads it as structured data is called structured output. Plain text works for humans but is ambiguous for a branch asking "urgent?" JSON puts the priority field right there, ready to route on. All major models now expose a native structured output or "JSON mode" toggle — use both the prompt instruction and the node setting for maximum reliability.
Variation 2 — Human-in-the-loop checkpoint
Money-touching decisions like refund issuance shouldn't ship automatically. Insert a Slack Create a Message after the AI node — "AI drafted this; ship it?" — and fire Gmail only on an approval emoji. Make supports this via a Webhook pattern (later tutorial). Principle: anything touching money, trust, or someone's name gets a human review.
Variation 3 — Classification only
Tell the AI "answer in one word — urgent, normal, or spam" and you have a classifier. Route through a three-way branch: urgent → owner, normal → auto-reply, spam → delete. Faster, cheaper, more reliable than generation. In production the judging use case is more common than writing.
Variation 4 — Multilingual
Add one line: "If the inquiry is English, answer English; if Korean, answer Korean." One form, five languages, zero delay.
❓ "Invalid API Key"
You probably pasted the key with leading/trailing spaces. Edit the connection, clear the field, paste cleanly. Still failing? Rotate the key from the provider console and rebuild. Claude and OpenAI won't work without a prepaid balance — visit the billing page and prepay ~$5.
❓ {{name}} shows up literally (variable didn't bind)
You cannot type {{name}} as text. You must click the field in the variable panel on the right — that drops in a real binding, rendered as a lavender chip. Plain text without the chip is just a string and passes through unchanged.
❓ "Rate limit exceeded" or "Quota exceeded"
You hit the free-tier quota. By 2026, most APIs have raised rate limits roughly 10× compared to 2025, but free tiers still have ceilings. Gemini 3 free caps at ~15 req/min and 1,500/day; Claude/OpenAI errors usually mean empty credits. Wait an hour or prepay $5–10. During testing, don't mash Run once.
❓ AI reply too long or too short
Your tone-&-manner block probably skipped length. Write it in numbers: "3–4 paragraphs, under 500 characters." "Reasonable length" means nothing to an LLM; exact counts work.
❓ Asked for JSON, got markdown code fences
Strengthen the prompt: "Output pure JSON text only — no markdown code fences." If it still leaks, enable "JSON mode" / "Response format: JSON" in node options. That's the rock-solid fix. Mixed fences break Parse JSON and freeze the scenario.
❓ Scenario succeeded but no email
Check spam. The first automated Gmail from a new Make connection often lands there. Mark "Not spam," add to contacts, future mail delivers normally.
❓ Same Google Sheets row processed multiple times
Watch New Rows "Limit" too high, or Make isn't remembering what it saw across repeated Run once clicks. Use "Reset trigger," or actually add a fresh row before clicking Run once.
Thirty-five minutes ago your automation was a vending machine. Now it's a trained employee. Not a skill gap — a worldview gap. From here on, every task triggers a reflex: "Can I plug an AI into this judgment step?" That one question compounds over the next decade.
What you built is one neuron of an AI agent. When the news screams "autonomous agents," "multi-agent systems," and "LangGraph pipelines," you won't flinch. Complex agents are this cell stacked, branched, looped. You've already touched the cell.
This is episode 3-4 of the SPIN series. The arc:
Best way to cement this: over the next week, find one more spot and plug an AI node in. Email triage, report summaries, Slack translation, document extraction — anything. One thing your hands know beats ten books. Leave today's scenario open. Walk in tomorrow, see it shipped three replies overnight, and you won't be going back.
이 튜토리얼을 따라오시면 다음 네 가지가 남습니다.
완성되는 것
📖 용어: 에이전트 액션(Agent Action)이란 단순 액션은 규칙대로 무조건 실행합니다 — 자판기와 같습니다. 에이전트 액션은 내용을 읽고 판단해서 다르게 행동합니다 — 같은 트리거라도 "제품 파손"이면 긴급 라인, "배송 문의"면 자동 답변 라인으로 갑니다. 숙련된 직원 같습니다. 이 판단을 만드는 것이 AI 노드이고, 이번 튜토리얼에서 직접 꽂으십니다.
이 튜토리얼의 메타 정보
| 항목 | 값 |
|---|---|
| 소요 시간 | 35분 (빠르게 25분, 차분히 50분) |
| 난이도 | 중급 (3-3 튜토리얼 완료자 대상) |
| 필요 도구 | Make 계정 + AI 서비스 API 키 (Gemini 3 또는 Claude Sonnet 4.6) |
| 결제 | Make 무료 플랜 + AI API 무료/저가 티어로 충분 |
| 전제 | 구글 시트→슬랙/지메일 기본 시나리오를 3-3에서 완성하신 상태 |
왜 이걸 배우시나 — 35분이 만드는 차이
3-3 시나리오는 돌아가지만 똑똑하지 않습니다. 50건이 들어오면 50번 같은 알림이 갑니다. 35분 뒤, 같은 50건이 들어와도 AI가 각각 읽어서 50개의 맞춤 답변을 만들고, 긴급 3건은 담당자로, 일반 47건은 고객 메일함으로 갑니다. 당신의 노동은 그대로 0입니다. "0의 노동으로 판단까지 위임되는 감각"이 생기시면 앞으로 업무마다 반사적으로 **"이 단계 AI 꽂을 수 있나?"**가 떠오르십니다. 그 질문이 직업인생 10년을 바꿉니다.
여기까지 오신 상황: 이 튜토리얼이 무엇을 만드는지 확인하셨습니다. 다음은 들어가기 전 준비물 체크입니다.
딱 세 가지만 준비되어 있으면 됩니다.
필수 준비물
필요 없는 것
📖 용어: API 키(API Key)란 API = Application Programming Interface — 프로그램끼리 대화하는 창구입니다. Gemini·Claude는 웹사이트 외에 Make 같은 자동화 도구도 호출할 수 있게 창구를 열어둡니다. 그 창구의 출입증이 API 키 — 긴 문자열 비밀번호입니다. 3-3의 Gmail OAuth와 같은 역할인데, OAuth 대신 키를 쓴다는 차이뿐입니다. 주의: 키는 비밀번호입니다. 공개 리포에 절대 올리지 마세요. 유출되면 남이 당신 계정으로 돈을 씁니다.
환경 체크 (2분)
세 개 모두 네면 준비 완료. 반쪽 상태로 들어가시면 중간에 막혀 흐름이 끊깁니다.
여기까지 오신 상황: 재료가 다 갖춰지셨습니다. 이제 왜 AI 노드가 자동화의 격을 바꾸는지 짚고 실전으로 넘어갑니다.
단순히 "AI가 유행이라서"가 아닙니다. 정확히 세 가지 이유가 있습니다.
첫 번째 이유 — 자동화의 핵심 한계가 "판단 없음"이었습니다.
3-3 시나리오는 작동은 하지만 결정을 못 합니다. 새 행이 들어오면 내용과 상관없이 무조건 같은 알림이 나갑니다. 자판기 구조입니다. 이 방식은 예외가 없는 단순한 규칙 영역에서만 쓸모있는데, 실제 업무의 90%는 예외투성이입니다. 고객 문의 하나만 봐도 긴급/일반, 제품/기술/환불/파트너십, 한국어/영어가 끝없이 갈라집니다. if-else로 다 짜시려면 한 달이 걸려도 모자랍니다. AI 노드 하나를 꽂으시면 이 무한한 예외가 자연어 지시 한 단락으로 처리됩니다.
두 번째 이유 — AI 노드는 다른 노드와 같은 규칙으로 작동합니다.
"AI는 특별한 거라 따로 배워야지" 싶으시겠지만 그렇지 않습니다. Make 입장에서 AI 노드는 지메일·슬랙 노드와 똑같은 외부 노드입니다. 앞 노드 출력을 입력으로 받고, 처리 결과를 다음 노드로 넘깁니다. 차이는 "메일 대신 AI에게 요청"뿐입니다. 3-3 원리 — 출력→입력, 변수 매핑, 커넥션 재사용 — 전부 그대로 적용됩니다. 새로 배우실 건 거의 없고, 딱 하나 — 프롬프트뿐입니다.
| 관점 | 지메일 노드 | 슬랙 노드 | AI 노드 |
|---|---|---|---|
| 입력 | 받는 사람, 제목, 본문 | 채널, 메시지 | 프롬프트(자연어 지시) |
| 출력 | 메일 ID, 성공 여부 | 메시지 ID | AI 응답 텍스트 (또는 JSON) |
| 커넥션 방식 | 구글 OAuth | 슬랙 OAuth | API 키 |
| 앞 변수 매핑 | 이중 중괄호 {{}} | 이중 중괄호 {{}} | 이중 중괄호 {{}} |
| 재사용성 | 커넥션 한 번 만들면 재사용 | 동일 | 동일 |
표를 보시면 아시겠지만 거의 똑같습니다. 프롬프트와 API 키 두 가지만 새로 익히시면, 나머지는 3-3에서 배운 것과 완벽하게 같습니다.
세 번째 이유 — "에이전트"라는 단어는 무섭지만 실체는 지금 만드실 것입니다.
요즘 뉴스에 "AI 에이전트" 이야기가 쏟아지는데, 실상은 이 튜토리얼 구조의 확장판입니다. LangGraph, CrewAI, Claude Skills, OpenAI Assistants 같은 에이전트 프레임워크가 주류가 됐지만 기본 원리는 같습니다 — 입력 → AI 판단 → 출력 다음 단계. 복잡한 에이전트는 이 단위가 여러 개 연결되고 분기·반복이 추가된 것뿐입니다. 오늘 그 세포 하나를 직접 만드십니다. 누가 "AI 에이전트 프로젝트 하자"고 하면, 당신은 이미 손으로 돌려본 사람입니다.
여기까지 오신 상황: 세 가지 이유가 정리되셨습니다. 7단계 실전, 25~35분입니다.
판단 기준이 없으시면 Gemini 3부터 시작하세요. 무료 티어가 가장 넉넉하고(하루 1,500 요청, 분당 15 요청 — 2026년 기준 대부분 작업에 충분), 한국어 성능이 이 튜토리얼 수준에서는 충분합니다.
발급받으신 키는 AIza... (Gemini) 또는 sk-ant-... (Claude) 또는 sk-... (OpenAI) 같은 긴 문자열입니다. 브라우저 탭을 닫으시기 전에 반드시 복사하세요. Claude와 OpenAI는 키를 한 번만 보여주고 다시 안 보여줍니다. 잃어버리시면 새로 발급받으셔야 합니다.
📖 용어: 커넥션(Connection)이란 3-3에서 지메일 노드가 "구글 로그인" 창을 띄웠던 것이 커넥션 생성입니다. Make가 당신 대신 그 서비스를 호출할 권한을 넘기는 것입니다. 한 번 만들면 10개 노드에 재사용됩니다. AI 커넥션도 원리는 같고, OAuth 대신 API 키 한 줄로 권한이 넘어갈 뿐입니다.
Make 대시보드에서 3-3에서 만드신 시나리오를 여시고, 우측 상단 점 세 개 → Clone으로 복제본을 만드세요. 원본 시나리오는 건드리지 마세요. 실험은 언제나 복제본에서 합니다.
복제본 이름을 "3-4 AI 자동 응답 실습"으로 바꾸시고 들어갑니다. 현재 구조가 "구글 시트 Watch New Rows → 슬랙 Send Message" 두 노드로 되어 있으실 것입니다.
슬랙 노드 앞에 AI 노드를 추가하셔야 합니다. 방법은 3-3에서 노드 추가하신 것과 완전히 같습니다. 구글 시트 노드와 슬랙 노드를 잇는 선 위에 커서를 올리시면 "+" 버튼이 뜹니다. 누르시고 검색창에 "Gemini"(또는 "Claude", "OpenAI") 입력 → 해당 서비스 선택 → "Create a Completion" 또는 "Generate a Message" 또는 **"Generate Response"**를 선택하세요. 정확한 이름은 서비스마다 조금 다르지만 "응답을 생성한다"는 의미의 액션입니다.
선택하신 AI 노드의 설정창이 뜹니다. 첫 번째 필드가 Connection입니다. 드롭다운을 열고 **"Add"**를 누르세요.
이것으로 끝입니다. 한 번 만들어두시면 앞으로 AI 노드를 몇 개 추가하시든 이 커넥션이 드롭다운에 뜨고, 클릭 한 번으로 재사용하실 수 있습니다. 3-3에서 지메일 커넥션이 그랬던 것과 똑같습니다.
이 단계가 심장입니다. 프롬프트가 결과의 80%를 결정합니다. AI 노드 설정의 "Prompt" 필드에 역할 + 구체적 지침 + 톤앤매너 세 블록을 넣습니다. 다음 템플릿을 붙여넣으세요 — 변수 자리는 5단계에서 채웁니다.
당신은 테크 스타트업 '이노베이션'의 고객 지원 전문가입니다.
고객 정보:
- 이름: [고객명이 들어갈 자리]
- 이메일: [이메일이 들어갈 자리]
문의 정보:
- 문의 유형: [문의유형이 들어갈 자리]
- 문의 내용: [문의내용이 들어갈 자리]
다음 지침에 따라 답변을 작성하세요:
1. 고객 이름을 부르며 따뜻하게 인사합니다.
2. 문의 내용을 한 문장으로 요약해 이해했음을 보여줍니다.
3. 문의 유형에 맞는 구체적 해결책을 단계별로 제시합니다.
- 제품 문의: 주요 기능과 가격 정보 포함
- 기술 지원: 단계별 해결 방법
- 환불/교환: 정책과 처리 기간 안내
- 파트너십: 담당자 연락처와 미팅 제안
4. 추가 도움이 필요하면 연락 달라는 말로 마무리합니다.
답변 스타일:
- 친절하고 전문적인 어조
- 3~4개 단락
- 전문 용어는 쉽게 풀어서 설명
역할·구체적 지침·톤앤매너 — 이 세 요소가 AI 신입사원의 업무 매뉴얼입니다.
📖 용어: 프롬프트-as-a-노드(Prompt as a Node) 전통 자동화의 기본 단위는 "데이터 받으면 코드 실행"이었습니다. AI 자동화의 기본 단위는 **"데이터 받으면 프롬프트로 AI에 물어본다"**입니다. 프롬프트 자체가 워크플로우의 한 스텝 — 프롬프트가 노드가 된다. 코드를 못 쓰셔도 자연어로 노드를 만드실 수 있게 된 것이 지난 몇 년 자동화 판의 가장 큰 변화입니다. 이제는 MCP(Model Context Protocol)가 표준으로 자리잡아 도구·API·데이터베이스를 AI에 연결하는 방식도 단순해졌습니다.
프롬프트에 네 개의 빈 자리([고객명], [이메일], [문의유형], [문의내용])가 있습니다. 여기에 구글 시트 노드의 출력을 변수로 꽂아 넣으셔야 합니다.
Make에서 변수를 꽂는 방법은 3-3에서 슬랙 메시지에 고객명을 넣으셨던 것과 완전히 같습니다. 해당 자리에 커서를 두시고, 우측에 뜨는 변수 패널에서 구글 시트 노드 항목을 펼치시면 Name, Email, Type, Content 같은 필드가 드롭다운으로 나옵니다. 클릭하시면 프롬프트 안에 {{이름}}, {{이메일}} 같은 이중 중괄호 변수가 자동으로 박힙니다.
완성된 프롬프트는 이런 모습이 됩니다.
당신은 테크 스타트업 '이노베이션'의 고객 지원 전문가입니다.
고객 정보:
- 이름: {{고객명}}
- 이메일: {{이메일}}
문의 정보:
- 문의 유형: {{문의유형}}
- 문의 내용: {{문의내용}}
다음 지침에 따라 답변을 작성하세요:
(이하 동일)
시나리오가 실행될 때 {{고객명}}은 "김철수"로, 다음 문의에선 "이영희"로 바뀝니다. 같은 프롬프트 한 벌이 고객 수만큼 다른 답변을 만들어냅니다.
이것이 변수 매핑의 진짜 힘입니다. 프롬프트는 한 번만 쓰시면 되는데, 실제로 돌아갈 때는 매번 다른 고객의 맞춤 답변이 나옵니다. 50건이 들어오면 50개의 맞춤 답변이 나옵니다. 당신은 노동을 0회 하셨습니다.
AI 노드는 텍스트를 내놓습니다. 이 텍스트를 다음 노드 입력으로 넘기시면 에이전트 액션이 완성됩니다.
현재 "구글 시트 → AI → 슬랙" 구조인데, 고객에게 자동 회신 메일이 훨씬 강력합니다. 슬랙을 **지메일(Send Email)**로 교체하거나, 슬랙은 담당자 알림용으로 남기고 지메일을 추가하세요.
지메일 설정:
{{이메일}} 꽂기[이노베이션] {{문의유형}} 문의에 대한 답변입니다핵심: AI 출력이 지메일 입력이 된다. 3-3의 "앞 노드 출력 = 뒷 노드 입력" 원리가 AI에도 그대로 적용됩니다.
좌측 하단 "Run once" 버튼을 누르세요. Make가 시나리오를 한 번만 실행합니다. 구글 시트의 새 행이 감지되고, AI 노드가 프롬프트와 변수로 답변을 생성하고, 지메일 노드가 고객 이메일 주소로 그 답변을 발송합니다.
몇 초 뒤 테스트 메일 주소의 받은편지함을 확인하세요. AI가 생성한 맞춤 답변이 도착해 있을 것입니다. 축하드립니다. 당신의 첫 에이전트 액션이 돌아가기 시작했습니다.
구글 시트에 새 행 2~3개를 더 추가해 Run once를 다시 눌러보세요. 행마다 다른 답변이 나오면 핵심을 체득하신 것입니다.
에러가 나면 Make가 빨간 느낌표로 알려줍니다. 그 노드 → "Output" 탭에서 실제 데이터를 확인하세요. 대부분은 TROUBLE 섹션에서 다룹니다.
여기까지 오신 상황: 에이전트 액션 시나리오 하나가 실제로 돌아가기 시작했습니다. 다음은 검증 체크포인트입니다.
다음 다섯 가지 모두 "네"라고 답하실 수 있으시면 이 튜토리얼은 완료입니다.
하나라도 "아니오"시면 어느 단계에서 흔들리셨는지 짚어보세요. 흔한 실패는 2번(프롬프트 짧고 모호) 또는 4번(변수 미매핑으로 {{고객명}} 그대로 출력)입니다. STEPS 4~5로 돌아가 프롬프트를 다시 채우시고 변수 드롭다운에서 필드를 다시 고르세요.
변형 1 — 구조화된 출력(Structured Output)으로 JSON 받기
지금까지는 AI가 한 덩어리 텍스트를 내놓았습니다. 이것을 여러 필드로 쪼개서 받으시면 뒷 노드가 더 정교하게 분기할 수 있습니다. 2026년 기준 Gemini 3, Claude Sonnet 4.6, GPT-5.4 모두 JSON 구조화 출력을 안정적으로 지원합니다 — 노드 설정에서 "JSON mode" 또는 "Response format: JSON object"를 켜시면 됩니다.
프롬프트 끝에 다음을 추가하세요.
결과를 다음 JSON 형식으로 출력하세요. 마크다운 코드블록 없이 순수 JSON 텍스트만 출력하세요.
{
"subject": "이메일 제목",
"body": "이메일 본문",
"priority": "긴급 또는 일반",
"category": "제품 / 기술 / 환불 / 파트너십 중 하나"
}
AI 노드 다음에 "Parse JSON" 노드를 추가하시면 4개 필드가 따로 뽑혀 나옵니다. 지메일 Subject에는 {{subject}}를, Body에는 {{body}}를 꽂으시고, {{priority}}가 "긴급"일 때만 담당자 슬랙 알림 노드로 분기시키는 Router 노드를 추가하실 수 있습니다. 이렇게 하시면 시나리오가 한 번에 "회신 메일 + (긴급 시) 담당자 알림"을 같이 처리합니다.
📖 용어: 구조화된 출력(Structured Output) AI에게 "JSON 형식으로 답해"라고 요청해서 기계가 바로 읽을 수 있는 구조로 받아내는 것을 구조화된 출력이라고 부릅니다. 일반 텍스트 답변은 사람이 읽기에는 좋지만, 다음 프로그램이 "긴급인지 일반인지"를 판단하기에는 애매합니다. JSON으로 받으시면 priority 필드를 곧바로 조건 분기의 기준으로 쓰실 수 있습니다. 현재 주요 모델 모두 구조화 출력을 기본 기능으로 지원하므로 프롬프트 지시와 노드 옵션 두 가지를 함께 켜시면 가장 안정적입니다.
변형 2 — 사람-인-더-루프 체크포인트
돈이 걸린 결정은 AI가 자동 발송하면 위험합니다. AI 노드 다음에 **슬랙 "Create a Message"**를 넣어 "이런 답변 만들었는데 보낼까요?"를 담당자에 보내고, 승인 이모지 반응 후에만 지메일 노드가 실행되게 하십시오. Make의 Webhook 승인 패턴입니다(다음 튜토리얼에서 다룸). 원칙: 돈·신용·이름이 걸린 답변은 사람이 한 번 보고 보낸다.
변형 3 — 분류만 시키기
"긴급/일반/스팸 중 한 단어로 답하라"고 시키시면 AI가 분류기가 됩니다. Router 노드가 세 갈래로 분기 — 긴급은 담당자 알림, 일반은 자동 답변, 스팸은 삭제. 긴 답변보다 빠르고 싸고 안정적입니다. AI를 "글쓰기 기계"로만 생각하지 마세요. 실전에선 "판단 기계"가 더 자주 쓸모있습니다.
변형 4 — 다국어 대응
프롬프트에 "영어면 영어로, 한국어면 한국어로" 한 줄만 추가하시면 AI가 언어를 자동 감지합니다. 폼 하나로 5개 언어 응대 — 해외 파트너십 문의 응답 시간이 0이 됩니다.
❓ "Invalid API Key" 에러
복사할 때 앞뒤 공백이 딸려왔을 수 있습니다. 커넥션 편집에서 필드를 지우고 깨끗이 다시 붙여넣으세요. 그래도 안 되면 콘솔에서 키를 재발급해 새로 만드세요. Claude/OpenAI는 선결제 없이는 동작하지 않으니 ~$5 충전.
❓ {{고객명}} 그대로 출력됨 (변수 미매핑)
프롬프트에 {{고객명}}을 타이핑하시면 안 됩니다. 우측 변수 패널의 필드를 클릭해 꽂으셔야 연보라 칩으로 하이라이트됩니다. 칩이 없으면 평범한 텍스트이고 그대로 출력됩니다.
❓ "Rate limit exceeded" / "Quota exceeded"
무료 티어 한도 초과. 2026년 기준 대부분 API의 rate limit이 2025년 대비 약 10배 높아졌지만, 무료 티어는 여전히 제한이 있습니다. Gemini 3 무료는 분당 15·일 1,500 요청, Claude/OpenAI는 크레딧 소진 시 에러. 한 시간 기다리시거나 $5~10 충전. 테스트 중 Run once 연타 금지.
❓ 답변이 너무 길거나 짧음
톤앤매너에 분량을 숫자로 못 박으셨는지 확인. "3~4단락, 전체 500자 이내" 같이 적어주세요. AI는 "적당히"를 못 알아듣습니다.
❓ JSON 요청했는데 마크다운 코드블록 섞임
프롬프트에 "코드블록 없이 순수 JSON만" 명시. 그래도 섞이면 노드 옵션에서 "JSON mode"를 켜세요. Parse JSON은 섞이면 에러로 시나리오가 멈춥니다.
❓ 성공인데 메일이 안 옴
스팸 폴더 확인. 첫 자동 메일은 스팸 분류될 수 있습니다. "스팸 아님" + 주소록 추가로 해결.
❓ 같은 행이 여러 번 처리됨
Watch New Rows "Limit"이 너무 높거나 dedup 상태가 꼬였습니다. "Reset trigger" 쓰시거나 실제로 새 행을 추가하신 뒤 Run once.
35분 전 당신의 자동화는 자판기였습니다. 지금은 숙련된 직원입니다. 이 격차는 기술이 아니라 세계관입니다. 이제부터 업무마다 "이 판단 단계 AI에 맡길 수 있나?"가 반사적으로 떠오르십니다. 그 질문이 10년의 생산성을 5배 10배로 끌어올립니다.
지금 만드신 것은 AI 에이전트의 신경세포 한 개입니다. LangGraph나 CrewAI 같은 에이전트 프레임워크가 뉴스에 쏟아져도 겁나지 않으십니다. 기본 세포는 오늘 당신이 손으로 만진 그것입니다.
이 튜토리얼은 SPIN 시리즈 3-4편입니다.
앞으로 일주일 동안 실제 업무에서 "AI 노드 꽂을 곳"을 하나만 더 찾아 꽂으세요. 메일 분류, 보고서 요약, 슬랙 알림 번역, 문서에서 핵심 추출 — 무엇이든. 손에 익은 것 하나가 책 열 권보다 멀리 갑니다. 오늘의 시나리오를 탭에 열어두세요. 내일 출근하셔서 저게 밤사이 고객 3명에게 이미 맞춤 답변을 보낸 걸 보시면, 당신은 돌아오지 않으십니다.
Three short questions. Get them all right and the completion stamp is auto-granted. Answers stay on your device.
Q1. According to the tutorial, what is the essential difference between a "simple action" and an "agent action"?
The vending-machine-vs-trained-employee analogy is the core. A simple action fires identically whenever a condition is met, regardless of the row's content (vending machine). An agent action has the AI read the inquiry and respond differently based on urgency, category, tone, and so on (trained employee). The prompt-loaded AI node is what produces that judgment.
Q2. Which prompt most precisely follows the tutorial's "three elements of a good prompt"?
The tutorial's three elements are role, specific instructions, and tone & manner. The correct option specifies the role ("customer support specialist"), a numbered four-step instruction set, tone guidance (3–4 paragraphs, friendly, professional), and even wires in a variable ({{inquiry_content}}) for tailored generation. The others omit one or more elements, forcing the AI into generic boilerplate.
Q3. What is the primary benefit of receiving AI node output as JSON (structured output) rather than plain text?
This is exactly Variation 1 in the tutorial. A single blob of text is hard to branch on — you can't cleanly pull out "urgent vs normal." JSON gives you priority, subject, body, and category as separate fields via the Parse JSON node, each independently usable downstream. That unlocks precise branching like a Router firing an owner alert only when priority == "urgent." In 2026, Gemini 3, Claude Sonnet 4.6, and GPT-5.4 all support structured output natively — human readability and cost are secondary concerns.
Completion is stored on this device only. See your full passport at /member.