| 용도 | 엔드포인트 |
|---|---|
| 워크플로우 전체 정의 | GET /v1/workflows/{workflowId} |
| 목록용 경량 정보 | GET /v1/workflows/{workflowId}/summary |
워크플로우 상세 조회
GET /v1/workflows/{workflowId}
curl "https://client-omni-api.argosidentity.com/v1/workflows/wf_knsb7si44x27" \
-H "x-api-key: your-api-key-here"
응답 필드
| 필드 | 타입 | 설명 |
|---|---|---|
id | string | 워크플로우 ID (wf_ 접두사) |
projectId | string | 상위 프로젝트 ID (proj_ 접두사) |
name | string | 워크플로우 이름 |
description | string | null | 설명 |
status | string | active · archived |
policyText | string | null | 입력한 정책 텍스트 전문. 이 텍스트에서 플레이북이 생성됨 |
policyDocuments | object[] | null | 첨부한 정책 문서 메타데이터. 없으면 빈 배열 |
playbookId | string | null | 플레이북 ID (PB- 접두사). 정책을 바꿔 재생성해도 유지됨 |
playbookVersion | string | null | 플레이북 버전. 수정할 때마다 올라감 |
playbookContent | string | null | 플레이북 본문(Markdown) |
workflowActions | object[] | 플레이북이 정의한 전체 액션 목록. 아래 표 |
referenceNotes | string[] | 모든 액션의 referenceNotes를 중복 제거해 합친 읽기 전용 파생값 |
engines | object[] | 시스템 전체 엔진 카탈로그. 아래 표 |
outputSchema | object | null | 분석 결과 구조를 정의한 JSON Schema(draft-07) |
aiModelId | string | null | 지정한 AI 모델 ID. 지정하지 않으면 null이고 기본 모델로 실행됨 |
aiModelProvider | string | null | 지정한 모델의 제공자 식별자. null이면 기본 모델 |
aiModel | object | null | 지정한 모델의 카탈로그 정보. 아래 표 |
profilesCount | number | 연결된 프로파일 수 |
totalAnalyses | number | 누적 분석 수 |
createdAt | string | 생성 시각 |
updatedAt | string | 수정 시각 |
workflowActions 액션 정의
플레이북이 정의한 전체 액션입니다. 분석 응답의 agentAuditLog.steps에는 실제로 실행된 것만 담기므로, 실행률을 계산할 때 이 배열을 분모로 쓰세요.
| 필드 | 타입 | 설명 |
|---|---|---|
step | number | 실행 순번(1부터). 순서를 바꾸면 위에서부터 다시 매겨지므로 식별자로 쓰지 마세요 |
workId | number | 액션의 고정 식별자. 순서와 무관하게 유지되며 분석 응답의 workId · agentAuditLog.steps[].work_id와 대응 |
actionName | string | 액션 함수명(^[a-z][a-z0-9_]*$) |
description | string | 액션 설명 |
referenceNotes | string[] | 이 액션의 참고 사항. 정책 원문의 근거를 담습니다. 없으면 빈 배열 |
engines | object[] | 이 액션에 배정된 엔진. 배정이 없으면 빈 배열 |
workflowActions[].engines[]
| 필드 | 타입 | 설명 |
|---|---|---|
engineId | string | 엔진 ID. engines[] 카탈로그의 id와 대응 |
type | string | 엔진 타입 |
name | string | 엔진 표시 이름 |
engines 엔진 카탈로그
이 워크플로우가 고를 수 있는 전체 엔진 목록입니다. 실제 배정 여부는 isSelected로 구분합니다.
| 필드 | 타입 | 설명 |
|---|---|---|
id | string | 엔진 ID |
code | string | 엔진 코드 |
name | string | 엔진 표시 이름 |
description | string | null | 엔진 설명 |
executionOrder | number | 카탈로그 표시 순서 |
isSelected | boolean | 이 워크플로우의 액션에서 실제로 쓰이는지 여부 |
isRequired | boolean | 어느 한 액션에서라도 필수로 지정되면 true |
pricePerCall | number | 호출당 크레딧 단가 |
policyDocuments
| 필드 | 타입 | 설명 |
|---|---|---|
name | string | 업로드한 파일 이름 |
mimeType | string | MIME 타입 |
size | number | 파일 크기(바이트) |
uploadedAt | string | 업로드 시각 |
s3Key | string | 내부 저장소 참조 키. 연동 로직에 쓰지 마세요 |
aiModel
| 필드 | 타입 | 설명 |
|---|---|---|
modelId | string | 모델 식별자 |
displayName | string | 모델 표시 이름 |
provider | string | 제공자 식별자 |
hostingLabel | string | 호스팅 구분 표시 |
description | string | 모델 설명 |
isDefault | boolean | 기본 모델 여부 |
응답 예시
policyText · playbookContent · outputSchema는 실제로는 훨씬 길고, workflowActions와 engines도 아래보다 항목이 많습니다.
{
"id": "wf_knsb7si44x27",
"projectId": "proj_75hgxoxamzn9",
"name": "거래처 온보딩 서류 검증 정책",
"description": "KYB의 일반적인 예시입니다.",
"status": "active",
"policyText": "거래처 온보딩 서류 검증 정책\n\n1. 필수 서류\n- 사업자등록증 사본, 통장 사본(계좌 확인서), 실소유자 확인서 3종이 ...",
"policyDocuments": [],
"playbookId": "PB-20260910-FWP24I",
"playbookVersion": "1.0.0",
"playbookContent": "---\nname: playbook.md\ndescription: 거래처 온보딩 서류 검증\n---\n...",
"workflowActions": [
{
"step": 1,
"workId": 1,
"actionName": "verify_document_presence",
"description": "3종 서류(사업자등록증, 통장사본, 실소유자확인서) 제출 여부 확인",
"referenceNotes": [
"사업자등록증 사본, 통장 사본, 실소유자 확인서 3종이 모두 제출되어야 합니다 (정책 1)",
"하나라도 누락되면 검토 필요로 판정합니다 (정책 1)"
],
"engines": [
{ "engineId": "eng_1a2b3c4d5e6f", "type": "text-similarity", "name": "Text Verifier" },
{ "engineId": "eng_7g8h9i0j1k2l", "type": "biz-verify-kor", "name": "Business Info Verification - KOR" }
]
},
{
"step": 3,
"workId": 3,
"actionName": "validate_ownership_structure",
"description": "지분율 합계 100% 초과 여부 및 25% 이상 소유자 기록 확인",
"referenceNotes": ["지분율 합계가 100%를 초과하면 검토 필요로 판정합니다 (정책 3)"],
"engines": []
}
],
"referenceNotes": [
"사업자등록증 사본, 통장 사본, 실소유자 확인서 3종이 모두 제출되어야 합니다 (정책 1)",
"지분율 합계가 100%를 초과하면 검토 필요로 판정합니다 (정책 3)"
],
"engines": [
{
"id": "eng_1a2b3c4d5e6f",
"code": "text-similarity",
"name": "Text Verifier",
"description": "문서 간 텍스트 일치 여부를 비교합니다",
"executionOrder": 1,
"isSelected": true,
"isRequired": false,
"pricePerCall": 0.01
},
{
"id": "eng_3m4n5o6p7q8r",
"code": "aml-business",
"name": "AML - Business",
"description": "법인명으로 AML·제재 목록을 조회합니다",
"executionOrder": 7,
"isSelected": false,
"isRequired": false,
"pricePerCall": 0.12
}
],
"outputSchema": {
"type": "object",
"properties": {
"company": {
"type": "object",
"description": "사업자등록증에서 추출한 기업 기본 정보",
"properties": {
"name": { "type": "string", "description": "상호(법인명)" },
"registration_number": { "type": "string", "description": "사업자등록번호 (000-00-00000 형식)" }
}
},
"documents_complete": { "type": "boolean", "description": "필수 서류 3종이 모두 제출되었는지 여부" }
}
},
"aiModelId": "<선택한 모델 ID>",
"aiModelProvider": "<제공자 식별자>",
"aiModel": {
"modelId": "<선택한 모델 ID>",
"displayName": "<모델 표시 이름>",
"provider": "<제공자 식별자>",
"hostingLabel": "<호스팅 구분>",
"description": "<모델 설명>",
"isDefault": false
},
"profilesCount": 1,
"totalAnalyses": 1,
"createdAt": "2026-09-09T08:57:41.006Z",
"updatedAt": "2026-09-09T09:00:16.884Z"
}
aiModel 안의 값은 대시보드에서 고른 모델에 따라 달라져 위 예시에는 자리표시자로 두었습니다. AI 모델을 지정하지 않으면 aiModelId와 aiModelProvider가 null이 되고 기본 모델로 실행됩니다.워크플로우 요약 조회
GET /v1/workflows/{workflowId}/summary
curl "https://client-omni-api.argosidentity.com/v1/workflows/wf_knsb7si44x27/summary" \
-H "x-api-key: your-api-key-here"
| 필드 | 타입 | 설명 |
|---|---|---|
id | string | 워크플로우 ID |
name | string | 워크플로우 이름 |
description | string | null | 설명 |
playbookId | string | null | 플레이북 ID |
profilesCount | number | 연결된 프로파일 수 |
totalAnalyses | number | 누적 분석 수 |
status | string | 워크플로우 상태 |
{
"id": "wf_knsb7si44x27",
"name": "거래처 온보딩 서류 검증 정책",
"description": "KYB의 일반적인 예시입니다.",
"playbookId": "PB-20260910-FWP24I",
"profilesCount": 1,
"totalAnalyses": 1,
"status": "active"
}
에러 코드
| 상태 | 코드 | 설명 |
|---|---|---|
| 404 | OMNI_3003 | 워크플로우를 찾을 수 없음 |