지원 종료 예정 필드입니다. 에이전트의 플로우 그래프를 예전 형식으로 담고 있으며, 기존 호환을 위해 유지됩니다. 읽기 전용이고, flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 새 통합은 flow를 사용하세요. 이 필드는 지원 종료 기간 이후 제거됩니다.
에이전트의 플로우 그래프입니다. nodes를 edges로 연결하고, 각 edge가 분기 조건을 가집니다. flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 지원 종료 예정인 flow_data 대신 이 필드를 사용하세요. 정확한 형태는 flow-schema/flow-data 스키마 엔드포인트에 공개됩니다.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"vox.ai 문서","colors":{"primary":"#7c3aed","light":"#8b5cf6","dark":"#7c3aed"},"logo":{"light":"https://mintcdn.com/fleek/QLXPdp5do4SgNyXm/logo/light.svg?fit=max\u0026auto=format\u0026n=QLXPdp5do4SgNyXm\u0026q=85\u0026s=ca85e066068138abac22f638eed5dad0","dark":"https://mintcdn.com/fleek/QLXPdp5do4SgNyXm/logo/dark.svg?fit=max\u0026auto=format\u0026n=QLXPdp5do4SgNyXm\u0026q=85\u0026s=1daf9753a36ae7f1823e7ad11a0c2ddd","href":"https://www.tryvox.co"},"favicon":"https://mintcdn.com/fleek/QLXPdp5do4SgNyXm/favicon.svg?fit=max\u0026auto=format\u0026n=QLXPdp5do4SgNyXm\u0026q=85\u0026s=5342cc9f9f6f14f773e41f5a78a1fb84","background":{"decoration":"gradient"},"navbar":{"links":[],"primary":{"type":"button","label":"대시보드","href":"https://www.tryvox.co/dashboard/"}},"footer":{"socials":{"discord":"https://discord.gg/GKxHxG97u5","youtube":"https://www.youtube.com/@try-vox-ai?ref=docs","linkedin":"https://www.linkedin.com/company/try-vox-ai?ref=docs"},"links":[{"header":"회사","items":[{"label":"채용","href":"https://tryvox.notion.site/vox-ai-1dc5249049c8803caf96f8074ae4ecce"},{"label":"블로그","href":"https://blog.tryvox.co/?ref=docs"},{"label":"서비스 소개서","href":"https://featpaper.com/l/cURVGDZK"},{"label":"도입 문의","href":"https://www.tryvox.co/request-demo?ref=docs"},{"label":"온보딩","href":"https://cal.com/busking/vox-onboarding"}]},{"header":"정책","items":[{"label":"이용약관","href":"https://tryvox.co/legal/terms-of-service"},{"label":"개인정보처리방침","href":"https://tryvox.co/legal/privacy-policy"}]}]},"seo":{"metatags":{"description":"vox.ai로 AI 음성 에이전트를 만들고, 테스트하고, 배포하고, 모니터링할 수 있어요.","keywords":"AICC, AI 음성 에이전트, SDK, 음성 AI","language":"ko"},"indexing":"all"},"fonts":{"heading":{"family":"Pretendard Variable","weight":600,"source":"fonts/PretendardVariable.woff2","format":"woff2"},"body":{"family":"Pretendard Variable","weight":400,"source":"fonts/PretendardVariable.woff2","format":"woff2"}},"banner":{"content":"vox.ai 디스코드 커뮤니티가 열렸어요. [커뮤니티 참여](https://discord.gg/GKxHxG97u5)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fleek","hasAudioNarration":false,"actualSubdomain":"fleek","customDomains":["docs.tryvox.co"],"gitSource":{"type":"github","owner":"fleek-fitness","repo":"vox-mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec1641acbd2ab7a2e61263","collectionId":"0b818f5b-3295-4212-969c-36277c038abe","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec1641acbd2ab7a2e61263"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6aec1641acbd2ab7a2e61263","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API 참조","count":163},{"language":"default","tag":"가이드","count":112},{"language":"default","tag":"구축","count":53},{"language":"default","tag":"변경 내역","count":40},{"language":"default","tag":"평가","count":22},{"language":"default","tag":"배포","count":20},{"language":"default","tag":"모니터링","count":17},{"language":"default","tag":"플로우 에이전트","count":15},{"language":"default","tag":"도구","count":15},{"language":"default","tag":"알림","count":15}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area{max-width:896px}"}],"page":{"pagePath":"api-reference/v3/agents/에이전트-단건-조회","slug":"/api-reference/v3/agents/에이전트-단건-조회","pageMetadata":{"title":"에이전트 단건 조회","description":"에이전트 1건을 조회합니다. `version=current`는 수정 가능한 현재 상태를, `production`이나 `v{n}`은 저장된 스냅샷을 반환합니다.","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents/{agent_id}","href":"/api-reference/v3/agents/에이전트-단건-조회","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"에이전트 1건을 조회합니다. \", _jsx(_components.code, {\n children: \"version=current\"\n }), \"는 수정 가능한 현재 상태를, \", _jsx(_components.code, {\n children: \"production\"\n }), \"이나 \", _jsx(_components.code, {\n children: \"v{n}\"\n }), \"은 저장된 스냅샷을 반환합니다.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"에이전트 단건 조회","description":"에이전트 1건을 조회합니다. `version=current`는 수정 가능한 현재 상태를, `production`이나 `v{n}`은 저장된 스냅샷을 반환합니다.","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents/{agent_id}","href":"/api-reference/v3/agents/에이전트-단건-조회","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Agents"],"summary":"에이전트 단건 조회","description":"에이전트 1건을 조회합니다. `version=current`는 수정 가능한 현재 상태를, `production`이나 `v{n}`은 저장된 스냅샷을 반환합니다.","operationId":"getAgent","security":["1d1ca66d-87cb-475e-a0ec-9e43f0379d83"],"parameters":["aebe9b2f-6482-4d95-bf19-4f091a17d9d2","91ecfbfd-718d-457a-8e9c-feb5fc1022f4"],"responses":{"200":"2591e67b-7033-4209-ae72-4daa78740d66","400":"43eb556b-a67d-4bfa-8e2b-6623862186e1","401":"29a96e79-6a75-4325-af1b-d3912a2a72c7","403":"32f1c0e1-2630-4226-9da7-f84c6cf2c5d4","404":"687d7539-ece0-4491-83b6-ff63d28e0012","409":"f8698028-0800-46ee-95d1-caf7b30fd302","429":"95a27f57-eebd-418b-9ee1-b0985fd2d311","500":"bd3ff6c3-2950-49ca-a613-cad82f9b835b","503":"f6bafa3e-8767-4910-9836-0ac8e1f11f19"},"x-error-codes":["AGENT_CONFIGURATION_UNAVAILABLE","AGENT_DATA_POSTCALL_ENUM_OPTIONS_REQUIRED","AGENT_LOOKUP_FAILED","AGENT_NAME_INVALID","AGENT_NOT_FOUND","AGENT_TYPE_CONFLICT","AGENT_VERSION_NOT_FOUND","BUILT_IN_TOOL_NAME_DUPLICATE","CALL_SETTINGS_SILENCE_REMINDER_INVALID","CALL_SETTINGS_TIMEOUT_INVALID","CONFLICT","FILE_NOT_FOUND","FILE_PURPOSE_MISMATCH","FLOW_DATA_INVALID","FLOW_DATA_REQUIRED","FLOW_V2_INVALID","FORBIDDEN","INTERNAL_ERROR","INVALID_CURSOR","KNOWLEDGE_NOT_FOUND","LLM_MODEL_NOT_FOUND","LLM_TEMPERATURE_INVALID_TYPE","LLM_TEMPERATURE_OUT_OF_RANGE","MANUAL_NOT_FOUND","ORGANIZATION_ACCESS_DENIED","PATCH_NO_EFFECTIVE_FIELDS","PHONE_NUMBER_NOT_OWNED","POST_CALL_ACTION_NAME_DUPLICATE","PRESET_DYNAMIC_VARIABLE_KEY_INVALID","RATE_LIMIT_EXCEEDED","RESOURCE_NOT_FOUND","REVISION_CONFLICT","RUNTIME_AGENT_TYPE_NOT_SUPPORTED","SERVICE_UNAVAILABLE","STT_LANGUAGE_CODE_INVALID","TOOL_NOT_FOUND","TRANSFER_AGENT_NOT_FOUND","TRANSFER_AGENT_VERSION_INVALID","TRANSFER_AGENT_VERSION_NOT_FOUND","UNAUTHORIZED","UNSUPPORTED_FILE_STORAGE_PROVIDER","VALIDATION_ERROR","VERSION_LOOKUP_FAILED","VERSION_NOT_FOUND","VOICE_NOT_FOUND","VOICE_PARAMETER_OUT_OF_RANGE","WEBHOOK_URL_BLOCKED_HOST","WEBHOOK_URL_INVALID","WEBHOOK_URL_INVALID_HOST","WEBHOOK_URL_SCHEME_NOT_ALLOWED","WEBHOOK_URL_TEMPLATE_NOT_ALLOWED","api_chain_race","api_missing_url","api_url_host_blocked","api_url_host_missing","api_url_invalid","api_url_scheme_missing","api_url_scheme_not_allowed","api_url_template_position_not_allowed","duplicate_edge_id","duplicate_node_id","edge_id_required","edge_source_handle_not_string","edge_source_not_string","edge_source_unknown","edge_structure_not_object","edge_target_not_string","edge_target_unknown","edge_transition_not_found","extraction_variable_name_duplicate","fallback_transition_unsupported","fire_and_forget_response_variables_unsupported","fire_and_forget_result_transition_unsupported","flow_empty_nodes","flow_node_snake_case_unsupported","flow_structure_edges_not_array","flow_structure_nodes_not_array","invalid_begin_node_count","logical_transitions_unsupported","missing_fallback_transition","missing_skip_user_response_transition","no_terminal_reachable","node_data_not_object","node_id_required","node_id_too_long","node_position_invalid","node_skip_user_response_invalid_type","node_structure_not_object","node_type_not_string","operator_value_type_mismatch","response_mode_invalid","runtime_model_validation","sendsms_image_keys_too_many","sendsms_snake_case_key","tool_agent_tool_id_unsupported","tool_call_sound_invalid","tool_call_sound_unsupported_node_type","tool_missing_tool_id","tool_yielding_skip_unsupported","transfer_agent_camel_case_unsupported","transfer_agent_flat_id_deprecated","transfer_agent_id_invalid","transfer_agent_missing_agent","transfer_agent_version_invalid","transfer_call_missing_destination","transfer_operator_configuration_invalid","transition_condition_required","transition_id_duplicate","transition_id_required","transition_is_fallback_invalid_type","transition_is_skip_user_response_invalid_type","transition_not_object","transition_target_not_found","transition_target_not_string","transitions_not_array","unconnected_fallback_transition","unconnected_skip_user_response_transition","unknown_node_type","variable_name_invalid"],"method":"get","type":"path","servers":["9c70699b-2b40-4355-ac65-4a0d6639f86f"],"path":"/agents/{agent_id}","baseUrlOptions":["https://client-api.tryvox.co/v3"],"title":"에이전트 단건 조회","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"aebe9b2f-6482-4d95-bf19-4f091a17d9d2":{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"`agent_id`로 반환되는 에이전트 UUID입니다.","title":"Agent Id","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"`agent_id`로 반환되는 에이전트 UUID입니다."},"91ecfbfd-718d-457a-8e9c-feb5fc1022f4":{"name":"version","in":"query","required":false,"schema":{"type":"string","pattern":"^(current|production|v[1-9][0-9]*)$","description":"조회할 버전 selector. \"current\" (default) · \"production\" · \"v{n}\".","default":"current","title":"Version","isRequired":false,"uniqueKey":"","typeLabel":"string"},"description":"조회할 버전 selector. \"current\" (default) · \"production\" · \"v{n}\"."}},"responses":{"2591e67b-7033-4209-ae72-4daa78740d66":{"description":"성공 응답","content":{"application/json":{"schema":{"properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id","description":"에이전트 UUID입니다.","isRequired":true,"uniqueKey":"agent_id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","title":"Name","description":"에이전트 이름입니다. 버전 스냅샷을 조회하더라도 현재 최상위 이름을 반환합니다.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"type":{"type":"string","enum":["single_prompt","flow"],"title":"Type","description":"선택한 구성의 타입입니다. `single_prompt` 또는 `flow`입니다.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"created_at":{"type":"integer","title":"Created At","description":"리소스 생성 시각입니다. unix milliseconds 형식입니다.","isRequired":true,"uniqueKey":"created_at","typeLabel":"integer"},"updated_at":{"type":"integer","title":"Updated At","description":"리소스 마지막 수정 시각입니다. unix milliseconds 형식입니다.","isRequired":true,"uniqueKey":"updated_at","typeLabel":"integer"},"evaluate":{"type":"boolean","title":"Evaluate","description":"현재 평가 설정입니다. 버전 스냅샷에는 포함되지 않습니다.","default":false,"uniqueKey":"evaluate","typeLabel":"boolean"},"folder_id":{"oneOf":[{"type":"string","title":"Folder Id","description":"에이전트가 속한 폴더의 UUID입니다. 폴더에 속하지 않으면 null입니다.","format":"uuid","uniqueKey":"folder_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"Folder Id","description":"에이전트가 속한 폴더의 UUID입니다. 폴더에 속하지 않으면 null입니다.","uniqueKey":"folder_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"folder_id","typeLabel":"string\u003cuuid> | null"},"folder_name":{"oneOf":[{"type":"string","title":"Folder Name","description":"에이전트가 직접 속한 폴더의 이름입니다. 폴더에 속하지 않으면 null입니다.","uniqueKey":"folder_name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Folder Name","description":"에이전트가 직접 속한 폴더의 이름입니다. 폴더에 속하지 않으면 null입니다.","uniqueKey":"folder_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"folder_name","typeLabel":"string | null"},"folder_path":{"oneOf":[{"type":"string","title":"Folder Path","description":"최상위 폴더부터 에이전트가 속한 폴더까지의 이름을 ` / `로 이은 경로입니다(예: `Sales / Outbound`). 표시용이며 폴더를 식별할 때는 `folder_id`를 사용합니다. 폴더에 속하지 않으면 null입니다.","uniqueKey":"folder_path.oneOf.0","typeLabel":"string"},{"type":"null","title":"Folder Path","description":"최상위 폴더부터 에이전트가 속한 폴더까지의 이름을 ` / `로 이은 경로입니다(예: `Sales / Outbound`). 표시용이며 폴더를 식별할 때는 `folder_id`를 사용합니다. 폴더에 속하지 않으면 null입니다.","uniqueKey":"folder_path.oneOf.1","typeLabel":"null"}],"uniqueKey":"folder_path","typeLabel":"string | null"},"production_version":{"oneOf":[{"type":"string","title":"Production Version","description":"현재 게시된 production 버전입니다. 없으면 null입니다.","pattern":"^v[1-9][0-9]*$","example":"v1","uniqueKey":"production_version.oneOf.0","typeLabel":"string"},{"type":"null","title":"Production Version","description":"현재 게시된 production 버전입니다. 없으면 null입니다.","uniqueKey":"production_version.oneOf.1","typeLabel":"null"}],"uniqueKey":"production_version","typeLabel":"string | null"},"data":{"properties":{"prompt":{"oneOf":[{"type":"object","title":"AgentPrompt","description":"에이전트 프롬프트 설정입니다.","properties":{"prompt":{"type":"string","title":"Prompt","description":"에이전트 시스템 프롬프트입니다.","default":"","uniqueKey":"data.prompt.oneOf.0.prompt","typeLabel":"string"},"firstLine":{"type":"string","title":"Firstline","description":"`first_line_type=aiFirstStatic`일 때 말할 고정 첫 문장입니다.","default":"","uniqueKey":"data.prompt.oneOf.0.firstLine","typeLabel":"string"},"firstLineType":{"type":"string","enum":["userFirst","aiFirstDynamic","aiFirstStatic"],"title":"Firstlinetype","description":"single_prompt 에이전트의 첫 발화 방식입니다. `userFirst`는 사용자를 기다리고, `aiFirstDynamic`은 첫 문장을 생성하며, `aiFirstStatic`은 `firstLine`을 말합니다.","default":"aiFirstDynamic","uniqueKey":"data.prompt.oneOf.0.firstLineType","typeLabel":"enum\u003cstring>"},"pauseBeforeSpeakingSeconds":{"type":"number","maximum":5,"minimum":0,"title":"Pausebeforespeakingseconds","default":0,"description":"에이전트가 첫 발화를 시작하기 전 대기 시간입니다. 단위는 초입니다.","uniqueKey":"data.prompt.oneOf.0.pauseBeforeSpeakingSeconds","typeLabel":"number"},"isFirstMessageInterruptible":{"type":"boolean","title":"Isfirstmessageinterruptible","default":true,"description":"사용자가 첫 에이전트 메시지를 끊고 말할 수 있는지 여부입니다.","uniqueKey":"data.prompt.oneOf.0.isFirstMessageInterruptible","typeLabel":"boolean"}},"uniqueKey":"data.prompt.oneOf.0","typeLabel":"AgentPrompt · object"},{"type":"null","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.prompt","typeLabel":"AgentPrompt · object | null"},"stt":{"oneOf":[{"type":"object","title":"AgentSTT","description":"음성 인식 설정입니다.","properties":{"languages":{"items":{"type":"string","uniqueKey":"data.stt.oneOf.0.languages.items.[INDEX]","typeLabel":"string"},"type":"array","minItems":1,"title":"Languages","description":"음성 인식 언어 후보 또는 우선 언어입니다.","uniqueKey":"data.stt.oneOf.0.languages","typeLabel":"string[]"},"speed":{"oneOf":[{"type":"string","title":"Speed","description":"음성 속도 또는 음성 인식 속도 설정입니다. 음성의 허용 범위는 `GET /v3/models/voices`의 capabilities를 확인합니다.","default":"high","enum":["low","medium","high"],"uniqueKey":"data.stt.oneOf.0.speed.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Speed","description":"음성 속도 또는 음성 인식 속도 설정입니다. 음성의 허용 범위는 `GET /v3/models/voices`의 capabilities를 확인합니다.","default":"high","uniqueKey":"data.stt.oneOf.0.speed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.stt.oneOf.0.speed","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"data.stt.oneOf.0","typeLabel":"AgentSTT · object"},{"type":"null","description":"음성 인식 설정입니다.","uniqueKey":"data.stt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.stt","typeLabel":"AgentSTT · object | null"},"llm":{"oneOf":[{"type":"object","title":"AgentLLM","description":"LLM 설정입니다.","required":["model"],"properties":{"model":{"type":"string","title":"Model","description":"LLM 모델 ID입니다. `GET /v3/models/llms`가 반환한 `model` 값을 사용합니다.","isRequired":true,"uniqueKey":"data.llm.oneOf.0.model","typeLabel":"string"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"모델 또는 음성 샘플링 temperature입니다. 허용 범위는 `GET /v3/models/llms` 또는 `GET /v3/models/voices`의 capabilities를 확인합니다.","maximum":2,"minimum":0,"uniqueKey":"data.llm.oneOf.0.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"모델 또는 음성 샘플링 temperature입니다. 허용 범위는 `GET /v3/models/llms` 또는 `GET /v3/models/voices`의 capabilities를 확인합니다.","uniqueKey":"data.llm.oneOf.0.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.llm.oneOf.0.temperature","typeLabel":"number | null"},"reasoningEffort":{"oneOf":[{"type":"string","title":"Reasoningeffort","description":"추론 강도 재정의 값입니다. null이면 재정의를 해제합니다.","enum":["none","minimal","low","medium","high"],"uniqueKey":"data.llm.oneOf.0.reasoningEffort.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Reasoningeffort","description":"추론 강도 재정의 값입니다. null이면 재정의를 해제합니다.","uniqueKey":"data.llm.oneOf.0.reasoningEffort.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.llm.oneOf.0.reasoningEffort","typeLabel":"enum\u003cstring> | null"},"thinkingBudget":{"oneOf":[{"type":"integer","title":"Thinkingbudget","description":"추론 토큰 예산입니다. null이면 재정의를 해제합니다.","minimum":0,"uniqueKey":"data.llm.oneOf.0.thinkingBudget.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Thinkingbudget","description":"추론 토큰 예산입니다. null이면 재정의를 해제합니다.","uniqueKey":"data.llm.oneOf.0.thinkingBudget.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.llm.oneOf.0.thinkingBudget","typeLabel":"integer | null"}},"uniqueKey":"data.llm.oneOf.0","typeLabel":"AgentLLM · object"},{"type":"null","description":"LLM 설정입니다.","uniqueKey":"data.llm.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.llm","typeLabel":"AgentLLM · object | null"},"voice":{"oneOf":[{"type":"object","title":"AgentVoice","description":"음성 합성 설정입니다.","required":["id","provider"],"properties":{"id":{"type":"string","title":"Id","description":"음성 ID입니다. `GET /v3/models/voices`가 반환한 `id` 값을 사용합니다.","isRequired":true,"uniqueKey":"data.voice.oneOf.0.id","typeLabel":"string"},"provider":{"type":"string","title":"Provider","description":"`GET /v3/models/voices`가 반환한 TTS provider입니다.","isRequired":true,"uniqueKey":"data.voice.oneOf.0.provider","typeLabel":"string"},"model":{"oneOf":[{"type":"string","title":"Model","description":"TTS 모델 재정의입니다. PATCH에서 null을 보내면 재정의를 지우고, 생략하면 저장된 모델을 유지합니다.","uniqueKey":"data.voice.oneOf.0.model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Model","description":"TTS 모델 재정의입니다. PATCH에서 null을 보내면 재정의를 지우고, 생략하면 저장된 모델을 유지합니다.","uniqueKey":"data.voice.oneOf.0.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.voice.oneOf.0.model","typeLabel":"string | null"},"speed":{"oneOf":[{"type":"number","title":"Speed","description":"음성 속도입니다. 음성별 min/max 범위는 `GET /v3/models/voices`의 `capabilities.speed`에서 확인합니다.","default":1,"uniqueKey":"data.voice.oneOf.0.speed.oneOf.0","typeLabel":"number"},{"type":"null","title":"Speed","description":"음성 속도입니다. 음성별 min/max 범위는 `GET /v3/models/voices`의 `capabilities.speed`에서 확인합니다.","default":1,"uniqueKey":"data.voice.oneOf.0.speed.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.voice.oneOf.0.speed","typeLabel":"number | null"},"volume":{"oneOf":[{"type":"number","title":"Volume","description":"음성 재생 볼륨입니다.","default":1,"uniqueKey":"data.voice.oneOf.0.volume.oneOf.0","typeLabel":"number"},{"type":"null","title":"Volume","description":"음성 재생 볼륨입니다.","default":1,"uniqueKey":"data.voice.oneOf.0.volume.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.voice.oneOf.0.volume","typeLabel":"number | null"},"language":{"oneOf":[{"type":"string","title":"Language","description":"provider가 지원하는 언어 code 또는 locale입니다.","uniqueKey":"data.voice.oneOf.0.language.oneOf.0","typeLabel":"string"},{"type":"null","title":"Language","description":"provider가 지원하는 언어 code 또는 locale입니다.","uniqueKey":"data.voice.oneOf.0.language.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.voice.oneOf.0.language","typeLabel":"string | null"},"temperature":{"oneOf":[{"type":"number","title":"Temperature","description":"음성 temperature입니다. 음성별 min/max 범위는 `GET /v3/models/voices`의 `capabilities.temperature`에서 확인합니다.","default":0.9,"uniqueKey":"data.voice.oneOf.0.temperature.oneOf.0","typeLabel":"number"},{"type":"null","title":"Temperature","description":"음성 temperature입니다. 음성별 min/max 범위는 `GET /v3/models/voices`의 `capabilities.temperature`에서 확인합니다.","default":0.9,"uniqueKey":"data.voice.oneOf.0.temperature.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.voice.oneOf.0.temperature","typeLabel":"number | null"}},"uniqueKey":"data.voice.oneOf.0","typeLabel":"AgentVoice · object"},{"type":"null","description":"음성 합성 설정입니다.","uniqueKey":"data.voice.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.voice","typeLabel":"AgentVoice · object | null"},"speech":{"oneOf":[{"type":"object","title":"AgentSpeech","description":"에이전트 발화 동작 설정입니다.","properties":{"isAllowInterruption":{"type":"boolean","title":"Isallowinterruption","description":"사용자가 에이전트의 발화를 중단할 수 있는지 여부입니다.","default":true,"uniqueKey":"data.speech.oneOf.0.isAllowInterruption","typeLabel":"boolean"},"responsiveness":{"type":"number","maximum":1,"minimum":0,"title":"Responsiveness","default":1,"description":"사용자 발화 이후 에이전트가 응답을 시작하는 속도 설정입니다.","uniqueKey":"data.speech.oneOf.0.responsiveness","typeLabel":"number"},"boostedKeywords":{"oneOf":[{"type":"string","title":"Boostedkeywords","description":"음성 인식에서 우선 인식하도록 보정할 단어 또는 문구입니다.","uniqueKey":"data.speech.oneOf.0.boostedKeywords.oneOf.0","typeLabel":"string"},{"type":"null","title":"Boostedkeywords","description":"음성 인식에서 우선 인식하도록 보정할 단어 또는 문구입니다.","uniqueKey":"data.speech.oneOf.0.boostedKeywords.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.speech.oneOf.0.boostedKeywords","typeLabel":"string | null"},"isAllowTurnDetection":{"type":"boolean","title":"Isallowturndetection","default":true,"description":"턴 감지로 사용자의 발화 종료를 판단할지 여부입니다.","uniqueKey":"data.speech.oneOf.0.isAllowTurnDetection","typeLabel":"boolean"},"vadMinSilenceDuration":{"type":"number","minimum":0,"title":"Vadminsilenceduration","default":0.5,"description":"사용자의 발화가 끝났다고 판단하기까지 필요한 최소 무음 시간입니다. 단위는 초입니다.","uniqueKey":"data.speech.oneOf.0.vadMinSilenceDuration","typeLabel":"number"}},"uniqueKey":"data.speech.oneOf.0","typeLabel":"AgentSpeech · object"},{"type":"null","description":"에이전트 발화 동작 설정입니다.","uniqueKey":"data.speech.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.speech","typeLabel":"AgentSpeech · object | null"},"callSettings":{"oneOf":[{"type":"object","title":"AgentCallSettingsResponse","description":"통화 동작 설정입니다. 호환성을 위해 camelCase를 유지합니다.","properties":{"backgroundMusic":{"type":"string","enum":["none","cafe","office","call_center","library","dial_tone"],"title":"Backgroundmusic","default":"none","description":"통화 배경음악 preset입니다. 사용하지 않으면 null입니다.","uniqueKey":"data.callSettings.oneOf.0.backgroundMusic","typeLabel":"enum\u003cstring>"},"backgroundMusicVolume":{"type":"number","maximum":1,"minimum":0,"title":"Backgroundmusicvolume","default":0.5,"description":"배경음악 볼륨입니다.","uniqueKey":"data.callSettings.oneOf.0.backgroundMusicVolume","typeLabel":"number"},"noiseCancellation":{"type":"string","enum":["none","nc","bvc"],"title":"Noisecancellation","default":"bvc","description":"통화 노이즈 캔슬링 설정입니다.","uniqueKey":"data.callSettings.oneOf.0.noiseCancellation","typeLabel":"enum\u003cstring>"},"activationThreshold":{"type":"number","maximum":1,"minimum":0,"title":"Activationthreshold","default":0.55,"description":"음성 감지를 위한 오디오 활성화 임계값입니다.","uniqueKey":"data.callSettings.oneOf.0.activationThreshold","typeLabel":"number"},"callTimeoutInSeconds":{"oneOf":[{"type":"integer","title":"Calltimeoutinseconds","description":"통화 최대 시간입니다. 단위는 초이며 30~3,600초로 정할 수 있습니다.","default":900,"uniqueKey":"data.callSettings.oneOf.0.callTimeoutInSeconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Calltimeoutinseconds","description":"통화 최대 시간입니다. 단위는 초이며 30~3,600초로 정할 수 있습니다.","default":900,"uniqueKey":"data.callSettings.oneOf.0.callTimeoutInSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.callTimeoutInSeconds","typeLabel":"integer | null"},"silenceCallTimeoutInSeconds":{"oneOf":[{"type":"integer","title":"Silencecalltimeoutinseconds","description":"무음 제한 시간입니다. 단위는 초입니다.","default":30,"uniqueKey":"data.callSettings.oneOf.0.silenceCallTimeoutInSeconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Silencecalltimeoutinseconds","description":"무음 제한 시간입니다. 단위는 초입니다.","default":30,"uniqueKey":"data.callSettings.oneOf.0.silenceCallTimeoutInSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.silenceCallTimeoutInSeconds","typeLabel":"integer | null"},"silenceReminderTimeoutInSeconds":{"oneOf":[{"type":"integer","title":"Silenceremindertimeoutinseconds","description":"에이전트가 마지막으로 말한 뒤 재촉하기까지 기다리는 시간입니다. 단위는 초이며 10부터 300까지 입력할 수 있고, 무음 제한 시간(silenceCallTimeoutInSeconds)보다 짧아야 합니다. 값을 정하면 재촉마다 같은 시간을 기다립니다. null이거나 생략하면 기존 방식대로 10초에서 시작해 연속 무응답마다 3초씩 늘어 최대 25초까지 기다립니다.","uniqueKey":"data.callSettings.oneOf.0.silenceReminderTimeoutInSeconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Silenceremindertimeoutinseconds","description":"에이전트가 마지막으로 말한 뒤 재촉하기까지 기다리는 시간입니다. 단위는 초이며 10부터 300까지 입력할 수 있고, 무음 제한 시간(silenceCallTimeoutInSeconds)보다 짧아야 합니다. 값을 정하면 재촉마다 같은 시간을 기다립니다. null이거나 생략하면 기존 방식대로 10초에서 시작해 연속 무응답마다 3초씩 늘어 최대 25초까지 기다립니다.","uniqueKey":"data.callSettings.oneOf.0.silenceReminderTimeoutInSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.silenceReminderTimeoutInSeconds","typeLabel":"integer | null"},"silenceReminderMaxCount":{"oneOf":[{"type":"integer","title":"Silenceremindermaxcount","description":"연속으로 무응답인 동안 재촉하는 최대 횟수입니다. 0부터 10까지 입력할 수 있고, 0이면 재촉하지 않습니다. 횟수를 모두 채워도 통화는 끝나지 않으며 통화 종료는 무음 제한 시간이 정합니다. 고객이 다시 말하면 횟수를 처음부터 다시 셉니다. null이거나 생략하면 횟수 제한 없이 재촉합니다.","uniqueKey":"data.callSettings.oneOf.0.silenceReminderMaxCount.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Silenceremindermaxcount","description":"연속으로 무응답인 동안 재촉하는 최대 횟수입니다. 0부터 10까지 입력할 수 있고, 0이면 재촉하지 않습니다. 횟수를 모두 채워도 통화는 끝나지 않으며 통화 종료는 무음 제한 시간이 정합니다. 고객이 다시 말하면 횟수를 처음부터 다시 셉니다. null이거나 생략하면 횟수 제한 없이 재촉합니다.","uniqueKey":"data.callSettings.oneOf.0.silenceReminderMaxCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.silenceReminderMaxCount","typeLabel":"integer | null"},"ringDurationInSeconds":{"oneOf":[{"type":"integer","title":"Ringdurationinseconds","description":"응답 없음으로 처리하기 전 최대 발신 대기 시간입니다. 단위는 초입니다.","default":30,"uniqueKey":"data.callSettings.oneOf.0.ringDurationInSeconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Ringdurationinseconds","description":"응답 없음으로 처리하기 전 최대 발신 대기 시간입니다. 단위는 초입니다.","default":30,"uniqueKey":"data.callSettings.oneOf.0.ringDurationInSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.ringDurationInSeconds","typeLabel":"integer | null"},"dtmfInterruptible":{"type":"boolean","title":"Dtmfinterruptible","default":false,"description":"DTMF 입력 묶음의 첫 키로 현재 에이전트 발화를 즉시 중단할지 여부입니다. 입력 묶음 처리와 응답 시점은 바뀌지 않습니다.","uniqueKey":"data.callSettings.oneOf.0.dtmfInterruptible","typeLabel":"boolean"},"dtmfTerminationEnabled":{"type":"boolean","title":"Dtmfterminationenabled","default":false,"description":"DTMF 키 입력으로 통화를 종료할지 여부입니다.","uniqueKey":"data.callSettings.oneOf.0.dtmfTerminationEnabled","typeLabel":"boolean"},"dtmfTerminationKey":{"type":"string","enum":["0","1","2","3","4","5","6","7","8","9","#","*"],"title":"Dtmfterminationkey","default":"#","description":"DTMF 종료 기능이 켜져 있을 때 통화를 종료하는 DTMF 키입니다.","uniqueKey":"data.callSettings.oneOf.0.dtmfTerminationKey","typeLabel":"enum\u003cstring>"},"dtmfTimeoutSeconds":{"type":"integer","exclusiveMinimum":0,"title":"Dtmftimeoutseconds","default":3,"description":"DTMF 입력을 기다리는 시간입니다. 단위는 초입니다.","uniqueKey":"data.callSettings.oneOf.0.dtmfTimeoutSeconds","typeLabel":"integer"},"callScreening":{"oneOf":[{"type":"object","title":"AgentCallScreeningResponse","description":"에이전트 엔드포인트가 반환하는 읽기 호환 call-screening 스냅샷입니다.","required":["promptType"],"properties":{"promptType":{"type":"string","enum":["static","dynamic"],"title":"Prompttype","isRequired":true,"uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.promptType","typeLabel":"enum\u003cstring>"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","maxLength":300,"uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.staticSentence","typeLabel":"string | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.prompt","typeLabel":"string | null"},"endCallAfterResponse":{"type":"boolean","title":"Endcallafterresponse","description":"설정한 스크리닝 응답 재생이 끝나면 통화를 종료합니다.","default":false,"uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0.endCallAfterResponse","typeLabel":"boolean"}},"uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.0","typeLabel":"AgentCallScreeningResponse · object"},{"type":"null","uniqueKey":"data.callSettings.oneOf.0.callScreening.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings.oneOf.0.callScreening","typeLabel":"AgentCallScreeningResponse · object | null"}},"uniqueKey":"data.callSettings.oneOf.0","typeLabel":"AgentCallSettingsResponse · object"},{"type":"null","description":"통화 동작 설정입니다. 호환성을 위해 camelCase를 유지합니다.","uniqueKey":"data.callSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.callSettings","typeLabel":"AgentCallSettingsResponse · object | null"},"chatSettings":{"properties":{"silenceChatTimeoutInSeconds":{"type":"integer","maximum":172800,"minimum":120,"title":"Silencechattimeoutinseconds","default":3600,"description":"채팅 세션을 종료하기 전까지 허용하는 비활성 시간입니다. 단위는 초입니다.","uniqueKey":"data.chatSettings.silenceChatTimeoutInSeconds","typeLabel":"integer"}},"additionalProperties":false,"type":"object","title":"AgentChatSettings","description":"채팅 세션 수명주기 설정입니다. 호환성을 위해 camelCase를 유지합니다.","uniqueKey":"data.chatSettings","typeLabel":"AgentChatSettings · object"},"postCall":{"oneOf":[{"type":"object","title":"AgentPostCall","description":"통화 후 추출·액션 설정입니다. camelCase를 유지합니다.","properties":{"actions":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","enum":["string","enum","boolean","number"],"title":"Type","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"isNullable":{"type":"boolean","title":"Isnullable","default":false,"description":"이 추출 필드가 null일 수 있는지 여부입니다.","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].isNullable","typeLabel":"boolean"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].description","typeLabel":"string | null"},"enumOptions":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].enumOptions.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Enumoptions","description":"이 추출 필드에서 허용하는 enum option 목록입니다.","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].enumOptions.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Enumoptions","description":"이 추출 필드에서 허용하는 enum option 목록입니다.","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].enumOptions.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX].enumOptions","typeLabel":"string[] | null"}},"type":"object","required":["name","type"],"title":"PostCallAction","description":"레지스트리: voxai://agent-schema/post-call/v1 액션 항목입니다.","uniqueKey":"data.postCall.oneOf.0.actions.items.[INDEX]","typeLabel":"PostCallAction · object"},"type":"array","title":"Actions","description":"통화 후 액션 또는 추출 필드입니다.","uniqueKey":"data.postCall.oneOf.0.actions","typeLabel":"PostCallAction · object[]"}},"uniqueKey":"data.postCall.oneOf.0","typeLabel":"AgentPostCall · object"},{"type":"null","description":"통화 후 추출·액션 설정입니다. camelCase를 유지합니다.","uniqueKey":"data.postCall.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.postCall","typeLabel":"AgentPostCall · object | null"},"security":{"oneOf":[{"type":"object","title":"AgentSecurity","description":"에이전트 보안·개인정보 설정입니다.","properties":{"optOutSensitiveDataStorage":{"type":"boolean","title":"Optoutsensitivedatastorage","default":false,"description":"대화록, 녹음, 분석 결과의 민감정보 저장을 제한할지 여부입니다.","uniqueKey":"data.security.oneOf.0.optOutSensitiveDataStorage","typeLabel":"boolean"},"dataRetention":{"oneOf":[{"type":"object","title":"AgentDataRetention","description":"통화·채팅 데이터의 아티팩트 보존 정책입니다.","properties":{"durationSeconds":{"oneOf":[{"type":"integer","title":"Durationseconds","description":"null이면 무기한 보존, 0이면 완료 즉시 삭제, 양수면 완료 후 해당 초만큼 보존합니다.","maximum":315576000,"minimum":0,"uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.0.durationSeconds.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Durationseconds","description":"null이면 무기한 보존, 0이면 완료 즉시 삭제, 양수면 완료 후 해당 초만큼 보존합니다.","uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.0.durationSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.0.durationSeconds","typeLabel":"integer | null"},"retainedDataTypes":{"items":{"type":"string","enum":["recording","transcript","postCallAnalysis"],"uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.0.retainedDataTypes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","title":"Retaineddatatypes","description":"설정된 보존 기간 동안 유지할 아티팩트 유형입니다.","uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.0.retainedDataTypes","typeLabel":"enum\u003cstring>[]"}},"additionalProperties":false,"uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.0","typeLabel":"AgentDataRetention · object"},{"type":"null","uniqueKey":"data.security.oneOf.0.dataRetention.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.security.oneOf.0.dataRetention","typeLabel":"AgentDataRetention · object | null"},"piiMasking":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"개인정보 마스킹 사용 여부입니다. 통화·채팅 대화록, 요약, 도구 인자와 결과에서 감지된 개인정보를 번호가 붙은 유형별 자리 표시자로 바꿉니다. 통화 후 추출 값과 전화번호 필드는 원본을 유지합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.enabled","typeLabel":"boolean"},"name":{"type":"boolean","title":"Name","description":"이름을 [이름 1] 같은 번호가 붙은 대체 문구로 치환합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.name","typeLabel":"boolean"},"phone":{"type":"boolean","title":"Phone","description":"전화번호를 [전화번호 1] 같은 번호가 붙은 대체 문구로 치환합니다. 워크스페이스 소유 번호는 제외합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.phone","typeLabel":"boolean"},"birthDate":{"type":"boolean","title":"Birthdate","description":"생년월일을 [생년월일 1] 같은 번호가 붙은 대체 문구로 치환합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.birthDate","typeLabel":"boolean"},"address":{"type":"boolean","title":"Address","description":"주소를 [주소 1] 같은 번호가 붙은 대체 문구로 치환합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.address","typeLabel":"boolean"},"email":{"type":"boolean","title":"Email","description":"이메일 주소를 [이메일 1] 같은 번호가 붙은 대체 문구로 치환합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.email","typeLabel":"boolean"},"residentId":{"type":"boolean","title":"Residentid","description":"주민등록번호를 [주민등록번호 1] 같은 번호가 붙은 대체 문구로 치환합니다.","default":false,"uniqueKey":"data.security.oneOf.0.piiMasking.residentId","typeLabel":"boolean"}},"type":"object","title":"PiiMasking","description":"통화 후 결과물에서 마스킹할 개인정보 카테고리입니다.","uniqueKey":"data.security.oneOf.0.piiMasking","typeLabel":"PiiMasking · object"}},"uniqueKey":"data.security.oneOf.0","typeLabel":"AgentSecurity · object"},{"type":"null","description":"에이전트 보안·개인정보 설정입니다.","uniqueKey":"data.security.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.security","typeLabel":"AgentSecurity · object | null"},"memory":{"oneOf":[{"type":"object","title":"AgentMemory","description":"에이전트 고객 메모리 설정입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.memory.oneOf.0.enabled","typeLabel":"boolean"}},"uniqueKey":"data.memory.oneOf.0","typeLabel":"AgentMemory · object"},{"type":"null","description":"에이전트 고객 메모리 설정입니다.","uniqueKey":"data.memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.memory","typeLabel":"AgentMemory · object | null"},"webhookSettings":{"oneOf":[{"type":"object","title":"AgentWebhookSettings","description":"에이전트 웹훅 설정입니다. 호환성을 위해 camelCase를 유지합니다.","properties":{"callDataWebhookUrl":{"oneOf":[{"type":"string","title":"Calldatawebhookurl","description":"HTTPS 웹훅 URL입니다. 경로의 동적 값에는 ASCII 영문자·숫자·밑줄·하이픈만 사용할 수 있습니다. 임의의 문자열은 query 값으로 전달하세요.","uniqueKey":"data.webhookSettings.oneOf.0.callDataWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","title":"Calldatawebhookurl","description":"HTTPS 웹훅 URL입니다. 경로의 동적 값에는 ASCII 영문자·숫자·밑줄·하이픈만 사용할 수 있습니다. 임의의 문자열은 query 값으로 전달하세요.","uniqueKey":"data.webhookSettings.oneOf.0.callDataWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhookSettings.oneOf.0.callDataWebhookUrl","typeLabel":"string | null"},"inboundCallWebhookUrl":{"oneOf":[{"type":"string","title":"Inboundcallwebhookurl","description":"인바운드 통화 웹훅의 고정 HTTPS URL입니다. 동적 변수는 지원하지 않습니다.","uniqueKey":"data.webhookSettings.oneOf.0.inboundCallWebhookUrl.oneOf.0","typeLabel":"string"},{"type":"null","title":"Inboundcallwebhookurl","description":"인바운드 통화 웹훅의 고정 HTTPS URL입니다. 동적 변수는 지원하지 않습니다.","uniqueKey":"data.webhookSettings.oneOf.0.inboundCallWebhookUrl.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhookSettings.oneOf.0.inboundCallWebhookUrl","typeLabel":"string | null"},"webhookVersion":{"oneOf":[{"type":"string","title":"Webhookversion","description":"웹훅 payload version입니다.","enum":["v1","v2"],"uniqueKey":"data.webhookSettings.oneOf.0.webhookVersion.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Webhookversion","description":"웹훅 payload version입니다.","uniqueKey":"data.webhookSettings.oneOf.0.webhookVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhookSettings.oneOf.0.webhookVersion","typeLabel":"enum\u003cstring> | null"},"enableAlimtalkOnCallEnd":{"type":"boolean","title":"Enablealimtalkoncallend","default":false,"description":"통화 종료 시 카카오 알림톡으로 통화 요약을 보낼지 여부입니다.","uniqueKey":"data.webhookSettings.oneOf.0.enableAlimtalkOnCallEnd","typeLabel":"boolean"},"inboundCallWebhookSigningEnabled":{"type":"boolean","title":"Inboundcallwebhooksigningenabled","description":"인바운드 콜 웹훅 요청의 HMAC-SHA256 서명 opt-in입니다. true면 워크스페이스 웹훅 서명 키로 서명되며 X-Webhook-Signature / X-Webhook-Timestamp 헤더가 포함됩니다 (워크스페이스 웹훅과 동일한 포맷). 생략하거나 false를 보내면 기존과 동일한 무서명 동작입니다. null은 거부됩니다.","default":false,"uniqueKey":"data.webhookSettings.oneOf.0.inboundCallWebhookSigningEnabled","typeLabel":"boolean"}},"uniqueKey":"data.webhookSettings.oneOf.0","typeLabel":"AgentWebhookSettings · object"},{"type":"null","description":"에이전트 웹훅 설정입니다. 호환성을 위해 camelCase를 유지합니다.","uniqueKey":"data.webhookSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.webhookSettings","typeLabel":"AgentWebhookSettings · object | null"},"knowledge":{"oneOf":[{"type":"object","title":"AgentKnowledge","description":"에이전트 knowledge base 설정입니다.","properties":{"ragEnabled":{"type":"boolean","title":"Ragenabled","default":false,"description":"이 에이전트에서 검색 기반 생성을 사용할지 여부입니다.","uniqueKey":"data.knowledge.oneOf.0.ragEnabled","typeLabel":"boolean"},"knowledgeIds":{"items":{"type":"integer","uniqueKey":"data.knowledge.oneOf.0.knowledgeIds.items.[INDEX]","typeLabel":"integer"},"type":"array","title":"Knowledgeids","description":"이 에이전트에 연결할 숫자형 public knowledge ID 목록입니다. 값은 `GET /v3/knowledges`에서 확인합니다.","uniqueKey":"data.knowledge.oneOf.0.knowledgeIds","typeLabel":"integer[]"}},"uniqueKey":"data.knowledge.oneOf.0","typeLabel":"AgentKnowledge · object"},{"type":"null","description":"에이전트 knowledge base 설정입니다.","uniqueKey":"data.knowledge.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.knowledge","typeLabel":"AgentKnowledge · object | null"},"takeoverTranscription":{"type":"boolean","title":"Takeovertranscription","description":"녹화되는 운영자 인계 구간에 실시간 자막과 영구 보관용 전사를 사용합니다. 사용하지 않으려면 false로 설정하세요. 기본값은 true입니다.","default":true,"uniqueKey":"data.takeoverTranscription","typeLabel":"boolean"},"presetDynamicVariables":{"additionalProperties":{"type":"string","uniqueKey":"data.presetDynamicVariables.additionalProperties","typeLabel":"string"},"type":"object","title":"Preset dynamic variables","description":"에이전트에서 사용할 수 있는 사전 정의 동적 변수입니다.","uniqueKey":"data.presetDynamicVariables","typeLabel":"Preset dynamic variables · object"},"toolIds":{"items":{"type":"string","format":"uuid","uniqueKey":"data.toolIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"type":"array","title":"Tool IDs","description":"에이전트에 연결할 custom 도구 UUID입니다. 값은 `GET /v3/tools`에서 확인합니다.","uniqueKey":"data.toolIds","typeLabel":"string\u003cuuid>[]"},"builtInTools":{"items":{"oneOf":[{"type":"object","title":"EndCallTool","description":"통화 종료 built-in 도구 설정입니다.","required":["toolType"],"properties":{"toolType":{"type":"string","const":"end_call","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.toolType","typeLabel":"string"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.responseMode","typeLabel":"enum\u003cstring>"},"name":{"type":"string","title":"Name","default":"end_call","description":"사람이 읽을 수 있는 리소스 이름입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.0","typeLabel":"EndCallTool · object"},{"type":"object","title":"TransferCallTool","description":"통화 전환 built-in 도구 설정입니다.","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"transfer_call","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.name","typeLabel":"string"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.responseMode","typeLabel":"enum\u003cstring>"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.description","typeLabel":"string | null"},"transferConfigurations":{"items":{"properties":{"transferTo":{"type":"string","title":"Transferto","description":"전환할 전화번호 또는 SIP URI입니다. `transferType`이 `operator`이면 실제 연결 대상이 아니라 운영자에게 표시할 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferTo","typeLabel":"string"},"transferCondition":{"oneOf":[{"type":"string","title":"Transfercondition","description":"이 전환 대상을 사용할 조건입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transfercondition","description":"이 전환 대상을 사용할 조건입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferCondition","typeLabel":"string | null"},"transferType":{"type":"string","enum":["phone","sip","operator"],"title":"Transfertype","description":"대상 유형입니다. 기본값은 agent-server 런타임과 같은 `phone`입니다. `operator`는 takeover 인계 제어면을 거쳐 실시간 운영자에게 연결하며 웜 전환만 지원합니다. `transferTo`는 표시용 이름입니다.","default":"phone","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferType","typeLabel":"enum\u003cstring>"}},"type":"object","required":["transferTo"],"title":"TransferConfig","description":"`transfer_call`의 전환 대상입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX]","typeLabel":"TransferConfig · object"},"type":"array","title":"Transfer configurations","description":"전환 대상 목록입니다. v3 API 응답은 `transferConfigurations`를 사용합니다. runtime/web 입력의 `transferConfiguration`도 호환용으로 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferConfigurations","typeLabel":"TransferConfig · object[]"},"transferType":{"type":"string","enum":["cold","warm"],"title":"Transfertype","description":"통화 전환 방식입니다. `cold`는 통화를 전환하는 즉시 에이전트를 제거하고 상담사에게 안내하지 않습니다. `warm`은 고객을 대기시키고 대화 요약 또는 고정 문장으로 상담사에게 안내한 뒤 연결합니다. 상담사가 30초 안에 받지 않으면 에이전트가 고객 응대를 재개합니다.","default":"cold","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferType","typeLabel":"enum\u003cstring>"},"transferMessageType":{"type":"string","enum":["static","dynamic"],"title":"Transfermessagetype","description":"`warm` 전환의 운영자 안내 방식입니다. `static`은 `warmTransferStaticSentence`를 그대로 읽고, `dynamic`은 `warmTransferPrompt`를 LLM 지침으로 사용해 대화 요약을 생성합니다. `cold` 전환에서는 무시됩니다.","default":"static","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.transferMessageType","typeLabel":"enum\u003cstring>"},"warmTransferPrompt":{"oneOf":[{"type":"string","title":"Warmtransferprompt","description":"`warm` 전환에서 상담사에게 전달할 대화 요약을 LLM이 생성할 때 사용하는 지침입니다. `transferMessageType`이 `dynamic`일 때만 사용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.warmTransferPrompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warmtransferprompt","description":"`warm` 전환에서 상담사에게 전달할 대화 요약을 LLM이 생성할 때 사용하는 지침입니다. `transferMessageType`이 `dynamic`일 때만 사용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.warmTransferPrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.warmTransferPrompt","typeLabel":"string | null"},"warmTransferStaticSentence":{"oneOf":[{"type":"string","title":"Warmtransferstaticsentence","description":"`warm` 전환 중 상담사에게 그대로 읽어 줄 문장입니다. `transferMessageType`이 `static`일 때만 사용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.warmTransferStaticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warmtransferstaticsentence","description":"`warm` 전환 중 상담사에게 그대로 읽어 줄 문장입니다. `transferMessageType`이 `static`일 때만 사용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.warmTransferStaticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.warmTransferStaticSentence","typeLabel":"string | null"},"displayedCallerId":{"type":"string","enum":["agent","user"],"title":"Displayedcallerid","description":"`cold`와 `warm` 전환에서 상담사 전화에 표시할 발신자 번호입니다. `agent`는 vox.ai 에이전트 전화번호를 표시하고, `user`는 현재 고객 전화번호를 표시합니다.","default":"agent","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.displayedCallerId","typeLabel":"enum\u003cstring>"},"sipHeaders":{"oneOf":[{"type":"array","items":{"properties":{"name":{"type":"string","maxLength":128,"minLength":3,"pattern":"^X-[A-Za-z0-9-]+$","title":"Name","description":"SIP 헤더 이름입니다. `X-`로 시작해야 하며, 3~128자이고 `X-[A-Za-z0-9-]+` 패턴을 따라야 합니다. 예약된 시스템 헤더는 사용할 수 없습니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","maxLength":256,"minLength":1,"title":"Value","description":"SIP 헤더 값입니다. 1~256자여야 하며, 탭을 제외한 제어 문자나 줄바꿈 문자를 포함할 수 없습니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"type":"object","required":["name","value"],"title":"TransferCallSipHeader","description":"`transfer_call`에 사용할 SIP 헤더 키-값 쌍입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0.items.[INDEX]","typeLabel":"TransferCallSipHeader · object"},"title":"Sipheaders","description":"전환 통화에 함께 보낼 커스텀 SIP 헤더 목록입니다. 모든 전환 대상이 `operator`이면 보낼 수 없습니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0","typeLabel":"TransferCallSipHeader · object[]"},{"type":"null","title":"Sipheaders","description":"전환 통화에 함께 보낼 커스텀 SIP 헤더 목록입니다. 모든 전환 대상이 `operator`이면 보낼 수 없습니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.sipHeaders.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1.sipHeaders","typeLabel":"TransferCallSipHeader · object[] | null"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.1","typeLabel":"TransferCallTool · object"},{"type":"object","title":"TransferAgentTool","description":"에이전트 전환 built-in 도구 설정입니다.","required":["toolType","name","agent"],"properties":{"toolType":{"type":"string","const":"transfer_agent","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.name","typeLabel":"string"},"agent":{"additionalProperties":false,"description":"`agent_id`와 `agent_version`을 담는 에이전트 매핑 객체입니다. 통화·대량 발신·전화번호의 교차 리소스 참조와 `builtInTools.transfer_agent`, flow `transferAgent` 노드의 `data.agent`에서 사용합니다.","properties":{"agent_id":{"description":"에이전트 UUID입니다.","format":"uuid","title":"Agent Id","type":"string","x-vox-effect":"wiring","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.agent.agent_id","typeLabel":"string\u003cuuid>"},"agent_version":{"default":"current","description":"에이전트 버전입니다. 허용값은 \"current\", \"production\", \"v{n}\"(n≥1)입니다. 보내지 않으면 \"current\"로 처리합니다. null 전송은 거부합니다.","title":"Agent Version","type":"string","x-vox-effect":"wiring","pattern":"^(current|production|v[1-9][0-9]*)$","examples":["current","production","v1"],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.agent.agent_version","typeLabel":"string"}},"required":["agent_id"],"title":"AgentMapping","type":"object","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.agent","typeLabel":"AgentMapping · object"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.responseMode","typeLabel":"enum\u003cstring>"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.description","typeLabel":"string | null"},"preserveChatContext":{"type":"boolean","title":"Preservechatcontext","description":"대상 에이전트가 이전 대화 컨텍스트를 받을지 여부입니다.","default":false,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2.preserveChatContext","typeLabel":"boolean"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.2","typeLabel":"TransferAgentTool · object"},{"type":"object","title":"SendSmsTool","description":"SMS 전송 built-in 도구 설정입니다.","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"send_sms","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.name","typeLabel":"string"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 SMS 발송 결과를 기다린 뒤 대화를 진행합니다. `fire_and_forget`은 발송 요청만 보내고 결과를 기다리지 않은 채 대화를 계속 진행합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.responseMode","typeLabel":"enum\u003cstring>"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.toolCallSound","typeLabel":"enum\u003cstring> | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.description","typeLabel":"string | null"},"smsMessageType":{"type":"string","enum":["static","dynamic"],"title":"Smsmessagetype","description":"SMS 본문 생성 방식입니다. `static`은 설정한 제목·본문·이미지 file key를 보내고, `dynamic`은 `smsMessagePrompt`로 에이전트가 본문을 생성합니다.","default":"static","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageType","typeLabel":"enum\u003cstring>"},"smsMessageStaticSentence":{"oneOf":[{"type":"string","title":"Smsmessagestaticsentence","description":"`smsMessageType=static`일 때 사용할 고정 메시지 본문입니다. 제목이나 이미지 file key와 함께 LMS/MMS로 전송됩니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsmessagestaticsentence","description":"`smsMessageType=static`일 때 사용할 고정 메시지 본문입니다. 제목이나 이미지 file key와 함께 LMS/MMS로 전송됩니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticSentence","typeLabel":"string | null"},"smsMessageStaticTitle":{"oneOf":[{"type":"string","title":"Smsmessagestatictitle","description":"`smsMessageType=static`일 때 사용할 선택적 제목입니다. 제목 없이 보내려면 생략하거나 null로 보냅니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticTitle.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsmessagestatictitle","description":"`smsMessageType=static`일 때 사용할 선택적 제목입니다. 제목 없이 보내려면 생략하거나 null로 보냅니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticTitle.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticTitle","typeLabel":"string | null"},"smsMessageStaticImageFileKeys":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Smsmessagestaticimagefilekeys","description":"MMS 이미지 첨부 file key 목록입니다. 파일 업로드 API가 반환한 opaque `file_key` 문자열을 최대 3개까지 보낼 수 있습니다. 텍스트만 보내려면 생략하거나 null로 보냅니다.","maxItems":3,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Smsmessagestaticimagefilekeys","description":"MMS 이미지 첨부 file key 목록입니다. 파일 업로드 API가 반환한 opaque `file_key` 문자열을 최대 3개까지 보낼 수 있습니다. 텍스트만 보내려면 생략하거나 null로 보냅니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys","typeLabel":"string[] | null"},"smsMessagePrompt":{"oneOf":[{"type":"string","title":"Smsmessageprompt","description":"`smsMessageType=dynamic`일 때 에이전트가 SMS 본문을 생성하는 데 사용할 프롬프트입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessagePrompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsmessageprompt","description":"`smsMessageType=dynamic`일 때 에이전트가 SMS 본문을 생성하는 데 사용할 프롬프트입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessagePrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsMessagePrompt","typeLabel":"string | null"},"smsFromNumber":{"oneOf":[{"type":"string","title":"Smsfromnumber","description":"SMS 발신번호 override입니다. 워크스페이스가 보유한 SMS 발신 가능 번호여야 합니다. 생략하거나 null이면 통화 context 기본값을 사용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsFromNumber.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsfromnumber","description":"SMS 발신번호 override입니다. 워크스페이스가 보유한 SMS 발신 가능 번호여야 합니다. 생략하거나 null이면 통화 context 기본값을 사용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsFromNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3.smsFromNumber","typeLabel":"string | null"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.3","typeLabel":"SendSmsTool · object"},{"type":"object","title":"SendDtmfTool","description":"DTMF 전송 built-in 도구 설정입니다.","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"send_dtmf","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.description","typeLabel":"string | null"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.responseMode","typeLabel":"enum\u003cstring>"},"allowInterruption":{"type":"boolean","title":"Allowinterruption","description":"DTMF 도구 실행 중 사용자 발화로 끼어들 수 있는지 여부입니다. 입력에서는 runtime/web의 `allowInterruptionDuringExecution`도 허용합니다.","default":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4.allowInterruption","typeLabel":"boolean"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.4","typeLabel":"SendDtmfTool · object"},{"type":"object","title":"SearchAddressTool","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"search_address","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.name","typeLabel":"string"},"speakDuringExecution":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.speakDuringExecution.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.speakDuringExecution.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.speakDuringExecution.messages","typeLabel":"string[]"}},"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 사용자에게 재생할 TTS 메시지를 설정합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.speakDuringExecution","typeLabel":"SpeakDuringExecution · object"},"allowInterruptionDuringExecution":{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자의 발화 끼어들기를 허용할지 설정합니다.","default":false,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.allowInterruptionDuringExecution","typeLabel":"boolean"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.responseMode","typeLabel":"enum\u003cstring>"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.toolCallSound","typeLabel":"enum\u003cstring> | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"도구의 역할과 호출 조건을 설명합니다. LLM이 이 설명을 바탕으로 도구 호출 여부를 판단합니다.","default":"Search Korean address candidates using OpenSearch and Kakao Local API. Use this when the caller provides Korean address clues such as region, road name and building number, jibun, or building/place name. The tool returns candidates, evidence, recommended_action, and timings; it does not confirm or commit the address.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"도구의 역할과 호출 조건을 설명합니다. LLM이 이 설명을 바탕으로 도구 호출 여부를 판단합니다.","default":"Search Korean address candidates using OpenSearch and Kakao Local API. Use this when the caller provides Korean address clues such as region, road name and building number, jibun, or building/place name. The tool returns candidates, evidence, recommended_action, and timings; it does not confirm or commit the address.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5.description","typeLabel":"string | null"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.5","typeLabel":"SearchAddressTool · object"},{"type":"object","title":"SkillTool","required":["toolType","name","skill"],"properties":{"toolType":{"type":"string","const":"skill","title":"Tool type","description":"기본 도구 타입입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.name","typeLabel":"string"},"skill":{"properties":{"skills":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"LLM에 노출되는 스킬 이름입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].name","typeLabel":"string"},"content":{"type":"string","title":"Content","description":"이 스킬이 실행할 프롬프트 또는 지시문입니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].content","typeLabel":"string"},"id":{"oneOf":[{"type":"string","title":"Id","description":"이 도구 안에서 고유한 스킬 식별자입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"이 도구 안에서 고유한 스킬 식별자입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].id","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"LLM이 이 스킬을 사용해야 하는 조건입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"LLM이 이 스킬을 사용해야 하는 조건입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].description","typeLabel":"string | null"}},"type":"object","required":["name","content"],"title":"SkillItem","description":"`skill` 기본 도구 안에 들어가는 단일 스킬 정의입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX]","typeLabel":"SkillItem · object"},"type":"array","minItems":1,"title":"Skills","description":"이 메타 도구에서 사용할 수 있는 스킬 목록입니다. 최소 1개가 필요합니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.skills","typeLabel":"SkillItem · object[]"},"initSkillId":{"oneOf":[{"type":"string","title":"Initskillid","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 ID입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.initSkillId.oneOf.0","typeLabel":"string"},{"type":"null","title":"Initskillid","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 ID입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.initSkillId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.initSkillId","typeLabel":"string | null"},"initSkillName":{"oneOf":[{"type":"string","title":"Initskillname","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 이름입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.initSkillName.oneOf.0","typeLabel":"string"},{"type":"null","title":"Initskillname","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 이름입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.initSkillName.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill.initSkillName","typeLabel":"string | null"}},"type":"object","required":["skills"],"title":"SkillPayload","description":"스킬 페이로드입니다. v3 API 필드는 `skill`이며, 통화 실행 시에는 `skillPayload`로 저장됩니다.","isRequired":true,"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.skill","typeLabel":"SkillPayload · object"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.responseMode","typeLabel":"enum\u003cstring>"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.toolCallSound","typeLabel":"enum\u003cstring> | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6.description","typeLabel":"string | null"}},"uniqueKey":"data.builtInTools.items.[INDEX].oneOf.6","typeLabel":"SkillTool · object"}],"uniqueKey":"data.builtInTools.items.[INDEX]","typeLabel":"EndCallTool · object | TransferCallTool · object | TransferAgentTool · object | SendSmsTool · object | SendDtmfTool · object | SearchAddressTool · object | SkillTool · object"},"type":"array","title":"Built-in tools","description":"에이전트에 연결된 built-in 도구입니다.","uniqueKey":"data.builtInTools","typeLabel":"(EndCallTool · object | TransferCallTool · object | TransferAgentTool · object | SendSmsTool · object | SendDtmfTool · object | SearchAddressTool · object | SkillTool · object)[]"},"manuals":{"additionalProperties":{"properties":{"name":{"type":"string","maxLength":128,"title":"Name","description":"메뉴얼 이름입니다. 최대 128자입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.name","typeLabel":"string"},"trigger":{"type":"string","title":"Trigger","description":"메뉴얼을 불러올 대화 상황입니다. 비워 두면 다른 메뉴얼이 참조할 때만 불러옵니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.trigger","typeLabel":"string"},"content":{"type":"string","maxLength":8096,"title":"Content","description":"메뉴얼 본문입니다. 공백을 포함해 최대 8,096자이며 `@tool:`과 `@manual:` 참조를 담을 수 있습니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.content","typeLabel":"string"},"built_in_tools":{"items":{"oneOf":[{"type":"object","title":"EndCallTool","description":"통화 종료 built-in 도구 설정입니다.","required":["toolType"],"properties":{"toolType":{"type":"string","const":"end_call","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.toolType","typeLabel":"string"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.responseMode","typeLabel":"enum\u003cstring>"},"name":{"type":"string","title":"Name","default":"end_call","description":"사람이 읽을 수 있는 리소스 이름입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0.description","typeLabel":"string | null"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.0","typeLabel":"EndCallTool · object"},{"type":"object","title":"TransferCallTool","description":"통화 전환 built-in 도구 설정입니다.","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"transfer_call","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.name","typeLabel":"string"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.responseMode","typeLabel":"enum\u003cstring>"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.description","typeLabel":"string | null"},"transferConfigurations":{"items":{"properties":{"transferTo":{"type":"string","title":"Transferto","description":"전환할 전화번호 또는 SIP URI입니다. `transferType`이 `operator`이면 실제 연결 대상이 아니라 운영자에게 표시할 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferTo","typeLabel":"string"},"transferCondition":{"oneOf":[{"type":"string","title":"Transfercondition","description":"이 전환 대상을 사용할 조건입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transfercondition","description":"이 전환 대상을 사용할 조건입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferCondition","typeLabel":"string | null"},"transferType":{"type":"string","enum":["phone","sip","operator"],"title":"Transfertype","description":"대상 유형입니다. 기본값은 agent-server 런타임과 같은 `phone`입니다. `operator`는 takeover 인계 제어면을 거쳐 실시간 운영자에게 연결하며 웜 전환만 지원합니다. `transferTo`는 표시용 이름입니다.","default":"phone","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX].transferType","typeLabel":"enum\u003cstring>"}},"type":"object","required":["transferTo"],"title":"TransferConfig","description":"`transfer_call`의 전환 대상입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations.items.[INDEX]","typeLabel":"TransferConfig · object"},"type":"array","title":"Transfer configurations","description":"전환 대상 목록입니다. v3 API 응답은 `transferConfigurations`를 사용합니다. runtime/web 입력의 `transferConfiguration`도 호환용으로 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferConfigurations","typeLabel":"TransferConfig · object[]"},"transferType":{"type":"string","enum":["cold","warm"],"title":"Transfertype","description":"통화 전환 방식입니다. `cold`는 통화를 전환하는 즉시 에이전트를 제거하고 상담사에게 안내하지 않습니다. `warm`은 고객을 대기시키고 대화 요약 또는 고정 문장으로 상담사에게 안내한 뒤 연결합니다. 상담사가 30초 안에 받지 않으면 에이전트가 고객 응대를 재개합니다.","default":"cold","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferType","typeLabel":"enum\u003cstring>"},"transferMessageType":{"type":"string","enum":["static","dynamic"],"title":"Transfermessagetype","description":"`warm` 전환의 운영자 안내 방식입니다. `static`은 `warmTransferStaticSentence`를 그대로 읽고, `dynamic`은 `warmTransferPrompt`를 LLM 지침으로 사용해 대화 요약을 생성합니다. `cold` 전환에서는 무시됩니다.","default":"static","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.transferMessageType","typeLabel":"enum\u003cstring>"},"warmTransferPrompt":{"oneOf":[{"type":"string","title":"Warmtransferprompt","description":"`warm` 전환에서 상담사에게 전달할 대화 요약을 LLM이 생성할 때 사용하는 지침입니다. `transferMessageType`이 `dynamic`일 때만 사용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.warmTransferPrompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warmtransferprompt","description":"`warm` 전환에서 상담사에게 전달할 대화 요약을 LLM이 생성할 때 사용하는 지침입니다. `transferMessageType`이 `dynamic`일 때만 사용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.warmTransferPrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.warmTransferPrompt","typeLabel":"string | null"},"warmTransferStaticSentence":{"oneOf":[{"type":"string","title":"Warmtransferstaticsentence","description":"`warm` 전환 중 상담사에게 그대로 읽어 줄 문장입니다. `transferMessageType`이 `static`일 때만 사용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.warmTransferStaticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warmtransferstaticsentence","description":"`warm` 전환 중 상담사에게 그대로 읽어 줄 문장입니다. `transferMessageType`이 `static`일 때만 사용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.warmTransferStaticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.warmTransferStaticSentence","typeLabel":"string | null"},"displayedCallerId":{"type":"string","enum":["agent","user"],"title":"Displayedcallerid","description":"`cold`와 `warm` 전환에서 상담사 전화에 표시할 발신자 번호입니다. `agent`는 vox.ai 에이전트 전화번호를 표시하고, `user`는 현재 고객 전화번호를 표시합니다.","default":"agent","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.displayedCallerId","typeLabel":"enum\u003cstring>"},"sipHeaders":{"oneOf":[{"type":"array","items":{"properties":{"name":{"type":"string","maxLength":128,"minLength":3,"pattern":"^X-[A-Za-z0-9-]+$","title":"Name","description":"SIP 헤더 이름입니다. `X-`로 시작해야 하며, 3~128자이고 `X-[A-Za-z0-9-]+` 패턴을 따라야 합니다. 예약된 시스템 헤더는 사용할 수 없습니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","maxLength":256,"minLength":1,"title":"Value","description":"SIP 헤더 값입니다. 1~256자여야 하며, 탭을 제외한 제어 문자나 줄바꿈 문자를 포함할 수 없습니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"type":"object","required":["name","value"],"title":"TransferCallSipHeader","description":"`transfer_call`에 사용할 SIP 헤더 키-값 쌍입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0.items.[INDEX]","typeLabel":"TransferCallSipHeader · object"},"title":"Sipheaders","description":"전환 통화에 함께 보낼 커스텀 SIP 헤더 목록입니다. 모든 전환 대상이 `operator`이면 보낼 수 없습니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.sipHeaders.oneOf.0","typeLabel":"TransferCallSipHeader · object[]"},{"type":"null","title":"Sipheaders","description":"전환 통화에 함께 보낼 커스텀 SIP 헤더 목록입니다. 모든 전환 대상이 `operator`이면 보낼 수 없습니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.sipHeaders.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1.sipHeaders","typeLabel":"TransferCallSipHeader · object[] | null"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.1","typeLabel":"TransferCallTool · object"},{"type":"object","title":"TransferAgentTool","description":"에이전트 전환 built-in 도구 설정입니다.","required":["toolType","name","agent"],"properties":{"toolType":{"type":"string","const":"transfer_agent","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.name","typeLabel":"string"},"agent":{"additionalProperties":false,"description":"`agent_id`와 `agent_version`을 담는 에이전트 매핑 객체입니다. 통화·대량 발신·전화번호의 교차 리소스 참조와 `builtInTools.transfer_agent`, flow `transferAgent` 노드의 `data.agent`에서 사용합니다.","properties":{"agent_id":{"description":"에이전트 UUID입니다.","format":"uuid","title":"Agent Id","type":"string","x-vox-effect":"wiring","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.agent.agent_id","typeLabel":"string\u003cuuid>"},"agent_version":{"default":"current","description":"에이전트 버전입니다. 허용값은 \"current\", \"production\", \"v{n}\"(n≥1)입니다. 보내지 않으면 \"current\"로 처리합니다. null 전송은 거부합니다.","title":"Agent Version","type":"string","x-vox-effect":"wiring","pattern":"^(current|production|v[1-9][0-9]*)$","examples":["current","production","v1"],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.agent.agent_version","typeLabel":"string"}},"required":["agent_id"],"title":"AgentMapping","type":"object","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.agent","typeLabel":"AgentMapping · object"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.responseMode","typeLabel":"enum\u003cstring>"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.description","typeLabel":"string | null"},"preserveChatContext":{"type":"boolean","title":"Preservechatcontext","description":"대상 에이전트가 이전 대화 컨텍스트를 받을지 여부입니다.","default":false,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2.preserveChatContext","typeLabel":"boolean"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.2","typeLabel":"TransferAgentTool · object"},{"type":"object","title":"SendSmsTool","description":"SMS 전송 built-in 도구 설정입니다.","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"send_sms","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.name","typeLabel":"string"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 SMS 발송 결과를 기다린 뒤 대화를 진행합니다. `fire_and_forget`은 발송 요청만 보내고 결과를 기다리지 않은 채 대화를 계속 진행합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.responseMode","typeLabel":"enum\u003cstring>"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.toolCallSound","typeLabel":"enum\u003cstring> | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.description","typeLabel":"string | null"},"smsMessageType":{"type":"string","enum":["static","dynamic"],"title":"Smsmessagetype","description":"SMS 본문 생성 방식입니다. `static`은 설정한 제목·본문·이미지 file key를 보내고, `dynamic`은 `smsMessagePrompt`로 에이전트가 본문을 생성합니다.","default":"static","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageType","typeLabel":"enum\u003cstring>"},"smsMessageStaticSentence":{"oneOf":[{"type":"string","title":"Smsmessagestaticsentence","description":"`smsMessageType=static`일 때 사용할 고정 메시지 본문입니다. 제목이나 이미지 file key와 함께 LMS/MMS로 전송됩니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsmessagestaticsentence","description":"`smsMessageType=static`일 때 사용할 고정 메시지 본문입니다. 제목이나 이미지 file key와 함께 LMS/MMS로 전송됩니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticSentence","typeLabel":"string | null"},"smsMessageStaticTitle":{"oneOf":[{"type":"string","title":"Smsmessagestatictitle","description":"`smsMessageType=static`일 때 사용할 선택적 제목입니다. 제목 없이 보내려면 생략하거나 null로 보냅니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticTitle.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsmessagestatictitle","description":"`smsMessageType=static`일 때 사용할 선택적 제목입니다. 제목 없이 보내려면 생략하거나 null로 보냅니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticTitle.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticTitle","typeLabel":"string | null"},"smsMessageStaticImageFileKeys":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Smsmessagestaticimagefilekeys","description":"MMS 이미지 첨부 file key 목록입니다. 파일 업로드 API가 반환한 opaque `file_key` 문자열을 최대 3개까지 보낼 수 있습니다. 텍스트만 보내려면 생략하거나 null로 보냅니다.","maxItems":3,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Smsmessagestaticimagefilekeys","description":"MMS 이미지 첨부 file key 목록입니다. 파일 업로드 API가 반환한 opaque `file_key` 문자열을 최대 3개까지 보낼 수 있습니다. 텍스트만 보내려면 생략하거나 null로 보냅니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessageStaticImageFileKeys","typeLabel":"string[] | null"},"smsMessagePrompt":{"oneOf":[{"type":"string","title":"Smsmessageprompt","description":"`smsMessageType=dynamic`일 때 에이전트가 SMS 본문을 생성하는 데 사용할 프롬프트입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessagePrompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsmessageprompt","description":"`smsMessageType=dynamic`일 때 에이전트가 SMS 본문을 생성하는 데 사용할 프롬프트입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessagePrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsMessagePrompt","typeLabel":"string | null"},"smsFromNumber":{"oneOf":[{"type":"string","title":"Smsfromnumber","description":"SMS 발신번호 override입니다. 워크스페이스가 보유한 SMS 발신 가능 번호여야 합니다. 생략하거나 null이면 통화 context 기본값을 사용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsFromNumber.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsfromnumber","description":"SMS 발신번호 override입니다. 워크스페이스가 보유한 SMS 발신 가능 번호여야 합니다. 생략하거나 null이면 통화 context 기본값을 사용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsFromNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3.smsFromNumber","typeLabel":"string | null"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.3","typeLabel":"SendSmsTool · object"},{"type":"object","title":"SendDtmfTool","description":"DTMF 전송 built-in 도구 설정입니다.","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"send_dtmf","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.description","typeLabel":"string | null"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.responseMode","typeLabel":"enum\u003cstring>"},"allowInterruption":{"type":"boolean","title":"Allowinterruption","description":"DTMF 도구 실행 중 사용자 발화로 끼어들 수 있는지 여부입니다. 입력에서는 runtime/web의 `allowInterruptionDuringExecution`도 허용합니다.","default":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4.allowInterruption","typeLabel":"boolean"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.4","typeLabel":"SendDtmfTool · object"},{"type":"object","title":"SearchAddressTool","required":["toolType","name"],"properties":{"toolType":{"type":"string","const":"search_address","title":"Tool type","description":"built-in 도구 유형입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.name","typeLabel":"string"},"speakDuringExecution":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.speakDuringExecution.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.speakDuringExecution.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.speakDuringExecution.messages","typeLabel":"string[]"}},"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 사용자에게 재생할 TTS 메시지를 설정합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.speakDuringExecution","typeLabel":"SpeakDuringExecution · object"},"allowInterruptionDuringExecution":{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자의 발화 끼어들기를 허용할지 설정합니다.","default":false,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.allowInterruptionDuringExecution","typeLabel":"boolean"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.responseMode","typeLabel":"enum\u003cstring>"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.toolCallSound","typeLabel":"enum\u003cstring> | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"도구의 역할과 호출 조건을 설명합니다. LLM이 이 설명을 바탕으로 도구 호출 여부를 판단합니다.","default":"Search Korean address candidates using OpenSearch and Kakao Local API. Use this when the caller provides Korean address clues such as region, road name and building number, jibun, or building/place name. The tool returns candidates, evidence, recommended_action, and timings; it does not confirm or commit the address.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"도구의 역할과 호출 조건을 설명합니다. LLM이 이 설명을 바탕으로 도구 호출 여부를 판단합니다.","default":"Search Korean address candidates using OpenSearch and Kakao Local API. Use this when the caller provides Korean address clues such as region, road name and building number, jibun, or building/place name. The tool returns candidates, evidence, recommended_action, and timings; it does not confirm or commit the address.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5.description","typeLabel":"string | null"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.5","typeLabel":"SearchAddressTool · object"},{"type":"object","title":"SkillTool","required":["toolType","name","skill"],"properties":{"toolType":{"type":"string","const":"skill","title":"Tool type","description":"기본 도구 타입입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.toolType","typeLabel":"string"},"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.name","typeLabel":"string"},"skill":{"properties":{"skills":{"items":{"properties":{"name":{"type":"string","title":"Name","description":"LLM에 노출되는 스킬 이름입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].name","typeLabel":"string"},"content":{"type":"string","title":"Content","description":"이 스킬이 실행할 프롬프트 또는 지시문입니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].content","typeLabel":"string"},"id":{"oneOf":[{"type":"string","title":"Id","description":"이 도구 안에서 고유한 스킬 식별자입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"이 도구 안에서 고유한 스킬 식별자입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].id","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"LLM이 이 스킬을 사용해야 하는 조건입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"LLM이 이 스킬을 사용해야 하는 조건입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX].description","typeLabel":"string | null"}},"type":"object","required":["name","content"],"title":"SkillItem","description":"`skill` 기본 도구 안에 들어가는 단일 스킬 정의입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills.items.[INDEX]","typeLabel":"SkillItem · object"},"type":"array","minItems":1,"title":"Skills","description":"이 메타 도구에서 사용할 수 있는 스킬 목록입니다. 최소 1개가 필요합니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.skills","typeLabel":"SkillItem · object[]"},"initSkillId":{"oneOf":[{"type":"string","title":"Initskillid","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 ID입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.initSkillId.oneOf.0","typeLabel":"string"},{"type":"null","title":"Initskillid","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 ID입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.initSkillId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.initSkillId","typeLabel":"string | null"},"initSkillName":{"oneOf":[{"type":"string","title":"Initskillname","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 이름입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.initSkillName.oneOf.0","typeLabel":"string"},{"type":"null","title":"Initskillname","description":"LLM이 다른 스킬을 선택하기 전에 먼저 시작할 선택적 스킬 이름입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.initSkillName.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill.initSkillName","typeLabel":"string | null"}},"type":"object","required":["skills"],"title":"SkillPayload","description":"스킬 페이로드입니다. v3 API 필드는 `skill`이며, 통화 실행 시에는 `skillPayload`로 저장됩니다.","isRequired":true,"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.skill","typeLabel":"SkillPayload · object"},"speakDuringExecution":{"oneOf":[{"type":"object","title":"SpeakDuringExecution","description":"도구 실행 중 재생할 발화 메시지입니다.","properties":{"enabled":{"type":"boolean","title":"Enabled","default":false,"description":"이 설정을 사용할지 여부입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0.enabled","typeLabel":"boolean"},"messages":{"items":{"type":"string","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0.messages.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Messages","description":"도구 실행 중 재생할 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0.messages","typeLabel":"string[]"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.0","typeLabel":"SpeakDuringExecution · object"},{"type":"null","description":"도구 실행 중 재생할 발화 메시지입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.speakDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.speakDuringExecution","typeLabel":"SpeakDuringExecution · object | null"},"allowInterruptionDuringExecution":{"oneOf":[{"type":"boolean","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.allowInterruptionDuringExecution.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Allowinterruptionduringexecution","description":"도구 실행 중 사용자가 발화를 중단할 수 있는지 여부입니다. 생략하거나 null이면 기본적으로 중단을 허용합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.allowInterruptionDuringExecution.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.allowInterruptionDuringExecution","typeLabel":"boolean | null"},"responseMode":{"type":"string","enum":["wait","fire_and_forget"],"title":"Responsemode","description":"`wait`는 도구 완료를 기다립니다. `fire_and_forget`은 도구를 시작한 뒤 대화를 계속합니다.","default":"wait","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.responseMode","typeLabel":"enum\u003cstring>"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","description":"도구 실행 중 통화가 조용해지지 않도록 재생하는 소리입니다. 생략하거나 `none`을 선택하면 재생하지 않습니다. `typing` 또는 `elevator_1`부터 `elevator_4`까지의 프리셋을 선택할 수 있습니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.toolCallSound","typeLabel":"enum\u003cstring> | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6.description","typeLabel":"string | null"}},"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX].oneOf.6","typeLabel":"SkillTool · object"}],"uniqueKey":"data.manuals.additionalProperties.built_in_tools.items.[INDEX]","typeLabel":"EndCallTool · object | TransferCallTool · object | TransferAgentTool · object | SendSmsTool · object | SendDtmfTool · object | SearchAddressTool · object | SkillTool · object"},"type":"array","title":"Built In Tools","description":"이 메뉴얼의 빌트인 도구 목록입니다. 본문에서 `@tool:{name}`으로 참조합니다. 각 `name`은 고유한 식별자(`[a-zA-Z_][a-zA-Z0-9_]*`)여야 합니다.","uniqueKey":"data.manuals.additionalProperties.built_in_tools","typeLabel":"(EndCallTool · object | TransferCallTool · object | TransferAgentTool · object | SendSmsTool · object | SendDtmfTool · object | SearchAddressTool · object | SkillTool · object)[]"},"config":{"additionalProperties":{"oneOf":[{"type":"string","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"data.manuals.additionalProperties.config.additionalProperties.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"data.manuals.additionalProperties.config.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.manuals.additionalProperties.config.additionalProperties","typeLabel":"enum\u003cstring> | null"},"type":"object","title":"Config","description":"메뉴얼 설정입니다. 옵션은 `tool_call_sound` 하나이며, 메뉴얼을 불러온 직후 재생할 실행 대기음입니다.","uniqueKey":"data.manuals.additionalProperties.config","typeLabel":"Config · object"}},"additionalProperties":false,"type":"object","required":["name","trigger","content"],"title":"PublicManualValue","description":"에이전트에 속한 메뉴얼 1건입니다. `built_in_tools`는 에이전트 빌트인 도구와 같은 형식을 씁니다.","uniqueKey":"data.manuals.additionalProperties","typeLabel":"PublicManualValue · object"},"type":"object","title":"Manuals","description":"선택한 현재 편집본 또는 고정 버전의 메뉴얼 맵입니다. 키는 메뉴얼 UUID입니다.","uniqueKey":"data.manuals","typeLabel":"Manuals · object"}},"type":"object","title":"AgentDataResponse","description":"선택된 에이전트 설정 스냅샷입니다. 구조는 `agent-schema/agent-data-response`에 공개되어 있습니다.","uniqueKey":"data","typeLabel":"AgentDataResponse · object"},"flow_data":{"oneOf":[{"type":"object","title":"FlowData","description":"지원 종료 예정 필드입니다. 에이전트의 플로우 그래프를 예전 형식으로 담고 있으며, 기존 호환을 위해 유지됩니다. 읽기 전용이고, flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 새 통합은 `flow`를 사용하세요. 이 필드는 지원 종료 기간 이후 제거됩니다.","deprecated":true,"properties":{"nodes":{"items":{"oneOf":[{"type":"object","title":"BeginFlowDataNode","description":"`type=begin` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.id","typeLabel":"string"},"type":{"type":"string","const":"begin","description":"`begin` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.transitions","typeLabel":"FlowDataTransition · object[]"},"firstLineType":{"oneOf":[{"type":"string","title":"Firstlinetype","description":"single_prompt 에이전트의 첫 발화 방식입니다. `userFirst`, `aiFirstDynamic`, `aiFirstStatic` 중 하나입니다.","default":"aiFirst","enum":["aiFirst","userFirst"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.firstLineType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Firstlinetype","description":"single_prompt 에이전트의 첫 발화 방식입니다. `userFirst`, `aiFirstDynamic`, `aiFirstStatic` 중 하나입니다.","default":"aiFirst","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.firstLineType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.firstLineType","typeLabel":"enum\u003cstring> | null"},"pauseBeforeSpeakingSeconds":{"oneOf":[{"type":"number","title":"Pausebeforespeakingseconds","description":"에이전트가 첫 발화를 시작하기 전 대기 시간입니다. 단위는 초입니다.","maximum":5,"minimum":0,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.pauseBeforeSpeakingSeconds.oneOf.0","typeLabel":"number"},{"type":"null","title":"Pausebeforespeakingseconds","description":"에이전트가 첫 발화를 시작하기 전 대기 시간입니다. 단위는 초입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.pauseBeforeSpeakingSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data.pauseBeforeSpeakingSeconds","typeLabel":"number | null"}},"title":"BeginData","type":"object","description":"`begin` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.data","typeLabel":"BeginData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.0","typeLabel":"BeginFlowDataNode · object"},{"type":"object","title":"ConversationFlowDataNode","description":"`type=conversation` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.id","typeLabel":"string"},"type":{"type":"string","const":"conversation","description":"`conversation` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.transitions","typeLabel":"FlowDataTransition · object[]"},"promptType":{"oneOf":[{"type":"string","title":"Prompttype","description":"노드 프롬프트 방식입니다.","enum":["static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.promptType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompttype","description":"노드 프롬프트 방식입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.promptType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.promptType","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt","typeLabel":"string | null"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","description":"정적 프롬프트 방식에서 사용할 고정 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","description":"정적 프롬프트 방식에서 사용할 고정 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.staticSentence","typeLabel":"string | null"},"firstMessage":{"oneOf":[{"type":"string","title":"Firstmessage","description":"conversation 노드 진입 시 사용할 첫 메시지입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.firstMessage.oneOf.0","typeLabel":"string"},{"type":"null","title":"Firstmessage","description":"conversation 노드 진입 시 사용할 첫 메시지입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.firstMessage.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.firstMessage","typeLabel":"string | null"},"loopCondition":{"oneOf":[{"type":"string","title":"Loopcondition","description":"노드를 반복 실행할 조건입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.loopCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Loopcondition","description":"노드를 반복 실행할 조건입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.loopCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.loopCondition","typeLabel":"string | null"},"isAllowInterruption":{"oneOf":[{"type":"boolean","title":"Isallowinterruption","description":"사용자가 에이전트의 발화를 중단할 수 있는지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.isAllowInterruption.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isallowinterruption","description":"사용자가 에이전트의 발화를 중단할 수 있는지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.isAllowInterruption.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.isAllowInterruption","typeLabel":"boolean | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"이 conversation node가 말한 뒤 사용자 응답을 기다리지 않을지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"이 conversation node가 말한 뒤 사용자 응답을 기다리지 않을지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.isSkipUserResponse","typeLabel":"boolean | null"},"llm":{"oneOf":[{"type":"object","title":"Llm","description":"LLM 설정입니다.","additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.llm.oneOf.0","typeLabel":"Llm · object"},{"type":"null","title":"Llm","description":"LLM 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.llm.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.llm","typeLabel":"Llm · object | null"},"knowledge":{"oneOf":[{"type":"object","title":"FlowDataNodeKnowledgeConfig","description":"에이전트 knowledge base 설정입니다.","properties":{"ragEnabled":{"default":false,"title":"Ragenabled","type":"boolean","description":"이 agent에서 retrieval-augmented generation 사용 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.ragEnabled","typeLabel":"boolean"},"knowledgeIds":{"oneOf":[{"type":"array","items":{"type":"integer","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledgeIds.oneOf.0.items.[INDEX]","typeLabel":"integer"},"title":"Knowledgeids","description":"`GET /v3/knowledges`에서 반환되고 이 agent에 연결되는 numeric public knowledge ID 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledgeIds.oneOf.0","typeLabel":"integer[]"},{"type":"null","title":"Knowledgeids","description":"`GET /v3/knowledges`에서 반환되고 이 agent에 연결되는 numeric public knowledge ID 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledgeIds.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledgeIds","typeLabel":"integer[] | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0","typeLabel":"FlowDataNodeKnowledgeConfig · object"},{"type":"null","description":"에이전트 knowledge base 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge","typeLabel":"FlowDataNodeKnowledgeConfig · object | null"},"knowledgeIds":{"oneOf":[{"type":"array","items":{"type":"integer","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledgeIds.oneOf.0.items.[INDEX]","typeLabel":"integer"},"title":"Knowledgeids","description":"이 에이전트에 연결할 숫자형 public knowledge ID 목록입니다. 값은 `GET /v3/knowledges`에서 확인합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledgeIds.oneOf.0","typeLabel":"integer[]"},{"type":"null","title":"Knowledgeids","description":"이 에이전트에 연결할 숫자형 public knowledge ID 목록입니다. 값은 `GET /v3/knowledges`에서 확인합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledgeIds.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledgeIds","typeLabel":"integer[] | null"}},"title":"ConversationData","type":"object","description":"`conversation` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.data","typeLabel":"ConversationData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.1","typeLabel":"ConversationFlowDataNode · object"},{"type":"object","title":"ToolFlowDataNode","description":"`type=tool` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.id","typeLabel":"string"},"type":{"type":"string","const":"tool","description":"`tool` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"flow builder에 표시되고 분기 근거로 쓰이는 자연어 조건입니다. 일반 transition에는 구체적인 한국어 문구를 쓰세요. fallback이나 user-response-skip 경로는 노드 타입별 규칙을 따릅니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"flow builder에 표시되고 분기 근거로 쓰이는 자연어 조건입니다. 일반 transition에는 구체적인 한국어 문구를 쓰세요. fallback이나 user-response-skip 경로는 노드 타입별 규칙을 따릅니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 외부 호출이 실패할 수 있는 노드에는 설정을 권장합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 외부 호출이 실패할 수 있는 노드에는 설정을 권장합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","description":"전역 transition으로 처리할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","description":"전역 transition으로 처리할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"Transition","type":"object","description":"외부 실행 노드에서 사용하는 transition 정의입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions.items.[INDEX]","typeLabel":"Transition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.transitions","typeLabel":"Transition · object[]"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.toolCallSound","typeLabel":"enum\u003cstring> | null"},"toolId":{"oneOf":[{"type":"string","title":"Toolid","description":"호출할 custom 도구 ID입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.toolId.oneOf.0","typeLabel":"string"},{"type":"null","title":"Toolid","description":"호출할 custom 도구 ID입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.toolId.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.toolId","typeLabel":"string | null"},"promptType":{"oneOf":[{"type":"string","title":"Prompttype","enum":["none","static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.promptType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompttype","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.promptType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.promptType","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt","typeLabel":"string | null"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data.staticSentence","typeLabel":"string | null"}},"title":"ToolData","type":"object","description":"`tool` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.data","typeLabel":"ToolData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.2","typeLabel":"ToolFlowDataNode · object"},{"type":"object","title":"ConditionFlowDataNode","description":"`type=condition` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.id","typeLabel":"string"},"type":{"type":"string","const":"condition","description":"`condition` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.transitions","typeLabel":"FlowDataTransition · object[]"},"logicalTransitions":{"items":{"additionalProperties":true,"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].id","typeLabel":"string"},"condition":{"additionalProperties":true,"properties":{"conditions":{"items":{"additionalProperties":true,"properties":{"variable":{"title":"Variable","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions.items.[INDEX].variable","typeLabel":"string"},"operator":{"enum":["equals","not_equals","contains","does_not_contain","greater_than","greater_than_or_equal","less_than","less_than_or_equal","exists","does_not_exist"],"title":"Operator","type":"string","description":"이 조건에서 사용할 비교 연산자입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions.items.[INDEX].operator","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"title":"Value","description":"이 조건에서 비교할 값입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions.items.[INDEX].value.oneOf.0","typeLabel":"any"},{"type":"null","title":"Value","description":"이 조건에서 비교할 값입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions.items.[INDEX].value","typeLabel":"any | null"}},"required":["variable","operator"],"title":"FlowDataSingleCondition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions.items.[INDEX]","typeLabel":"FlowDataSingleCondition · object"},"title":"Conditions","type":"array","description":"이 논리 조건에서 평가할 중첩 조건 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.conditions","typeLabel":"FlowDataSingleCondition · object[]"},"logicalOperator":{"default":"or","enum":["and","or"],"title":"Logicaloperator","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition.logicalOperator","typeLabel":"enum\u003cstring>"}},"title":"FlowDataLogicalCondition","type":"object","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].condition","typeLabel":"FlowDataLogicalCondition · object"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"Legacy/editor field입니다. api/function/tool/sendSms logicalTransitions에는 설정하지 마세요. execution-node 진행은 skip-user-response가 아니라 tool output이 결정합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"Legacy/editor field입니다. api/function/tool/sendSms logicalTransitions에는 설정하지 마세요. execution-node 진행은 skip-user-response가 아니라 tool output이 결정합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id","condition"],"title":"FlowDataLogicalTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions.items.[INDEX]","typeLabel":"FlowDataLogicalTransition · object"},"title":"Logicaltransitions","type":"array","description":"node.data에 저장되는 변수 기반 transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data.logicalTransitions","typeLabel":"FlowDataLogicalTransition · object[]"}},"title":"ConditionData","type":"object","description":"`condition` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.data","typeLabel":"ConditionData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.3","typeLabel":"ConditionFlowDataNode · object"},{"type":"object","title":"ExtractionFlowDataNode","description":"`type=extraction` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.id","typeLabel":"string"},"type":{"type":"string","const":"extraction","description":"`extraction` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.transitions","typeLabel":"FlowDataTransition · object[]"},"extractionConfiguration":{"additionalProperties":true,"properties":{"extractionPrompt":{"default":"","title":"Extractionprompt","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration.extractionPrompt","typeLabel":"string"},"variables":{"items":{"additionalProperties":true,"properties":{"variableName":{"pattern":"^[a-zA-Z][a-zA-Z0-9_]{0,39}$","title":"Variablename","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration.variables.items.[INDEX].variableName","typeLabel":"string"},"variableType":{"default":"string","enum":["string","number","boolean"],"title":"Variabletype","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration.variables.items.[INDEX].variableType","typeLabel":"enum\u003cstring>"},"variableDescription":{"default":"","title":"Variabledescription","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration.variables.items.[INDEX].variableDescription","typeLabel":"string"}},"required":["variableName"],"title":"FlowDataVariableDefinition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration.variables.items.[INDEX]","typeLabel":"FlowDataVariableDefinition · object"},"title":"Variables","type":"array","description":"이 추출 설정이 생성하는 변수 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration.variables","typeLabel":"FlowDataVariableDefinition · object[]"}},"title":"FlowDataExtractionConfiguration","type":"object","description":"추출 노드의 structured extraction 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extractionConfiguration","typeLabel":"FlowDataExtractionConfiguration · object"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"추출 노드에서 사용자 응답을 기다리지 않고 다음 transition으로 진행할지 여부입니다.","default":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"추출 노드에서 사용자 응답을 기다리지 않고 다음 transition으로 진행할지 여부입니다.","default":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.isSkipUserResponse","typeLabel":"boolean | null"},"llm":{"oneOf":[{"type":"object","title":"Llm","description":"추출 노드에서 사용할 LLM 설정입니다.","additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.llm.oneOf.0","typeLabel":"Llm · object"},{"type":"null","title":"Llm","description":"추출 노드에서 사용할 LLM 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.llm.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.llm","typeLabel":"Llm · object | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.prompt","typeLabel":"string | null"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data.toolCallSound","typeLabel":"enum\u003cstring> | null"}},"title":"ExtractionData","type":"object","description":"`extraction` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.data","typeLabel":"ExtractionData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.4","typeLabel":"ExtractionFlowDataNode · object"},{"type":"object","title":"ApiFlowDataNode","description":"`type=api` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.id","typeLabel":"string"},"type":{"type":"string","const":"api","description":"`api` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"apiConfiguration":{"additionalProperties":true,"properties":{"url":{"description":"API 엔드포인트 URL입니다. 경로의 동적 값에는 ASCII 영문자·숫자·밑줄·하이픈만 사용할 수 있습니다. 임의의 문자열은 query 값으로 전달하세요.","title":"Url","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.url","typeLabel":"string"},"method":{"default":"GET","enum":["GET","POST","PUT","DELETE"],"title":"Method","type":"string","description":"API 노드에서 사용할 HTTP method입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.method","typeLabel":"enum\u003cstring>"},"authorizationEnabled":{"default":false,"title":"Authorizationenabled","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.authorizationEnabled","typeLabel":"boolean"},"authType":{"default":"None","enum":["None","Basic","Bearer"],"title":"Authtype","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.authType","typeLabel":"enum\u003cstring>"},"authCredentials":{"oneOf":[{"type":"string","title":"Authcredentials","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.authCredentials.oneOf.0","typeLabel":"string"},{"type":"null","title":"Authcredentials","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.authCredentials.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.authCredentials","typeLabel":"string | null"},"authEncodeRequired":{"default":false,"title":"Authencoderequired","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.authEncodeRequired","typeLabel":"boolean"},"headersEnabled":{"default":false,"title":"Headersenabled","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.headersEnabled","typeLabel":"boolean"},"headers":{"additionalProperties":{"type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.headers.additionalProperties","typeLabel":"string"},"title":"Headers","type":"object","description":"API 노드에서 보낼 custom HTTP header입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.headers","typeLabel":"Headers · object"},"bodyEnabled":{"default":false,"title":"Bodyenabled","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.bodyEnabled","typeLabel":"boolean"},"body":{"oneOf":[{"type":"string","title":"Body","description":"API 노드에서 보낼 요청 body 또는 template입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.body.oneOf.0","typeLabel":"string"},{"type":"null","title":"Body","description":"API 노드에서 보낼 요청 body 또는 template입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.body","typeLabel":"string | null"},"timeoutSeconds":{"default":10,"exclusiveMinimum":0,"title":"Timeoutseconds","type":"integer","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration.timeoutSeconds","typeLabel":"integer"}},"required":["url"],"title":"FlowDataApiConfiguration","type":"object","description":"API 노드가 호출할 외부 HTTP 요청 설정입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.apiConfiguration","typeLabel":"FlowDataApiConfiguration · object"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"flow builder에 표시되고 분기 근거로 쓰이는 자연어 조건입니다. 일반 transition에는 구체적인 한국어 문구를 쓰세요. fallback이나 user-response-skip 경로는 노드 타입별 규칙을 따릅니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"flow builder에 표시되고 분기 근거로 쓰이는 자연어 조건입니다. 일반 transition에는 구체적인 한국어 문구를 쓰세요. fallback이나 user-response-skip 경로는 노드 타입별 규칙을 따릅니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 외부 호출이 실패할 수 있는 노드에는 설정을 권장합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 외부 호출이 실패할 수 있는 노드에는 설정을 권장합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","description":"전역 transition으로 처리할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","description":"전역 transition으로 처리할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"Transition","type":"object","description":"외부 실행 노드에서 사용하는 transition 정의입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions.items.[INDEX]","typeLabel":"Transition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.transitions","typeLabel":"Transition · object[]"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.toolCallSound","typeLabel":"enum\u003cstring> | null"},"responseMode":{"default":"wait","enum":["wait","fire_and_forget"],"title":"Responsemode","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.responseMode","typeLabel":"enum\u003cstring>"},"responseVariables":{"items":{"additionalProperties":true,"properties":{"variableName":{"title":"Variablename","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.responseVariables.items.[INDEX].variableName","typeLabel":"string"},"jsonPath":{"title":"Jsonpath","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.responseVariables.items.[INDEX].jsonPath","typeLabel":"string"}},"required":["variableName","jsonPath"],"title":"FlowDataApiResponseVariable","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.responseVariables.items.[INDEX]","typeLabel":"FlowDataApiResponseVariable · object"},"title":"Responsevariables","type":"array","description":"API 응답에서 추출해 저장할 변수 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.responseVariables","typeLabel":"FlowDataApiResponseVariable · object[]"},"promptType":{"oneOf":[{"type":"string","title":"Prompttype","enum":["none","static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.promptType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompttype","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.promptType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.promptType","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt","typeLabel":"string | null"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data.staticSentence","typeLabel":"string | null"}},"required":["apiConfiguration"],"title":"ApiData","type":"object","description":"`api` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.data","typeLabel":"ApiData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.5","typeLabel":"ApiFlowDataNode · object"},{"type":"object","title":"SendSmsFlowDataNode","description":"`type=sendSms` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.id","typeLabel":"string"},"type":{"type":"string","const":"sendSms","description":"`sendSms` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"flow builder에 표시되고 분기 근거로 쓰이는 자연어 조건입니다. 일반 transition에는 구체적인 한국어 문구를 쓰세요. fallback이나 user-response-skip 경로는 노드 타입별 규칙을 따릅니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"flow builder에 표시되고 분기 근거로 쓰이는 자연어 조건입니다. 일반 transition에는 구체적인 한국어 문구를 쓰세요. fallback이나 user-response-skip 경로는 노드 타입별 규칙을 따릅니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 외부 호출이 실패할 수 있는 노드에는 설정을 권장합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 외부 호출이 실패할 수 있는 노드에는 설정을 권장합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","description":"전역 transition으로 처리할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","description":"전역 transition으로 처리할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"Transition","type":"object","description":"외부 실행 노드에서 사용하는 transition 정의입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions.items.[INDEX]","typeLabel":"Transition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.transitions","typeLabel":"Transition · object[]"},"toolCallSound":{"oneOf":[{"type":"string","title":"Toolcallsound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.toolCallSound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Toolcallsound","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.toolCallSound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.toolCallSound","typeLabel":"enum\u003cstring> | null"},"responseMode":{"default":"wait","enum":["wait","fire_and_forget"],"title":"Responsemode","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.responseMode","typeLabel":"enum\u003cstring>"},"promptType":{"oneOf":[{"type":"string","title":"Prompttype","description":"노드 프롬프트 방식입니다.","default":"static","enum":["static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.promptType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompttype","description":"노드 프롬프트 방식입니다.","default":"static","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.promptType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.promptType","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt","typeLabel":"string | null"},"staticTitle":{"oneOf":[{"type":"string","title":"Statictitle","description":"정적 SMS/LMS/MMS 전송에 사용할 제목입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticTitle.oneOf.0","typeLabel":"string"},{"type":"null","title":"Statictitle","description":"정적 SMS/LMS/MMS 전송에 사용할 제목입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticTitle.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticTitle","typeLabel":"string | null"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","description":"정적 프롬프트 방식에서 사용할 고정 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","description":"정적 프롬프트 방식에서 사용할 고정 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticSentence","typeLabel":"string | null"},"staticImageFileKeys":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticImageFileKeys.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Staticimagefilekeys","description":"MMS 이미지 첨부 file key 목록입니다. 값은 파일 업로드 endpoint가 반환한 opaque `file_key` 문자열입니다.","maxItems":3,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticImageFileKeys.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Staticimagefilekeys","description":"MMS 이미지 첨부 file key 목록입니다. 값은 파일 업로드 endpoint가 반환한 opaque `file_key` 문자열입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticImageFileKeys.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.staticImageFileKeys","typeLabel":"string[] | null"},"smsFromNumber":{"oneOf":[{"type":"string","title":"Smsfromnumber","description":"SMS 발신에 사용할 워크스페이스 보유 발신번호입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.smsFromNumber.oneOf.0","typeLabel":"string"},{"type":"null","title":"Smsfromnumber","description":"SMS 발신에 사용할 워크스페이스 보유 발신번호입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.smsFromNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data.smsFromNumber","typeLabel":"string | null"}},"title":"SendSmsData","type":"object","description":"`sendSms` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.data","typeLabel":"SendSmsData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.6","typeLabel":"SendSmsFlowDataNode · object"},{"type":"object","title":"TransferCallFlowDataNode","description":"`type=transferCall` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.id","typeLabel":"string"},"type":{"type":"string","const":"transferCall","description":"`transferCall` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"transferConfiguration":{"additionalProperties":true,"properties":{"transferTo":{"description":"전환할 전화번호 또는 SIP URI입니다. `transfer_type`이 `operator`이면 실제 연결 대상이 아니라 운영자에게 표시할 이름입니다.","title":"Transferto","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferConfiguration.transferTo","typeLabel":"string"},"transferType":{"default":"phone","description":"전환 대상 방식입니다. `operator`는 인계 제어면을 통해 실시간 운영자에게 연결합니다. 웜 전환만 지원하며 `transfer_to`는 표시용 이름입니다.","enum":["phone","sip","operator"],"title":"Transfertype","type":"string","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferConfiguration.transferType","typeLabel":"enum\u003cstring>"},"transferCondition":{"oneOf":[{"type":"string","title":"Transfercondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferConfiguration.transferCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transfercondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferConfiguration.transferCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferConfiguration.transferCondition","typeLabel":"string | null"}},"required":["transferTo"],"title":"FlowDataTransferConfiguration","type":"object","description":"통화 전환 대상과 조건 설정입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferConfiguration","typeLabel":"FlowDataTransferConfiguration · object"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transitions","typeLabel":"FlowDataTransition · object[]"},"transferType":{"oneOf":[{"type":"string","title":"Transfertype","description":"통화 전환 유형입니다.","default":"cold","enum":["cold","warm"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transfertype","description":"통화 전환 유형입니다.","default":"cold","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferType","typeLabel":"enum\u003cstring> | null"},"transferMessageType":{"oneOf":[{"type":"string","title":"Transfermessagetype","description":"전환 전 사용자에게 안내할 메시지 방식입니다.","default":"static","enum":["static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferMessageType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transfermessagetype","description":"전환 전 사용자에게 안내할 메시지 방식입니다.","default":"static","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferMessageType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transferMessageType","typeLabel":"enum\u003cstring> | null"},"warmTransferPrompt":{"oneOf":[{"type":"string","title":"Warmtransferprompt","description":"warm transfer 안내 문구를 생성할 프롬프트입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warmTransferPrompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warmtransferprompt","description":"warm transfer 안내 문구를 생성할 프롬프트입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warmTransferPrompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warmTransferPrompt","typeLabel":"string | null"},"warmTransferStaticSentence":{"oneOf":[{"type":"string","title":"Warmtransferstaticsentence","description":"warm transfer에서 사용할 고정 안내 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warmTransferStaticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warmtransferstaticsentence","description":"warm transfer에서 사용할 고정 안내 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warmTransferStaticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warmTransferStaticSentence","typeLabel":"string | null"},"displayedCallerId":{"oneOf":[{"type":"string","title":"Displayedcallerid","description":"전환 대상에게 표시할 발신번호입니다.","default":"agent","enum":["agent","user"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.displayedCallerId.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Displayedcallerid","description":"전환 대상에게 표시할 발신번호입니다.","default":"agent","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.displayedCallerId.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.displayedCallerId","typeLabel":"enum\u003cstring> | null"},"sipHeaders":{"oneOf":[{"type":"array","items":{"additionalProperties":true,"properties":{"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sipHeaders.oneOf.0.items.[INDEX].name","typeLabel":"string"},"value":{"title":"Value","type":"string","description":"이 조건에서 비교할 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sipHeaders.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"title":"FlowDataSipHeader","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sipHeaders.oneOf.0.items.[INDEX]","typeLabel":"FlowDataSipHeader · object"},"title":"Sipheaders","description":"SIP 전환 요청에 포함할 header 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sipHeaders.oneOf.0","typeLabel":"FlowDataSipHeader · object[]"},{"type":"null","title":"Sipheaders","description":"SIP 전환 요청에 포함할 header 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sipHeaders.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sipHeaders","typeLabel":"FlowDataSipHeader · object[] | null"},"promptType":{"oneOf":[{"type":"string","title":"Prompttype","enum":["none","static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.promptType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompttype","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.promptType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.promptType","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt","typeLabel":"string | null"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data.staticSentence","typeLabel":"string | null"}},"required":["transferConfiguration"],"title":"TransferCallData","type":"object","description":"`transferCall` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.data","typeLabel":"TransferCallData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.7","typeLabel":"TransferCallFlowDataNode · object"},{"type":"object","title":"TransferAgentFlowDataNode","description":"`type=transferAgent` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.id","typeLabel":"string"},"type":{"type":"string","const":"transferAgent","description":"`transferAgent` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"agent":{"additionalProperties":false,"description":"`agent_id`와 `agent_version`으로 구성된 에이전트 매핑 객체입니다.","properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id","description":"에이전트 UUID입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.agent.agent_id","typeLabel":"string\u003cuuid>"},"agent_version":{"default":"current","description":"에이전트 버전. 허용값: \"current\", \"production\", 또는 \"v{n}\" (n≥1). 미전송 시 \"current\"로 처리됩니다. null 전송은 거부.","title":"Agent Version","type":"string","pattern":"^(current|production|v[1-9][0-9]*)$","examples":["current","production","v1"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.agent.agent_version","typeLabel":"string"}},"required":["agent_id"],"title":"FlowDataAgentMapping","type":"object","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.agent","typeLabel":"FlowDataAgentMapping · object"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.transitions","typeLabel":"FlowDataTransition · object[]"},"preserveChatContext":{"oneOf":[{"type":"boolean","title":"Preservechatcontext","description":"전환 후 에이전트에 이전 대화 context를 전달할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.preserveChatContext.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Preservechatcontext","description":"전환 후 에이전트에 이전 대화 context를 전달할지 여부입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.preserveChatContext.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data.preserveChatContext","typeLabel":"boolean | null"}},"required":["agent"],"title":"TransferAgentData","type":"object","description":"`transferAgent` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.data","typeLabel":"TransferAgentData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.8","typeLabel":"TransferAgentFlowDataNode · object"},{"type":"object","title":"EndCallFlowDataNode","description":"`type=endCall` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.id","typeLabel":"string"},"type":{"type":"string","const":"endCall","description":"`endCall` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.transitions","typeLabel":"FlowDataTransition · object[]"},"promptType":{"oneOf":[{"type":"string","title":"Prompttype","description":"노드 프롬프트 방식입니다.","enum":["none","static","dynamic"],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.promptType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompttype","description":"노드 프롬프트 방식입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.promptType.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.promptType","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt","typeLabel":"string | null"},"staticSentence":{"oneOf":[{"type":"string","title":"Staticsentence","description":"정적 프롬프트 방식에서 사용할 고정 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.staticSentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Staticsentence","description":"정적 프롬프트 방식에서 사용할 고정 문장입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.staticSentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data.staticSentence","typeLabel":"string | null"}},"title":"EndCallData","type":"object","description":"`endCall` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.data","typeLabel":"EndCallData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.9","typeLabel":"EndCallFlowDataNode · object"},{"type":"object","title":"NoteFlowDataNode","description":"`type=note` flow 노드입니다.","required":["id","type"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64,"description":"flow 안에서 사용하는 노드 ID입니다. edge의 `source`, `target`이 이 값을 참조합니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.id","typeLabel":"string"},"type":{"type":"string","const":"note","description":"`note` flow 노드의 discriminator 값입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.type","typeLabel":"string"},"data":{"additionalProperties":true,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.name","typeLabel":"string | null"},"globalNodeSettings":{"oneOf":[{"type":"object","title":"FlowDataGlobalNodeSettings","description":"flow 전역 노드 설정입니다.","properties":{"isGlobalNode":{"default":false,"title":"Isglobalnode","type":"boolean","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings.oneOf.0.isGlobalNode","typeLabel":"boolean"},"transitionCondition":{"oneOf":[{"type":"string","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transitioncondition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings.oneOf.0.transitionCondition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings.oneOf.0.transitionCondition","typeLabel":"string | null"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings.oneOf.0","typeLabel":"FlowDataGlobalNodeSettings · object"},{"type":"null","description":"flow 전역 노드 설정입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.globalNodeSettings","typeLabel":"FlowDataGlobalNodeSettings · object | null"},"transitions":{"items":{"additionalProperties":true,"properties":{"id":{"description":"안정적인 transition ID입니다. edge는 `edge.sourceHandle`로 이 값을 참조해 분기와 연결됩니다.","title":"Id","type":"string","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].id","typeLabel":"string"},"condition":{"oneOf":[{"type":"string","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Condition","description":"Natural-language branch condition shown in the flow builder and used as the routing rationale. Required for ordinary transitions — write a concrete Korean phrase such as '주문 번호를 받았을 때' or 'API 응답이 200 OK 일 때'. When `isFallback: true`, use the canonical text per node type: '요청 실패 시' for api / function / tool / sendSms, '에러 발생 시' for transferAgent / transferCall. When `isSkipUserResponse: true`, the flow builder labels the row '유저 응답 건너뛰기' and the field may be omitted. Do not use `isSkipUserResponse` on api / function / tool / sendSms rows; those nodes progress from tool output.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].condition","typeLabel":"string | null"},"isSkipUserResponse":{"oneOf":[{"type":"boolean","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isskipuserresponse","description":"user-response-skip route를 표시합니다. 모든 extraction node와 `data.isSkipUserResponse=true`인 conversation node에 필요합니다. api/function/tool/sendSms transition에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isSkipUserResponse.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isSkipUserResponse","typeLabel":"boolean | null"},"isFallback":{"oneOf":[{"type":"boolean","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isFallback.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isfallback","description":"실패 경로를 표시합니다. transferCall과 transferAgent에는 필수입니다. api/function/tool/sendSms처럼 upstream call이 실패할 수 있는 경우 설정을 권장합니다. conversation/note row에는 지원하지 않습니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isFallback.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isFallback","typeLabel":"boolean | null"},"isGlobalTransition":{"oneOf":[{"type":"boolean","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isGlobalTransition.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Isglobaltransition","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isGlobalTransition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX].isGlobalTransition","typeLabel":"boolean | null"}},"required":["id"],"title":"FlowDataTransition","type":"object","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions.items.[INDEX]","typeLabel":"FlowDataTransition · object"},"title":"Transitions","type":"array","description":"node.data에 저장되는 LLM/fallback transition 목록입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.transitions","typeLabel":"FlowDataTransition · object[]"},"content":{"oneOf":[{"type":"string","title":"Content","description":"이 flow 노드 또는 메시지 객체의 텍스트 내용입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.content.oneOf.0","typeLabel":"string"},{"type":"null","title":"Content","description":"이 flow 노드 또는 메시지 객체의 텍스트 내용입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.content.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.content","typeLabel":"string | null"},"width":{"oneOf":[{"type":"number","title":"Width","description":"note 노드의 표시 너비입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.width.oneOf.0","typeLabel":"number"},{"type":"null","title":"Width","description":"note 노드의 표시 너비입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.width.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.width","typeLabel":"number | null"},"height":{"oneOf":[{"type":"number","title":"Height","description":"note 노드의 표시 높이입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.height.oneOf.0","typeLabel":"number"},{"type":"null","title":"Height","description":"note 노드의 표시 높이입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.height.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data.height","typeLabel":"number | null"}},"title":"NoteData","type":"object","description":"`note` 타입 전용 data payload입니다.","uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.data","typeLabel":"NoteData · object"},"position":{"type":"object","title":"FlowNodePosition","description":"flow builder layout 좌표입니다. API 생성 시 보통 생략할 수 있으며, 저장 시 `POSITION_AUTOFILLED`로 채웁니다.","required":["x","y"],"properties":{"x":{"type":"number","description":"가로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.position.x","typeLabel":"number"},"y":{"type":"number","description":"세로 좌표입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.position.y","typeLabel":"number"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10.position","typeLabel":"FlowNodePosition · object"}},"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX].oneOf.10","typeLabel":"NoteFlowDataNode · object"}],"uniqueKey":"flow_data.oneOf.0.nodes.items.[INDEX]","typeLabel":"BeginFlowDataNode · object | ConversationFlowDataNode · object | ToolFlowDataNode · object | ConditionFlowDataNode · object | ExtractionFlowDataNode · object | ApiFlowDataNode · object | SendSmsFlowDataNode · object | TransferCallFlowDataNode · object | TransferAgentFlowDataNode · object | EndCallFlowDataNode · object | NoteFlowDataNode · object"},"type":"array","title":"Nodes","description":"Flow builder node 목록입니다. 각 node는 `id`, `type`, 필수 `position`(`{x, y}` 캔버스 좌표), camelCase `data`를 가집니다.","uniqueKey":"flow_data.oneOf.0.nodes","typeLabel":"(BeginFlowDataNode · object | ConversationFlowDataNode · object | ToolFlowDataNode · object | ConditionFlowDataNode · object | ExtractionFlowDataNode · object | ApiFlowDataNode · object | SendSmsFlowDataNode · object | TransferCallFlowDataNode · object | TransferAgentFlowDataNode · object | EndCallFlowDataNode · object | NoteFlowDataNode · object)[]"},"edges":{"items":{"properties":{"id":{"type":"string","minLength":1,"description":"flow builder edge ID입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].id","typeLabel":"string"},"source":{"type":"string","description":"source 노드 ID입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].source","typeLabel":"string"},"target":{"type":"string","description":"target 노드 ID입니다.","isRequired":true,"uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].target","typeLabel":"string"},"type":{"type":"string","title":"Type","description":"flow builder edge renderer type입니다. 모든 edge에 필요하며, 클라이언트가 생략하면 기본값 `custom`을 사용합니다.","default":"custom","uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].type","typeLabel":"string"},"sourceHandle":{"oneOf":[{"type":"string","title":"Sourcehandle","description":"이 edge가 source node의 어떤 transition에서 나가는지 지정하는 값입니다. begin node edge는 `begin-source`를 사용합니다. 실행 노드에서는 source node의 `data.transitions[].id` 또는 condition node의 `data.logical_transitions[].id`와 일치해야 합니다.","uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].sourceHandle.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sourcehandle","description":"이 edge가 source node의 어떤 transition에서 나가는지 지정하는 값입니다. begin node edge는 `begin-source`를 사용합니다. 실행 노드에서는 source node의 `data.transitions[].id` 또는 condition node의 `data.logical_transitions[].id`와 일치해야 합니다.","uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].sourceHandle.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX].sourceHandle","typeLabel":"string | null"}},"additionalProperties":true,"type":"object","title":"FlowDataEdge","description":"flow builder edge입니다.","required":["id","source","target"],"uniqueKey":"flow_data.oneOf.0.edges.items.[INDEX]","typeLabel":"FlowDataEdge · object"},"type":"array","title":"Edges","description":"source와 target 노드 ID를 연결하는 flow builder edge 목록입니다.","uniqueKey":"flow_data.oneOf.0.edges","typeLabel":"FlowDataEdge · object[]"}},"additionalProperties":true,"uniqueKey":"flow_data.oneOf.0","typeLabel":"FlowData · object"},{"type":"null","description":"지원 종료 예정 필드입니다. 에이전트의 플로우 그래프를 예전 형식으로 담고 있으며, 기존 호환을 위해 유지됩니다. 읽기 전용이고, flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 새 통합은 `flow`를 사용하세요. 이 필드는 지원 종료 기간 이후 제거됩니다.","deprecated":true,"uniqueKey":"flow_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_data","typeLabel":"FlowData · object | null"},"flow":{"oneOf":[{"type":"object","title":"Flow","description":"에이전트의 플로우 그래프입니다. `nodes`를 `edges`로 연결하고, 각 edge가 분기 조건을 가집니다. flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 지원 종료 예정인 `flow_data` 대신 이 필드를 사용하세요. 정확한 형태는 `flow-schema/flow-data` 스키마 엔드포인트에 공개됩니다.","required":["nodes","edges"],"properties":{"nodes":{"items":{"oneOf":[{"type":"object","title":"BeginFlowNode","description":"`type=begin`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.id","typeLabel":"string"},"type":{"type":"string","const":"begin","description":"`begin` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"first_line_type":{"enum":["aiFirst","userFirst"],"type":"string","description":"flow 시작 노드의 첫 발화 방식입니다. `aiFirst` 또는 `userFirst` 중 하나입니다.","title":"First Line Type","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.first_line_type","typeLabel":"enum\u003cstring>"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.name","typeLabel":"string | null"},"pause_before_speaking_seconds":{"oneOf":[{"type":"number","title":"Pause Before Speaking Seconds","description":"에이전트가 첫 발화를 시작하기 전 대기 시간입니다. 단위는 초입니다.","maximum":5,"minimum":0,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.pause_before_speaking_seconds.oneOf.0","typeLabel":"number"},{"type":"null","title":"Pause Before Speaking Seconds","description":"에이전트가 첫 발화를 시작하기 전 대기 시간입니다. 단위는 초입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.pause_before_speaking_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data.pause_before_speaking_seconds","typeLabel":"number | null"}},"title":"BeginFlowNodeData","type":"object","description":"`begin` 타입 전용 data payload입니다.","required":["first_line_type"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0.data","typeLabel":"BeginFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.0","typeLabel":"BeginFlowNode · object"},{"type":"object","title":"ConversationFlowNode","description":"`type=conversation`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.id","typeLabel":"string"},"type":{"type":"string","const":"conversation","description":"`conversation` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.name","typeLabel":"string | null"},"prompt_type":{"oneOf":[{"type":"string","title":"Prompt Type","enum":["static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Type","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt_type","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.prompt","typeLabel":"string | null"},"static_sentence":{"oneOf":[{"type":"string","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.static_sentence","typeLabel":"string | null"},"first_message":{"oneOf":[{"type":"string","title":"First Message","description":"이 대화 노드에서 첫 메시지를 덮어쓸 때 사용하는 선택 항목입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.first_message.oneOf.0","typeLabel":"string"},{"type":"null","title":"First Message","description":"이 대화 노드에서 첫 메시지를 덮어쓸 때 사용하는 선택 항목입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.first_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.first_message","typeLabel":"string | null"},"loop_condition":{"oneOf":[{"type":"string","title":"Loop Condition","description":"이 대화 노드의 반복 시점을 제어하는 조건문입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.loop_condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Loop Condition","description":"이 대화 노드의 반복 시점을 제어하는 조건문입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.loop_condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.loop_condition","typeLabel":"string | null"},"is_allow_interruption":{"oneOf":[{"type":"boolean","title":"Is Allow Interruption","description":"사용자가 이 노드의 발화를 중단할 수 있는지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.is_allow_interruption.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Allow Interruption","description":"사용자가 이 노드의 발화를 중단할 수 있는지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.is_allow_interruption.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.is_allow_interruption","typeLabel":"boolean | null"},"is_skip_user_response":{"oneOf":[{"type":"boolean","title":"Is Skip User Response","description":"이 conversation node가 말한 뒤 사용자 응답을 기다리지 않을지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.is_skip_user_response.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Skip User Response","description":"이 conversation node가 말한 뒤 사용자 응답을 기다리지 않을지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.is_skip_user_response.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.is_skip_user_response","typeLabel":"boolean | null"},"llm":{"oneOf":[{"type":"object","title":"Llm","description":"LLM 설정입니다.","additionalProperties":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.llm.oneOf.0","typeLabel":"Llm · object"},{"type":"null","title":"Llm","description":"LLM 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.llm.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.llm","typeLabel":"Llm · object | null"},"knowledge":{"oneOf":[{"type":"object","title":"NodeKnowledgeConfig","description":"에이전트 knowledge base 설정입니다.","properties":{"rag_enabled":{"default":false,"title":"Rag Enabled","type":"boolean","description":"이 플로우 노드에서 검색 증강 생성을 사용할지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.rag_enabled","typeLabel":"boolean"},"knowledge_ids":{"oneOf":[{"type":"array","items":{"type":"integer","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledge_ids.oneOf.0.items.[INDEX]","typeLabel":"integer"},"title":"Knowledge Ids","description":"이 플로우 노드에 연결된 공개 지식의 숫자 ID 목록입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledge_ids.oneOf.0","typeLabel":"integer[]"},{"type":"null","title":"Knowledge Ids","description":"이 플로우 노드에 연결된 공개 지식의 숫자 ID 목록입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledge_ids.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0.knowledge_ids","typeLabel":"integer[] | null"}},"additionalProperties":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.0","typeLabel":"NodeKnowledgeConfig · object"},{"type":"null","description":"에이전트 knowledge base 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.knowledge","typeLabel":"NodeKnowledgeConfig · object | null"},"global_node_setting":{"additionalProperties":false,"description":"노드 단위 전역 표시입니다. 이 값이 있으면 전역 노드이며, 일반 노드에서는 생략합니다. snake_case 키인 ``global_node_setting``을 사용하세요. camelCase인 ``globalNodeSettings``를 쓰면 요청을 거부합니다.","properties":{"condition":{"additionalProperties":false,"description":"에이전트가 이 전역 노드로 이동할 조건입니다. ``ai`` 유형만 지원하며, 빌더는 진입 조건을 ``transitionCondition`` 문자열로 저장합니다.","properties":{"type":{"const":"ai","title":"Type","type":"string","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.global_node_setting.condition.type","typeLabel":"string"},"prompt":{"default":"","description":"자연어 transition condition입니다.","title":"Prompt","type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.global_node_setting.condition.prompt","typeLabel":"string"}},"required":["type"],"title":"AiCondition","type":"object","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.global_node_setting.condition","typeLabel":"AiCondition · object"}},"required":["condition"],"title":"GlobalNodeSetting","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data.global_node_setting","typeLabel":"GlobalNodeSetting · object"}},"title":"ConversationFlowNodeData","type":"object","description":"`conversation` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1.data","typeLabel":"ConversationFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.1","typeLabel":"ConversationFlowNode · object"},{"type":"object","title":"ToolFlowNode","description":"`type=tool`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.id","typeLabel":"string"},"type":{"type":"string","const":"tool","description":"`tool` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.name","typeLabel":"string | null"},"tool_call_sound":{"oneOf":[{"type":"string","title":"Tool Call Sound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.tool_call_sound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Tool Call Sound","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.tool_call_sound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.tool_call_sound","typeLabel":"enum\u003cstring> | null"},"tool_id":{"oneOf":[{"type":"string","title":"Tool Id","description":"사용자 정의 도구 UUID입니다. `GET /v3/tools`가 반환한 `id`를 사용하세요.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.tool_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Tool Id","description":"사용자 정의 도구 UUID입니다. `GET /v3/tools`가 반환한 `id`를 사용하세요.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.tool_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.tool_id","typeLabel":"string | null"},"prompt_type":{"oneOf":[{"type":"string","title":"Prompt Type","enum":["none","static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Type","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt_type","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.prompt","typeLabel":"string | null"},"static_sentence":{"oneOf":[{"type":"string","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data.static_sentence","typeLabel":"string | null"}},"title":"ToolFlowNodeData","type":"object","description":"`tool` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2.data","typeLabel":"ToolFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.2","typeLabel":"ToolFlowNode · object"},{"type":"object","title":"ConditionFlowNode","description":"`type=condition`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.id","typeLabel":"string"},"type":{"type":"string","const":"condition","description":"`condition` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.data.name","typeLabel":"string | null"}},"title":"ConditionFlowNodeData","type":"object","description":"`condition` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3.data","typeLabel":"ConditionFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.3","typeLabel":"ConditionFlowNode · object"},{"type":"object","title":"ExtractionFlowNode","description":"`type=extraction`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.id","typeLabel":"string"},"type":{"type":"string","const":"extraction","description":"`extraction` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.name","typeLabel":"string | null"},"extraction_configuration":{"additionalProperties":true,"properties":{"extraction_prompt":{"default":"","title":"Extraction Prompt","type":"string","description":"추출 노드가 수집할 정보를 지정하는 프롬프트입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration.extraction_prompt","typeLabel":"string"},"variables":{"items":{"additionalProperties":true,"properties":{"variable_name":{"pattern":"^[a-zA-Z][a-zA-Z0-9_]{0,39}$","title":"Variable Name","type":"string","description":"API 응답에서 생성할 변수 이름입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration.variables.items.[INDEX].variable_name","typeLabel":"string"},"variable_type":{"default":"string","enum":["string","number","boolean"],"title":"Variable Type","type":"string","description":"추출 결과 또는 API 응답 변수의 타입입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration.variables.items.[INDEX].variable_type","typeLabel":"enum\u003cstring>"},"variable_description":{"default":"","title":"Variable Description","type":"string","description":"사람이 읽을 수 있는 변수 설명입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration.variables.items.[INDEX].variable_description","typeLabel":"string"}},"required":["variable_name"],"title":"VariableDefinition","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration.variables.items.[INDEX]","typeLabel":"VariableDefinition · object"},"title":"Variables","type":"array","description":"이 추출 설정이 생성하는 변수 목록입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration.variables","typeLabel":"VariableDefinition · object[]"}},"title":"ExtractionConfiguration","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.extraction_configuration","typeLabel":"ExtractionConfiguration · object"},"is_skip_user_response":{"oneOf":[{"type":"boolean","title":"Is Skip User Response","description":"사용자 응답을 기다리지 않고 이 노드를 실행할지 여부입니다.","default":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.is_skip_user_response.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Skip User Response","description":"사용자 응답을 기다리지 않고 이 노드를 실행할지 여부입니다.","default":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.is_skip_user_response.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.is_skip_user_response","typeLabel":"boolean | null"},"llm":{"oneOf":[{"type":"object","title":"Llm","description":"LLM 설정입니다.","additionalProperties":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.llm.oneOf.0","typeLabel":"Llm · object"},{"type":"null","title":"Llm","description":"LLM 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.llm.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.llm","typeLabel":"Llm · object | null"},"tool_call_sound":{"oneOf":[{"type":"string","title":"Tool Call Sound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.tool_call_sound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Tool Call Sound","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.tool_call_sound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data.tool_call_sound","typeLabel":"enum\u003cstring> | null"}},"title":"ExtractionFlowNodeData","type":"object","description":"`extraction` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4.data","typeLabel":"ExtractionFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.4","typeLabel":"ExtractionFlowNode · object"},{"type":"object","title":"ApiFlowNode","description":"`type=api`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.id","typeLabel":"string"},"type":{"type":"string","const":"api","description":"`api` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"api_configuration":{"additionalProperties":true,"properties":{"url":{"description":"API 엔드포인트 URL입니다. 경로의 동적 값에는 ASCII 영문자·숫자·밑줄·하이픈만 사용할 수 있습니다. 임의의 문자열은 query 값으로 전달하세요.","title":"Url","type":"string","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.url","typeLabel":"string"},"method":{"default":"GET","enum":["GET","POST","PUT","DELETE"],"title":"Method","type":"string","description":"API 노드에서 사용할 HTTP method입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.method","typeLabel":"enum\u003cstring>"},"authorization_enabled":{"default":false,"title":"Authorization Enabled","type":"boolean","description":"이 API 노드가 인증 정보를 전송할지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.authorization_enabled","typeLabel":"boolean"},"auth_type":{"default":"None","enum":["None","Basic","Bearer"],"title":"Auth Type","type":"string","description":"이 API 노드에서 사용할 인증 방식입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.auth_type","typeLabel":"enum\u003cstring>"},"auth_credentials":{"oneOf":[{"type":"string","title":"Auth Credentials","description":"이 API 노드에서 사용할 인증 정보 값 또는 템플릿입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.auth_credentials.oneOf.0","typeLabel":"string"},{"type":"null","title":"Auth Credentials","description":"이 API 노드에서 사용할 인증 정보 값 또는 템플릿입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.auth_credentials.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.auth_credentials","typeLabel":"string | null"},"auth_encode_required":{"default":false,"title":"Auth Encode Required","type":"boolean","description":"인증 정보를 전송하기 전에 인코딩할지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.auth_encode_required","typeLabel":"boolean"},"headers_enabled":{"default":false,"title":"Headers Enabled","type":"boolean","description":"이 API 노드가 사용자 정의 헤더를 전송할지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.headers_enabled","typeLabel":"boolean"},"headers":{"additionalProperties":{"type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.headers.additionalProperties","typeLabel":"string"},"title":"Headers","type":"object","description":"API 노드에서 보낼 custom HTTP header입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.headers","typeLabel":"Headers · object"},"body_enabled":{"default":false,"title":"Body Enabled","type":"boolean","description":"이 API 노드가 요청 본문을 전송할지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.body_enabled","typeLabel":"boolean"},"body":{"oneOf":[{"type":"string","title":"Body","description":"API 노드에서 보낼 요청 body 또는 template입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.body.oneOf.0","typeLabel":"string"},{"type":"null","title":"Body","description":"API 노드에서 보낼 요청 body 또는 template입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.body.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.body","typeLabel":"string | null"},"timeout_seconds":{"default":10,"exclusiveMinimum":0,"title":"Timeout Seconds","type":"integer","description":"이 API 노드 요청을 기다릴 최대 시간입니다. 단위는 초입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration.timeout_seconds","typeLabel":"integer"}},"required":["url"],"title":"ApiConfiguration","type":"object","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.api_configuration","typeLabel":"ApiConfiguration · object"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.name","typeLabel":"string | null"},"tool_call_sound":{"oneOf":[{"type":"string","title":"Tool Call Sound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.tool_call_sound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Tool Call Sound","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.tool_call_sound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.tool_call_sound","typeLabel":"enum\u003cstring> | null"},"response_mode":{"default":"wait","enum":["wait","fire_and_forget"],"title":"Response Mode","type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.response_mode","typeLabel":"enum\u003cstring>"},"response_variables":{"items":{"additionalProperties":true,"properties":{"variable_name":{"title":"Variable Name","type":"string","description":"API 응답에서 생성할 변수 이름입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.response_variables.items.[INDEX].variable_name","typeLabel":"string"},"json_path":{"title":"Json Path","type":"string","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.response_variables.items.[INDEX].json_path","typeLabel":"string"}},"required":["variable_name","json_path"],"title":"ApiResponseVariable","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.response_variables.items.[INDEX]","typeLabel":"ApiResponseVariable · object"},"title":"Response Variables","type":"array","description":"이 API 노드 응답에서 추출할 변수 목록입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.response_variables","typeLabel":"ApiResponseVariable · object[]"},"prompt_type":{"oneOf":[{"type":"string","title":"Prompt Type","enum":["none","static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Type","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt_type","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.prompt","typeLabel":"string | null"},"static_sentence":{"oneOf":[{"type":"string","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data.static_sentence","typeLabel":"string | null"}},"required":["api_configuration"],"title":"ApiFlowNodeData","type":"object","description":"`api` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5.data","typeLabel":"ApiFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.5","typeLabel":"ApiFlowNode · object"},{"type":"object","title":"SendSmsFlowNode","description":"`type=sendSms`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.id","typeLabel":"string"},"type":{"type":"string","const":"sendSms","description":"`sendSms` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.name","typeLabel":"string | null"},"tool_call_sound":{"oneOf":[{"type":"string","title":"Tool Call Sound","enum":["none","typing","elevator_1","elevator_2","elevator_3","elevator_4"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.tool_call_sound.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Tool Call Sound","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.tool_call_sound.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.tool_call_sound","typeLabel":"enum\u003cstring> | null"},"response_mode":{"default":"wait","enum":["wait","fire_and_forget"],"title":"Response Mode","type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.response_mode","typeLabel":"enum\u003cstring>"},"prompt_type":{"oneOf":[{"type":"string","title":"Prompt Type","default":"static","enum":["static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Type","default":"static","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt_type","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.prompt","typeLabel":"string | null"},"static_title":{"oneOf":[{"type":"string","title":"Static Title","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_title.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Title","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_title.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_title","typeLabel":"string | null"},"static_sentence":{"oneOf":[{"type":"string","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_sentence","typeLabel":"string | null"},"static_image_file_keys":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_image_file_keys.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Static Image File Keys","description":"MMS 이미지 첨부 file key 목록입니다. 값은 파일 업로드 endpoint가 반환한 opaque `file_key` 문자열입니다.","maxItems":3,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_image_file_keys.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Static Image File Keys","description":"MMS 이미지 첨부 file key 목록입니다. 값은 파일 업로드 endpoint가 반환한 opaque `file_key` 문자열입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_image_file_keys.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.static_image_file_keys","typeLabel":"string[] | null"},"sms_from_number":{"oneOf":[{"type":"string","title":"Sms From Number","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.sms_from_number.oneOf.0","typeLabel":"string"},{"type":"null","title":"Sms From Number","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.sms_from_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.sms_from_number","typeLabel":"string | null"},"global_node_setting":{"additionalProperties":false,"description":"노드 단위 전역 표시입니다. 이 값이 있으면 전역 노드이며, 일반 노드에서는 생략합니다. snake_case 키인 ``global_node_setting``을 사용하세요. camelCase인 ``globalNodeSettings``를 쓰면 요청을 거부합니다.","properties":{"condition":{"additionalProperties":false,"description":"에이전트가 이 전역 노드로 이동할 조건입니다. ``ai`` 유형만 지원하며, 빌더는 진입 조건을 ``transitionCondition`` 문자열로 저장합니다.","properties":{"type":{"const":"ai","title":"Type","type":"string","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.global_node_setting.condition.type","typeLabel":"string"},"prompt":{"default":"","description":"자연어 transition condition입니다.","title":"Prompt","type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.global_node_setting.condition.prompt","typeLabel":"string"}},"required":["type"],"title":"AiCondition","type":"object","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.global_node_setting.condition","typeLabel":"AiCondition · object"}},"required":["condition"],"title":"GlobalNodeSetting","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data.global_node_setting","typeLabel":"GlobalNodeSetting · object"}},"title":"SendSmsFlowNodeData","type":"object","description":"`sendSms` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6.data","typeLabel":"SendSmsFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.6","typeLabel":"SendSmsFlowNode · object"},{"type":"object","title":"TransferCallFlowNode","description":"`type=transferCall`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.id","typeLabel":"string"},"type":{"type":"string","const":"transferCall","description":"`transferCall` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"transfer_configuration":{"additionalProperties":true,"properties":{"transfer_to":{"description":"전환할 전화번호 또는 SIP URI입니다. `transfer_type`이 `operator`이면 실제 연결 대상이 아니라 운영자에게 표시할 이름입니다.","title":"Transfer To","type":"string","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_configuration.transfer_to","typeLabel":"string"},"transfer_type":{"default":"phone","description":"전환 대상 방식입니다. `operator`는 인계 제어면을 통해 실시간 운영자에게 연결합니다. 웜 전환만 지원하며 `transfer_to`는 표시용 이름입니다.","enum":["phone","sip","operator"],"title":"Transfer Type","type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_configuration.transfer_type","typeLabel":"enum\u003cstring>"},"transfer_condition":{"oneOf":[{"type":"string","title":"Transfer Condition","description":"통화 전환 실행 여부를 결정하는 조건입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_configuration.transfer_condition.oneOf.0","typeLabel":"string"},{"type":"null","title":"Transfer Condition","description":"통화 전환 실행 여부를 결정하는 조건입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_configuration.transfer_condition.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_configuration.transfer_condition","typeLabel":"string | null"}},"required":["transfer_to"],"title":"TransferConfiguration","type":"object","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_configuration","typeLabel":"TransferConfiguration · object"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.name","typeLabel":"string | null"},"transfer_type":{"oneOf":[{"type":"string","title":"Transfer Type","description":"이 플로우 노드에서 사용할 전환 방식입니다.","default":"cold","enum":["cold","warm"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transfer Type","description":"이 플로우 노드에서 사용할 전환 방식입니다.","default":"cold","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_type","typeLabel":"enum\u003cstring> | null"},"transfer_message_type":{"oneOf":[{"type":"string","title":"Transfer Message Type","default":"static","enum":["static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_message_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Transfer Message Type","default":"static","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_message_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.transfer_message_type","typeLabel":"enum\u003cstring> | null"},"warm_transfer_prompt":{"oneOf":[{"type":"string","title":"Warm Transfer Prompt","description":"Warm Transfer 메시지를 생성할 때 사용하는 프롬프트입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warm_transfer_prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warm Transfer Prompt","description":"Warm Transfer 메시지를 생성할 때 사용하는 프롬프트입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warm_transfer_prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warm_transfer_prompt","typeLabel":"string | null"},"warm_transfer_static_sentence":{"oneOf":[{"type":"string","title":"Warm Transfer Static Sentence","description":"Warm Transfer에 사용할 고정 메시지입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warm_transfer_static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Warm Transfer Static Sentence","description":"Warm Transfer에 사용할 고정 메시지입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warm_transfer_static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.warm_transfer_static_sentence","typeLabel":"string | null"},"displayed_caller_id":{"oneOf":[{"type":"string","title":"Displayed Caller Id","description":"통화 전환 중 표시할 발신번호의 출처입니다.","default":"agent","enum":["agent","user"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.displayed_caller_id.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Displayed Caller Id","description":"통화 전환 중 표시할 발신번호의 출처입니다.","default":"agent","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.displayed_caller_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.displayed_caller_id","typeLabel":"enum\u003cstring> | null"},"sip_headers":{"oneOf":[{"type":"array","items":{"additionalProperties":true,"properties":{"name":{"type":"string","title":"Name","description":"사람이 읽을 수 있는 리소스 이름입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sip_headers.oneOf.0.items.[INDEX].name","typeLabel":"string"},"value":{"title":"Value","type":"string","description":"이 조건에서 비교할 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sip_headers.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"required":["name","value"],"title":"SipHeader","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sip_headers.oneOf.0.items.[INDEX]","typeLabel":"SipHeader · object"},"title":"Sip Headers","description":"전환 통화에 첨부할 SIP 헤더 목록입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sip_headers.oneOf.0","typeLabel":"SipHeader · object[]"},{"type":"null","title":"Sip Headers","description":"전환 통화에 첨부할 SIP 헤더 목록입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sip_headers.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.sip_headers","typeLabel":"SipHeader · object[] | null"},"prompt_type":{"oneOf":[{"type":"string","title":"Prompt Type","enum":["none","static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Type","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt_type","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.prompt","typeLabel":"string | null"},"static_sentence":{"oneOf":[{"type":"string","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data.static_sentence","typeLabel":"string | null"}},"required":["transfer_configuration"],"title":"TransferCallFlowNodeData","type":"object","description":"`transferCall` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7.data","typeLabel":"TransferCallFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.7","typeLabel":"TransferCallFlowNode · object"},{"type":"object","title":"TransferAgentFlowNode","description":"`type=transferAgent`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.id","typeLabel":"string"},"type":{"type":"string","const":"transferAgent","description":"`transferAgent` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"agent":{"additionalProperties":false,"description":"`agent_id`와 `agent_version`으로 구성된 에이전트 매핑 객체입니다.","properties":{"agent_id":{"description":"에이전트 UUID입니다.","format":"uuid","title":"Agent Id","type":"string","x-vox-effect":"wiring","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.agent.agent_id","typeLabel":"string\u003cuuid>"},"agent_version":{"default":"current","description":"에이전트 버전입니다. 허용값은 \"current\", \"production\", \"v{n}\"(n≥1)입니다. 보내지 않으면 \"current\"로 처리합니다. null 전송은 거부합니다.","title":"Agent Version","type":"string","x-vox-effect":"wiring","pattern":"^(current|production|v[1-9][0-9]*)$","examples":["current","production","v1"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.agent.agent_version","typeLabel":"string"}},"required":["agent_id"],"title":"AgentMapping","type":"object","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.agent","typeLabel":"AgentMapping · object"},"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.name","typeLabel":"string | null"},"preserve_chat_context":{"oneOf":[{"type":"boolean","title":"Preserve Chat Context","description":"대상 에이전트가 이전 대화 컨텍스트를 받을지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.preserve_chat_context.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Preserve Chat Context","description":"대상 에이전트가 이전 대화 컨텍스트를 받을지 여부입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.preserve_chat_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data.preserve_chat_context","typeLabel":"boolean | null"}},"required":["agent"],"title":"TransferAgentFlowNodeData","type":"object","description":"`transferAgent` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8.data","typeLabel":"TransferAgentFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.8","typeLabel":"TransferAgentFlowNode · object"},{"type":"object","title":"EndCallFlowNode","description":"`type=endCall`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.id","typeLabel":"string"},"type":{"type":"string","const":"endCall","description":"`endCall` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"name":{"oneOf":[{"type":"string","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"사람이 읽을 수 있는 node label입니다. 입력 시 선택 항목이며, 생략하면 서버가 node id에서 안정적인 label을 채워 저장하므로 저장된 그래프에는 항상 존재합니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.name","typeLabel":"string | null"},"prompt_type":{"oneOf":[{"type":"string","title":"Prompt Type","enum":["none","static","dynamic"],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Prompt Type","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt_type","typeLabel":"enum\u003cstring> | null"},"prompt":{"oneOf":[{"type":"string","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt.oneOf.0","typeLabel":"string"},{"type":"null","title":"Prompt","description":"에이전트 프롬프트 설정입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.prompt","typeLabel":"string | null"},"static_sentence":{"oneOf":[{"type":"string","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.static_sentence.oneOf.0","typeLabel":"string"},{"type":"null","title":"Static Sentence","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.static_sentence.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.static_sentence","typeLabel":"string | null"},"global_node_setting":{"additionalProperties":false,"description":"노드 단위 전역 표시입니다. 이 값이 있으면 전역 노드이며, 일반 노드에서는 생략합니다. snake_case 키인 ``global_node_setting``을 사용하세요. camelCase인 ``globalNodeSettings``를 쓰면 요청을 거부합니다.","properties":{"condition":{"additionalProperties":false,"description":"에이전트가 이 전역 노드로 이동할 조건입니다. ``ai`` 유형만 지원하며, 빌더는 진입 조건을 ``transitionCondition`` 문자열로 저장합니다.","properties":{"type":{"const":"ai","title":"Type","type":"string","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.global_node_setting.condition.type","typeLabel":"string"},"prompt":{"default":"","description":"자연어 transition condition입니다.","title":"Prompt","type":"string","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.global_node_setting.condition.prompt","typeLabel":"string"}},"required":["type"],"title":"AiCondition","type":"object","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.global_node_setting.condition","typeLabel":"AiCondition · object"}},"required":["condition"],"title":"GlobalNodeSetting","type":"object","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data.global_node_setting","typeLabel":"GlobalNodeSetting · object"}},"title":"EndCallFlowNodeData","type":"object","description":"`endCall` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9.data","typeLabel":"EndCallFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.9","typeLabel":"EndCallFlowNode · object"},{"type":"object","title":"NoteFlowNode","description":"`type=note`인 공개 `flow` 노드입니다.","required":["id","type","position"],"properties":{"id":{"title":"Id","type":"string","description":"응답 객체 자체의 ID 또는 중첩 설정 객체 안의 로컬 ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.id","typeLabel":"string"},"type":{"type":"string","const":"note","description":"`note` 플로우 노드의 판별자 값입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.type","typeLabel":"string"},"position":{"properties":{"x":{"oneOf":[{"type":"integer","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position.x.oneOf.0","typeLabel":"integer"},{"type":"number","title":"X","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position.x.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position.x","typeLabel":"integer | number"},"y":{"oneOf":[{"type":"integer","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position.y.oneOf.0","typeLabel":"integer"},{"type":"number","title":"Y","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position.y.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position.y","typeLabel":"integer | number"}},"additionalProperties":false,"type":"object","required":["x","y"],"title":"Position","description":"노드 캔버스 좌표 `{x, y}`입니다. 필수 항목이며, 위치가 없으면 빌더가 노드를 표시할 수 없습니다. 서버가 임의로 생성하지 않습니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.position","typeLabel":"Position · object"},"data":{"additionalProperties":false,"properties":{"content":{"oneOf":[{"type":"string","title":"Content","description":"이 flow 노드 또는 메시지 객체의 텍스트 내용입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.content.oneOf.0","typeLabel":"string"},{"type":"null","title":"Content","description":"이 flow 노드 또는 메시지 객체의 텍스트 내용입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.content.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.content","typeLabel":"string | null"},"width":{"oneOf":[{"type":"number","title":"Width","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.width.oneOf.0","typeLabel":"number"},{"type":"null","title":"Width","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.width.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.width","typeLabel":"number | null"},"height":{"oneOf":[{"type":"number","title":"Height","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.height.oneOf.0","typeLabel":"number"},{"type":"null","title":"Height","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.height.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data.height","typeLabel":"number | null"}},"title":"NoteFlowNodeData","type":"object","description":"`note` 타입 전용 data payload입니다.","uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10.data","typeLabel":"NoteFlowNodeData · object"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX].oneOf.10","typeLabel":"NoteFlowNode · object"}],"uniqueKey":"flow.oneOf.0.nodes.items.[INDEX]","typeLabel":"BeginFlowNode · object | ConversationFlowNode · object | ToolFlowNode · object | ConditionFlowNode · object | ExtractionFlowNode · object | ApiFlowNode · object | SendSmsFlowNode · object | TransferCallFlowNode · object | TransferAgentFlowNode · object | EndCallFlowNode · object | NoteFlowNode · object"},"type":"array","title":"Nodes","description":"Flow builder node 목록입니다. 각 node는 `id`, `type`, 필수 `position`(`{x, y}` 캔버스 좌표), camelCase `data`를 가집니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.nodes","typeLabel":"(BeginFlowNode · object | ConversationFlowNode · object | ToolFlowNode · object | ConditionFlowNode · object | ExtractionFlowNode · object | ApiFlowNode · object | SendSmsFlowNode · object | TransferCallFlowNode · object | TransferAgentFlowNode · object | EndCallFlowNode · object | NoteFlowNode · object)[]"},"edges":{"items":{"properties":{"source":{"type":"string","title":"Source","description":"출발 flow node ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].source","typeLabel":"string"},"target":{"type":"string","title":"Target","description":"도착 flow node ID입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].target","typeLabel":"string"},"condition":{"oneOf":[{"type":"object","title":"AiCondition","description":"runtime에서 LLM이 평가하는 자연어 edge condition입니다.","required":["type"],"properties":{"type":{"const":"ai","title":"Type","type":"string","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.0.type","typeLabel":"string"},"prompt":{"default":"","description":"자연어 transition condition입니다.","title":"Prompt","type":"string","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.0.prompt","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.0","typeLabel":"AiCondition · object"},{"type":"object","title":"LogicCondition","description":"Retell과 정렬된 `equations` 형태를 사용하는 deterministic edge condition입니다.\n\nsource node는 `condition` node여야 합니다(logic-source 제약은 별도 검증에서 강제됩니다).","required":["type"],"properties":{"type":{"type":"string","const":"logic","title":"Type","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.type","typeLabel":"string"},"equations":{"items":{"properties":{"left":{"type":"string","title":"Left","description":"왼쪽 operand입니다. 보통 추출 변수 이름입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations.items.[INDEX].left","typeLabel":"string"},"operator":{"type":"string","enum":["equals","not_equals","contains","does_not_contain","greater_than","greater_than_or_equal","less_than","less_than_or_equal","exists","does_not_exist"],"title":"Operator","description":"비교 operator입니다. builder/runtime snake_case를 사용합니다. 예: `greater_than`, `does_not_exist`.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations.items.[INDEX].operator","typeLabel":"enum\u003cstring>"},"right":{"oneOf":[{"title":"Right","description":"오른쪽 operand입니다. string/number/bool이 될 수 있고, `exists` / `does_not_exist`에서는 null일 수 있습니다.","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations.items.[INDEX].right.oneOf.0","typeLabel":"any"},{"type":"null","title":"Right","description":"오른쪽 operand입니다. string/number/bool이 될 수 있고, `exists` / `does_not_exist`에서는 null일 수 있습니다.","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations.items.[INDEX].right.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations.items.[INDEX].right","typeLabel":"any | null"}},"additionalProperties":false,"type":"object","required":["left","operator"],"title":"LogicEquation","description":"`logic` condition 안의 단일 deterministic comparison입니다(Retell과 정렬된 equations 형태).\n\nRetell과 맞춘 naming에서 `left`는 추출 변수이고, `right`는 비교 값입니다. `exists` / `does_not_exist`에서는 생략할 수 있습니다.","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations.items.[INDEX]","typeLabel":"LogicEquation · object"},"type":"array","title":"Equations","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.equations","typeLabel":"LogicEquation · object[]"},"operator":{"type":"string","enum":["\u0026\u0026","||"],"title":"Operator","description":"equation을 결합하는 방식입니다. `\u0026\u0026`는 AND, `||`는 OR입니다.","default":"\u0026\u0026","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1.operator","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.1","typeLabel":"LogicCondition · object"},{"type":"object","title":"FallbackCondition","description":"source node의 다른 condition이 맞지 않을 때 선택되는 기본 edge입니다.","required":["type"],"properties":{"type":{"type":"string","const":"fallback","title":"Type","description":"리소스 또는 설정 유형입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.2.type","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition.oneOf.2","typeLabel":"FallbackCondition · object"}],"isRequired":true,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].condition","typeLabel":"AiCondition · object | LogicCondition · object | FallbackCondition · object"},"id":{"oneOf":[{"type":"string","title":"Id","description":"선택 사항입니다. 생략하면 서버가 생성하고, 제공하면 그대로 재사용합니다. 빈 문자열은 거부됩니다.","minLength":1,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"선택 사항입니다. 생략하면 서버가 생성하고, 제공하면 그대로 재사용합니다. 빈 문자열은 거부됩니다.","uniqueKey":"flow.oneOf.0.edges.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].id","typeLabel":"string | null"},"skip_user_response":{"type":"boolean","title":"Skip User Response","description":"v1 `is_skip_user_response`에 해당합니다. 이 hop에서 사용자 응답을 기다리지 않고 이동합니다.","default":false,"uniqueKey":"flow.oneOf.0.edges.items.[INDEX].skip_user_response","typeLabel":"boolean"}},"additionalProperties":false,"type":"object","required":["source","target","condition"],"title":"FlowEdge","description":"flow edge입니다: `{id?, source, target, condition, skip_user_response}`.","uniqueKey":"flow.oneOf.0.edges.items.[INDEX]","typeLabel":"FlowEdge · object"},"type":"array","title":"Edges","description":"source와 target 노드 ID를 연결하는 flow builder edge 목록입니다.","isRequired":true,"uniqueKey":"flow.oneOf.0.edges","typeLabel":"FlowEdge · object[]"}},"additionalProperties":false,"uniqueKey":"flow.oneOf.0","typeLabel":"Flow · object"},{"type":"null","description":"에이전트의 플로우 그래프입니다. `nodes`를 `edges`로 연결하고, 각 edge가 분기 조건을 가집니다. flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 지원 종료 예정인 `flow_data` 대신 이 필드를 사용하세요. 정확한 형태는 `flow-schema/flow-data` 스키마 엔드포인트에 공개됩니다.","uniqueKey":"flow.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow","typeLabel":"Flow · object | null"},"version":{"oneOf":[{"type":"object","title":"AgentVersionMeta","description":"스냅샷 조회 시에만 populated (version=v{n} 또는 production).","required":["version","is_production","created_at"],"properties":{"version":{"type":"string","title":"Version","description":"버전 식별자입니다.","pattern":"^v[1-9][0-9]*$","examples":["v1"],"isRequired":true,"uniqueKey":"version.oneOf.0.version","typeLabel":"string"},"is_production":{"type":"boolean","title":"Is Production","description":"이 에이전트 버전이 현재 production 버전으로 게시되어 있는지 여부입니다.","isRequired":true,"uniqueKey":"version.oneOf.0.is_production","typeLabel":"boolean"},"created_at":{"type":"integer","title":"Created At","description":"리소스 생성 시각입니다. unix milliseconds 형식입니다.","isRequired":true,"uniqueKey":"version.oneOf.0.created_at","typeLabel":"integer"},"description":{"oneOf":[{"type":"string","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"version.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"사람이 읽을 수 있는 설명입니다.","uniqueKey":"version.oneOf.0.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"version.oneOf.0.description","typeLabel":"string | null"},"manuals_captured_at":{"oneOf":[{"type":"integer","title":"Manuals Captured At","uniqueKey":"version.oneOf.0.manuals_captured_at.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Manuals Captured At","uniqueKey":"version.oneOf.0.manuals_captured_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"version.oneOf.0.manuals_captured_at","typeLabel":"integer | null"},"manuals_capture_kind":{"oneOf":[{"type":"string","title":"Manuals Capture Kind","uniqueKey":"version.oneOf.0.manuals_capture_kind.oneOf.0","typeLabel":"string"},{"type":"null","title":"Manuals Capture Kind","uniqueKey":"version.oneOf.0.manuals_capture_kind.oneOf.1","typeLabel":"null"}],"uniqueKey":"version.oneOf.0.manuals_capture_kind","typeLabel":"string | null"}},"uniqueKey":"version.oneOf.0","typeLabel":"AgentVersionMeta · object"},{"type":"null","description":"스냅샷 조회 시에만 populated (version=v{n} 또는 production).","uniqueKey":"version.oneOf.1","typeLabel":"null"}],"uniqueKey":"version","typeLabel":"AgentVersionMeta · object | null"},"head_revision":{"oneOf":[{"type":"integer","title":"Head Revision","description":"현재 편집본의 리비전입니다. 고정 버전을 조회하면 null입니다.","uniqueKey":"head_revision.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Head Revision","description":"현재 편집본의 리비전입니다. 고정 버전을 조회하면 null입니다.","uniqueKey":"head_revision.oneOf.1","typeLabel":"null"}],"uniqueKey":"head_revision","typeLabel":"integer | null"},"flow_revision":{"oneOf":[{"type":"integer","title":"Flow Revision","description":"현재 Flow 리비전입니다. 프롬프트 에이전트이거나 고정 버전을 조회하면 null입니다.","uniqueKey":"flow_revision.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Flow Revision","description":"현재 Flow 리비전입니다. 프롬프트 에이전트이거나 고정 버전을 조회하면 null입니다.","uniqueKey":"flow_revision.oneOf.1","typeLabel":"null"}],"uniqueKey":"flow_revision","typeLabel":"integer | null"}},"type":"object","required":["agent_id","name","type","created_at","updated_at"],"title":"AgentResponse","description":"에이전트 단건 조회 응답. Summary + data·flow·flow_data·version.\n\ncreate/update 응답은 `AgentMutationResponse` (validator 메시지 포함).","uniqueKey":"","typeLabel":"AgentResponse · object"},"examples":{"Example":{"title":"Example","value":{"agent_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>","type":"single_prompt","created_at":123,"updated_at":123,"evaluate":false,"folder_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","folder_name":"\u003cstring>","folder_path":"\u003cstring>","production_version":"v1","data":{"prompt":{"prompt":"","firstLine":"","firstLineType":"aiFirstDynamic","pauseBeforeSpeakingSeconds":0,"isFirstMessageInterruptible":true},"stt":{"languages":["\u003cstring>"],"speed":"high"},"llm":{"model":"\u003cstring>","temperature":1,"reasoningEffort":"none","thinkingBudget":1},"voice":{"id":"\u003cstring>","provider":"\u003cstring>","model":"\u003cstring>","speed":1,"volume":1,"language":"\u003cstring>","temperature":0.9},"speech":{"isAllowInterruption":true,"responsiveness":1,"boostedKeywords":"\u003cstring>","isAllowTurnDetection":true,"vadMinSilenceDuration":0.5},"callSettings":{"backgroundMusic":"none","backgroundMusicVolume":0.5,"noiseCancellation":"bvc","activationThreshold":0.55,"callTimeoutInSeconds":900,"silenceCallTimeoutInSeconds":30,"silenceReminderTimeoutInSeconds":123,"silenceReminderMaxCount":123,"ringDurationInSeconds":30,"dtmfInterruptible":false,"dtmfTerminationEnabled":false,"dtmfTerminationKey":"#","dtmfTimeoutSeconds":3,"callScreening":{"promptType":"static","staticSentence":"\u003cstring>","prompt":"\u003cstring>","endCallAfterResponse":false}},"chatSettings":{"silenceChatTimeoutInSeconds":3600},"postCall":{"actions":[{"name":"\u003cstring>","type":"string","isNullable":false,"description":"\u003cstring>","enumOptions":["\u003cstring>"]}]},"security":{"optOutSensitiveDataStorage":false,"dataRetention":{"durationSeconds":157788000,"retainedDataTypes":["recording"]},"piiMasking":{"enabled":false,"name":false,"phone":false,"birthDate":false,"address":false,"email":false,"residentId":false}},"memory":{"enabled":false},"webhookSettings":{"callDataWebhookUrl":"\u003cstring>","inboundCallWebhookUrl":"\u003cstring>","webhookVersion":"v1","enableAlimtalkOnCallEnd":false,"inboundCallWebhookSigningEnabled":false},"knowledge":{"ragEnabled":false,"knowledgeIds":[123]},"takeoverTranscription":true,"presetDynamicVariables":{},"toolIds":["3c90c3cc-0d44-4b50-8888-8dd25736052a"],"builtInTools":[{"toolType":"end_call","speakDuringExecution":{"enabled":false,"messages":["\u003cstring>"]},"allowInterruptionDuringExecution":true,"responseMode":"wait","name":"end_call","description":"\u003cstring>"}],"manuals":{}},"flow_data":{"nodes":[{"id":"\u003cstring>","type":"begin","data":{"name":"\u003cstring>","globalNodeSettings":{"isGlobalNode":false,"transitionCondition":"\u003cstring>"},"transitions":[{"id":"\u003cstring>","condition":"\u003cstring>","isSkipUserResponse":true,"isFallback":true,"isGlobalTransition":true}],"firstLineType":"aiFirst","pauseBeforeSpeakingSeconds":2.5},"position":{"x":123,"y":123}}],"edges":[{"id":"\u003cstring>","source":"\u003cstring>","target":"\u003cstring>","type":"custom","sourceHandle":"\u003cstring>"}]},"flow":{"nodes":[{"id":"\u003cstring>","type":"begin","position":{"x":123,"y":123},"data":{"first_line_type":"aiFirst","name":"\u003cstring>","pause_before_speaking_seconds":2.5}}],"edges":[{"source":"\u003cstring>","target":"\u003cstring>","condition":{"type":"ai","prompt":""},"id":"\u003cstring>","skip_user_response":false}]},"version":{"version":"v1","is_production":true,"created_at":123,"description":"\u003cstring>","manuals_captured_at":123,"manuals_capture_kind":"\u003cstring>"},"head_revision":123,"flow_revision":123}}},"exampleType":"generated"}},"exampleType":"generated"},"43eb556b-a67d-4bfa-8e2b-6623862186e1":{"description":"요청 검증 오류","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"validationError":{"title":"validationError","value":{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"29a96e79-6a75-4325-af1b-d3912a2a72c7":{"description":"인증이 필요합니다.","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"unauthorized":{"title":"unauthorized","value":{"error":{"code":"UNAUTHORIZED","message":"Authentication is required.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"32f1c0e1-2630-4226-9da7-f84c6cf2c5d4":{"description":"권한이 없습니다.","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"forbidden":{"title":"forbidden","value":{"error":{"code":"FORBIDDEN","message":"Permission denied.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"687d7539-ece0-4491-83b6-ff63d28e0012":{"description":"리소스를 찾을 수 없습니다.","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"notFound":{"title":"notFound","value":{"error":{"code":"RESOURCE_NOT_FOUND","message":"Resource not found.","details":{"resource":"agent"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"f8698028-0800-46ee-95d1-caf7b30fd302":{"description":"충돌이 발생했습니다.","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"conflict":{"title":"conflict","value":{"error":{"code":"CONFLICT","message":"The requested operation conflicts with current state.","details":{"current_status":"draft"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"95a27f57-eebd-418b-9ee1-b0985fd2d311":{"description":"요청 한도를 초과했습니다. API 키 트래픽은 기본값으로 워크스페이스당 초당 5회·분당 120회, Supabase JWT 트래픽은 기본값으로 사용자당 초당 10회·분당 240회로 제한되며, 워크스페이스 대시보드에는 기본 분당 2,400회의 백스톱 한도가 적용됩니다. 한도는 운영자가 조정할 수 있고, 초과한 버킷의 실제 한도와 윈도우는 429 응답의 X-RateLimit-Limit·X-RateLimit-Window 헤더로 알려 줍니다. 개별 경로 자체 리미터가 만든 429 응답에는 이 헤더가 없을 수 있습니다.","headers":{"Retry-After":{"description":"초과한 공용 v3 인증 주체(auth-principal) 리미터 윈도우가 초기화될 때까지 남은 시간입니다. 단위는 초입니다. 개별 경로 자체 리미터가 만든 429 응답에는 이 헤더가 없을 수 있습니다.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Limit":{"description":"초과한 공용 v3 인증 주체(auth-principal) 리미터 윈도우의 최대 요청 수입니다. 개별 경로 자체 리미터가 만든 429 응답에는 이 헤더가 없을 수 있습니다.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Window":{"description":"초과한 공용 v3 인증 주체(auth-principal) 리미터 윈도우의 길이입니다. 단위는 초입니다. 개별 경로 자체 리미터가 만든 429 응답에는 이 헤더가 없을 수 있습니다.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"rateLimited":{"title":"rateLimited","value":{"error":{"code":"RATE_LIMIT_EXCEEDED","message":"Too many requests.","details":{"limit":10,"window_seconds":1,"scope":"user"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"bd3ff6c3-2950-49ca-a613-cad82f9b835b":{"description":"서버 내부 오류가 발생했습니다.","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"internalError":{"title":"internalError","value":{"error":{"code":"INTERNAL_ERROR","message":"Internal server error.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"f6bafa3e-8767-4910-9836-0ac8e1f11f19":{"description":"서비스를 일시적으로 사용할 수 없습니다.","content":{"application/json":{"schema":{"type":"object","required":["error"],"title":"ErrorResponse","description":"모든 실패 응답에서 사용하는 v3 error envelope입니다.","examples":[{"error":{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}}],"properties":{"error":{"type":"object","required":["code","message","details"],"title":"ErrorDetail","description":"오류 payload입니다.","examples":[{"code":"VALIDATION_ERROR","message":"Request validation failed.","details":{"field":"name","reason":"must not be blank"}}],"properties":{"code":{"type":"string","title":"Code","description":"기계가 읽을 수 있는 오류 code입니다. message parsing 대신 이 값을 사용합니다.","examples":["VALIDATION_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"사용자에게 표시할 수 있는 오류 메시지입니다. 프로그램 처리는 `code`를 사용합니다.","examples":["Request validation failed."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","title":"Details","additionalProperties":true,"description":"구조화된 context입니다. 주로 `field`, `reason`, `allowed_values`를 포함합니다.","isRequired":true,"uniqueKey":"error.details","typeLabel":"Details · object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"serviceUnavailable":{"title":"serviceUnavailable","value":{"error":{"code":"SERVICE_UNAVAILABLE","message":"Service temporarily unavailable.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1d1ca66d-87cb-475e-a0ec-9e43f0379d83":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Organization API key","description":"워크스페이스 API 키를 `Authorization: Bearer \u003ctoken>` 형식으로 보냅니다.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"9c70699b-2b40-4355-ac65-4a0d6639f86f":{"url":"https://client-api.tryvox.co/v3","description":"운영"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"Organization API key","description":"워크스페이스 API 키를 `Authorization: Bearer \u003ctoken>` 형식으로 보냅니다.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"워크스페이스 API 키를 `Authorization: Bearer \u003ctoken>` 형식으로 보냅니다.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/v3/openapi.json"},"subdomain":"fleek","siteName":"vox.ai 문서","title":"에이전트 단건 조회 - vox.ai 문서","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T05:38:29.648Z","originalFileLocation":"api-reference/v3/agents/에이전트-단건-조회.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"에이전트 1건을 조회합니다. version=current는 수정 가능한 현재 상태를, production이나 v{n}은 저장된 스냅샷을 반환합니다.\">\u003cmeta data-mint-head name=\"keywords\" content=\"AICC, AI 음성 에이전트, SDK, 음성 AI\">\u003cmeta data-mint-head name=\"application-name\" content=\"vox.ai 문서\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"에이전트 단건 조회 - vox.ai 문서\">\u003cmeta data-mint-head property=\"og:description\" content=\"에이전트 1건을 조회합니다. version=current는 수정 가능한 현재 상태를, production이나 v{n}은 저장된 스냅샷을 반환합니다.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"vox.ai 문서\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tryvox.co/api-reference/v3/agents/에이전트-단건-조회\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fleek.mintlify.app/_mintlify/api/og/v2?division=%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8\u0026amp;title=%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8+%EB%8B%A8%EA%B1%B4+%EC%A1%B0%ED%9A%8C\u0026amp;description=%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8+1%EA%B1%B4%EC%9D%84+%EC%A1%B0%ED%9A%8C%ED%95%A9%EB%8B%88%EB%8B%A4.+%60version%3Dcurrent%60%EB%8A%94+%EC%88%98%EC%A0%95+%EA%B0%80%EB%8A%A5%ED%95%9C+%ED%98%84%EC%9E%AC+%EC%83%81%ED%83%9C%EB%A5%BC%2C+%60production%60%EC%9D%B4%EB%82%98+%60v%7Bn%7D%60%EC%9D%80+%EC%A0%80%EC%9E%A5%EB%90%9C+%EC%8A%A4%EB%83%85%EC%83%B7%EC%9D%84+%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=f046f2cf51eedf974162c63d\u0026amp;signature=7944972ac0c8e2238ae49622169290e7b4afc51294263e0d08a0b85ba8c26208\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"에이전트 단건 조회 - vox.ai 문서\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"에이전트 1건을 조회합니다. version=current는 수정 가능한 현재 상태를, production이나 v{n}은 저장된 스냅샷을 반환합니다.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fleek.mintlify.app/_mintlify/api/og/v2?division=%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8\u0026amp;title=%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8+%EB%8B%A8%EA%B1%B4+%EC%A1%B0%ED%9A%8C\u0026amp;description=%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8+1%EA%B1%B4%EC%9D%84+%EC%A1%B0%ED%9A%8C%ED%95%A9%EB%8B%88%EB%8B%A4.+%60version%3Dcurrent%60%EB%8A%94+%EC%88%98%EC%A0%95+%EA%B0%80%EB%8A%A5%ED%95%9C+%ED%98%84%EC%9E%AC+%EC%83%81%ED%83%9C%EB%A5%BC%2C+%60production%60%EC%9D%B4%EB%82%98+%60v%7Bn%7D%60%EC%9D%80+%EC%A0%80%EC%9E%A5%EB%90%9C+%EC%8A%A4%EB%83%85%EC%83%B7%EC%9D%84+%EB%B0%98%ED%99%98%ED%95%A9%EB%8B%88%EB%8B%A4.\u0026amp;theme=f046f2cf51eedf974162c63d\u0026amp;signature=7944972ac0c8e2238ae49622169290e7b4afc51294263e0d08a0b85ba8c26208\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/fleek/XpEwBvGNmdT3TMnG/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"vox.ai 문서\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7c3aed\">\u003cmeta data-mint-head name=\"language\" content=\"ko\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tryvox.co/api-reference/v3/agents/에이전트-단건-조회\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tryvox.co/#organization\",\"name\":\"vox.ai 문서\",\"url\":\"https://docs.tryvox.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fleek/QLXPdp5do4SgNyXm/logo/light.svg?fit=max\u0026auto=format\u0026n=QLXPdp5do4SgNyXm\u0026q=85\u0026s=ca85e066068138abac22f638eed5dad0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tryvox.co#website\",\"name\":\"vox.ai 문서\",\"url\":\"https://docs.tryvox.co\",\"publisher\":{\"@id\":\"https://docs.tryvox.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C#webpage\",\"url\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C\",\"name\":\"에이전트 단건 조회\",\"description\":\"에이전트 1건을 조회합니다. version=current는 수정 가능한 현재 상태를, production이나 v{n}은 저장된 스냅샷을 반환합니다.\",\"dateModified\":\"2026-11-05T05:38:29.648Z\",\"isPartOf\":{\"@id\":\"https://docs.tryvox.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"에이전트\",\"item\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EC%83%9D%EC%84%B1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"에이전트 단건 조회\",\"item\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C#apireference\",\"headline\":\"에이전트 단건 조회\",\"name\":\"에이전트 단건 조회\",\"description\":\"에이전트 1건을 조회합니다. version=current는 수정 가능한 현재 상태를, production이나 v{n}은 저장된 스냅샷을 반환합니다.\",\"url\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tryvox.co/api-reference/v3/agents/%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8-%EB%8B%A8%EA%B1%B4-%EC%A1%B0%ED%9A%8C#webpage\"},\"dateModified\":\"2026-11-05T05:38:29.648Z\",\"publisher\":{\"@id\":\"https://docs.tryvox.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tryvox.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"vox.ai 문서\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"vox.ai 문서","nav":{"global":null,"tabs":[{"tab":"가이드","icon":"book-open","pages":[{"title":"가이드","href":"/docs/start/overview"}]},{"tab":"AI","icon":"microchip-ai","pages":[{"title":"AI","href":"/docs/ai/overview"}]},{"tab":"SDK","icon":"code","pages":[{"title":"SDK","href":"/docs/sdk/javascript"}]},{"tab":"API 참조","icon":"brackets-curly","pages":[{"title":"소개","href":"/api-reference/v3/introduction"},{"group":"통화","pages":[{"title":"통화 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /calls","href":"/api-reference/v3/calls/통화-생성"},{"title":"통화 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /calls","href":"/api-reference/v3/calls/통화-목록-조회"},{"title":"통화 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /calls/{call_id}","href":"/api-reference/v3/calls/통화-조회"},{"title":"진행 중 통화 전환 요청","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /calls/{call_id}/transfer","href":"/api-reference/v3/calls/진행-중-통화-전환-요청"},{"title":"진행 중 통화에 맥락 주입","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /calls/{call_id}/context","href":"/api-reference/v3/calls/진행-중-통화에-맥락-주입"}]},{"group":"상담사 통화","pages":[{"title":"상담사 통화 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /operator-calls","href":"/api-reference/v3/operator-calls/상담사-통화-목록-조회"},{"title":"상담사 통화 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /operator-calls/{operator_call_id}","href":"/api-reference/v3/operator-calls/상담사-통화-조회"}]},{"group":"에이전트","pages":[{"title":"에이전트 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /agents","href":"/api-reference/v3/agents/에이전트-생성"},{"title":"에이전트 목록","description":"인증된 워크스페이스(`organization_id`)의 에이전트 목록을 조회합니다. 목록 항목은 요약 정보이며, `data`, `flow_data`, 버전 스냅샷은 단건 조회에서 확인합니다.","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents","href":"/api-reference/v3/agents/에이전트-목록"},{"title":"에이전트 단건 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents/{agent_id}","href":"/api-reference/v3/agents/에이전트-단건-조회"},{"title":"에이전트 수정","description":"에이전트를 부분 수정합니다. 생략한 필드는 유지되고, `type`은 변경할 수 없습니다. flow 그래프는 `flow` 필드로 작성하며 전체 교체로 동작합니다(현재 그래프를 유지하려면 생략). 기존 `flow_data`는 호환용입니다.","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /agents/{agent_id}","href":"/api-reference/v3/agents/에이전트-수정"},{"title":"에이전트 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /agents/{agent_id}","href":"/api-reference/v3/agents/에이전트-삭제"},{"title":"플로우 검증","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /agents/validate-flow","href":"/api-reference/v3/agents/플로우-검증"}]},{"group":"에이전트 버전","pages":[{"title":"에이전트 버전 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /agents/{agent_id}/versions","href":"/api-reference/v3/agentversions/에이전트-버전-생성"},{"title":"에이전트 버전 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents/{agent_id}/versions","href":"/api-reference/v3/agentversions/에이전트-버전-목록-조회"},{"title":"에이전트 버전 프로덕션 게시","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /agents/{agent_id}/versions/{version}/publish","href":"/api-reference/v3/agentversions/에이전트-버전-프로덕션-게시"}]},{"group":"도구","pages":[{"title":"도구 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /tools","href":"/api-reference/v3/tools/도구-생성"},{"title":"도구 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /tools","href":"/api-reference/v3/tools/도구-목록-조회"},{"title":"도구 상세 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /tools/{tool_id}","href":"/api-reference/v3/tools/도구-상세-조회"},{"title":"도구 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /tools/{tool_id}","href":"/api-reference/v3/tools/도구-수정"},{"title":"도구 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /tools/{tool_id}","href":"/api-reference/v3/tools/도구-삭제"}]},{"group":"지식 베이스","pages":[{"title":"지식 베이스 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /knowledges","href":"/api-reference/v3/knowledges/지식-베이스-생성"},{"title":"지식 베이스 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /knowledges","href":"/api-reference/v3/knowledges/지식-베이스-목록-조회"},{"title":"지식 베이스 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /knowledges/{knowledge_id}","href":"/api-reference/v3/knowledges/지식-베이스-삭제"},{"title":"지식 베이스 문서 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /knowledges/{knowledge_id}/documents","href":"/api-reference/v3/knowledge-documents/지식-베이스-문서-생성"},{"title":"지식 베이스 문서 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /knowledges/{knowledge_id}/documents","href":"/api-reference/v3/knowledge-documents/지식-베이스-문서-목록-조회"},{"title":"지식 베이스 문서 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /knowledges/{knowledge_id}/documents/{document_id}","href":"/api-reference/v3/knowledge-documents/지식-베이스-문서-조회"},{"title":"지식 베이스 문서 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /knowledges/{knowledge_id}/documents/{document_id}","href":"/api-reference/v3/knowledge-documents/지식-베이스-문서-삭제"}]},{"group":"메뉴얼","pages":[{"title":"에이전트 메뉴얼 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /agents/{agent_id}/manuals","href":"/api-reference/v3/agentmanuals/에이전트-메뉴얼-생성"},{"title":"에이전트 메뉴얼 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents/{agent_id}/manuals","href":"/api-reference/v3/agentmanuals/에이전트-메뉴얼-목록-조회"},{"title":"에이전트 메뉴얼 단건 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /agents/{agent_id}/manuals/{manual_id}","href":"/api-reference/v3/agentmanuals/에이전트-메뉴얼-단건-조회"},{"title":"에이전트 메뉴얼 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /agents/{agent_id}/manuals/{manual_id}","href":"/api-reference/v3/agentmanuals/에이전트-메뉴얼-수정"},{"title":"에이전트 메뉴얼 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /agents/{agent_id}/manuals/{manual_id}","href":"/api-reference/v3/agentmanuals/에이전트-메뉴얼-삭제"}]},{"group":"평가","pages":[{"group":"유닛 테스트","pages":[{"title":"유닛 테스트 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /evals/unit","href":"/api-reference/v3/evals/유닛-테스트-생성"},{"title":"유닛 테스트 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/unit","href":"/api-reference/v3/evals/유닛-테스트-목록-조회"},{"title":"유닛 테스트 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/unit/{test_id}","href":"/api-reference/v3/evals/유닛-테스트-조회"},{"title":"유닛 테스트 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /evals/unit/{test_id}","href":"/api-reference/v3/evals/유닛-테스트-수정"},{"title":"유닛 테스트 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /evals/unit/{test_id}","href":"/api-reference/v3/evals/유닛-테스트-삭제"},{"title":"유닛 테스트 실행","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /evals/unit/batches","href":"/api-reference/v3/evals/유닛-테스트-실행"},{"title":"유닛 테스트 배치 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/unit/batches","href":"/api-reference/v3/evals/유닛-테스트-배치-목록-조회"},{"title":"유닛 테스트 배치 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/unit/batches/{batch_id}","href":"/api-reference/v3/evals/유닛-테스트-배치-조회"},{"title":"유닛 테스트 실행 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/unit/runs","href":"/api-reference/v3/evals/유닛-테스트-실행-목록-조회"},{"title":"유닛 테스트 실행 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/unit/runs/{run_id}","href":"/api-reference/v3/evals/유닛-테스트-실행-조회"}]},{"group":"시나리오 테스트","pages":[{"title":"시나리오 테스트 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /evals/scenario","href":"/api-reference/v3/evals/시나리오-테스트-생성"},{"title":"시나리오 테스트 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/scenario","href":"/api-reference/v3/evals/시나리오-테스트-목록-조회"},{"title":"시나리오 테스트 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/scenario/{test_id}","href":"/api-reference/v3/evals/시나리오-테스트-조회"},{"title":"시나리오 테스트 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /evals/scenario/{test_id}","href":"/api-reference/v3/evals/시나리오-테스트-수정"},{"title":"시나리오 테스트 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /evals/scenario/{test_id}","href":"/api-reference/v3/evals/시나리오-테스트-삭제"},{"title":"시나리오 테스트 실행","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /evals/scenario/batches","href":"/api-reference/v3/evals/시나리오-테스트-실행"},{"title":"시나리오 테스트 배치 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/scenario/batches","href":"/api-reference/v3/evals/시나리오-테스트-배치-목록-조회"},{"title":"시나리오 테스트 배치 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/scenario/batches/{batch_id}","href":"/api-reference/v3/evals/시나리오-테스트-배치-조회"},{"title":"시나리오 테스트 실행 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/scenario/runs","href":"/api-reference/v3/evals/시나리오-테스트-실행-목록-조회"},{"title":"시나리오 테스트 실행 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /evals/scenario/runs/{run_id}","href":"/api-reference/v3/evals/시나리오-테스트-실행-조회"}]}]},{"group":"모델","pages":[{"title":"LLM 모델 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /models/llms","href":"/api-reference/v3/models/llm-모델-목록-조회"},{"title":"음성 모델 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /models/voices","href":"/api-reference/v3/models/음성-모델-생성"},{"title":"음성 모델 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /models/voices","href":"/api-reference/v3/models/음성-모델-목록-조회"},{"title":"음성 모델 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /models/voices/{voice_id}","href":"/api-reference/v3/models/음성-모델-조회"},{"title":"음성 모델 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /models/voices/{voice_id}","href":"/api-reference/v3/models/음성-모델-삭제"}]},{"group":"스키마","pages":[{"title":"스키마 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /schemas","href":"/api-reference/v3/schemas/스키마-목록-조회"},{"title":"스키마 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /schemas/{namespace}/{schema_type}","href":"/api-reference/v3/schemas/스키마-조회"}]},{"group":"보유 전화번호","pages":[{"title":"보유 전화번호 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /organization-telephone-numbers","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-목록-조회"},{"title":"보유 전화번호 상세 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /organization-telephone-numbers/{organization_telephone_number_id}","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-상세-조회"},{"title":"보유 전화번호 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /organization-telephone-numbers/{organization_telephone_number_id}","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-수정"},{"title":"보유 전화번호 에이전트 설정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /organization-telephone-numbers/{organization_telephone_number_id}/agent","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-에이전트-설정"},{"title":"보유 전화번호 SIP 설정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /organization-telephone-numbers/{organization_telephone_number_id}/sip","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-sip-설정"},{"title":"보유 전화번호 해지","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /organization-telephone-numbers/{organization_telephone_number_id}","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-해지"},{"title":"보유 전화번호 해지 취소","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /organization-telephone-numbers/{organization_telephone_number_id}/revoke-cancel","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-해지-취소"},{"title":"보유 전화번호 통신서비스 이용증명원 발급 요청","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /organization-telephone-numbers/{organization_telephone_number_id}/certificate","href":"/api-reference/v3/organization-telephone-numbers/보유-전화번호-통신서비스-이용증명원-발급-요청"}]},{"group":"전화번호 자원","pages":[{"title":"전화번호 자원 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /telephone-numbers/available","href":"/api-reference/v3/telephone-numbers/전화번호-자원-목록-조회"},{"title":"전화번호 구매","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /telephone-numbers/purchase","href":"/api-reference/v3/telephone-numbers/전화번호-구매"},{"title":"SIP 연동","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /telephone-numbers/register","href":"/api-reference/v3/telephone-numbers/sip-연동"}]},{"group":"발신표기번호","pages":[{"title":"발신표기번호 등록 신청","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /telephone-presentation-numbers","href":"/api-reference/v3/telephone-presentation-numbers/발신표기번호-등록-신청"},{"title":"발신표기번호 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /telephone-presentation-numbers","href":"/api-reference/v3/telephone-presentation-numbers/발신표기번호-목록-조회"},{"title":"발신표기번호 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /telephone-presentation-numbers/{telephone_presentation_number_id}","href":"/api-reference/v3/telephone-presentation-numbers/발신표기번호-삭제"}]},{"group":"차단 번호","pages":[{"title":"차단 번호 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /blocked-numbers","href":"/api-reference/v3/blocked-numbers/차단-번호-생성"},{"title":"차단 번호 일괄 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /blocked-numbers/bulk","href":"/api-reference/v3/blocked-numbers/차단-번호-일괄-생성"},{"title":"차단 번호 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /blocked-numbers","href":"/api-reference/v3/blocked-numbers/차단-번호-목록-조회"},{"title":"차단 번호 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /blocked-numbers/{blocked_number_id}","href":"/api-reference/v3/blocked-numbers/차단-번호-수정"},{"title":"차단 번호 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /blocked-numbers/{blocked_number_id}","href":"/api-reference/v3/blocked-numbers/차단-번호-삭제"}]},{"group":"대량 발신","pages":[{"title":"대량 발신 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /campaigns","href":"/api-reference/v3/campaigns/대량-발신-생성"},{"title":"대량 발신 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /campaigns","href":"/api-reference/v3/campaigns/대량-발신-목록-조회"},{"title":"대량 발신 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /campaigns/{campaign_id}","href":"/api-reference/v3/campaigns/대량-발신-조회"},{"title":"대량 발신 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /campaigns/{campaign_id}","href":"/api-reference/v3/campaigns/대량-발신-수정"},{"title":"대량 발신 일시정지","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /campaigns/{campaign_id}/pause","href":"/api-reference/v3/campaigns/대량-발신-일시정지"},{"title":"대량 발신 재개","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /campaigns/{campaign_id}/resume","href":"/api-reference/v3/campaigns/대량-발신-재개"},{"title":"대량 발신 취소","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /campaigns/{campaign_id}/cancel","href":"/api-reference/v3/campaigns/대량-발신-취소"}]},{"group":"시트","pages":[{"title":"시트 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /sheets","href":"/api-reference/v3/sheets/시트-생성"},{"title":"시트 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sheets","href":"/api-reference/v3/sheets/시트-목록-조회"},{"title":"시트 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sheets/{sheet_id}","href":"/api-reference/v3/sheets/시트-조회"}]},{"group":"위젯","pages":[{"title":"위젯 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /widgets","href":"/api-reference/v3/widgets/위젯-생성"},{"title":"위젯 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /widgets","href":"/api-reference/v3/widgets/위젯-목록-조회"},{"title":"위젯 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /widgets/{widget_id}","href":"/api-reference/v3/widgets/위젯-조회"},{"title":"위젯 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /widgets/{widget_id}","href":"/api-reference/v3/widgets/위젯-수정"},{"title":"위젯 게시","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /widgets/{widget_id}/publish","href":"/api-reference/v3/widgets/위젯-게시"},{"title":"위젯 게시 해제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /widgets/{widget_id}/unpublish","href":"/api-reference/v3/widgets/위젯-게시-해제"},{"title":"위젯 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /widgets/{widget_id}","href":"/api-reference/v3/widgets/위젯-삭제"}]},{"group":"문자","pages":[{"title":"문자 발신","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /sms","href":"/api-reference/v3/sms/문자-발신"},{"title":"발신 문자 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sms","href":"/api-reference/v3/sms/발신-문자-목록-조회"},{"title":"발신 문자 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sms/{sms_id}","href":"/api-reference/v3/sms/발신-문자-조회"},{"title":"수신 문자 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sms/received","href":"/api-reference/v3/sms/수신-문자-목록-조회"}]},{"group":"대량 문자 발신","pages":[{"title":"대량 문자 발신 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /sms-batches","href":"/api-reference/v3/sms/대량-문자-발신-생성"},{"title":"대량 문자 발신 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sms-batches","href":"/api-reference/v3/sms/대량-문자-발신-목록-조회"},{"title":"대량 문자 발신 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /sms-batches/{batch_id}","href":"/api-reference/v3/sms/대량-문자-발신-조회"},{"title":"대량 문자 발신 일시정지","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /sms-batches/{batch_id}/pause","href":"/api-reference/v3/sms/대량-문자-발신-일시정지"},{"title":"대량 문자 발신 재개","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /sms-batches/{batch_id}/resume","href":"/api-reference/v3/sms/대량-문자-발신-재개"},{"title":"대량 문자 발신 취소","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /sms-batches/{batch_id}/cancel","href":"/api-reference/v3/sms/대량-문자-발신-취소"}]},{"group":"파일","pages":[{"title":"파일 업로드","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /files","href":"/api-reference/v3/files/파일-업로드"},{"title":"파일 다운로드","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /files/{file_key}/content","href":"/api-reference/v3/files/파일-다운로드"}]},{"group":"고객","pages":[{"title":"고객 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /customers","href":"/api-reference/v3/customers/고객-생성"},{"title":"고객 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /customers","href":"/api-reference/v3/customers/고객-목록-조회"},{"title":"고객 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /customers/{customer_id}","href":"/api-reference/v3/customers/고객-조회"},{"title":"식별자로 고객 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /customers/find","href":"/api-reference/v3/customers/식별자로-고객-조회"},{"title":"식별자로 고객 조회 또는 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /customers/resolve","href":"/api-reference/v3/customers/식별자로-고객-조회-또는-생성"},{"title":"고객 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /customers/{customer_id}","href":"/api-reference/v3/customers/고객-수정"},{"title":"고객 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /customers/{customer_id}","href":"/api-reference/v3/customers/고객-삭제"},{"title":"중복 고객 병합","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /customers/merge","href":"/api-reference/v3/customers/중복-고객-병합"},{"title":"고객 식별자 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /customers/{customer_id}/identifiers/{identifier_id}","href":"/api-reference/v3/customers/고객-식별자-삭제"}]},{"group":"고객 속성 정의","pages":[{"title":"고객 속성 정의 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /customer-attribute-definitions","href":"/api-reference/v3/customer-attribute-definitions/고객-속성-정의-생성"},{"title":"고객 속성 정의 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /customer-attribute-definitions","href":"/api-reference/v3/customer-attribute-definitions/고객-속성-정의-목록-조회"},{"title":"고객 속성 정의 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /customer-attribute-definitions/{definition_id}","href":"/api-reference/v3/customer-attribute-definitions/고객-속성-정의-조회"},{"title":"고객 속성 정의 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /customer-attribute-definitions/{definition_id}","href":"/api-reference/v3/customer-attribute-definitions/고객-속성-정의-수정"},{"title":"고객 속성 정의 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /customer-attribute-definitions/{definition_id}","href":"/api-reference/v3/customer-attribute-definitions/고객-속성-정의-삭제"}]},{"group":"메모리","pages":[{"title":"메모리 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /memories","href":"/api-reference/v3/memories/메모리-생성"},{"title":"메모리 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /memories","href":"/api-reference/v3/memories/메모리-목록-조회"},{"title":"메모리 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /memories/{memory_id}","href":"/api-reference/v3/memories/메모리-조회"},{"title":"메모리 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /memories/{memory_id}","href":"/api-reference/v3/memories/메모리-삭제"},{"title":"메모리 일괄 만료","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /memories/reset","href":"/api-reference/v3/memories/메모리-일괄-만료"}]},{"group":"알림","pages":[{"title":"알림 규칙 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /alert-rules","href":"/api-reference/v3/alerts/알림-규칙-생성"},{"title":"알림 규칙 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /alert-rules","href":"/api-reference/v3/alerts/알림-규칙-목록-조회"},{"title":"알림 규칙 상세 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /alert-rules/{alert_rule_id}","href":"/api-reference/v3/alerts/알림-규칙-상세-조회"},{"title":"알림 규칙 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /alert-rules/{alert_rule_id}","href":"/api-reference/v3/alerts/알림-규칙-수정"},{"title":"알림 규칙 채널 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /alert-rules/{alert_rule_id}/channels","href":"/api-reference/v3/alerts/알림-규칙-채널-수정"},{"title":"알림 규칙 조건 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /alert-rules/{alert_rule_id}/condition","href":"/api-reference/v3/alerts/알림-규칙-조건-수정"},{"title":"알림 규칙 스케줄 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /alert-rules/{alert_rule_id}/schedule","href":"/api-reference/v3/alerts/알림-규칙-스케줄-수정"},{"title":"알림 규칙 활성화","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /alert-rules/{alert_rule_id}/enable","href":"/api-reference/v3/alerts/알림-규칙-활성화"},{"title":"알림 규칙 비활성화","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /alert-rules/{alert_rule_id}/disable","href":"/api-reference/v3/alerts/알림-규칙-비활성화"},{"title":"알림 규칙 일시정지","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /alert-rules/{alert_rule_id}/pause","href":"/api-reference/v3/alerts/알림-규칙-일시정지"},{"title":"알림 규칙 일시정지 해제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /alert-rules/{alert_rule_id}/resume","href":"/api-reference/v3/alerts/알림-규칙-일시정지-해제"},{"title":"알림 규칙 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /alert-rules/{alert_rule_id}","href":"/api-reference/v3/alerts/알림-규칙-삭제"},{"title":"알림 규칙 테스트 알림 발송","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /alert-rules/{alert_rule_id}/test-notification","href":"/api-reference/v3/alerts/알림-규칙-테스트-알림-발송"},{"title":"알림 규칙 인시던트 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /alert-rules/{alert_rule_id}/incidents","href":"/api-reference/v3/alerts/알림-규칙-인시던트-목록-조회"},{"title":"인시던트 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /incidents","href":"/api-reference/v3/incidents/인시던트-목록-조회"}]},{"group":"워크스페이스","pages":[{"title":"하위 워크스페이스 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /organizations","href":"/api-reference/v3/organizations/하위-워크스페이스-생성"},{"title":"워크스페이스 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /organizations","href":"/api-reference/v3/organizations/워크스페이스-목록-조회"},{"title":"워크스페이스 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /organizations/{organization_id}","href":"/api-reference/v3/organizations/워크스페이스-조회"},{"title":"워크스페이스 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /organizations/{organization_id}","href":"/api-reference/v3/organizations/워크스페이스-수정"},{"title":"하위 워크스페이스 삭제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /organizations/{organization_id}","href":"/api-reference/v3/organizations/하위-워크스페이스-삭제"}]},{"group":"워크스페이스 API 키","pages":[{"title":"API 키 발급","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /organizations/{organization_id}/api-keys","href":"/api-reference/v3/organizations/api-키-발급"},{"title":"API 키 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /organizations/{organization_id}/api-keys","href":"/api-reference/v3/organizations/api-키-목록-조회"},{"title":"API 키 폐기","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /organizations/{organization_id}/api-keys","href":"/api-reference/v3/organizations/api-키-폐기"}]},{"group":"워크스페이스 인증","pages":[{"title":"워크스페이스 인증 신청","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /organizations/{organization_id}/verification","href":"/api-reference/v3/organizations/워크스페이스-인증-신청"},{"title":"워크스페이스 인증 상태 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /organizations/{organization_id}/verification","href":"/api-reference/v3/organizations/워크스페이스-인증-상태-조회"}]},{"group":"네이버톡톡","pages":[{"title":"네이버톡톡 연동 생성","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /navertalk-connections","href":"/api-reference/v3/navertalk/네이버톡톡-연동-생성"},{"title":"네이버톡톡 연동 목록 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /navertalk-connections","href":"/api-reference/v3/navertalk/네이버톡톡-연동-목록-조회"},{"title":"네이버톡톡 연동 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /navertalk-connections/{connection_id}","href":"/api-reference/v3/navertalk/네이버톡톡-연동-조회"},{"title":"네이버톡톡 연동 수정","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json patch /navertalk-connections/{connection_id}","href":"/api-reference/v3/navertalk/네이버톡톡-연동-수정"},{"title":"네이버톡톡 확인 코드 재발급","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /navertalk-connections/{connection_id}/verification","href":"/api-reference/v3/navertalk/네이버톡톡-확인-코드-재발급"},{"title":"네이버톡톡 연동 활성화","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /navertalk-connections/{connection_id}/enable","href":"/api-reference/v3/navertalk/네이버톡톡-연동-활성화"},{"title":"네이버톡톡 연동 중지","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /navertalk-connections/{connection_id}/disable","href":"/api-reference/v3/navertalk/네이버톡톡-연동-중지"},{"title":"네이버톡톡 연동 해제","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json delete /navertalk-connections/{connection_id}","href":"/api-reference/v3/navertalk/네이버톡톡-연동-해제"},{"title":"네이버톡톡 응대권 조회","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json get /chats/{chat_id}/navertalk","href":"/api-reference/v3/chats/네이버톡톡-응대권-조회"},{"title":"네이버톡톡 응대권 전환","deprecated":null,"version":null,"openapi":"/api-reference/v3/openapi.json post /chats/{chat_id}/navertalk/handover","href":"/api-reference/v3/chats/네이버톡톡-응대권-전환"}]}]},{"tab":"변경 내역","icon":"list-timeline","pages":[{"title":"변경 내역","href":"/changelog/2026/10"}]}]},"basePath":"","title":"에이전트 단건 조회 - vox.ai 문서","buildId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","deploymentId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-B2eHeXx_.js","dist-Dt1IougW.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-DptzKFCt.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-B5zPa4Vr.js","utils-CVjrr8Yd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DTgURWzl.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DxTHtkdZ.js","snippetPresets-Cx47o5Vx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CYZot51e.js","ApiExamples-4Fr6y9N_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Dq2ElbEk.js","shallow-BfYl9r69.js","getApiPlaygroundDisplay-Ch3xc7i1.js","CodeSnippet-BsBxuJ1v.js","CodeSnippets-CetzeDL8.js","getPastedJson-BxPKFSJx.js","icon-o0J1Ochb.js","MethodPill-Du3usO5m.js","DuplicateIcon-DJypyMzl.js","createIcon-YMA6N8KJ.js","DynamicMarkdown-CWvhfcZc.js","SectionHeading-BdLVaXCd.js","axios-vUo_bRtp.js","Markdown-C4Ez6OeV.js","AssistantPageLink-CZ6Wt2Vb.js"]}