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

# Create or update any number of call flow records with multilevel IVR

`POST /callflow/multilevelivr`

Creates call flows with multi-level IVR (Interactive Voice Response) menu systems. Configures hierarchical phone menus with multiple levels of options for advanced call routing and self-service workflows.

## Request body

- CallflowIvrPost[]
  - `call_flow_id` integer — The unique identifier for the call flow route
  - `call_flow_name` string, required — The user assigned name for the call flow route
  - `call_flow_status` 'active' | 'inactive'
  - `repeat_interval` integer — The amount of minutes before the route can be used again
  - `call_value` integer — A numeric value for the call
  - `channel_id` integer, required — The unique identifier for the channel record
  - `message` string, required — The message to play related to key presses
  - `group_id` integer, required — The unique identifier of the group that is associated with the call flow
  - `campaign_id` integer, required — The unique identifier for the campaign to attach the call flow to
  - `email_to_notify` string, email — The e-mail address(es) to notify for call flow
  - `voicemail_rings` integer — The unique identifier for the rings for Voicemail (1-10)
  - `voicemail_greeting` string — The greeting to play if voicemail feature is enabled.
  - `webhook_enabled` boolean — Indicates whether or not a call flow uses webhooks
  - `webhook_id` integer — Unique identifier representing the webhook
  - `spam_threshold` integer — The threshold level of tolerance to allow on spam (0-5)
  - `spam_filter_enabled` boolean — Determines whether or not spam filtering is enabled
  - `referral_number` integer — The referral number to route to for a call flow if call flow is in referral state
  - `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[], required
    - `key` integer, required — Enter the key to be pressed by the caller
    - `action` 'interactiveVoice' | 'simple' | 'schedule' | 'hangup' | 'geo', required — Set the action
    - `destination` string, required — Enter the destination name for the key press
    - `message` string — Enter voiceprompt after key press selection (Example Welcome to Sales department)
    - `ivrData` IvrData[]
      - `key` integer, required — Enter the key to be pressed by the caller
      - `action` 'interactiveVoice' | 'simple' | 'schedule' | 'hangup' | 'geo', required — Set the action
      - `destination` string, required — Enter the destination name for the key press
      - `message` string — Enter voiceprompt after key press selection (Example Welcome to Sales department)
      - `ivrData` object[]
        - `key` integer, required — Enter the key to be pressed by the caller
        - `action` 'simple' | 'schedule' | 'hangup' | 'geo', required — Set the action
        - `destination` string, required — Enter the destination name for the key press
        - `message` string — Enter voiceprompt after key press selection (Example Welcome to Sales department)
        - `geoData` GeoData
          - `route_by` 'Claimed State' | 'Claimed Zip-code' | 'Caller Area Code Proximity' | 'Zip-code Proximity', required — Indicates the method used for the geo route
          - `proximity_limit` number, float — Defines the radius in miles
          - `location_id` integer, required — The unique identifier of the location
          - `target_did` integer, required — Enter the target number for the IVR to geo route
        - `scheduleRoute` ScheduleData
          - `timezone` 'Atlantic' | 'Eastern' | 'Central' | 'Mountain' | 'Arizona' | 'Pacific', required — set timezone for the schedule route
          - `default_ringto` integer — Enter the default_ringto number for the schedule route
          - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature for default rinto number.
          - `schedules` object[], required
            - `schedule_days` object[], required — Set the schedule days for the schedule route. Type: array of object.
              - …
            - `schedule_start_time` string, required — The time for the beginning of the schedule option. Type: string.
            - `schedule_end_time` string, required — The time for the end of the schedule option. Type: string.
            - `ring_to` integer, required — Phone number the call was ultimately forwarded to (the agent/business line). String of digits.
            - `overflowNumbers` OverflowNumbers[] — overflowNumbers. Type: array of object (overflowNumbers).
              - …
            - `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. Type: boolean.
            - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature for schdeule rinto number. Type: boolean.
        - `target_did` integer — Enter the target number for the IVR route
        - `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).
        - `record_enabled` boolean — Set the call recording to on/off
        - `play_disclaimer` 'before' | 'after' | 'never' — Set the disclaimer to be played or not played
        - `whisper_enabled` boolean — Indicates whether or not whisper messaging is enabled
        - `whisper_message` string — The message that should be played for the whisper or unique reference id
        - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature
        - `go_back_key` integer, required — Enter the key to be pressed by the caller to back to previous menu
      - `geoData` GeoData
        - `route_by` 'Claimed State' | 'Claimed Zip-code' | 'Caller Area Code Proximity' | 'Zip-code Proximity', required — Indicates the method used for the geo route
        - `proximity_limit` number, float — Defines the radius in miles
        - `location_id` integer, required — The unique identifier of the location
        - `target_did` integer, required — Enter the target number for the IVR to geo route
      - `scheduleRoute` ScheduleData
        - `timezone` 'Atlantic' | 'Eastern' | 'Central' | 'Mountain' | 'Arizona' | 'Pacific', required — set timezone for the schedule route
        - `default_ringto` integer — Enter the default_ringto number for the schedule route
        - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature for default rinto number.
        - `schedules` object[], required
          - `schedule_days` object[], required — Set the schedule days for the schedule route. Type: array of object.
            - `id` 'AllDays' | 'Mon-Fri' | 'Sat-Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat' | 'Sun', required
          - `schedule_start_time` string, required — The time for the beginning of the schedule option. Type: string.
          - `schedule_end_time` string, required — The time for the end of the schedule option. Type: string.
          - `ring_to` integer, required — Phone number the call was ultimately forwarded to (the agent/business line). String of digits.
          - `overflowNumbers` OverflowNumbers[] — overflowNumbers. Type: array of object (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).
          - `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. Type: boolean.
          - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature for schdeule rinto number. Type: boolean.
      - `target_did` integer — Enter the target number for the IVR route
      - `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).
      - `record_enabled` boolean — Set the call recording to on/off
      - `play_disclaimer` 'before' | 'after' | 'never' — Set the disclaimer to be played or not played
      - `whisper_enabled` boolean — Indicates whether or not whisper messaging is enabled
      - `whisper_message` string — The message that should be played for the whisper or unique reference id
      - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature
      - `go_back_key` integer, required — Enter the key to be pressed by the caller to back to previous menu
    - `geoData` GeoData
      - `route_by` 'Claimed State' | 'Claimed Zip-code' | 'Caller Area Code Proximity' | 'Zip-code Proximity', required — Indicates the method used for the geo route
      - `proximity_limit` number, float — Defines the radius in miles
      - `location_id` integer, required — The unique identifier of the location
      - `target_did` integer, required — Enter the target number for the IVR to geo route
    - `scheduleRoute` ScheduleData
      - `timezone` 'Atlantic' | 'Eastern' | 'Central' | 'Mountain' | 'Arizona' | 'Pacific', required — set timezone for the schedule route
      - `default_ringto` integer — Enter the default_ringto number for the schedule route
      - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature for default rinto number.
      - `schedules` object[], required
        - `schedule_days` object[], required — Set the schedule days for the schedule route. Type: array of object.
          - `id` 'AllDays' | 'Mon-Fri' | 'Sat-Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat' | 'Sun', required
        - `schedule_start_time` string, required — The time for the beginning of the schedule option. Type: string.
        - `schedule_end_time` string, required — The time for the end of the schedule option. Type: string.
        - `ring_to` integer, required — Phone number the call was ultimately forwarded to (the agent/business line). String of digits.
        - `overflowNumbers` OverflowNumbers[] — overflowNumbers. Type: array of object (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).
        - `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. Type: boolean.
        - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature for schdeule rinto number. Type: boolean.
    - `target_did` integer — Enter the target number for the IVR route
    - `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).
    - `record_enabled` boolean — Set the call recording to on/off
    - `play_disclaimer` 'before' | 'after' | 'never' — Set the disclaimer to be played or not played
    - `whisper_enabled` boolean — Indicates whether or not whisper messaging is enabled
    - `whisper_message` string — The message that should be played for the whisper or unique reference id
    - `voicemail_enabled` boolean — Indicates whether or not to use the voice mail feature

## Response `200`

Created call flow IDs with confirmation status for each IVR configuration

- 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/revisions/ccf9bbe34f5a/schema)
