> ## Documentation Index
> Fetch the complete documentation index at: https://developers.argosidentity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 워크플로우 생성하기

> 처음부터 Omni 워크플로우를 생성하는 단계별 가이드입니다.

이 가이드는 Omni 대시보드에서 워크플로우를 생성하는 과정을 안내합니다. 워크플로우는 분석을 실행할 때마다 Omni가 적용하는 검증 로직(정책, 엔진, 출력 형식)을 정의합니다.

## 사전 준비

시작하기 전에 다음 사항을 확인하세요:

* 대시보드 접근 권한이 있는 ARGOS Omni 계정
* 대시보드에서 생성된 프로젝트 ([프로젝트 관리 참조](/ko/omni/dashboard/project-management))
* 설정 후 분석을 실행하기 위한 API 키 ([인증 참조](/ko/omni/getting-started/authentication))

<Note>
  각 프로젝트는 최대 **10개의 워크플로우**를 지원합니다. 더 필요한 경우 추가 프로젝트를 생성하세요.
</Note>

## 워크플로우 생성 단계

워크플로우 생성은 대시보드에서 네 단계로 이루어집니다. 각 단계는 이전 단계를 기반으로 합니다.

<Steps>
  <Step title="1단계: 기본 정보">
    워크플로우에 **이름**과 선택적 **설명**을 입력하는 것으로 시작합니다.

    * **이름** — 워크플로우를 식별하는 짧고 설명적인 레이블입니다 (예: "Invoice Review", "Vendor KYB Check"). 대시보드와 API 응답에서 워크플로우를 식별하는 데 사용됩니다.
    * **설명** — 이 워크플로우가 수행하는 작업에 대한 간략한 요약입니다. 팀 참조용으로만 사용되며 Omni의 문서 처리 방식에는 영향을 미치지 않습니다.

    <Frame caption="1단계: 워크플로우 이름과 설명을 입력합니다.">
      <img src="https://mintcdn.com/argosidentity/7l1n9Ki4cvQVRdUJ/images/omni/ko/workflow-step1-filled.png?fit=max&auto=format&n=7l1n9Ki4cvQVRdUJ&q=85&s=e9a3063dae4ffa887307a78e714ddb3b" alt="워크플로우 생성 1단계 - 기본 정보" width="1918" height="958" data-path="images/omni/ko/workflow-step1-filled.png" />
    </Frame>

    <Tip>
      문서 유형과 검증 목적을 반영하는 명명 규칙을 사용하세요. 예: "Invoice - Amount Validation" 또는 "KYB - Business Registration". 이렇게 하면 프로젝트 내 여러 워크플로우를 관리하기가 쉬워집니다.
    </Tip>
  </Step>

  <Step title="2단계: 정책 정의">
    Omni가 무엇을 검증해야 하는지 설명하는 **자연어 정책**을 작성합니다. 이것은 워크플로우의 핵심으로, AI 에이전트에게 무엇을 확인하고, 무엇을 추출하며, 어떻게 결정을 내릴지 알려줍니다.

    정책에는 다음이 포함되어야 합니다:

    * 예상하는 문서 유형
    * 구체적인 검증 단계 (무엇을 확인할 것인지)
    * 승인/거부 기준 (승인과 거부를 구분하는 조건)

    **정책 예시:**

    ```text theme={null}
    Verify the submitted invoice by:
    1. Extracting the vendor name, invoice number, date, and total amount
    2. Checking that all required fields are present and non-empty
    3. Validating that the invoice date is not in the future
    4. Cross-checking that line item totals match the stated total amount
    5. Approve if all checks pass; reject if any critical field is missing or amounts do not match
    ```

    <Frame caption="2단계: 자연어로 검증 정책을 작성합니다.">
      <img src="https://mintcdn.com/argosidentity/7l1n9Ki4cvQVRdUJ/images/omni/ko/workflow-step2-filled.png?fit=max&auto=format&n=7l1n9Ki4cvQVRdUJ&q=85&s=3e6beeef6ed19cb51756889050f74577" alt="워크플로우 생성 2단계 - 정책 정의" width="1918" height="958" data-path="images/omni/ko/workflow-step2-filled.png" />
    </Frame>

    <Warning>
      모호한 정책은 모호한 결과를 생성합니다. 어떤 문서를 예상하는지, 어떤 필드를 확인할 것인지, 승인 기준이 무엇인지 구체적으로 작성하세요. 자세한 모범 사례는 [정책 작성 가이드](/ko/omni/guides/policy-writing-guide)를 참조하세요.
    </Warning>
  </Step>

  <Step title="3단계: 엔진 선택">
    정책을 기반으로 Omni가 활성화할 AI 엔진을 자동으로 제안합니다. 제안을 검토하고 필요에 따라 엔진을 켜거나 끄세요.

    **현재 사용 가능한 엔진:**

    | 엔진                        | 기능                                                         |
    | ------------------------- | ---------------------------------------------------------- |
    | **AML Search - Person**   | 글로벌 AML/제재 감시 목록에 대해 개인을 심사합니다 (외부 데이터베이스 조회)              |
    | **Text Verifier - Glove** | 텍스트를 추출하고, 필드를 검증하며, 문서 간 데이터를 교차 확인합니다 (RAG 기반, 외부 조회 없음) |

    <Frame caption="3단계: 정책에 맞게 추천된 엔진을 검토하고 토글합니다.">
      <img src="https://mintcdn.com/argosidentity/7l1n9Ki4cvQVRdUJ/images/omni/ko/workflow-step3-engine.png?fit=max&auto=format&n=7l1n9Ki4cvQVRdUJ&q=85&s=c8f8e922b580e6bd90cbac1d9c137084" alt="워크플로우 생성 3단계 - 엔진 선택" width="1918" height="958" data-path="images/omni/ko/workflow-step3-engine.png" />
    </Frame>

    <Tip>
      대부분의 경우 자동 제안이 정확합니다. 정책에 감시 목록 대비 이름 심사가 언급되어 있으면 AML Search가 제안됩니다. 정책이 문서 추출 및 검증에 초점을 맞추면 Text Verifier가 제안됩니다. 언제든지 수동으로 조정할 수 있습니다.
    </Tip>
  </Step>

  <Step title="4단계: 출력 스키마">
    반환받을 결과의 **JSON 구조**를 정의합니다. 이를 통해 분석 후 Omni가 반환할 정확한 형식(필드 이름, 데이터 유형, 구조)을 지정합니다.

    **출력 스키마 예시:**

    ```json theme={null}
    {
      "invoice": {
        "vendorName": "string",
        "invoiceNumber": "string",
        "date": "string",
        "totalAmount": "number",
        "lineItems": ["string"]
      },
      "validation": {
        "allFieldsPresent": "boolean",
        "amountsMatch": "boolean",
        "dateValid": "boolean"
      },
    "decision": {
      "result": "APPROVE | REJECT | MANUAL_REVIEW",
      "verificationStatus": "pending_review | approved | rejected",
      "reasons": ["string"]
    }
    }
    ```

    <Frame caption="4단계: JSON 형식으로 출력 스키마를 정의합니다.">
      <img src="https://mintcdn.com/argosidentity/7l1n9Ki4cvQVRdUJ/images/omni/ko/workflow-step4-schema-code.png?fit=max&auto=format&n=7l1n9Ki4cvQVRdUJ&q=85&s=77094f39d3ad33716117627f1db0321c" alt="워크플로우 생성 4단계 - 출력 스키마" width="1918" height="958" data-path="images/omni/ko/workflow-step4-schema-code.png" />
    </Frame>

    <Note>
      항상 결과 필드, `verificationStatus`, 사유 배열이 포함된 **결정 블록**을 포함하세요. 이를 통해 다운스트림 시스템에서 자동 라우팅이 가능해집니다. 자세한 내용은 [출력 스키마 문서](/ko/omni/dashboard/workflow-setup/output-schema)를 참조하세요.
    </Note>
  </Step>
</Steps>

## 정책·Item·JSON 출력 스키마의 용어 일치

특정 **전문 용어**나 **검증 대상(문서 유형 등)** 을 다룰 때는 아래 세 곳에서 **같은 표현**을 쓰는 것이 중요합니다.

| 구분                     | 설명                                       |
| ---------------------- | ---------------------------------------- |
| **정책 문서**              | 자연어 정책에 적힌 문서명·대상 명칭                     |
| **Item 이름**            | 프로필에 문서를 올릴 때 부여하는 항목 이름( API의 `name` 등) |
| **JSON output schema** | 출력 구조 및 필드 설명·context에 쓰는 용어             |

예를 들어 정책에서 「사업자등록증」을 검토한다고 명시했다면, Item을 등록할 때도 동일하게 「사업자등록증」으로 이름을 맞추고, 출력 스키마에서 해당 문서나 검증 결과를 가리키는 필드·설명에도 같은 명칭을 사용하세요. 이렇게 해야 에이전트가 정책·업로드 문서·출력 해석을 일관되게 연결할 수 있습니다.

고객이 지정한 **JSON output schema** 안에서는, 특정 값(예: `document_validation: true`)에 붙는 **설명·context**에도 위와 동일한 명칭을 사용하는 것이 좋습니다. 예: 「사업자등록증」에 대해 법인명·주소·대표자 등 **그 문서에 있어야 할 정보가 충분한지**를 판단한다는 뜻이 스키마 설명에 드러나도록 맞춥니다.

<Warning>
  실제로 검증을 진행할 때 **각 Item을 넣을 때마다** `item.name`(또는 API에서 Item을 만들 때 지정하는 **이름** 필드)을 **정책 문서의 용어**와 **JSON 설정(출력 스키마)에서 쓰는 명칭**과 **동일하게** 맞추세요. 이 세 축이 어긋나면 에이전트가 문서와 필드를 잘못 연결할 수 있습니다.
</Warning>

## 생성 후

네 단계를 모두 완료하면 워크플로우를 사용할 준비가 됩니다. 대시보드의 워크플로우 상세 페이지에서 확인하고 관리할 수 있습니다.

<Frame caption="구성된 정책, 엔진, 스키마를 보여주는 워크플로우 상세 페이지입니다.">
  <img src="https://mintcdn.com/argosidentity/7l1n9Ki4cvQVRdUJ/images/omni/ko/workflow-detail.png?fit=max&auto=format&n=7l1n9Ki4cvQVRdUJ&q=85&s=af62542581836bb208486ed27ff19419" alt="워크플로우 상세 페이지" width="1918" height="958" data-path="images/omni/ko/workflow-detail.png" />
</Frame>

### API를 통한 워크플로우 사용

워크플로우가 생성되면 다음 흐름에 따라 검증을 실행합니다:

<Steps>
  <Step title="프로필 생성">
    각 검증 케이스(예: 하나의 인보이스, 하나의 벤더)는 워크플로우 아래에 자체 프로필을 갖습니다.

    ```bash theme={null}
    curl -X POST "http://client-omni-api.argosidentity.com/v1/workflows/{workflowId}/profiles" \
      -H "x-api-key: your-api-key-here" \
      -H "Content-Type: application/json" \
      -d '{"name": "Invoice #1234 - Acme Corp"}'
    ```
  </Step>

  <Step title="문서 업로드">
    검증할 문서를 프로필의 폴더에 업로드합니다.

    ```bash theme={null}
    curl -X POST "http://client-omni-api.argosidentity.com/v1/folders/{folderId}/items/upload" \
      -H "x-api-key: your-api-key-here" \
      -F "file=@/path/to/invoice.pdf" \
      -F "type=file"
    ```
  </Step>

  <Step title="ACTIVE 상태 대기">
    업로드된 모든 문서가 `ACTIVE` 상태에 도달할 때까지 항목 상태를 폴링합니다. 이는 OCR 및 텍스트 추출이 완료되었음을 의미합니다.

    ```bash theme={null}
    curl -X GET "http://client-omni-api.argosidentity.com/v1/profiles/{profileId}/items/status" \
      -H "x-api-key: your-api-key-here"
    ```

    <Tip>
      **1초 간격**으로 **60초 타임아웃**을 설정하여 폴링하세요. 모든 항목이 `ACTIVE` 상태가 되기 전에 분석을 실행하지 마세요.
    </Tip>
  </Step>

  <Step title="분석 실행">
    분석을 실행합니다. Omni가 정책, 엔진, 출력 스키마를 자동으로 적용합니다.

    ```bash theme={null}
    curl -X POST "http://client-omni-api.argosidentity.com/v1/profiles/{profileId}/analyze" \
      -H "x-api-key: your-api-key-here"
    ```
  </Step>

  <Step title="결과 조회">
    출력 스키마에 맞는 구조화된 결과를 가져옵니다.

    ```bash theme={null}
    curl -X GET "http://client-omni-api.argosidentity.com/v1/profiles/{profileId}" \
      -H "x-api-key: your-api-key-here"
    ```
  </Step>
</Steps>

자세한 요청/응답 예시가 포함된 전체 API 흐름은 [빠른 시작 가이드](/ko/omni/getting-started/quickstart)를 참조하세요.

## 성공을 위한 팁

<AccordionGroup>
  <Accordion title="템플릿으로 시작하기">
    사용 사례가 [워크플로우 템플릿](/ko/omni/guides/workflow-templates) (KYB, Invoice, AML, Compliance) 중 하나와 일치하면 해당 템플릿에서 시작하여 커스터마이징하세요. 처음부터 만드는 것보다 빠릅니다.
  </Accordion>

  <Accordion title="실제 문서로 테스트하기">
    워크플로우를 생성한 후 실제 문서로 몇 가지 테스트 프로필을 실행하여 정책과 스키마가 기대하는 결과를 생성하는지 검증하세요. 필요에 따라 조정합니다.
  </Accordion>

  <Accordion title="정책 반복 개선하기">
    첫 번째 정책 초안이 완벽하지 않을 수 있습니다. 분석 결과를 검토하고, AI가 의도를 잘못 이해한 부분을 파악한 후 정책 문구를 수정하세요. 작은 문구 변경으로도 정확도가 크게 향상될 수 있습니다.
  </Accordion>

  <Accordion title="출력 스키마를 시스템에 맞추기">
    출력 스키마를 백엔드 또는 컴플라이언스 시스템이 기대하는 형식에 맞게 설계하세요. 이렇게 하면 후처리 변환이 필요 없어집니다.
  </Accordion>
</AccordionGroup>

## 다음 단계

<CardGroup cols={2}>
  <Card title="정책 작성 가이드" icon="pen" href="/ko/omni/guides/policy-writing-guide">
    효과적인 검증 정책을 작성하기 위한 모범 사례를 알아보세요.
  </Card>

  <Card title="워크플로우 자동화" icon="arrows-rotate" href="/ko/omni/guides/automating-your-sop">
    수동 검토 프로세스를 자동화된 워크플로우로 전환하세요.
  </Card>
</CardGroup>
