새로운 문서를 작성 중입니다.새 문서로 이동
ClawOps Docs
API Reference

콜 플로우 전체 교체

PUT
/v1/accounts/{accountId}/call-flows/{callFlowId}

플로우를 통째로 바꿉니다. name·graph 둘 다 필수이고, 보낸 그래프가 저장된 그래프를 완전히 대체합니다.

콘솔 빌더가 잡아 둔 캔버스 좌표는 버려집니다(REST의 PUT 의미 그대로). 좌표가 없어도 콘솔 에디터가 자동 배치로 받아주므로 화면이 깨지지는 않습니다. 좌표를 지키려면 PATCH를 쓰세요.

검증과 에러 형태는 생성(POST)과 같습니다.

Authorization

BearerAuth
AuthorizationBearer <token>

API Key를 Bearer 토큰으로 전달

In: header

Path Parameters

accountId*string

계정 ID

callFlowId*string

콜 플로우 ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/accounts/AC1a2b3c4d/call-flows/cmryw3ycm000001s6on0kp9a8" \  -H "Content-Type: application/json" \  -d '{    "name": "동의 확인 ARS (문구 수정)",    "graph": {      "version": 1,      "start": "ask",      "nodes": {        "ask": {          "type": "menu",          "prompt": "안내에 동의하시면 1번, 거부하시면 2번을 눌러주세요.",          "branches": {            "1": "agreed",            "2": "declined"          },          "invalidNext": null,          "timeoutNext": "noInput",          "saveAs": "consent"        },        "agreed": {          "type": "hangup",          "message": "동의해 주셔서 감사합니다."        },        "declined": {          "type": "hangup",          "message": "확인했습니다. 감사합니다."        },        "noInput": {          "type": "hangup",          "message": "입력이 없어 통화를 종료합니다."        }      }    }  }'
{
  "callFlowId": "cmryw3ycm000001s6on0kp9a8",
  "name": "고객센터 ARS",
  "phoneNumbers": [
    "07052753864"
  ],
  "variables": [
    "name"
  ],
  "dateCreated": "2026-07-24T09:12:33.000Z",
  "dateUpdated": "2026-07-27T01:40:11.000Z",
  "graph": {
    "version": 1,
    "start": "greeting",
    "voice": {
      "provider": "google",
      "language": "ko"
    },
    "nodes": {
      "greeting": {
        "type": "say",
        "text": "안녕하세요, 클로옵스입니다.",
        "next": "bye"
      },
      "bye": {
        "type": "hangup",
        "message": "이용해 주셔서 감사합니다."
      }
    }
  }
}
{
  "error": "콜 플로우 구성이 올바르지 않습니다",
  "code": "call_flow_invalid_graph",
  "issues": [
    {
      "path": "nodes.ask.timeoutSecs",
      "message": "알 수 없는 필드입니다: timeoutSecs"
    }
  ]
}
{
  "error": "string",
  "code": "recipient_blocked"
}
{
  "error": "string",
  "code": "recipient_blocked"
}
{
  "error": "string",
  "code": "recipient_blocked"
}
{
  "error": "string",
  "code": "recipient_blocked"
}