코드 한 줄 없이 Outlook·Excel·Teams를 이어 붙이는 도구입니다. 먼저 이 도구가 무엇이고 어떻게 굴러가는지 훑고, 그다음 실제로 돌려본 Flow 하나를 그대로 따라 만듭니다.
방학 후 재개 첫 주입니다. 이번 주의 주제는 Power Automate라는 도구 그 자체입니다 — 무엇이고, 어떻게 굴러가고, 어디까지 되고 어디부터는 안 되는가. 앞부분에서 도구를 설명하고, 뒷부분 실습에서 그 설명을 손으로 확인합니다. 이번 주가 끝나면 아래 일곱 가지를 할 수 있게 됩니다.
| # | 할 수 있게 되는 것 |
|---|---|
| 1 | Trigger · Action · Connector · Dynamic content · Condition · Run history · Apply to each · Parse JSON 여덟 단어의 뜻을 설명할 수 있다 |
| 2 | Flow의 세 가지 타입(Automated · Instant · Scheduled)을 구분하고, 내 업무가 어디에 해당하는지 고를 수 있다 |
| 3 | 표준 커넥터와 프리미엄 커넥터가 왜 갈리는지 알고, 쓰려는 액션이 어느 쪽인지 화면에서 확인할 수 있다 |
| 4 | Power Automate 화면에서 Flow를 새로 만들고, 저장하고, 테스트할 수 있다 — 안 읽은 메일을 Excel에 쌓는 Flow 뼈대를 표준 커넥터만으로 완성한다 (실습 1) |
| 5 | AI Builder 프롬프트를 만들고 게시해, 같은 Flow에 AI를 끼울 수 있다 (실습 2 ◆ — 크레딧 필요) |
| 6 | Flow가 실패했을 때 Run history에서 어느 단계가 왜 실패했는지 찾을 수 있다 |
| 7 | 내 업무 하나를 Trigger / Condition / Action / Output 으로 쪼개 자동화 후보로 만들 수 있다 |
초급 단계에서 손대면 오히려 헤매는 것들입니다. 나중에 필요해지면 그때 배웁니다.
방학 후 첫 주입니다. 그리고 앞으로 12주간은 웹이 어떻게 굴러가는지, AI가 어떻게 작동하는지 원리를 팝니다. 원리는 오래 쓰이지만 당장 이번 주 업무를 줄여주지는 않습니다.
그래서 첫 주는 내일 바로 써먹을 수 있는 것부터 합니다.
우리 업무를 떠올려 보면 이런 것들이 매일 반복됩니다.
| 반복되는 일 | 실제 상황 |
|---|---|
| 메일 확인 | 실사·스크립트·DP 이슈 메일을 놓치면 안 된다 |
| 팀에 공유 | 받은 걸 Teams에 옮겨 적는다 |
| 엑셀에 기록 | 이슈·요청을 추적표에 적는다 |
| 리포트 취합 | 매주 금요일, 흩어진 수치를 모아 한 장으로 |
| 리마인더 | 매일 아침 운영 체크 항목 공지 |
전부 "어떤 일이 생기면 → 조건을 보고 → 무언가를 한다" 구조입니다. 이 구조를 그대로 컴퓨터에 시키는 도구가 Power Automate입니다.
오늘의 한 줄 — Power Automate 전문가가 되는 게 목표가 아닙니다.
"메일 확인 → 알림 → 기록" 을 자동화 문장으로 바꾸는 감각을 만드는 것이 목표입니다. 작은 Flow 하나를 성공시키고, 그다음에 확장하면 됩니다.
Week 5에서 Make.com과 n8n으로 노드를 연결해 워크플로우를 만드는 것을 배웠고, Week 7에서 n8n을 깊게 팠습니다. Power Automate는 같은 발상의 M365 사내 환경판입니다.
| n8n / Make.com | Power Automate |
|---|---|
| 워크플로우 | Flow |
| 노드 | Action |
| 시작 노드 | Trigger |
| 앱 연동 | Connector |
| 실행 기록 | Run history |
여기까지가 왜입니다. 이제부터는 Power Automate가 정확히 어떤 도구인지를 봅니다. 화면에 나오는 단어 여덟 개, Flow 세 가지 타입, 커넥터가 두 등급으로 갈리는 이유, 그리고 이 도구가 못 하는 일까지. 실습은 그 뒤입니다.
한 문장으로 줄이면 이렇습니다. "어떤 일이 생기면 → 조건을 보고 → 여러 앱에 걸쳐 무언가를 한다"를 코드 없이 화면에서 조립하는 도구. M365 계정 안에서 돌기 때문에 Outlook·Excel·Teams·SharePoint에 로그인 절차 없이 바로 붙습니다.
이 여덟 개만 알면 화면에서 길을 잃지 않습니다. 앞의 여섯 개는 모든 Flow에 나오고, 뒤의 두 개는 여러 건을 한꺼번에 처리할 때 나옵니다 — 이번 실습이 그 경우입니다.
Flow를 시작시키는 사건. 모든 Flow는 트리거 하나로 시작한다.
트리거 이후에 실제로 하는 일.
각 서비스에 연결하는 어댑터. Outlook·Teams·Excel·AI Builder가 각각 하나씩.
앞 단계에서 나온 값을 뒤 단계에 끼워 넣는 것.
갈림길. 조건이 참이면 Yes 갈래, 거짓이면 No 갈래.
이 Flow가 언제 돌았고 성공했는지 실패했는지의 기록.
값이 여러 개 들어왔을 때 하나씩 꺼내 같은 처리를 반복하는 상자.
한 덩어리 문자열을 이름 있는 값들로 쪼개 뒤 단계에서 골라 쓸 수 있게 만드는 액션.
{"summary":…,"action":…} 문자열에서 summary만 꺼내 쓰기이 그림이 이번 주 전부입니다.
그리고 이 그림은 12주 뒤 Week 29에서 LangGraph의 노드·엣지·분기로 똑같이 다시 나옵니다. 지금 손으로 익히는 감각이 그때 그대로 쓰입니다.
Flow를 만들 때 제일 먼저 고르는 것이 타입입니다. 무엇이 Flow를 시작시키느냐로 갈립니다.
| 타입 | 언제 시작되나 | 이런 업무에 | 오늘 어디서 |
|---|---|---|---|
| Scheduled cloud flow | 정해진 시각에 반복 (매일 10시, 매주 월요일…) | 모아서 한 번에 훑는 일 — 일일 요약, 주간 리마인더 | 실습 1 · 실습 2 |
| Instant cloud flow | 내가 버튼을 눌렀을 때 | 사람이 판단해서 시작하는 일 — 양식 제출, 특정 작업 개시 | 오늘은 다루지 않음 |
| Automated cloud flow | 사건이 생기면 즉시 (메일 도착, 파일 업로드…) | 놓치면 안 되는 일 — 긴급 메일 알림 | 집에서 이어가기 |
https://make.powerautomate.com 왼쪽 메뉴에서 오늘 쓸 곳은 이 다섯입니다.
| 메뉴 | 무엇을 하는 곳 | 언제 오나 |
|---|---|---|
| Create 만들기 | Flow 타입을 골라 새로 만든다. 템플릿 갤러리도 여기 | 맨 처음 |
| My flows 내 흐름 | 내가 만든 Flow 목록. 켜기/끄기, 편집, 삭제 | 만든 뒤 다시 열 때 |
| Connections 연결 | 어떤 계정으로 Outlook·Excel에 붙어 있는지. 만료된 연결이 여기서 빨갛게 뜬다 | Flow가 갑자기 실패할 때 제일 먼저 |
| AI hub | AI Builder 프롬프트를 만들고 관리. 크레딧 잔량도 여기 | 실습 2 |
| Run history 28일 실행 기록 | Flow 상세 화면 안에 있다. 실행 한 건을 열면 단계별 Inputs / Outputs를 볼 수 있다 | 안 될 때 · 왜 그렇게 나왔는지 확인할 때 |
화면에서 액션을 검색하면 어떤 것들 옆에 다이아몬드 아이콘(◆ Premium)이 붙어 있습니다. 라이선스가 갈리는 지점이라 실습이 멈추는 가장 흔한 이유입니다.
| 표준 (Standard) | 프리미엄 (Premium) ◆ | |
|---|---|---|
| 무엇 | M365 라이선스에 포함된 커넥터 | 별도 라이선스나 크레딧이 필요한 커넥터 |
| 예 | Office 365 Outlook, Excel Online (Business), Teams, SharePoint, OneDrive | Microsoft Dataverse, AI Builder, SQL Server, Salesforce, HTTP |
| 오늘 실습에서 | 메일 가져오기 · Excel 행 추가 (실습 1) | AI 요약(실습 2의 핵심) |
도구를 아는 것에는 경계를 아는 것이 포함됩니다. 이 셋은 Power Automate로 밀어붙이면 오히려 손해입니다.
| 안 되는 것 | 왜 | 대신 |
|---|---|---|
| 화면을 직접 클릭하는 일 | 클라우드 Flow는 API로만 말을 겁니다. API가 없는 사내 프로그램은 못 건드립니다 | Power Automate Desktop (RPA) — 별개 제품. 오늘은 다루지 않음 |
| 조건이 열 갈래로 갈리는 복잡한 로직 | 화면이 세로로 한없이 길어지고, 나중에 아무도 못 읽습니다 | Flow를 여러 개로 쪼개거나, 그 지점부터는 코드(Week 19~20) |
| 매번 같은 답이 필요한 AI 판단 | AI Builder 출력은 돌릴 때마다 조금씩 다릅니다 | 규칙으로 되는 건 Condition으로. AI는 사람이 검토할 초안까지만 |
마지막 줄이 이번 주의 진짜 교훈입니다. 규칙으로 되는 일과 AI가 필요한 일을 구분하는 감각 — 실습 1의 Excel과 실습 2의 Excel을 나란히 놓고 보면 몸으로 알게 됩니다.
| 개념 | 비유 |
|---|---|
| Trigger | 초인종 — 눌리면 그때부터 일이 시작된다 |
| Action | 초인종이 울린 뒤 하는 일들 — 문 열기, 손님 안내하기 |
| Connector | 어댑터 / 플러그 — 서비스마다 규격이 맞는 코드를 꽂는 것 |
| Dynamic content | 양식지의 빈칸 채우기 — 앞에서 받은 값을 뒤 서류에 옮겨 적기 |
| Condition | 갈림길 표지판 |
| Apply to each | 우편물 분류대 — 한 자루로 들어온 편지를 한 통씩 꺼내 같은 처리를 반복한다 |
| Parse JSON | 봉투 뜯어 서류 나누기 — 한 덩어리로 온 답변을 "요약란·중요도란·할일란"으로 갈라놓는다 |
| Run history | CCTV 녹화본 — 무슨 일이 있었는지 되돌려 본다 |
| Flow를 작게 만들기 | 요리를 배울 때 라면부터 끓이는 것 |
| Excel 표(Table) | 자동화가 읽을 수 있는 서식이 정해진 장부. 그냥 적어둔 메모는 못 읽는다 |
| 준비물 | 상세 | 확인 방법 |
|---|---|---|
| Power Automate 접속 | https://make.powerautomate.com |
Home 또는 My flows 화면이 열리면 OK |
| M365 계정 | Outlook · Teams · Excel Online 사용 가능 | 각 앱이 브라우저에서 열리는지 |
| Outlook 하위 폴더 ★ | 받은 편지함 아래 Inbox_PM 폴더 + 안 읽은 메일 3~4통 |
실습 1이 이 폴더를 읽는다. 만드는 법은 바로 아래 |
| 실습용 Excel 파일 | OneDrive 또는 SharePoint에 저장된 .xlsx |
⚠️ 내 PC 로컬에 있으면 Power Automate가 못 읽는다 |
| AI Builder 크레딧 ★ | 실습 2에 필요 (Premium) | 왼쪽 메뉴에 AI hub가 보이는지. 없으면 아래 대체 경로로 |
| 실습용 Teams 공간 | 테스트 채널 또는 본인과의 채팅 — 심화에서만 사용 (선택) | ⚠️ 실제 고객·프로젝트 채널은 절대 쓰지 않는다 |
| 가짜 데이터 | 프로젝트명·담당자·요청 내용 전부 샘플값 | 실제 고객·응답자 정보 없음 |
실습 1은 받은 편지함 전체가 아니라 지정한 하위 폴더 하나만 읽습니다. 범위를 좁혀야 실행 시간도 짧고 AI 크레딧도 덜 씁니다.
Inbox_PM.Inbox_PM 폴더로 옮긴다.
새 Excel 통합 문서를 만들어 OneDrive에 저장합니다. 파일명은 MissedEmail.xlsx. 시트 1개를 만들고, 반드시 "표(Table)"로 지정합니다.
표로 만드는 법: 데이터 범위를 드래그 → 리본의 삽입 → 표 (또는 홈 → 표 서식) → "머리글 포함" 체크 → 확인 → 표가 선택된 상태에서 표 디자인 탭 → 표 이름에 아래 이름을 입력.
MissedEmail / 표 이름 tblMissedEmail — 실습 1·2가 쓰는 표샘플 데이터 한 줄씩 넣어둡니다 (표가 비어 있으면 액션 설정 화면에서 컬럼이 안 보이는 경우가 있습니다).
| 표 | 컬럼 | 샘플 값 |
|---|---|---|
| tblMissedEmail | Date | 2026-09-07 |
| Subject | 샘플 제목 | |
| Sender | 본인 이메일 | |
| ReceivedTime | 2026-09-07T01:00:00Z | |
| Summary | 샘플 요약 | |
| Action | 샘플 할일 — 실습 1에서는 비워둬도 된다 |
왼쪽 메뉴에 AI hub가 없거나 크레딧이 0이면 실습 2가 안 돌아갑니다. 그래도 괜찮습니다. 실습 1까지만 하면 됩니다. 실습 1은 표준 커넥터만으로 완성되는, 자체적으로 완결된 Flow입니다 — 예약 트리거가 안 읽은 메일을 가져와 Excel에 쌓는 것까지. 이번 주 학습 목표는 여기서 달성됩니다. 크레딧이 생기면 그때 실습 2를 이어 하면 됩니다.
Summary에는 본문 미리보기가 그대로 들어갑니다. AI가 붙은 사람의 Excel과 나란히 놓고 보면 AI가 정확히 무엇을 더해줬는지가 오히려 선명해집니다 — 세션에서 화면을 나란히 띄워 비교합니다.
| 업무 상황 | 메일함에 안 읽은 메일이 쌓인다. 하나씩 열어보지 말고 매일 아침 한 장으로 훑고 싶다 |
| 만들 것 | 매일 정해진 시각에 Inbox_PM 폴더의 안 읽은 메일을 가져와 → 한 통씩 Excel에 한 줄씩 기록. AI 없이 표준 커넥터만으로 완성되는 Flow다 |
| 사용 커넥터 | Office 365 Outlook(표준) · Excel Online (Business)(표준) — 프리미엄 없음 |
| 학습 포인트 | Scheduled flow · Recurrence · Get emails (V3) · Apply to each · Add a row · Run history |
https://make.powerautomate.com 에 접속한다.PM_MissedEmail_Summary_{본인이니셜} 을 입력한다.팀_업무_목적_소유자 형태를 권합니다. Flow가 20개쯤 되면 이름만 보고 뭘 하는 건지 알 수 있어야 합니다.1 / Day(일).01:00Z로 남습니다(한국은 UTC+9). 지금은 신경 쓸 필요 없지만, 나중에 "왜 9시간 차이가 나지?" 싶을 때 이것 때문입니다.
Get emails 를 입력하고 Office 365 Outlook 의 Get emails (V3) 를 선택한다.| 필드 | 값 | 왜 이 값인가 |
|---|---|---|
| Folder | Inbox_PM (폴더 아이콘으로 골라 들어간다) | 받은 편지함 전체를 읽으면 실행이 오래 걸린다 |
| Only with Attachments | No (Off) | 첨부 유무와 상관없이 다 본다 |
| Include Attachments | No (Off) | 첨부 내용은 안 쓴다. 켜면 데이터만 무거워진다 |
| Only Unread ★ | Yes (On) | "놓친 메일"의 정의가 곧 안 읽은 메일. 이미 처리한 건 다시 안 가져온다 |
| Importance | Any | 중요도 판단은 실습 2에서 AI가 한다 |
| Top ★ | 10 | 한 번에 10통까지. 실행 시간을 짧게 유지하기 위한 상한이다 |
Top을 비워두지 마세요. 비우면 기본값이 크게 잡혀 안 읽은 메일이 수백 통일 때 실행이 몇 분씩 걸립니다. 실습에서는 10으로 고정합니다.
Get emails는 메일을 여러 통 한꺼번에 가져옵니다. 우편물이 한 자루로 온 셈입니다. 기록은 한 통씩 해야 하므로 반복 상자가 필요합니다.
Apply to each 를 입력하고 Control(컨트롤) 의 해당 액션을 선택한다.value 를 고른다.value가 곧 "메일 목록"입니다. body나 다른 항목이 아닙니다.가져온 메일 한 통씩을 Excel 표에 기록합니다. 아직 요약은 없습니다 — Summary에는 본문 앞부분(미리보기)이 그대로 들어갑니다.
Add a row into a table 을 입력하고 Excel Online (Business) 의 해당 액션을 선택한다.OneDrive for Business · Document Library OneDrive · File 은 폴더 아이콘으로 MissedEmail.xlsx 를 찾아 선택 · Table 은 tblMissedEmail.| 컬럼 | 넣을 것 | 어디서 |
|---|---|---|
| Date | utcNow() | 수식(Expression) 탭에 직접 입력 — 기록한 시각 |
| Subject | Subject | 동적 콘텐츠 (메일) |
| Sender | From | 동적 콘텐츠 (메일) |
| ReceivedTime | Received Time | 동적 콘텐츠 (메일) |
| Summary | Body preview ★ (Body 아님) | 동적 콘텐츠 (메일) — 본문 전문 대신 미리보기 |
| Action | 빈칸으로 둔다 | 실습 2에서 AI 출력으로 채운다 |
Body)이 아니라 Body preview인가 — ① 본문 전문은 HTML 덩어리라 서명·회신 이력·이미지 태그까지 통째로 담깁니다. ② 길수록 느리고, 실습 2에서 AI에 넣을 때 비용도 커집니다. ③ 외부로 나가는 본문 양 자체가 줄어듭니다 — 개인정보 측면에서도 안전한 쪽입니다.ISO 8601 로 둡니다. 날짜가 Excel에서 이상한 숫자로 보이는 것을 막아줍니다.
예약 트리거는 내일 아침까지 기다릴 필요가 없습니다. 손으로 즉시 돌려볼 수 있습니다.
| Excel 행 수 | Inbox_PM에 넣어둔 안 읽은 메일 수만큼 행이 늘었다 (3통이면 3줄) |
| Summary 컬럼 | 메일 본문 앞부분이 그대로 들어가 있다 — 요약이 아니라 미리보기다 |
| Action 컬럼 | 비어 있다 — 정상이다. 채우는 건 실습 2다 |
| Apply to each | Run history에서 이 카드를 열면 반복 회차별로 결과를 하나씩 볼 수 있다 |
바로 이어서 같은 Flow를 한 번 더 실행합니다. (Test → Manually → Run flow)
| 관찰 | 무슨 일이 일어났나 | 의미 |
|---|---|---|
| Excel에 아무것도 안 늘었다 | 1회차에서 Get emails가 메일을 가져가며 읽음 처리했다. 이제 "안 읽은 메일"이 0통이다 | Only Unread의 진짜 의미. 같은 메일을 두 번 기록하지 않는 장치가 이미 들어 있는 셈 |
실습 1은 여기까지 — 이 Flow는 완전히 규칙입니다. 몇 번을 돌려도 같은 메일을 같은 형태로 기록합니다. 그런데 Summary 칸을 다시 보세요. 본문 앞부분이 그대로 잘려 들어가 있고, Action 칸은 비어 있습니다. "읽어보고 두 줄로 요약하고, 할 일을 뽑아내는 일"만 규칙으로 못 합니다. 그 한 자리를 채우는 게 실습 2입니다.
실습 1에서 만든 Flow는 전부 규칙입니다. 시각이 되면, 안 읽은 메일만, 한 통씩, Excel에. 몇 번을 돌려도 결과가 같습니다. 그런데 Excel을 열어보면 Summary 칸에는 본문 앞부분이 잘려서 들어가 있고 Action 칸은 비어 있습니다. "읽어보고 판단하는 일"은 규칙으로 못 합니다. 이 실습에서 실습 1의 그 같은 Flow에 AI를 끼웁니다.
| 업무 상황 | 실습 1의 Excel을 보면 Summary가 본문 잘린 미리보기다. 요약과 할 일까지 정리된 행을 원한다 |
| 만들 것 | AI hub에서 프롬프트를 만들고 게시 → 실습 1의 Flow에 Run a prompt + Parse JSON 을 끼우고 → Excel의 Summary·Action을 AI 출력으로 교체 |
| 사용 커넥터 | AI Builder / Dataverse(프리미엄 ◆) · Control · Data Operation |
| 학습 포인트 | Run a prompt · Parse JSON · 프롬프트 엔지니어링 · 규칙 vs AI |
| 항목 | 내용 |
|---|---|
| 라이선스 | AI Builder는 Premium 기능입니다. AI Builder 크레딧이 있어야 액션이 실행됩니다. 없으면 Flow는 저장되지만 실행 시 실패합니다 |
| 확인 방법 | Power Automate 왼쪽 메뉴 → AI hub(또는 AI Builder)가 보이는지, 크레딧 잔량이 있는지 |
| 크레딧이 없다면 | 실습 1까지만 진행합니다. 실습 1은 표준 커넥터만으로 완성되며, 그것만으로 이번 주 학습 목표는 달성됩니다. 크레딧이 생기면 8-2부터 이어 하면 됩니다 |
| 데이터 거버넌스 | AI Builder에 넣는 텍스트는 AI 서비스로 전송됩니다. 고객·응답자 정보가 섞인 메일을 그대로 넣으면 안 됩니다. 실습은 반드시 가짜 데이터로 |
프롬프트는 AI hub에 저장되는 재사용 가능한 부품입니다 — 한 번 만들면 여러 Flow에서 갖다 씁니다. 만들 것은 "메일 제목·본문을 받아 요약·중요도·할 일을 JSON으로 뱉는" 프롬프트 하나입니다.
Run a prompt 액션에서 Create new prompt로 들어가도 같은 화면입니다.MissedEmail_Summary 로 한다.| 변수 이름 | 타입 | 샘플 값 (테스트용) |
|---|---|---|
| Subject | Text | 3차 실사 일정 조정 요청 |
| Body | Text | 서너 문장짜리 가짜 메일 본문 |
Subject, Body로 만듭니다. 아래 8-3 표가 이 이름을 전제로 적혀 있습니다. 이름이 다르면 Flow 화면의 입력칸 이름도 달라져서 문서와 어긋납니다.
«Subject» / «Body» 부분은 직접 타이핑하는 게 아니라 입력 변수 목록에서 클릭해 끼워 넣는다.| 장치 | 없으면 |
|---|---|
| 출력 형식을 JSON으로 못 박음 | AI가 "네, 요약해 드리겠습니다!" 같은 인사말부터 붙입니다. 그러면 Parse JSON이 통째로 실패합니다 |
| "코드펜스를 붙이지 마라"를 명시 | AI가 습관적으로 ```json 으로 감싸는 경우가 많습니다. 그 세 글자 때문에 더 이상 JSON이 아니게 됩니다 — 실습에서 가장 자주 나는 AI 오류 |
| importance를 세 값으로 제한 | "다소 중요함", "매우 긴급" 같은 표현이 매번 다르게 나와서 Condition으로 거를 수가 없습니다 |
이 세 줄이 프롬프트 엔지니어링의 실무 버전입니다. 화려한 기법이 아니라, 뒷단계가 받아먹을 수 있는 모양으로 출력을 고정시키는 것 — 자동화에 AI를 끼울 때 8할이 이 일입니다. Week 26에서 같은 문제를 system role과 구조화 출력으로 다시 다룹니다.
Run a prompt 드롭다운에 나타난다.PM_MissedEmail_Summary_{이니셜} → Edit.Add a row) 카드 바로 위의 +를 누른다 → Add an action.Run a prompt 를 입력하고 AI Builder 의 해당 액션을 선택한다.MissedEmail_Summary 를 고른다.| 프롬프트 입력 | 넣을 동적 콘텐츠 | 왜 |
|---|---|---|
| Subject | Subject (Apply to each 항목의 제목) | 제목만으로도 맥락이 상당히 잡힌다 |
| Body | Body preview ★ (Body 아님) | 본문 전문 대신 미리보기를 쓴다 — 아래 참고 |
Body가 아니라 Body preview인가AI_요약.
AI가 {"summary":"…","importance":"…","action":"…"} 를 돌려줬습니다. 그런데 Power Automate 입장에서 이건 그냥 긴 문자열 하나입니다. Excel의 Summary 칸에 요약만 넣으려면 문자열을 이름 있는 값들로 쪼개야 합니다. 그 일을 하는 액션이 Parse JSON입니다.
AI_요약 카드 아래에 Add an action → Parse JSON (Data Operation) 을 추가한다.responsev2 → predictionOutput → text)에 실제 생성된 텍스트가 들어 있습니다. 그걸 꺼내서 json( ) 으로 "문자열"에서 "구조"로 바꾸는 것입니다.AI_요약이 아닌 다른 이름으로 바꿨다면 식 안의 이름도 그 이름으로 맞춰야 합니다. 이름에 공백이 있으면 밑줄로 씁니다.
이걸 넣고 나면 이후 단계의 동적 콘텐츠 목록에 summary · importance · action 세 개가 따로따로 나타납니다. 그게 Parse JSON을 쓴 이유의 전부입니다.
Flow 구조는 그대로입니다. Excel 행 추가 카드에서 어떤 값을 넣을지만 바꿉니다.
Add a row into a table 카드를 연다.Body preview를 지우고(X 버튼), 동적 콘텐츠에서 Parse JSON 그룹 아래 summary 를 클릭해 넣는다.action 을 클릭해 넣는다.| Excel 컬럼 | 실습 1에서 (규칙) | 실습 2에서 (AI) |
|---|---|---|
| Summary | Body preview (본문 잘린 미리보기) | summary — Parse JSON 그룹 |
| Action | 빈칸 | action — Parse JSON 그룹 |
| 나머지 4개 컬럼 | 그대로 — 건드리지 않는다 | |
importance는 Excel 어디에도 안 들어갑니다. AI에게 시키고 Parse JSON으로 쪼개놓고는 안 쓰고 있는 것입니다. 일부러 이렇게 뒀습니다 — 아래 심화 ①에서 직접 붙여봅니다.
Inbox_PM의 메일을 읽지 않은 상태로 표시한다 — 안 그러면 Get emails가 0건을 가져와 아무 일도 일어나지 않는다.| Summary 컬럼 | 이전 실행의 "본문 잘린 미리보기" 대신 두 줄 요약문이 쌓였다 |
| Action 컬럼 | 비어 있던 칸에 할 일 한 줄이 들어왔다 |
| Parse JSON | Run history에서 Outputs를 열면 summary/importance/action이 따로 나뉘어 있다 |
메일을 다시 안 읽음으로 되돌리고 한 번 더 실행합니다. 그리고 실습 1에서 쌓인 행과 나란히 놓고 봅니다.
| 관찰 | 무슨 일이 일어났나 | 의미 |
|---|---|---|
| 같은 메일인데 요약 문장이 다르다 | 실습 1의 Flow는 Excel 행 추가를 몇 번을 돌려도 똑같이 했다. 같은 Flow에서 요약 문장만 매번 조금씩 달라진다 | 이게 규칙과 AI의 결정적 차이. 규칙은 재현되고, AI는 재현되지 않는다 |
이 차이가 곧 Week 24~26의 주제입니다. 왜 AI는 매번 다르게 답하는지, 그걸 어떻게 통제하는지(Temperature), 무엇은 구조적으로 안 되는지(할루시네이션).
그래서 오늘 만든 Flow의 Excel은 자동으로 처리된 결과가 아니라 사람이 아침에 훑어볼 초안입니다. 이 선을 어디에 긋느냐가 AI를 실무에 붙일 때의 핵심 판단입니다.
| 하고 싶은 것 | 방법 |
|---|---|
① 안 쓰고 있는 importance 살리기 |
Excel 표에 Importance 컬럼을 추가하고, Add a row 액션에 Parse JSON의 importance를 매핑한다. 가장 먼저 해볼 것 |
| ② 중요한 메일만 Teams로 알리기 | Excel 기록 아래에 Condition을 넣어 importance = 높음 일 때만 Teams 메시지를 보낸다 ← 규칙과 AI를 조합하는 실전 패턴 |
| ③ 읽음 처리 말고 다르게 표시 | Flag email (V2) 나 Move email (V2) 액션을 반복 안에 추가해 처리 완료 표시를 남긴다 |
| ④ 아침에 요약본을 메일로 받기 | 반복이 끝난 뒤(Apply to each 바깥)에 Send an email (V2) 를 붙인다. 본문 구성은 조금 까다롭다 — 집에서 이어가기 과제 |
실습 2에서 프롬프트 하나를 직접 만들어 Flow에 끼웠습니다. 이 섹션은 그 밖에 AI Builder로 할 수 있는 일들입니다.
다시 짚으면 — 실습 1의 Flow 뼈대는 전부 규칙입니다. "시각이 되면", "안 읽은 메일이면", "한 통씩". 규칙은 우리가 미리 다 적을 수 있는 일에만 통합니다. 그런데 실제 업무에는 이런 게 있습니다.
전부 "조건문으로 적을 수 없는" 판단입니다. AI Builder 는 이런 판단을 Power Automate의 액션 하나로 끼워 넣게 해줍니다.
| # | AI Builder 기능 | 우리 업무에서 | 난이도 | 모델 |
|---|---|---|---|---|
| ① | 텍스트 생성 (GPT 프롬프트) | 긴 이슈 메일을 3줄로 요약, 회신 초안 생성, 보고 문장 다듬기 | ★☆☆☆☆ | 사전 구축 |
| ② | 범주 분류 | 들어온 요청 메일을 일정변경 / 자료요청 / 품질이슈 / 기타로 자동 분류 | ★★★☆☆ | 사전 구축 + 사용자 지정 |
| ③ | 감정 분석 | 오픈 응답·클라이언트 피드백 메일의 긍·부정 판정 | ★☆☆☆☆ | 사전 구축 |
| ④ | 핵심 구 추출 | 긴 메일에서 키워드만 뽑아 Excel 로그의 태그 컬럼에 저장 | ★☆☆☆☆ | 사전 구축 |
| ⑤ | 언어 감지 | 다국가 프로젝트 메일을 언어별 담당자에게 라우팅 | ★☆☆☆☆ | 사전 구축 |
| ⑥ | 텍스트 인식 (OCR) | 스캔된 동의서·설문지 이미지에서 글자 추출 | ★★☆☆☆ | 사전 구축 |
| ⑦ | 문서 처리 | 양식이 정해진 문서(동의서·의뢰서)에서 지정한 필드만 추출해 Excel로 | ★★★★☆ | 사용자 지정 (학습 필요) |
| ⑧ | 인보이스 처리 | 벤더 견적서·인보이스에서 업체명·금액·일자 자동 추출 | ★★☆☆☆ | 사전 구축 |
사전 구축(prebuilt) 모델은 그냥 갖다 쓰면 됩니다. 사용자 지정(custom) 모델은 우리 문서 샘플을 몇 장 넣어 학습시켜야 합니다 — Week 24에서 Teachable Machine으로 해볼 그 "레이블 붙이고 학습시키기"와 정확히 같은 일입니다.
우리 팀에 가장 실효성이 큰 것은 ①·②·⑦ 세 개입니다.
①은 지금 바로 되고, ②는 요청 접수 자동 분류로 이어지고, ⑦은 종이·스캔 문서가 많은 업무에서 판을 바꿉니다.
| 하고 싶은 것 | 방법 |
|---|---|
| 요청 유형까지 분류하기 | 프롬프트 JSON에 "category" 키를 추가하고 일정변경 / 자료요청 / 품질이슈 / 기타 중 하나만 쓰게 못 박는다. Parse JSON 스키마에도 같이 추가 |
| 감정 분석 붙이기 | Analyze positive or negative sentiment 액션 추가. 부정이면 우선순위를 High로 기록 |
| 스캔 문서에서 글자 뽑기 | Recognize text in an image (OCR) 액션. 첨부파일을 입력으로 넣는다 |
| 양식 문서에서 필드만 뽑기 | AI hub에서 문서 처리 사용자 지정 모델을 만들고, 샘플 문서 5장 이상으로 학습시킨다 |
| 증상 | 가능한 원인 | 해결 |
|---|---|---|
| Excel에 1줄만 들어감 (메일은 여러 통인데) | 액션이 Apply to each 바깥에 있다 — 압도적 1위 원인 | Excel·AI·Parse JSON 카드가 회색 반복 상자 안쪽에 있는지 본다. 밖에 있으면 드래그해 안으로 옮긴다 |
| Get emails 결과가 0건 | ① 메일이 다 읽음 상태 ② 폴더를 잘못 지정 ③ 이미 한 번 돌려서 읽음 처리됨 | Outlook에서 Inbox_PM의 메일을 읽지 않은 상태로 표시 후 재실행. Run history에서 Get emails의 Outputs 건수를 확인 |
| Excel 파일/표가 목록에 안 보임 | 파일이 로컬 PC에 있거나, 데이터가 표(Table)가 아닌 범위임 | OneDrive/SharePoint에 저장하고 삽입 → 표 적용 |
| Excel 행 추가 실패 | 컬럼명 불일치, 또는 Excel 파일이 열려 있어 잠김 | 컬럼 6개 이름을 문서와 대조, Excel 파일을 닫고 재실행 |
| 예약 시각이 지났는데 안 돌았다 | Flow가 꺼져 있거나(Off), 저장 후 첫 실행 시각이 아직 안 옴 | My flows에서 상태가 On인지 확인. 기다리지 말고 Test → Manually로 즉시 돌린다 |
| 값이 안 들어가고 글자만 나옴 | 동적 콘텐츠를 손으로 타이핑함 | 반드시 패널에서 클릭해 넣는다 (파란 태그로 보여야 정상) |
| 시간이 9시간 어긋남 | utcNow() 는 UTC 기준 | convertTimeZone(utcNow(),'UTC','Korea Standard Time','yyyy-MM-dd HH:mm') |
| 증상 | 가능한 원인 | 해결 |
|---|---|---|
| Run a prompt 액션이 검색되지 않음 | 해당 환경에 AI Builder가 없음 | 왼쪽 메뉴에 AI hub가 보이는지 확인. 없으면 실습 2는 건너뛴다 (실습 1은 영향 없음) |
| 저장은 되는데 실행하면 AI 단계에서 실패 | AI Builder 크레딧 없음/소진 — 가장 흔한 원인 | 에러 메시지에 라이선스·크레딧 관련 문구가 있는지 확인 |
| 프롬프트가 드롭다운에 없음 | 만들고 Publish(게시)를 안 했다 | AI hub → Prompts에서 해당 프롬프트를 열어 게시한다 |
| Parse JSON 단계에서 실패 | AI가 JSON 아닌 것을 반환 — 인사말이 붙었거나 ```json 코드펜스로 감쌌다 | Run history에서 AI_요약의 Outputs를 열어 실제 출력을 본다. 중괄호로 시작하지 않으면 프롬프트(8-2)에 "JSON만 출력, 코드펜스 금지"를 더 강하게 적는다 |
Parse JSON에 Invalid type 오류 | AI가 값을 비워 null을 넣었는데 스키마는 문자열만 허용 | 스키마의 해당 속성을 "type": ["string","null"] 로 바꾸거나, 프롬프트에 "값이 없으면 빈 문자열"을 명시 |
동적 콘텐츠에 summary가 안 보임 | Parse JSON의 Schema가 비어 있거나 잘못됨 | 8-4의 Schema를 다시 붙여 넣고 저장한다 |
| 요약이 엉뚱하게 나오거나 서명·회신 이력이 섞임 | 입력에 Body(본문 전문 HTML)를 넣었다 | Run history에서 Inputs를 확인하고 Body preview 로 바꾼다 |
| 한국어 결과가 어색함 | 프롬프트가 영어이거나 언어 지정이 없음 | 프롬프트에 "한국어로 답하라"를 명시한다 |
| 출력 형식이 매번 다름 | 자연어 생성이라 원래 그렇다 | 프롬프트에 출력 형식을 더 못 박는다(JSON 키 이름·허용 값까지). 완전히 고정되지 않는다는 게 규칙과의 차이 — 8-7에서 관찰 |
교육용 Flow와 실제 운영 Flow는 다릅니다. 실무에 붙이기 전에 아래를 지킵니다.
| 원칙 | 권장 행동 |
|---|---|
| 실습 데이터 | 고객명·응답자 정보·계약/비용·개인정보는 절대 쓰지 않는다. 샘플 데이터만 |
| 환경 | 개인 학습·실험은 기본 환경으로 충분. 팀/부서 운영 자동화는 전용 환경 또는 공유 정책 확인 |
| 커넥터 | 표준 M365 커넥터 중심으로 시작. 외부·Premium 커넥터는 사전 승인 확인 |
| AI Builder — 데이터 | AI에 넣는 텍스트·이미지는 외부로 전송된다. 고객·응답자 정보가 담긴 메일 본문을 그대로 넣지 않는다. 실습 1이 Body 대신 Body preview를 쓰는 것도 보내는 양을 줄이는 선택이다. 실무에 붙일 때는 대상 폴더를 좁혀 어떤 메일이 AI로 가는지를 스스로 통제한다 |
| AI Builder — 크레딧 | 메일 1통당 프롬프트 1회가 소모된다. 안 읽은 메일이 200통이면 한 번 실행에 200회다. Top 값으로 상한을 두고(실습은 10), 실행 주기를 필요 이상으로 짧게 잡지 않는다 |
| 소유권 | 운영 Flow는 소유자 2명 이상 또는 백업 담당자 지정. 만든 사람이 휴가 가면 아무도 못 고친다 |
| 명명 규칙 | 팀_업무_목적_소유자 — 예: PM_MissedEmail_Summary_CL |
| 테스트 | 실제 고객·프로젝트 채널로 보내기 전에 테스트 채널에서 검증 |
| 정리 | 교육 후 안 쓰는 테스트 Flow와 Connection은 정리한다 |
실무에 올리기 전 스스로 물어봅니다.
교육이 실제 적용으로 이어지는 연결고리는 이 한 장입니다. 반복되는 내 업무 3개를 적고 네 칸으로 쪼갭니다.
| 내 반복 업무 | 언제 시작되나 Trigger |
어떤 조건이 있나 Condition |
무엇을 자동으로 할까 Action |
성공 결과 Output |
|---|---|---|---|---|
| 내 반복 업무 | Trigger | Condition | Action | Output |
|---|---|---|---|---|
| 놓친 메일 훑기 | 매일 오전 10시 | 안 읽은 메일만 | AI 요약 + Excel 기록 | 아침에 한 장으로 파악 |
| 주간 리포트 취합 | 매주 금요일 오후 | 없음 | 흩어진 시트를 한 장으로 취합해 Teams 공유 | 발표 준비 시간 절감 |
| 일일 운영 체크 | 매일 오전 9시 | 없음 | Teams 채널에 체크리스트 게시 | 점검 누락 방지 |
| 업무 영역 | 자동화 아이디어 | 기대 효과 | 주의점 |
|---|---|---|---|
| 프로젝트 착수 | Kick-off 후 체크리스트를 Teams로 자동 발송, Excel에 담당자·기한 기록 | 초기 누락 감소 | 고객·예산 정보 제외 |
| 실사 운영 | Fieldwork 일정 변경·응답률 이슈 메일을 자동 분류해 담당자 알림 | 대응 속도 개선 | 실제 고객 채널 알림 전 테스트 |
| DP/코딩 | 데이터·오픈코딩 완료 메일 수신 시 로그 생성 + 다음 담당자 알림 | handoff 표준화 | 첨부파일 저장 위치 확인 |
| QC/개인정보 | 파기 확인서·DPIA 요청·증빙 요청 메일을 추적표에 자동 등록 | 보안 업무 추적성 향상 | 민감정보 저장 최소화 |
| 보고/납품 | Status가 Done이면 완료 보고 메일 초안 생성 | 반복 커뮤니케이션 감소 | 자동 발송보다 검토 후 발송 |
importance를 Excel 컬럼으로 살리는 것 — 5분이면 되고, Parse JSON이 무엇을 해줬는지가 확실해진다.When a new email arrives (V3) 트리거로 메일이 오는 즉시 Teams 알림을 보내본다.오늘 이후 어디로 갈지의 지도입니다. 한 번에 다 하지 않습니다.
| 시점 | 학습 주제 | 추천 실습 |
|---|---|---|
| 입문 직후 1주 | 템플릿 수정, 조건, 동적 콘텐츠, Run history | 메일을 조건으로 분류해 Excel/Teams에 기록 |
| 2~3주 | 변수, 날짜 함수, 오류 처리(Configure run after), Filter array | 첨부파일 자동 저장, 일일 운영 리포트 메일 발송 |
| 1개월 | 팀 Flow 공유, 소유자 관리, 실행 이력 모니터링 | 우리 팀의 반복 업무 하나를 팀 공유 Flow로 전환 |
| 2개월 | Word/Excel 문서 자동화, SharePoint Lists 전환 | 완료 보고서·확인서 자동 초안 생성 |
| AI 트랙 | AI Builder 사전 구축 모델(요약·감정·분류·OCR) | 이슈 메일 자동 요약·분류, 스캔 동의서 텍스트 추출 |
| AI 트랙 심화 | AI Builder 사용자 지정 모델(문서 처리) 학습 | 우리 양식 문서에서 지정 필드만 뽑아 Excel로 |
| 심화 | Dataverse, custom connector, HTTP, Premium 커넥터 | 운영 시스템 연계 자동화 |
| 이번 내용 | 연결 |
|---|---|
| 워크플로우·노드·분기 | 복습 · W5 · W7 Make.com·n8n에서 이미 한 것. Power Automate는 그 M365 사내 환경판. 개념이 아니라 붙는 서비스가 다르다 |
| 자동화로 반복 업무 없애기 | 복습 · W15 · W16 팀원들이 중간 점검에서 공유한 "루틴 업무를 자동화로 대체" 사례들. 오늘은 그걸 코드 없이 하는 방법 |
| 커넥터로 서비스 연결 | 복습 · W3 API를 "식당 웨이터"로 배웠다. 커넥터는 그 API를 클릭으로 쓰게 포장한 것 |
| 조건 분기 | 복습 · W7 n8n의 IF 노드와 같다 |
| AI Builder로 요약·분류 시키기 | 복습 · W1 · W6 AI Agent와 LLM을 개념으로 배웠다. 오늘은 그 AI를 업무 흐름 한가운데에 액션으로 끼워 넣는다 |
| AI에게 시키는 프롬프트 | 복습 · W9 · W10 Plan 모드·Vibe 코딩에서 프롬프트를 써봤다. AI Builder의 Instructions 칸도 같은 프롬프트다 |
| 여러 건을 하나씩 반복 처리 | 복습 · W7 n8n에서 아이템이 여러 개일 때 노드가 각각 도는 것을 봤다. Apply to each가 그것을 눈에 보이는 상자로 만든 것 |
| AI 출력을 JSON으로 받아 쪼개기 | 복습 · W3 API 응답이 JSON이었다. Parse JSON은 그 JSON에서 필요한 값만 꺼내 쓰는 것 — Week 19에서 코드로 다시 한다 |
| Trigger · Action · Dynamic content Run history · Scheduled flow · Apply to each Parse JSON · AI Builder | NEW |
오늘 만든 Flow는 클릭만으로 완성됐습니다. 코드를 한 줄도 쓰지 않았습니다. 그런데 조금만 복잡해지면 곧 벽에 부딪힙니다.
마지막 두 개가 특히 중요합니다. AI Builder를 붙이는 순간 우리는 결과가 매번 조금씩 달라지는 시스템을 갖게 됐습니다. 같은 Flow 안에서도 Excel 행 추가는 몇 번을 돌려도 똑같았는데, 요약 문장만 매번 달랐습니다. 그 물건이 무엇인지 모르면 어디까지 맡겨도 되는지도 판단할 수 없습니다.
AI는 왜 매번 다르게 답하는가? 무엇을 통제할 수 있고 무엇은 구조적으로 안 되는가?
우리 회사 문서를 AI에게 알려주려면 무엇이 필요한가?
그리고 내가 원하는 화면과 저장소를 직접 만들려면 무엇을 알아야 하는가?
다음 주부터 12주간 그 답을 쌓습니다. 웹이 어떻게 굴러가는지(W18~23), AI가 어떻게 판단하는지(W24~26), 우리 문서를 이해하는 챗봇을 어떻게 만드는지(W27~28), 그리고 루프와 분기를 가진 시스템으로 어떻게 올라가는지(W29).
특히 Week 29에서 오늘의 그림이 그대로 다시 나옵니다.
LangGraph의 노드와 엣지는 오늘 배운 Action과 조건과 같은 발상이고, LangSmith는 오늘 배운 Run history의 AI 버전입니다.
오늘 손으로 익힌 감각이 12주 뒤에 그대로 쓰입니다.
Inbox_PM(안 읽은 메일 3~4통), OneDrive에 저장한 MissedEmail.xlsx, 테스트 Teams 채널(심화에서만)