Skip to main content

Overview

Learn how to create voicemail and IVR (Interactive Voice Response) scenarios in Cekura using conditional actions. These powerful features allow you to build voicemail receivers and menu-driven phone systems that respond to DTMF tones.

Voicemail

What is Voicemail?

Voicemail systems allow callers to leave messages when the recipient is unavailable. With Cekura, you can create intelligent voicemail receivers that guide callers through the message recording process using conditional action-based test cases.

How It Works

  1. The voicemail system greets the caller with a personalized message
  2. Prompts the caller to record their message
  3. Waits for a DTMF signal (e.g., pressing 0) to mark the end of the message
  4. Ends the call after message completion, signifying the recording was saved

Creating a Voicemail Scenario

Follow these steps to set up a voicemail system in Cekura:

Step 1: Open Create Evaluator Form

Navigate to the evaluator creation form and click on “Create Evaluator” to begin setting up your voicemail scenario. Select Conditional Actions as the evaluator type. Conditional actions are conditional action-based test cases that allow you to define specific behaviors based on caller interactions. Select Conditional Actions Type

Step 2: Configure Voicemail Conditions

In the conditions configuration: First Message (Optional): You can add the greeting here only which is shown in next line or You can leave this field empty if you want your agent to speak first. Condition 1 - Voicemail Greeting: When the main agent starts the conversation, add a voicemail greeting using the <voicemail> XML tag with the following syntax:
<voicemail text="Hello, [Name] is not available right now. Please record your message after this message and please press [digit] button after you have finished speaking the message to mark the end of message." />
Important: When using XML tags like <voicemail>, make sure to set the fixed_message field to true in your condition configuration. Condition 2 - End Call on DTMF: When the main agent sends a DTMF tone of the digit you mentioned (e.g., 0), end the call using the <endcall /> tag. This simulates that the recording was saved successfully. Remember to set fixed_message to true for this condition as well. Following is an example of how to do the same. Step 2: Configure Voicemail Conditions

Step 3: Assign a Twilio/Telnyx Number

In the final step of evaluator creation, you need to assign a phone number that supports DTMF tone reception. Currently, DTMF reception is supported for Twilio and Telnyx numbers only. Select one of the following:
  • Use one of these pre-configured numbers:
    • +14482202817
    • +18148592081
  • Or use your own imported Twilio/Telnyx number
Step 3: Assign Twilio/Telnyx Number
Note: DTMF tone reception is currently supported for Twilio and Telnyx numbers only. Support for additional providers will be extended soon. Make sure to select a Twilio/Telnyx number for your voicemail system to work correctly.

Complete Voicemail Configuration Example

Here’s a complete JSON configuration example for a personal voicemail system:
{
  "conditions": [
    {
      "id": 1,
      "condition": "The main agent starts the conversation and says \"Hello\".",
      "action": "<voicemail text=\"Hello, Adarsh is not available right now please record your message after this message and please press 0 button after you have finished speaking the message to mark the end of message.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 2,
      "condition": "Main Agent sent DTMF: 0",
      "action": "<endcall />",
      "type": "standard",
      "fixed_message": true
    }
  ],
  "role": "You are a bot acting as a voicemail receiver."
}
Key Configuration Points:
  • conditions: Array of condition-action pairs that define the voicemail flow
  • role: Defines the agent’s behavior as a voicemail receiver
  • fixed_message: Set to true when using XML tags (<voicemail>, <endcall />)
  • action: Contains either XML tags for structured responses or natural language instructions

Key Voicemail Features

  • Personalized Greetings: Custom messages for different recipients
  • Message Recording: Capture caller messages automatically
  • Completion Signals: Use DTMF tones to indicate message completion
  • Automatic Call Termination: End call after message is recorded
  • Conditional Actions: Define specific behaviors based on caller interactions

Voicemail Best Practices

  • Start with a clear greeting identifying the recipient
  • Provide explicit instructions for leaving a message
  • Specify how to end the message (e.g., “Press 0 when finished”)
  • Keep the greeting brief and professional
  • Always use a Twilio or Telnyx number for DTMF support
  • Consider adding options for urgent messages or alternative contacts
  • Test with different phone carriers to ensure compatibility

Voicemail Use Cases

  • Personal voicemail boxes
  • After-hours message collection
  • Event registration confirmations
  • Customer callback requests
  • Survey response collection
  • Automated appointment reminders with response capture

IVR (Interactive Voice Response)

What is IVR?

IVR systems provide menu-based navigation for phone calls, allowing callers to interact using keypad inputs (DTMF tones). With Cekura, you can create complex IVR flows using conditional scenarios and XML tags.

How It Works

  1. The IVR system waits for DTMF tones from the caller
  2. Based on the received tone and current menu context, the system responds with the appropriate action
  3. Actions can include playing menu prompts or transitioning to natural conversation

Creating an IVR Scenario

Follow these steps to set up an IVR system in Cekura:

Step 1: Create Evaluator with Conditional Actions

Navigate to the evaluator creation form and select Conditional Actions as the evaluator type, similar to the voicemail setup.

Step 2: Configure IVR Menu Structure

Define your IVR menu flow using conditions and actions:
  • FIRST_MESSAGE: Set up the initial greeting and menu options
  • DTMF-based conditions: Create conditions for each menu option based on DTMF tones
  • Actions: Use <ivr> XML tags for menu prompts or transition to natural conversation
Important: When using XML tags like <ivr> in your actions, always set the fixed_message field to true. Only set fixed_message to false when you want the agent to respond naturally without using XML tags.

Step 3: Assign a Twilio/Telnyx Number

Just like voicemail, IVR systems require DTMF reception capabilities. You need to assign a phone number that supports DTMF tone detection. Select one of the following:
  • Use one of these pre-configured numbers:
    • +14482202817
    • +18148592081
  • Or use your own imported Twilio/Telnyx number
Important: IVR functionality relies on DTMF tone reception, which is currently supported for Twilio and Telnyx numbers only. Support for additional providers will be extended soon. Make sure to select a Twilio/Telnyx number for your IVR system to work correctly.

IVR Configuration Structure

IVR scenarios are configured using a JSON structure with conditions and actions:
FieldTypeRequiredDescription
conditionsarrayYesArray of condition objects defining the IVR flow
rolestringYesSystem role defining the agent’s behavior

Condition Object Structure

FieldTypeRequiredDescription
idnumberYesUnique identifier for the condition
conditionstringYesDescription of when this condition applies (e.g., “FIRST_MESSAGE”, specific DTMF tones)
actionstringYesAction to take (XML tag for IVR prompt or natural response instruction)
typestringYesType of condition (typically “standard”)
fixed_messagebooleanYesWhether the message is fixed. Must be true when using XML tags like <ivr>. Set to false only for natural conversation responses.

IVR XML Tags

Use the <ivr> XML tag to define menu prompts. Remember to set fixed_message: true when using this tag:
<ivr text="Your menu text here. Press 1 for Option A, Press 2 for Option B." />

Example: Hospital IVR System

{
  "conditions": [
    {
      "id": 0,
      "condition": "FIRST_MESSAGE",
      "action": "<ivr text=\"Hi, Welcome to Madam Hospitals. Press 1 for Hospital Information, Press 2 for Doctor Information, or Press 9 for Emergency Services.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 1,
      "condition": "The main agent send DTMF tone of 1, after testing agent intro message, i.e, \"Hi, Welcome to Madam Hospitals. Press 1 for Hospital Information, Press 2 for Doctor Information, or Press 9 for Emergency Services.\"",
      "action": "<ivr text=\"Madam Hospital operates 24 by 7 with modern facilities. Press 1 for Visiting Hours, Press 2 for Departments, or Press 3 to Talk to Support.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 2,
      "condition": "The main agent send DTMF tone of 2, after testing agent intro message, i.e, \"Hi, Welcome to Madam Hospitals. Press 1 for Hospital Information, Press 2 for Doctor Information, or Press 9 for Emergency Services.\"",
      "action": "<ivr text=\"Our hospital has highly experienced doctors. Press 1 for Doctor Timings, Press 2 for Specialties, or Press 3 to Talk to Support.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 3,
      "condition": "The main agent send DTMF tone of 9, after testing agent intro message, i.e, \"Hi, Welcome to Madam Hospitals. Press 1 for Hospital Information, Press 2 for Doctor Information, or Press 9 for Emergency Services.\"",
      "action": "<ivr text=\"You have reached Emergency Services. Press 1 to connect to Emergency Desk immediately or Press 2 to return to the main menu.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 4,
      "condition": "The main agent send DTMF tone of 1, after testing agent message, i.e, \"Madam Hospital operates 24 by 7 with modern facilities. Press 1 for Visiting Hours, Press 2 for Departments, or Press 3 to Talk to Support.\"",
      "action": "<ivr text=\"Visiting hours are from 10 AM to 8 PM daily. Press 1 to repeat, or Press 9 to return to the main menu.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 5,
      "condition": "The main agent send DTMF tone of 2, after testing agent message, i.e, \"Madam Hospital operates 24 by 7 with modern facilities. Press 1 for Visiting Hours, Press 2 for Departments, or Press 3 to Talk to Support.\"",
      "action": "<ivr text=\"We have Cardiology, Neurology, Orthopedics, and Pediatrics departments. Press 1 for Cardiology, Press 2 for Neurology, or Press 3 to Talk to Support.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 6,
      "condition": "The main agent send DTMF tone of 3, after testing agent message, i.e, \"Madam Hospital operates 24 by 7 with modern facilities. Press 1 for Visiting Hours, Press 2 for Departments, or Press 3 to Talk to Support.\"",
      "action": "Respond naturally now acting as an hospital ai assistant.",
      "type": "standard",
      "fixed_message": false
    },
    {
      "id": 7,
      "condition": "The main agent send DTMF tone of 1, after testing agent message, i.e, \"Our hospital has highly experienced doctors. Press 1 for Doctor Timings, Press 2 for Specialties, or Press 3 to Talk to Support.\"",
      "action": "<ivr text=\"Doctors are available from 9 AM to 6 PM Monday to Saturday. Press 1 to repeat, or Press 9 to return to the main menu.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 8,
      "condition": "The main agent send DTMF tone of 2, after testing agent message, i.e, \"Our hospital has highly experienced doctors. Press 1 for Doctor Timings, Press 2 for Specialties, or Press 3 to Talk to Support.\"",
      "action": "<ivr text=\"Our specialties include Heart Care, Brain Care, Joint Replacement, and Child Care. Press 1 to talk to Support or Press 9 to return to the main menu.\" />",
      "type": "standard",
      "fixed_message": true
    },
    {
      "id": 9,
      "condition": "The main agent send DTMF tone of 3, after testing agent message, i.e, \"Our hospital has highly experienced doctors. Press 1 for Doctor Timings, Press 2 for Specialties, or Press 3 to Talk to Support.\"",
      "action": "Respond naturally now acting as an hospital ai assistant.",
      "type": "standard",
      "fixed_message": false
    },
    {
      "id": 10,
      "condition": "The main agent send DTMF tone of 1, after testing agent message, i.e, \"You have reached Emergency Services. Press 1 to connect to Emergency Desk immediately or Press 2 to return to the main menu.\"",
      "action": "Respond naturally now acting as an hospital ai assistant.",
      "type": "standard",
      "fixed_message": false
    },
    {
      "id": 11,
      "condition": "The main agent send DTMF tone of 2, after testing agent message, i.e, \"You have reached Emergency Services. Press 1 to connect to Emergency Desk immediately or Press 2 to return to the main menu.\"",
      "action": "<ivr text=\"Hi, Welcome to Madam Hospitals. Press 1 for Hospital Information, Press 2 for Doctor Information, or Press 9 for Emergency Services.\" />",
      "type": "standard",
      "fixed_message": true
    }
  ],
  "role": "You are an hospital IVR system. You strictly wait for DTMF tones and follow menu-based navigation. You do not engage in free-form conversation unless explicitly instructed."
}

Key IVR Features

  • Menu-Based Navigation: Guide callers through structured menus
  • DTMF Detection: Respond to keypad inputs (0-9, *, #)
  • Context-Aware Routing: Different actions based on previous menu selections
  • Hybrid Mode: Mix IVR menus with natural conversation (set fixed_message: false)

IVR Best Practices

  • Keep menu options concise (3-4 options per menu level)
  • Provide clear instructions for navigation
  • Always include an option to return to the main menu
  • Offer an escape to natural conversation when needed
  • Use consistent DTMF patterns (e.g., 9 for main menu, 0 for operator)
  • Always use a Twilio or Telnyx number for DTMF support
  • Test menu flows thoroughly before deployment

IVR Use Cases

  • Customer support routing
  • Hospital/healthcare information systems
  • Appointment scheduling
  • Order status inquiries
  • Department directory navigation
  • Multi-level menu systems for large organizations

Next Steps

After configuring your voicemail or IVR scenario:
  1. Test thoroughly with different DTMF sequences
  2. Monitor call transcripts for user behavior patterns
  3. Refine menu structures and prompts based on usage data
  4. Ensure proper error handling for invalid inputs
  5. Update prompts for clarity and efficiency