콜 플로우 생성

View as Markdown
콜 플로우(결정적 ARS)를 새로 만듭니다. 콘솔 빌더가 저장하는 것과 **같은 그래프 포맷**이라, 여기서 만든 플로우는 콘솔에서 그대로 열리고 편집됩니다(좌표는 자동 배치됩니다). 검증은 두 단계입니다. 1. 구조 — 블럭 타입·필드·값 범위. 스키마에 없는 필드는 거절합니다(오타 방어). 2. 참조 — `next` 류가 가리키는 블럭이 실재하는지, 시작 블럭이 있는지. 실패하면 400과 함께 `issues[]`에 **필드 단위 사유**가 실립니다. 만든 플로우의 `callFlowId`는 발신(`POST /v1/accounts/{accountId}/calls`의 `CallFlowId`)과 착신(`PATCH /v1/accounts/{accountId}/numbers/{number}`의 `routingType=callflow`)에 그대로 씁니다.

Authentication

AuthorizationBearer

API Key를 Bearer 토큰으로 전달

Path parameters

accountIdstringRequired

계정 ID

Request

This endpoint expects an object.
namestringRequired<=80 characters

플로우 이름(콘솔 목록에 보이는 이름)

graphobjectRequired
콜 플로우 그래프 — **요청용**. 블럭(`nodes`)과 시작점(`start`)으로 통화 흐름 전체를 기술합니다. ⚠️ **요청과 응답의 형태가 다릅니다.** 기본값이 있는 필드(`menu.maxDigits`·`menu.timeoutSec`, `record.maxLengthSec`·`playBeep`·`finishKey`, `dial.timeoutSec`, `voice.language`, `optout.number`·`channel`)는 요청에서 **생략할 수 있고**, 응답에는 **항상 채워져** 돌아옵니다. 캔버스 좌표(`ui`)는 공개 계약 밖입니다 — 보내도 저장되지 않고, 응답에도 실리지 않습니다. 콘솔 빌더가 잡아 둔 좌표는 `PUT`이면 버려지고 `PATCH`면 보존됩니다. 그래프 전체는 256KB를 넘을 수 없습니다.

Response

생성 성공

callFlowIdstringOptional

콜 플로우 ID. createCall의 CallFlowId, 번호 라우팅의 callFlowId에 그대로 사용합니다.

namestringOptional

콜 플로우 이름

phoneNumberslist of stringsOptional

이 플로우로 인입되는 번호 목록(routingType=callflow). 아웃바운드 전용이면 빈 배열입니다.

variableslist of stringsOptional

발신 시 createCall의 Variables로 넣어야 하는 변수 이름들. 그래프가 {{이름}}으로 참조하지만 통화 중에는 만들어지지 않는 값입니다(누른 키·HTTP 응답·녹음 결과처럼 통화가 만들어내는 변수는 제외). 채우지 않으면 그 자리는 빈 문자열로 나갑니다.

dateCreateddatetimeOptional
dateUpdateddatetimeOptional
graphobject or nullOptional

블럭 구성. 저장된 그래프가 현재 스키마로 읽히지 않으면(콘솔이 아닌 경로로 손댄 아주 오래된 플로우) null입니다 — 이름·연결된 번호는 그대로 유효하며, 이 경우 PUT으로 그래프 전체를 다시 올려 고칠 수 있습니다.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
409
Conflict Error
413
Content Too Large Error