Lab 3. 토픽과 HITL 🧭

이번 랩 완성물: 항목과 수량을 받아 확인 카드로 확정받고 흐름을 부르는 토픽, 경조신청 목록을 사유별로 조회하는 에이전트 흐름

예상 시간: 50분

완성 신호: 확정을 누르면 신청내역에 한 줄이 추가되고, 취소를 누르면 추가되지 않는다

50분 타이머. 4단(토픽 부르기 → 입력 받기 → 확인 카드 → 목록 조회 흐름)으로 나눠 진행합니다.


준비

  • Lab 2까지 마친 복리후생 안내 도우미에 이어서 작업합니다.
  • Lab 2 32번의 흐름 자기계발비 신청 처리 HGD가 게시되어 있어야 합니다.

단계 ① 토픽을 만들고 설명을 쓴다

  1. 화면 상단 메뉴에서 토픽을 열고 토픽 추가 → 새로 시작을 선택합니다.

    메뉴가 +8 같은 묶음 안에 들어가 있을 수 있습니다.

  2. 좌측 상단의 토픽 이름을 아래로 바꿉니다. 토픽 이름에는 이니셜을 붙이지 않습니다.

     자기계발비 신청
    
  3. 트리거 노드의 「토픽이 수행하는 작업 설명」 칸에 아래를 입력합니다.

     자기계발비 신청을 접수한다. 항목과 수량을 받아 확인을 거친 뒤 신청내역에 기록한다. 자기계발비를 신청하겠다는 요청에 사용한다.
    

    트리거 문구를 나열하는 칸이 없습니다. 이 토픽이 언제 불릴지는 이 설명문으로 정해집니다.

  4. 트리거 노드 아래 + 에서 메시지 보내기를 넣고, 아래를 입력한 뒤 우측 상단 저장을 누릅니다.

     자기계발비 신청 토픽이 시작되었습니다.
    
  5. 새 테스트 세션에서 두 질문을 차례로 합니다.

     자기계발비 신청하고 싶어요
    
     자기계발비는 1년에 얼마까지 지원돼?
    

    3번 설명은 신청 접수만 적었으므로 한도 질문에는 지식이 답합니다.

  6. 개요 화면의 지침에서 두 군데를 고치고 저장합니다.

    • 맨 아래 [자기계발비 신청 처리] 블록(Lab 2 24번)을 통째로 지웁니다.
    • 「답변 원칙」의 마지막 줄(Lab 2 45번)을 지우고, 대신 아래 한 줄을 넣습니다.
     - 자기계발비 신청은 /자기계발비 신청 토픽으로 수행한다.
    

    /자기계발비 신청 부분은 / 를 입력해 뜨는 목록에서 고릅니다.

  7. 새 테스트 세션에서 다시 신청합니다.

     도서구입으로 자기계발비 신청할게요
    

단계 ② 입력을 받는다

  1. 4번의 메시지 노드를 ⋯ → 삭제로 지웁니다. 트리거 아래 + 에서 질문하기를 넣고 질문 문구에 아래를 입력합니다.

     어떤 항목을 신청하시나요?
    
  2. 식별 항목을 다중 선택 옵션으로 바꾸고, 사용자에 대한 옵션에 선택지 다섯 개를 넣습니다.

     도서구입
     온라인 강의
     어학시험 응시료
     자격증 응시료
     외부 세미나
    

    선택지는 지원기준 표의 항목명과 글자가 같아야 합니다. Lab 2 36번의 필터 쿼리가 이 값으로 행을 찾습니다.

  3. 캔버스를 아래로 내려 선택지마다 자동으로 생긴 조건 갈래를 ⋯ → 삭제로 모두 지웁니다.

  4. 다음 이름으로 사용자 응답 저장 칸의 var1을 아래로 바꿉니다.

    항목명
    
  5. 질문 노드 아래 + 에서 질문하기를 하나 더 넣습니다. 질문 문구는 아래이고, 식별숫자, 변수 이름은 수량입니다.

    몇 건 신청하시나요?
    
  6. 12번 노드 아래에 메시지 보내기를 넣고, 도구 모음의 {x} 로 두 변수를 넣어 아래 문장을 만든 뒤 저장합니다.

    (항목명) (수량)건을 확인합니다.
    

    타이핑한 {항목명} 은 글자로 들어갑니다. {x} 로 넣어야 변수에 연결됩니다.

  7. 새 테스트 세션에서 신청합니다.

    자기계발비 신청할게요
    
  8. 두 질문 노드의 변수 칸에서 {x} 항목명, {x} 수량 을 각각 눌러 변수 속성을 열고 다른 토픽에서 값 수신을 켭니다. 이어서 3번 설명 끝에 한 줄을 더하고 저장합니다.

    항목명은 "도서구입", "온라인 강의", "어학시험 응시료", "자격증 응시료", "외부 세미나" 중 하나로 처리한다.
    

    질문 노드는 변수가 비어 있을 때만 묻습니다. 값 수신을 켜고 설명에 값의 목록을 적어야 오케스트레이터가 값을 미리 채웁니다.

  9. 새 테스트 세션에서 값을 미리 담아 두 번 신청합니다.

    어학시험 응시료 2건 자기계발비 신청할게요
    
    자기계발비로 책 3권 신청할게요
    

    뒤 요청은 항목을 다시 물을 수 있습니다.

단계 ③ 확인 카드로 확정받는다

  1. 13번 메시지 노드 아래 + 에서 적응형 카드로 질문을 넣습니다. 노드 속성에서 적응형 카드 편집을 누르고 카드 페이로드 편집기에 아래를 붙여넣은 뒤 저장합니다.

    {
      "type": "AdaptiveCard",
      "version": "1.5",
      "body": [
        { "type": "TextBlock", "text": "자기계발비 신청 확인", "weight": "Bolder", "size": "Medium" },
        { "type": "FactSet", "facts": [
          { "title": "항목", "value": "${항목명}" },
          { "title": "수량", "value": "${수량}" }
        ]}
      ],
      "actions": [
        { "type": "Action.Submit", "title": "확정", "data": { "actionSubmitId": "확정" } },
        { "type": "Action.Submit", "title": "취소", "data": { "actionSubmitId": "취소" } }
      ]
    }
    
  2. 노드 속성의 형식JSON에서 수식 으로 바꾸고, 값 두 칸을 아래처럼 고쳐 씁니다.

    { title: "항목", value: Text(Topic.항목명) },
    { title: "수량", value: Text(Topic.수량) }
    

    여기에는 {x} 버튼이 없습니다. Topic. 접두사를 붙여 이름을 직접 씁니다. 항목명choice, 수량은 숫자라서 둘 다 Text() 로 감쌉니다.

  3. 카드 노드 아래의 출력 변수를 봅니다.

    출력 변수가 비어 있으면 노드 속성의 「스키마 편집」에서 actionSubmitId를 문자열로 추가합니다. 버튼이 눌린 값을 받을 변수가 없으면 23번 조건을 만들 수 없습니다.1

  4. 새 테스트 세션에서 16번 앞 요청을 다시 보냅니다.

  5. 카드의 취소를 누릅니다.

  6. 도구 탭에서 자기계발비 신청 처리 HGD 를 눌러 에이전트에서 삭제합니다. 흐름 자체는 남습니다.

    도구로 남겨 두면 오케스트레이터가 흐름을 직접 부를 수 있고, 그러면 카드를 거치지 않고 기록됩니다.

  7. 토픽으로 돌아가 카드 노드 아래 + 에서 조건 추가를 넣습니다. 왼쪽 칸에 actionSubmitId, 비교는 다음과 같음, 값은 아래로 둡니다.

    확정
    
  8. 조건 갈래 안에서 +도구 추가를 누르고, 흐름 탭에서 자기계발비 신청 처리 HGD를 고릅니다. 입력 세 칸을 아래처럼 채웁니다.

    입력
    항목명 수식 Text(Topic.항목명)
    수량 변수 Topic.수량
    이메일 시스템 변수 User.Email
  9. 흐름 노드 아래에 메시지 보내기를 넣고 {x}결과를 넣습니다. 기타 모든 조건 갈래에는 메시지 보내기로 아래를 넣고 저장합니다.

    신청을 취소했습니다. 기록하지 않았습니다.
    
  10. 새 테스트 세션에서 두 번 신청합니다.

    온라인 강의 1건 자기계발비 신청할게요
    

    첫 번째 카드는 확정, 같은 요청을 한 번 더 보내 두 번째 카드는 취소를 누릅니다.

  11. 새 테스트 세션에서 여러 건을 한 번에 요청합니다.

    다섯 항목을 각 1건씩 전부 신청해줘
    

    관찰: 카드가 몇 번 뜨는지, 되묻는지 확인한다.

    기록은 확정을 누른 건수만큼 추가됩니다.

단계 ④ 흐름으로 목록을 조회한다

  1. 도구 추가의 위쪽 새로 만들기에서 에이전트 흐름을 고릅니다. 초안 저장을 먼저 누르고 이름을 아래로 바꿉니다.

    경조 신청 사유별 조회 HGD
    
  2. 트리거의 매개 변수 탭에서 입력 추가로 텍스트 입력을 하나 만듭니다.

    이름 형식 설명
    사유 텍스트 조회할 경조 사유를 입력하세요
  3. 트리거 아래 + 에서 SharePoint항목 가져오기를 넣습니다. 사이트 주소는 Lab 1의 사이트, 목록 이름경조신청_HGD입니다.

  4. 고급 매개 변수에서 필터 쿼리최대 개수를 켭니다. 필터 쿼리의 작은따옴표 안쪽에 29번의 사유 입력을 넣고, 최대 개수는 20으로 둡니다.

    사유 eq '(입력: 사유)'
    

    필터 쿼리의 왼쪽은 열의 내부 이름입니다. 화면에 보이는 열 이름과 다를 수 있습니다. 목록 설정에서 열을 눌렀을 때 주소의 Field= 뒤가 내부 이름입니다.2

  5. 아래 + 에서 데이터 작업선택을 넣습니다. 보낸 사람에 30번 액션의 body/value를 넣고, 매핑에 다섯 줄을 만듭니다.

    신청자 신청자
    원문 원문
    사유 사유
    경조금 경조금
    경조휴가 경조휴가

    흐름이 에이전트에게 넘기는 칸은 이 다섯 개입니다.

  6. 응답 노드를 맨 아래로 옮기고, 출력 결과(텍스트)의 값에 아래를 붙여넣습니다. 초안 저장게시합니다.

    string(body('선택'))
    
  7. 에이전트의 도구 탭에서 도구 추가흐름 탭으로 28번의 흐름을 추가하고 설명을 아래로 씁니다.

    경조사 신청 기록을 사유별로 조회한다. 사유는 "본인 결혼", "자녀 결혼", "배우자 출산", "본인·배우자 부모상", "조부모·형제자매상", "규정 없음" 중 하나로 넣는다.
    
  8. 도구 목록에서 Lab 2 22번의 경조 신청 조회사용 설정을 끕니다.

  9. 새 테스트 세션에서 물어봅니다.

    규정 없음으로 들어온 경조 신청 보여줘
    
  10. 표현을 바꿔 물어봅니다.

    외할머니 돌아가신 건 신청 들어온 거 있어?
    

    외할머니 상은 사유 조부모·형제자매상에 해당합니다.


확인

필수: 여기까지 되면 이 랩은 통과입니다

  • ① 신청 요청에는 토픽이, 한도 질문에는 지식이 답한다 (5번)
  • ② 지침 한 줄로 신청을 토픽에 연결했다 (6·7번)
  • ③ 항목과 수량을 변수로 받고, 값을 미리 말하면 질문을 건너뛴다 (14·16번)
  • ④ 확인 카드에 항목과 수량이 채워진다 (20번)
  • ⑤ 확정은 흐름을 불러 한 줄을 기록하고, 취소는 기록하지 않는다 (26번)
  • ⑥ 흐름이 필터 쿼리로 사유가 맞는 기록만 돌려준다 (36번)
  • ⑦ 사용자의 표현이 사유 값 여섯 가지 중 하나로 바뀌어 흐름에 들어간다 (37번)

관찰: 나오면 좋고, 안 나와도 실패가 아닙니다

  • ⑧ 「책 3권」이 도서구입으로 채워지는가 (16번)
  • ⑨ 여러 건을 한 번에 요청하면 카드가 몇 번 뜨는가 (27번)

여기까지의 지침

Lab 2 상태에서 두 군데가 바뀌었습니다. [자기계발비 신청 처리] 블록과 이메일 줄을 지우고, 「답변 원칙」 마지막에 토픽 한 줄을 넣었습니다(6번).

## 역할
한별소프트 임직원의 복리후생·근태 문의를 안내하는 사내 도우미. 한국어로 간결·정중하게, 업로드된 지식 문서에 근거해 답하고 없는 내용은 단정하지 않는다.

## 답변 원칙
- 반드시 업로드된 지식 문서만 근거로 답한다.
- 답변 끝에 근거 문서 이름을 한 줄로 표기한다. 예: (근거: 복리후생 제도 개요)
- 금액·일수·기한은 문서에 적힌 수치를 그대로 쓴다. 반올림·일반화하지 않는다.
- 두 문서에 걸친 질문이면 둘을 결합해 답하고 근거 문서를 둘 다 표기한다.
- 자기계발비 신청은 /자기계발비 신청 토픽으로 수행한다.

## 경계
- 개인의 실제 데이터(내 잔여 연차, 내 별포인트 잔액, 내 급여)는 알 수 없다. 숫자를 추정하지 말고 "한별포털에서 확인하거나 피플팀(내선 1000)으로 문의해 주세요"라고 안내한다.
- 문서에 없는 내용은 지어내지 않는다. "제공된 문서에서 찾을 수 없습니다"라고 답한다.
- 규정의 해석·예외 적용 여부는 단정하지 않는다. 판단이 필요한 사안은 피플팀 확인으로 넘긴다.

/자기계발비 신청은 화면에서 입니다. 통째로 붙여넣으면 글자가 되므로, 그 줄만 / 를 다시 입력해 목록에서 고릅니다.


출처

  1. Ask with Adaptive Cards https://learn.microsoft.com/microsoft-copilot-studio/authoring-ask-with-adaptive-card. Microsoft Learn. 

  2. In-depth analysis into Get items and Get files SharePoint actions for flows in Power Automate https://learn.microsoft.com/sharepoint/dev/business-apps/power-automate/guidance/working-with-get-items-and-get-files. Microsoft Learn. 


이 사이트의 소스는 GitHub에 있습니다. Just the Docs 테마로 만들었습니다.