---
title: "Create or update any number of call flow records"
method: POST
path: "/callflow"
tags: ["callflow"]
---

# Create or update any number of call flow records

`POST /callflow`

Creates or updates call flow routing configurations. Provisions phone numbers with routing rules including forwarding destinations, business hours, IVR menus, and call handling logic.

## Request body

- CallflowNumberPost[]
  - `call_flow_id` integer — Unique identifier for the call flow/route definition the call was answered by. Integer. Maps to call_flow.call_flow_id.
  - `call_flow_name` string, required — Human-readable name of the call flow/route. String.
  - `call_flow_created` string, date-time — The date and time that the call flow was created. Type: string (date-time).
  - `call_flow_status` 'active' | 'inactive' — call_flow_status. Type: enum (string); Allowed values: active, inactive.
  - `repeat_interval` integer — The amount of minutes before the route can be used again. Type: integer (int32).
  - `call_value` integer — Monetary value assigned to the call by scoring/analytics. Integer (cents or whole dollars depending on account config).
  - `channel_id` integer, required — Unique identifier for the marketing channel tagged on this call. Integer. See /misc/channel for available channels.
  - `dnis` string — The unique ID assigned to an group for use with DNI. Type: string.
  - `message_enabled` boolean — Indicates whether the message feature is enabled or not. Type: boolean.
  - `message` string — SMS message body. String. Max length set by carrier (typically 160 chars for single-segment, up to 1600 for concatenated).
  - `default_ringto` string — The default number to route to for a call flow should be 10 number. Type: string.
  - `group_id` integer, required — Organization unit (group) ID the call/record belongs to. Integer. Used to scope data; see /group/list for available group IDs.
  - `email_to_notify` string — The e-mail address(es) to notify for call flow. Type: string.
  - `play_disclaimer` 'before' | 'after' | 'never' — Identifies whether to play the disclaimer message or not. Type: enum (string); Allowed values: before, after, never.
  - `created_at` string, date-time — The date and time at which the call flow was created. Type: string (date-time).
  - `updated_at` string, date-time — The date and time at which the call flow was last updated. Type: string (date-time).
  - `voicemail_greeting` string — The greeting to play if voicemail feature is enabled. Type: string.
  - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature. Type: boolean.
  - `voicemail_rings` integer — The unique identifier for the rings for Voicemail (1-10). Filter will not apply for voicemail_rings. Type: integer (int32).
  - `routable_id` integer — The routable_id is used to get route info. Type: integer (int32).
  - `routable_type` 'SimpleRoute' | 'IvrRoute2' | 'PercentageBasedRoute' | 'ScheduleRoute' | 'GeoRoute' | 'OutboundRoute' | 'HangupRoute', required — routable_type. Type: enum (string); Allowed values: SimpleRoute, IvrRoute2, PercentageBasedRoute, ScheduleRoute, GeoRoute, OutboundRoute, HangupRoute.
  - `webhook_enabled` boolean — Indicates whether or not a call flow uses webhooks. Type: boolean.
  - `record_until` string, date-time — The date and time to record until. Type: string (date-time).
  - `whisper_enabled` boolean — Indicates whether or not whisper messaging is enabled. Type: boolean.
  - `whisper_message` string — The message that should be played for the whisper or unique reference id. Type: string.
  - `ring_delay` integer — The number of seconds to delay before ringing. Type: integer (int32).
  - `postcall_ivr_enabled` boolean — Indicates whether call flow has post call routing actions enabled. Type: boolean.
  - `postcall_ivr_id` integer — The unique identifier for the post call action to take. Type: integer (int32).
  - `spam_threshold` integer — The threshold level of tolerance to allow on spam (0-5). Type: integer (int32).
  - `spam_filter_enabled` boolean — Determines whether or not spam filtering is enabled. Type: boolean.
  - `referral_number` string — The referral number to route to for a call flow if call flow is in referral state. Type: string.
  - `referral_end_date` string, date-time — The referral date to route to for a call flow if call flow is in referral state. Type: string (date-time).
  - `record_call_enabled` boolean — Enable/disable record call feature, play_disclaimer and record_until takes precedence. Type: boolean.
  - `isSimultaneous` boolean — The isSimultaneous is used to create hunt type for a call flow and its mandatory when you are adding overflowNumbers in call flow
  - `overflowNumbers` OverflowNumbers[]
    - `overflowNumber` integer, required — The unique identifier for the overflowNumber. Type: integer (int32).
    - `rings` integer, required — The unique identifier for the rings for overflowNumber. Type: integer (int32).
  - `campaign_id` integer, required — The unique identifier for the campaign to attach the call flow to
  - `number` object
    - `phone_number_id` integer, required — The unique identifier for the phone number record
    - `phone_number` integer — The full phone number
  - `number_pool` object
    - `pool_id` integer — The unique identifier for the number pool collection used for updating only
    - `pool_name` string, required — The client given name for the number pool collection
    - `keep_alive_minutes` integer — The number of minutes to hold use of the number before recycling
    - `number_quantity` integer, required — The total number of phone numbers in the pool collection
    - `npa` integer, required — The area code for the geographic location of the number pool
    - `nxx` integer, required — Digits 4-6 of phone number
  - `ivrs` object[]
    - `Key` integer — Enter the key to be pressed by the caller
    - `name` string, required — Enter the destination name for the key press
    - `message_enabled` boolean — Enter the voice prompt for key press (Example Press 1 for Sale)
    - `message` string — Enter voiceprompt after key press selection (Example Welcome to Sales department)
    - `route_type` 'Simple' | 'Geo' | 'Hangup' | 'Schedule', required
    - `record_enabled` boolean — Set the call recording to on/off
    - `play_disclaimer` 'before' | 'after' | 'never' — Set the disclaimer to be played or not played
    - `target_did` string, required — Enter the target number for the IVR route
    - `schedule` object
  - `schedule` object
    - `route` object
      - `default_ringto` integer — Default ringto when not scheduled
      - `timezone` 'Atlantic' | 'Eastern' | 'Central' | 'Mountain' | 'Arizona' | 'Pacific' — Timezone to use for schedules
      - `voicemail` boolean — Voicemail enabled
    - `options` object[]
      - `days` string, required — Days of week for ringto values- all days, mon-fri, sat-sun or comma separated days mon,tue,wed,thu,fri,sat,sun
      - `from_time` string, required — The time as hh:mm am/pm in 15 minute increments for the beginning of the schedule option (eg 01:15 am)
      - `to_time` string, required — The time as hh:mm am/pm in 15 minute increments for the end of the schedule option (eg 10:45 pm)
      - `ringto` integer, required — Ringto number for the schedule
      - `voicemail` boolean — Voicemail for route enabled

## Response `200`

Created or updated call flow IDs with result status for each operation

- StandardPostResponse[]
  - `result` string, required — Outcome of the request. String, typically 'success' or 'error'.
  - `data` string, required — Response payload. Shape varies by endpoint.
  - `entry_count` integer, required — The sequential number of the entry in the submitted array. Type: integer (int32).

## Other responses

- `default` — Unexpected error

---

[API](https://skmtc.net/convirza/apis/convirza-apis.md) · [All operations](https://skmtc.net/convirza/apis/convirza-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/convirza/convirza-apis/versions/ccf9bbe34f5a/schema)
