Skip to content
OmniChannels.ai

Free tool

IVR Script Generator with Voice OTP

Write a complete phone menu in minutes: welcome, language choice, main menu, transfers, queue, invalid-key and after-hours prompts, a holiday message and a voice OTP script that reads the code digit by digit. Get the call-flow tree, every prompt in Arabic, English and four more languages with estimated duration, TTS-friendly text and SSML.

Free · no sign-up · runs in your browser

Sets a starting menu. Clinics get a medical emergency notice and banks a security notice.

Prompt languages

Up to three. With two or more, callers choose their language first. Arabic and English is the usual GCC pair.

Main menu options

Keys 1 to 8 follow this order. 0 reaches an agent and 9 repeats the menu.

  1. 1Appointments
  2. 2Billing and payments
  3. 3Opening hours and location
Working hours
After hours and on holidays
Voice OTP
Speaking pace

Script checks

No problems found.

Your IVR script

Call flow

How a call moves through the IVR. Durations are estimates in the default language.

  • Incoming call
    • Welcome≈ 3.5 s
      • Notices≈ 10.9 s
        • Language menu≈ 2.2 s
          • 1English
            • Check working hours
              • Open
                • Main menu≈ 18.9 s
                  • 1Appointments≈ 4.3 s
                    • Queue message≈ 9 s
                      • Agent answers
                  • 2Billing and payments≈ 4.3 s
                    • Queue message≈ 9 s
                      • Agent answers
                  • 3Opening hours and location≈ 7.7 s
                    • Main menu
                  • 0Agent≈ 4.7 s
                    • Queue message≈ 9 s
                      • Agent answers
                  • 9Repeat menu
                  • Invalid key (retry twice)≈ 3.4 s
                    • After the last retry≈ 3.5 s
                  • No key pressed (retry twice)≈ 3.4 s
                    • After the last retry≈ 3.5 s
              • Public holiday
                • Holiday message≈ 5 s
                  • Voicemail≈ 8.5 s
                    • Goodbye≈ 2.6 s
              • Closed
                • Closed message≈ 8.1 s
                  • Voicemail≈ 8.5 s
                    • Goodbye≈ 2.6 s
          • 2Arabic

A caller hears about 36 seconds of prompts before the menu ends (English).

Voice OTP call

  • Outbound OTP call
    • Read the code≈ 26.2 s
      • 1Hear the code again
      • End of call≈ 0.7 s

Prompts by node

TTS-friendly text: no symbols, times written out, OTP digits separated so they are read one by one.

  • Welcome

    English≈ 3.5 s · 8 words

    Thank you for calling Al Noor Medical Centre.

    Arabic≈ 3.1 s · 6 words

    شكرًا لاتصالك بـAl Noor Medical Centre.

  • Notices

    English≈ 10.9 s · 25 words

    This call may be recorded for quality and training purposes. If this is a medical emergency, please hang up and call your local emergency number.

    Arabic≈ 10.8 s · 21 words

    قد يتم تسجيل هذه المكالمة لأغراض الجودة والتدريب. إذا كانت لديك حالة طبية طارئة، يرجى إنهاء المكالمة والاتصال برقم الطوارئ المحلي.

  • Language menu

    English≈ 2.2 s · 4 words

    For English, press 1.

    Arabic≈ 2 s · 3 words

    للعربية، اضغط 2.

  • Main menu

    English≈ 18.9 s · 39 words

    Please listen carefully to the following options. For appointments, press 1. For billing and payments, press 2. For our opening hours and location, press 3. To speak to an agent, press 0. To hear these options again, press 9.

    Arabic≈ 17.9 s · 31 words

    يرجى الاستماع جيدًا إلى الخيارات التالية. للمواعيد، اضغط 1. للفواتير والمدفوعات، اضغط 2. لمعرفة مواعيد العمل والعنوان، اضغط 3. للتحدث مع أحد موظفينا، اضغط 0. لإعادة الاستماع إلى الخيارات، اضغط 9.

  • 1Option: Appointments

    English≈ 4.3 s · 10 words

    Please hold while we connect you to our booking team.

    Arabic≈ 3.9 s · 7 words

    يرجى الانتظار، جارٍ تحويلك إلى قسم المواعيد.

  • 2Option: Billing and payments

    English≈ 4.3 s · 10 words

    Please hold while we connect you to our billing team.

    Arabic≈ 3.9 s · 7 words

    يرجى الانتظار، جارٍ تحويلك إلى قسم الفواتير.

  • 3Option: Opening hours and location

    English≈ 7.7 s · 17 words

    We are open Sunday to Thursday, from 9 AM to 6 PM. Returning to the main menu.

    Arabic≈ 9.4 s · 18 words

    نستقبل اتصالاتكم من الأحد إلى الخميس، من 9 صباحًا حتى 6 مساءً. سنعود بك الآن إلى القائمة الرئيسية.

  • 0Agent transfer

    English≈ 4.7 s · 11 words

    Please hold while we connect you to the next available agent.

    Arabic≈ 4.4 s · 8 words

    يرجى الانتظار، جارٍ تحويلك إلى أول موظف متاح.

  • Queue message

    English≈ 9 s · 21 words

    All our agents are busy at the moment. Please stay on the line and your call will be answered in turn.

    Arabic≈ 7.5 s · 14 words

    جميع موظفينا مشغولون حاليًا. يرجى البقاء على الخط، وسيتم الرد على مكالمتك حسب الدور.

  • Invalid key

    English≈ 3.4 s · 7 words

    Sorry, that is not a valid choice.

    Arabic≈ 3 s · 5 words

    عذرًا، هذا الخيار غير صحيح.

  • No key pressed

    English≈ 3.4 s · 7 words

    Sorry, we did not receive your choice.

    Arabic≈ 2.5 s · 4 words

    عذرًا، لم نتلقَّ اختيارك.

  • Retry limit

    English≈ 3.5 s · 8 words

    We will now transfer you to an agent.

    Arabic≈ 2.7 s · 5 words

    سنحوّلك الآن إلى أحد موظفينا.

  • Closed

    English≈ 8.1 s · 18 words

    Our office is now closed. Our working hours are Sunday to Thursday, from 9 AM to 6 PM.

    Arabic≈ 8 s · 15 words

    مكاتبنا مغلقة الآن. ساعات عملنا من الأحد إلى الخميس، من 9 صباحًا حتى 6 مساءً.

  • Holiday

    English≈ 5 s · 11 words

    Eid Mubarak. Our offices are closed today for a public holiday.

    Arabic≈ 4.4 s · 8 words

    عيدكم مبارك. مكاتبنا مغلقة اليوم بمناسبة العطلة الرسمية.

  • After-hours action

    English≈ 8.5 s · 19 words

    Please leave your name, phone number and a short message after the tone, and we will call you back.

    Arabic≈ 6.7 s · 13 words

    يرجى ترك اسمك ورقم هاتفك ورسالة قصيرة بعد سماع الصافرة، وسنعاود الاتصال بك.

  • Goodbye

    English≈ 2.6 s · 5 words

    Thank you for calling. Goodbye.

    Arabic≈ 2.5 s · 4 words

    شكرًا لاتصالك. مع السلامة.

  • Voice OTP

    English≈ 26.2 s · 49 words

    Hello, this is Al Noor Medical Centre. Your verification code is: 4, 8, 2, 9, 1, 3. I repeat, your code is: 4, 8, 2, 9, 1, 3. This code expires in 5 minutes. Never share it with anyone, including our staff. To hear the code again, press 1.

    Arabic≈ 28.7 s · 47 words

    مرحبًا، معك Al Noor Medical Centre. رمز التحقق الخاص بك هو: 4، 8، 2، 9، 1، 3. أكرر، رمزك هو: 4، 8، 2، 9، 1، 3. تنتهي صلاحية هذا الرمز خلال 5 دقائق. لا تشاركه مع أي شخص، حتى مع موظفينا. لإعادة الاستماع إلى الرمز، اضغط 1.

  • OTP goodbye

    English≈ 0.7 s · 1 words

    Goodbye.

    Arabic≈ 1.2 s · 2 words

    مع السلامة.

SSML export

Optional. SSML 1.1 with pauses between OTP digits. One file per language; split it into prompts in your IVR or TTS tool.

<?xml version="1.0" encoding="UTF-8"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
  <!-- welcome -->
  <p><s>Thank you for calling Al Noor Medical Centre.</s></p>
  <!-- notice -->
  <p><s>This call may be recorded for quality and training purposes.</s><s>If this is a medical emergency, please hang up and call your local emergency number.</s></p>
  <!-- language -->
  <p><lang xml:lang="en-US">For English, press 1.</lang><break time="300ms"/><lang xml:lang="ar-SA">للعربية، اضغط 2.</lang></p>
  <!-- menu -->
  <p><s>Please listen carefully to the following options.</s><s>For appointments, press 1.</s><s>For billing and payments, press 2.</s><s>For our opening hours and location, press 3.</s><s>To speak to an agent, press 0.</s><s>To hear these options again, press 9.</s></p>
  <!-- opt-1 (key 1) -->
  <p><s>Please hold while we connect you to our booking team.</s></p>
  <!-- opt-2 (key 2) -->
  <p><s>Please hold while we connect you to our billing team.</s></p>
  <!-- opt-3 (key 3) -->
  <p><s>We are open Sunday to Thursday, from 9 AM to 6 PM.</s><s>Returning to the main menu.</s></p>
  <!-- operator (key 0) -->
  <p><s>Please hold while we connect you to the next available agent.</s></p>
  <!-- hold -->
  <p><s>All our agents are busy at the moment.</s><s>Please stay on the line and your call will be answered in turn.</s></p>
  <!-- invalid -->
  <p><s>Sorry, that is not a valid choice.</s></p>
  <!-- noInput -->
  <p><s>Sorry, we did not receive your choice.</s></p>
  <!-- retryLimit -->
  <p><s>We will now transfer you to an agent.</s></p>
  <!-- closed -->
  <p><s>Our office is now closed.</s><s>Our working hours are Sunday to Thursday, from 9 AM to 6 PM.</s></p>
  <!-- holiday -->
  <p><s>Eid Mubarak.</s><s>Our offices are closed today for a public holiday.</s></p>
  <!-- afterHours -->
  <p><s>Please leave your name, phone number and a short message after the tone, and we will call you back.</s></p>
  <!-- goodbye -->
  <p><s>Thank you for calling.</s><s>Goodbye.</s></p>
  <!-- otp -->
  <p><s>Hello, this is Al Noor Medical Centre.</s><s>Your verification code is:</s><s>4<break time="400ms"/>8<break time="400ms"/>2<break time="400ms"/>9<break time="400ms"/>1<break time="400ms"/>3</s><break time="600ms"/><s>I repeat, your code is:</s><s>4<break time="400ms"/>8<break time="400ms"/>2<break time="400ms"/>9<break time="400ms"/>1<break time="400ms"/>3</s><break time="600ms"/><s>This code expires in 5 minutes.</s><s>Never share it with anyone, including our staff.</s><s>To hear the code again, press 1.</s></p>
  <!-- otpEnd -->
  <p><s>Goodbye.</s></p>
</speak>

Durations are estimates from words per minute, not recordings.

Run this IVR on our voice platform

We host IVR menus, call queues and voice OTP in Arabic and English, with numbers in GCC markets and an API for developers. Voice pricing is on request: contact sales for a quote for your countries and volumes.

Pricing on request

Nothing you type here is sent to our servers.

Short answer

A good IVR script greets callers by the business name, offers a language choice when you serve more than one language, and keeps the main menu to about five options, for example "For appointments, press 1. For billing, press 2. To speak to an agent, press 0. To hear these options again, press 9." Add prompts for invalid keys, no input, the queue, after hours and holidays.

How to write an IVR script

  1. 1

    Set the basics

    Enter the business name and type, then pick up to three prompt languages and the default one.

  2. 2

    Build the main menu

    Choose and order the options: keys 1 to 8 follow your order, 0 reaches an agent and 9 repeats the menu.

  3. 3

    Add hours and holidays

    Set working days and hours, the after-hours action and an optional holiday greeting with a reopening date.

  4. 4

    Export and record

    Review the call flow and timings, then copy the prompts, download the script as Word or text, or export SSML for TTS.

What an IVR script includes

An IVR script is the set of recorded or synthesised prompts a caller hears and the keys that move them through the call. The generator writes one prompt per node of the call flow, so nothing is missing when you record or upload it.

The call-flow tree shows the same structure: the incoming call, notices, the language menu, the working-hours check, the main menu with each key, the transfers and queue message, the retries for invalid or missing input, and what happens after hours or on a public holiday.

  • Welcome with the business name, plus notices such as call recording.
  • Language menu when you serve callers in more than one language.
  • Main menu with options, an agent on 0 and a repeat key on 9.
  • Transfer, queue, invalid-key and no-input prompts.
  • Closed, holiday, voicemail or callback prompts, and a goodbye.

Bilingual Arabic and English IVR menus

Many business lines in the GCC greet callers in Arabic and English and let them choose a language first: "للعربية، اضغط 1. For English, press 2." The generator writes each line of the language menu in its own language and then the whole script in every language you select, so each caller hears one language from the menu onwards.

Arabic prompts are written in Modern Standard Arabic and handle small details that make menus sound natural, such as the للمبيعات form before options with the definite article, and Gulf working weeks from Sunday to Thursday or Saturday to Thursday.

Keep menus short and easy to follow

Callers remember only a few options at a time. Keep the main menu to about five options, put the most requested one first, always offer a way to reach a person, and let callers repeat the menu. The script checks warn you when the menu gets long or takes more than about 30 seconds to hear.

Durations are estimated from words per minute at the pace you choose, with an adjustment for languages whose words are longer on average, such as Arabic and German. They are a planning guide; the final timing depends on your voice or TTS engine.

Voice OTP script

Voice OTP calls the user and reads a one-time code when SMS is not received or the number can't receive texts. The script introduces the business, reads the code digit by digit with pauses, repeats it, states how long it is valid, warns the user never to share it and offers a key to hear it again.

Six-digit codes read at least twice are a common choice. In SSML, the generator places a short break between digits, so TTS engines read 4, 8, 2 rather than four hundred and eighty-two.

TTS-friendly text and SSML export

The plain prompts are written for text-to-speech: no symbols or emoji, ampersands spelled out, times written as people say them and digits separated where they must be read one by one. Paste them into your IVR builder or send them to a voice artist.

For engines that accept SSML, export one SSML 1.1 file per language, with each prompt as a paragraph, an optional speaking rate and lang tags for the mixed-language menu. Check your provider's documentation for the elements it supports. Before you launch, check local rules on announcing call recording.

IVR scripts: common questions

What is an example of an IVR greeting script?

"Thank you for calling Al Noor Medical Centre. This call may be recorded for quality and training purposes. For appointments, press 1. For billing and payments, press 2. To speak to an agent, press 0. To hear these options again, press 9."

How many options should an IVR menu have?

About five at most on the main menu. Put the most common request first, offer an agent on 0 and a repeat key, and move rare requests into a sub-menu so callers don't have to wait.

How do I write an Arabic IVR script?

Use short Modern Standard Arabic sentences, start with the language choice when you also serve English speakers, and phrase options as "للمواعيد، اضغط 1". The generator writes the full Arabic script alongside the English one.

What should the after-hours message say?

That the office is closed, your working days and hours, and what the caller can do now: leave a voicemail, request a callback or call again during working hours.

What is a voice OTP script?

The message read in an automated call that delivers a one-time code. It names the business, reads the code digit by digit, repeats it, says when it expires and warns the user not to share it.

How long will my prompts take?

The generator estimates each prompt from words per minute at a slow, normal or fast pace. The real duration depends on the voice, so check the recordings before you go live.

Do I need SSML?

No. Plain text works with most IVR tools and voice artists. SSML is useful when you use text-to-speech and want control over pauses, speaking rate and the language of each line.

How much does it cost to run an IVR or voice OTP with OmniChannels.ai?

Voice pricing is on request, because it depends on the countries, numbers and volumes you need. Contact sales for a quote.

More free tools