├── samples ├── Menu │ ├── Audio │ │ ├── Timeout.wav │ │ ├── Welcome.wav │ │ └── InvalidInput.wav │ ├── Menu.cfdproj │ └── Main.flow ├── PlayDigits │ ├── Audio │ │ ├── 0.wav │ │ ├── 1.wav │ │ ├── 2.wav │ │ ├── 3.wav │ │ ├── 4.wav │ │ ├── 5.wav │ │ ├── 6.wav │ │ ├── 7.wav │ │ ├── 8.wav │ │ ├── 9.wav │ │ ├── beep.wav │ │ ├── Timeout.wav │ │ ├── InitialPrompt.wav │ │ ├── InvalidInput.wav │ │ └── SubsequentPrompt.wav │ ├── PlayDigits.cfdproj │ ├── README.md │ ├── PlayDigits.comp │ └── Main.flow ├── Survey │ ├── Audio │ │ ├── timeout.wav │ │ ├── welcome.wav │ │ ├── good_bye.wav │ │ ├── question_1.wav │ │ ├── question_2.wav │ │ ├── question_3.wav │ │ ├── invalid_input.wav │ │ ├── question_3_pre_recording.wav │ │ └── question_3_post_recording.wav │ ├── README.md │ └── Survey.cfdproj ├── LoopMenu │ ├── Audio │ │ ├── timeout.wav │ │ ├── invalid_option.wav │ │ ├── main_menu_message.wav │ │ ├── sub_menu_message.wav │ │ ├── main_menu_initial_prompt.wav │ │ ├── sub_menu_initial_prompt.wav │ │ ├── main_menu_subsequent_prompt.wav │ │ └── sub_menu_subsequent_prompt.wav │ ├── README.md │ └── LoopMenu.cfdproj ├── CreditCard │ ├── Audio │ │ ├── timeout.wav │ │ ├── invalid_digit.wav │ │ ├── validation_error.wav │ │ ├── enter_credit_card_number.wav │ │ ├── enter_credit_card_expiration.wav │ │ └── enter_credit_card_security_code.wav │ ├── CreditCard.cfdproj │ └── README.md ├── OutboundDialer │ ├── Audio │ │ └── beep.wav │ ├── NumbersToCall.txt │ ├── Libraries │ │ ├── CallIndexHolder.cs │ │ └── CheckExtensionsState.cs │ ├── OutboundDialer.cfdproj │ └── MainDialer.dialer ├── TextToSpeech │ ├── Audio │ │ └── beep.wav │ ├── TextToSpeech.cfdproj │ └── Main.flow ├── UserInput │ ├── Audio │ │ ├── Timeout.wav │ │ ├── InitialPrompt.wav │ │ ├── InvalidInput.wav │ │ └── SubsequentPrompt.wav │ ├── UserInput.cfdproj │ └── Main.flow ├── Authentication │ ├── Audio │ │ ├── Valid.wav │ │ ├── timeout.wav │ │ ├── invalid_digit.wav │ │ ├── validation_error.wav │ │ ├── enter_customer_id.wav │ │ └── enter_customer_pin.wav │ ├── Authentication.cfdproj │ └── README.md ├── PredictiveDialer │ ├── Audio │ │ └── beep.wav │ ├── PredictiveDialer.cfdproj │ └── MainDialer.dialer ├── TimeBasedRouting │ ├── Audio │ │ └── beep.wav │ ├── README.md │ ├── TimeBasedRouting.cfdproj │ └── Main.flow ├── DatabaseAccess │ ├── Audio │ │ ├── Success.wav │ │ ├── Timeout.wav │ │ ├── pcm1608m.wav │ │ ├── InvalidPIN.wav │ │ ├── InitialPrompt.wav │ │ ├── InvalidInput.wav │ │ ├── SubsequentPrompt.wav │ │ ├── ValidationError.wav │ │ └── file_example_WAV_1MG.wav │ ├── README.md │ ├── DatabaseAccess.cfdproj │ └── Main.flow ├── PhoneSupportPortal │ ├── Audio │ │ ├── beep.wav │ │ ├── timeout.wav │ │ ├── welcome.wav │ │ ├── invalid_digit.wav │ │ ├── enter_customer_id.wav │ │ ├── main_menu_options.wav │ │ ├── transfer_to_sales.wav │ │ ├── enter_customer_pin.wav │ │ └── transfer_to_help_desk.wav │ ├── Libraries │ │ └── TextFileValidator.cs │ ├── PhoneSupportPortal.cfdproj │ ├── ValidateDataWebService.comp │ ├── ValidateDataDB.comp │ ├── ValidateDataCsvFile.comp │ ├── ValidateDataXmlFile.comp │ └── Main.flow ├── EmailSender │ ├── Audio │ │ └── RecordYourMessage.wav │ ├── README.md │ ├── EmailSender.cfdproj │ └── Main.flow ├── CRMLookup │ ├── README.md │ └── CRMLookup.cfdproj ├── Callback │ ├── README.md │ ├── Callback.cfdproj │ ├── StoreCallback.comp │ └── CallbackDialer.dialer ├── DateTimeRouting │ ├── DateTimeRouting.cfdproj │ ├── README.md │ └── Main.flow └── OrderByPhone │ ├── README.md │ ├── CreateDatabase.sql │ └── source │ ├── OrderByPhone.cfdproj │ ├── ContactLookup.comp │ ├── ItemChangeQuantity.comp │ └── ItemAddNotification.comp ├── tutorials ├── 1. Creating a Call Flow │ ├── Audio │ │ ├── CFDintro.wav │ │ ├── CFDtimeout.wav │ │ ├── CFDinvalidinput.wav │ │ ├── CFDtransfersales.wav │ │ ├── CFDtransfersupport.wav │ │ └── CFDtransferoperator.wav │ ├── Output │ │ └── Release │ │ │ └── CFD1.zip │ ├── CFD1.cfdproj │ └── Main.flow ├── 2. Modifying a Call Flow │ ├── Audio │ │ ├── CFDintro.wav │ │ ├── CFDtimeout.wav │ │ ├── CFDinvalidinput.wav │ │ ├── CFDtransfersales.wav │ │ ├── CFDtransferoperator.wav │ │ └── CFDtransfersupport.wav │ ├── Output │ │ └── Release │ │ │ └── CFD_2.zip │ └── CFD 2.cfdproj ├── 3. Expanding an Existing Project │ ├── Audio │ │ ├── CFDintro.wav │ │ ├── CFDtimeout.wav │ │ ├── CFDinvalidinput.wav │ │ ├── CFDtransfersales.wav │ │ ├── CFDtransferoperator.wav │ │ └── CFDtransfersupport.wav │ ├── Output │ │ └── Release │ │ │ └── CFD_3.zip │ ├── CFD 3.cfdproj │ ├── Main.flow │ └── Sales_Option.comp ├── 4. Adding more Intelligence to your Call Flow │ ├── Audio │ │ ├── CFDintro.wav │ │ ├── CFDtimeout.wav │ │ ├── CFDinvalidinput.wav │ │ ├── CFDtransfersales.wav │ │ ├── CFDtransfersupport.wav │ │ └── CFDtransferoperator.wav │ ├── CFD4 │ │ ├── Audio │ │ │ ├── CFDintro.wav │ │ │ ├── CFDtimeout.wav │ │ │ ├── CFDinvalidinput.wav │ │ │ ├── CFDtransfersales.wav │ │ │ ├── CFDtransfersupport.wav │ │ │ └── CFDtransferoperator.wav │ │ ├── CFD4.cfdproj.xml │ │ ├── Main.flow │ │ └── Sales_Option.comp │ ├── Output │ │ └── Release │ │ │ └── CFD4.zip │ ├── CFD4.cfdproj │ ├── Main.flow │ └── Sales_Option.comp ├── 5. Verifying users’ input by refining the validation and digit playback │ ├── Audio │ │ ├── CFDintro.wav │ │ ├── CFDtimeout.wav │ │ ├── CFDinvalidinput.wav │ │ ├── CFDtransfersales.wav │ │ ├── CFDtransferoperator.wav │ │ └── CFDtransfersupport.wav │ ├── Output │ │ └── Release │ │ │ └── CFD5.zip │ ├── CFD5.cfdproj │ ├── Read_Digits.comp │ ├── Main.flow │ └── Sales_Option.comp └── README.md └── README.md /samples/Menu/Audio/Timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Menu/Audio/Timeout.wav -------------------------------------------------------------------------------- /samples/Menu/Audio/Welcome.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Menu/Audio/Welcome.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/0.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/0.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/1.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/2.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/3.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/4.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/5.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/5.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/6.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/6.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/7.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/7.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/8.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/9.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/9.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/timeout.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/welcome.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/welcome.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/timeout.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/beep.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/good_bye.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/good_bye.wav -------------------------------------------------------------------------------- /samples/CreditCard/Audio/timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/timeout.wav -------------------------------------------------------------------------------- /samples/Menu/Audio/InvalidInput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Menu/Audio/InvalidInput.wav -------------------------------------------------------------------------------- /samples/OutboundDialer/Audio/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/OutboundDialer/Audio/beep.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/Timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/Timeout.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/question_1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_1.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/question_2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_2.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/question_3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_3.wav -------------------------------------------------------------------------------- /samples/TextToSpeech/Audio/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/TextToSpeech/Audio/beep.wav -------------------------------------------------------------------------------- /samples/UserInput/Audio/Timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/Timeout.wav -------------------------------------------------------------------------------- /samples/Authentication/Audio/Valid.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/Valid.wav -------------------------------------------------------------------------------- /samples/PredictiveDialer/Audio/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PredictiveDialer/Audio/beep.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/invalid_input.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/invalid_input.wav -------------------------------------------------------------------------------- /samples/TimeBasedRouting/Audio/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/TimeBasedRouting/Audio/beep.wav -------------------------------------------------------------------------------- /samples/Authentication/Audio/timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/timeout.wav -------------------------------------------------------------------------------- /samples/CreditCard/Audio/invalid_digit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/invalid_digit.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/Success.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/Success.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/Timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/Timeout.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/pcm1608m.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/pcm1608m.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/invalid_option.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/invalid_option.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/beep.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/beep.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/InitialPrompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/InitialPrompt.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/InvalidInput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/InvalidInput.wav -------------------------------------------------------------------------------- /samples/UserInput/Audio/InitialPrompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/InitialPrompt.wav -------------------------------------------------------------------------------- /samples/UserInput/Audio/InvalidInput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/InvalidInput.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/InvalidPIN.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/InvalidPIN.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/main_menu_message.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/main_menu_message.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/sub_menu_message.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/sub_menu_message.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/timeout.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/welcome.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/welcome.wav -------------------------------------------------------------------------------- /samples/UserInput/Audio/SubsequentPrompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/SubsequentPrompt.wav -------------------------------------------------------------------------------- /samples/Authentication/Audio/invalid_digit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/invalid_digit.wav -------------------------------------------------------------------------------- /samples/CreditCard/Audio/validation_error.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/validation_error.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/InitialPrompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/InitialPrompt.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/InvalidInput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/InvalidInput.wav -------------------------------------------------------------------------------- /samples/EmailSender/Audio/RecordYourMessage.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/EmailSender/Audio/RecordYourMessage.wav -------------------------------------------------------------------------------- /samples/PlayDigits/Audio/SubsequentPrompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/SubsequentPrompt.wav -------------------------------------------------------------------------------- /samples/Authentication/Audio/validation_error.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/validation_error.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/SubsequentPrompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/SubsequentPrompt.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/ValidationError.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/ValidationError.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/question_3_pre_recording.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_3_pre_recording.wav -------------------------------------------------------------------------------- /samples/Authentication/Audio/enter_customer_id.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/enter_customer_id.wav -------------------------------------------------------------------------------- /samples/Authentication/Audio/enter_customer_pin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/enter_customer_pin.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/main_menu_initial_prompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/main_menu_initial_prompt.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/sub_menu_initial_prompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/sub_menu_initial_prompt.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/invalid_digit.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/invalid_digit.wav -------------------------------------------------------------------------------- /samples/Survey/Audio/question_3_post_recording.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_3_post_recording.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Audio/CFDintro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDintro.wav -------------------------------------------------------------------------------- /samples/CreditCard/Audio/enter_credit_card_number.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/enter_credit_card_number.wav -------------------------------------------------------------------------------- /samples/DatabaseAccess/Audio/file_example_WAV_1MG.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/file_example_WAV_1MG.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/main_menu_subsequent_prompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/main_menu_subsequent_prompt.wav -------------------------------------------------------------------------------- /samples/LoopMenu/Audio/sub_menu_subsequent_prompt.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/sub_menu_subsequent_prompt.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/enter_customer_id.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/enter_customer_id.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/main_menu_options.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/main_menu_options.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/transfer_to_sales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/transfer_to_sales.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Audio/CFDtimeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtimeout.wav -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Audio/CFDintro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDintro.wav -------------------------------------------------------------------------------- /samples/CreditCard/Audio/enter_credit_card_expiration.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/enter_credit_card_expiration.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/enter_customer_pin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/enter_customer_pin.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Output/Release/CFD1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Output/Release/CFD1.zip -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Audio/CFDtimeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtimeout.wav -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Audio/transfer_to_help_desk.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/transfer_to_help_desk.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Audio/CFDinvalidinput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDinvalidinput.wav -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Output/Release/CFD_2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Output/Release/CFD_2.zip -------------------------------------------------------------------------------- /samples/CreditCard/Audio/enter_credit_card_security_code.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/enter_credit_card_security_code.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Audio/CFDtransfersales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtransfersales.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Audio/CFDtransfersupport.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtransfersupport.wav -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Audio/CFDinvalidinput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDinvalidinput.wav -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Audio/CFDtransfersales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtransfersales.wav -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Audio/CFDintro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDintro.wav -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Audio/CFDtransferoperator.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtransferoperator.wav -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Audio/CFDtransferoperator.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtransferoperator.wav -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/Audio/CFDtransfersupport.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtransfersupport.wav -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Audio/CFDtimeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtimeout.wav -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Output/Release/CFD_3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Output/Release/CFD_3.zip -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Audio/CFDinvalidinput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDinvalidinput.wav -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Audio/CFDtransfersales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtransfersales.wav -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Audio/CFDtransferoperator.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtransferoperator.wav -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Audio/CFDtransfersupport.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtransfersupport.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDintro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDintro.wav -------------------------------------------------------------------------------- /samples/OutboundDialer/NumbersToCall.txt: -------------------------------------------------------------------------------- 1 | 1234567890 2 | 1234567891 3 | 1234567892 4 | 1234567893 5 | 1234567894 6 | 1234567895 7 | 1234567896 8 | 1234567897 9 | 1234567898 10 | 1234567899 11 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtimeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtimeout.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDintro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDintro.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Output/Release/CFD4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Output/Release/CFD4.zip -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDinvalidinput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDinvalidinput.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersales.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtimeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtimeout.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersupport.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersupport.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransferoperator.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransferoperator.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDinvalidinput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDinvalidinput.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersales.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersupport.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersupport.wav -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransferoperator.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransferoperator.wav -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDintro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDintro.wav -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtimeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtimeout.wav -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDinvalidinput.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDinvalidinput.wav -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Output/Release/CFD5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Output/Release/CFD5.zip -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersales.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersales.wav -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransferoperator.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransferoperator.wav -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersupport.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersupport.wav -------------------------------------------------------------------------------- /samples/EmailSender/README.md: -------------------------------------------------------------------------------- 1 | # Sending Emails from a Call Flow 2 | ## Summary 3 | Use the **“Email Sender”** component to send an email message from a Call Flow created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). 4 | 5 | [Read more](https://www.3cx.com/docs/cfd-emails-voice-app/) 6 | -------------------------------------------------------------------------------- /samples/LoopMenu/README.md: -------------------------------------------------------------------------------- 1 | # Using the Loop Component to Navigate Upwards 2 | ## Summary 3 | Use the **“Loop”** component to repeat the options in a menu, or navigate to an upper level menu from a Call Flow created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). 4 | 5 | [Read more](https://www.3cx.com/docs/cfd-navigate-upwards/) 6 | -------------------------------------------------------------------------------- /samples/OutboundDialer/Libraries/CallIndexHolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class CallIndexHolder 4 | { 5 | private static int callIndex = 0; 6 | 7 | public int GetCallIndex() 8 | { 9 | return callIndex; 10 | } 11 | 12 | public void SetCallIndex(int index) 13 | { 14 | callIndex = index; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /samples/CRMLookup/README.md: -------------------------------------------------------------------------------- 1 | # Using the CRM Lookup component to query the contact details from the supported CRMs 2 | ## Summary 3 | This guide describes how to use the “CRM Lookup” component to query the contact details from the configured CRM, using a Call Flow created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). 4 | 5 | In addition, the linked guide contains a reference for Response Mappings with all the supported CRMs. 6 | 7 | [Read more](https://www.3cx.com/docs/cfd-crm-lookup/) 8 | -------------------------------------------------------------------------------- /samples/OutboundDialer/Libraries/CheckExtensionsState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using TCX.Configuration; 3 | 4 | public class ExtensionStateHelper 5 | { 6 | public bool IsThereAnyFreeExtension() 7 | { 8 | return PhoneSystem.Root.GetDNByNumber("201").GetActiveConnections().Length == 0 || 9 | PhoneSystem.Root.GetDNByNumber("202").GetActiveConnections().Length == 0 || 10 | PhoneSystem.Root.GetDNByNumber("203").GetActiveConnections().Length == 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/DatabaseAccess/README.md: -------------------------------------------------------------------------------- 1 | # Accessing a Database from a Call Flow 2 | ## Summary 3 | This guide describes how to use the **“Database Access”** component to query MS SQL Server, PostgreSQL and MySQL databases from a Call Flow with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). 4 | 5 | This application asks for a PIN from the user, validate the data entered against the database, and transfer the call to a specific extension only when the PIN is valid. 6 | 7 | [Read more](https://www.3cx.com/docs/cfd-accessing-database/) 8 | -------------------------------------------------------------------------------- /samples/Callback/README.md: -------------------------------------------------------------------------------- 1 | # Registering and making callbacks 2 | ## Summary 3 | In this guide we will show how to combine a callflow and a dialer in the same [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) project, to create an application that registers and makes callbacks. We will use speech recognition to ask for the date and time of the callback, text-to-speech to play back the recognized text, and we will show how to pass this information from the callflow to the dialer. 4 | 5 | [Read more](https://www.3cx.com/docs/cfd-callback/) 6 | -------------------------------------------------------------------------------- /samples/Survey/README.md: -------------------------------------------------------------------------------- 1 | # Using the Survey component 2 | ## Summary 3 | The Survey component lets a CFD app ask questions to the caller, and automatically store the user’s feedback to a CSV file. However, storing the information in a CSV file in the 3CX server is not always the best approach, and we need to send the information somewhere else, for example a database or a web service. In this demo we will show how to create an application with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) to accomplish this. 4 | 5 | [Read more](https://www.3cx.com/docs/cfd-survey-component/) 6 | -------------------------------------------------------------------------------- /samples/TimeBasedRouting/README.md: -------------------------------------------------------------------------------- 1 | # Routing Calls Based on the Time of Day 2 | ## Summary 3 | This sample project use the **“Create a Condition”** component to route calls to different extensions depending on the time of day, from a voice app created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). Date and time routing can be done in an easier way, without C# expressions, as explained in this guide. However, the concepts explained here can be useful to route inbound calls depending on the result of different expressions. 4 | 5 | [Read more](https://www.3cx.com/docs/cfd-time-based-routing/) 6 | -------------------------------------------------------------------------------- /samples/Menu/Menu.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | True 11 | True 12 | 12 13 | 14 14 | True 15 | -------------------------------------------------------------------------------- /samples/CreditCard/CreditCard.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 6 14 | True 15 | -------------------------------------------------------------------------------- /samples/UserInput/UserInput.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 4 13 | 8 14 | True 15 | -------------------------------------------------------------------------------- /samples/EmailSender/EmailSender.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 3 14 | True 15 | -------------------------------------------------------------------------------- /samples/Authentication/Authentication.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 3 14 | True 15 | -------------------------------------------------------------------------------- /samples/PlayDigits/PlayDigits.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | False 12 | True 13 | 0 14 | 3 15 | True 16 | -------------------------------------------------------------------------------- /samples/TextToSpeech/TextToSpeech.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 2 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /samples/DatabaseAccess/DatabaseAccess.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 4 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/CFD1.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 6 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /samples/DateTimeRouting/DateTimeRouting.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 1 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /samples/TimeBasedRouting/TimeBasedRouting.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 3 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /tutorials/2. Modifying a Call Flow/CFD 2.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 6 14 | True 15 | AmazonPollyClientIDHere 16 | AmazonPollyClientSecretHere 17 | us-east-2 18 | -------------------------------------------------------------------------------- /samples/CreditCard/README.md: -------------------------------------------------------------------------------- 1 | # Using the Credit Card Component 2 | ## Summary 3 | Asking for credit card numbers is a very common task in call centers. This includes the number, the expiration date and the security code, and of course it’s a must that the call is not being recorded while the user enters this information. The Credit Card component available with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) comes to solve this, automatically handling retries in case of any problem validating the credit card information. 4 | 5 | This guide describes how to use the new **“Credit Card”** component to ask for the number, the expiration date and the security code, and perform the validation using a web service. We take this opportunity to also show how to use the **“Web Service REST”** component for the validation. 6 | 7 | [Read more](https://www.3cx.com/docs/cfd-credit-card-validation/) 8 | -------------------------------------------------------------------------------- /samples/Authentication/README.md: -------------------------------------------------------------------------------- 1 | # Using the Authentication Component to Validate Customers 2 | ## Summary 3 | Many times we need to authenticate callers, asking for an ID and PIN, and then validating them against different data sources. Usually we also need to iterate this procedure, and ask for the ID and PIN again in case of validation failure, until the validation succeeds or we reach a number of retry attempts. We have simplified this procedure to perform all these tasks in a single component. Now the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) includes the Authentication component for this! 4 | 5 | This guide describes how to use the new **“Authentication”** component to ask for an ID and PIN, and perform the validation using a web service. It also includes info on how to use the **“Web Service REST”** component for the validation. 6 | 7 | [Read more](https://www.3cx.com/docs/cfd-validate-customers/) 8 | -------------------------------------------------------------------------------- /samples/OutboundDialer/OutboundDialer.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 10 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /samples/PredictiveDialer/PredictiveDialer.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 3 14 | True 15 | 16 | 17 | 18 | 19 | us-east-2 20 | -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/CFD 3.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | False 13 | True 14 | 0 15 | 9 16 | True 17 | AmazonPollyClientIDHere 18 | AmazonPollyClientSecretHere 19 | us-east-2 20 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | False 13 | True 14 | 0 15 | 12 16 | True 17 | AmazonPollyClientIDHere 18 | AmazonPollyClientSecretHere 19 | us-east-2 20 | -------------------------------------------------------------------------------- /samples/OrderByPhone/README.md: -------------------------------------------------------------------------------- 1 | # Setting up Phone Ordering 2 | ## Summary 3 | Combine [CFD components](https://www.3cx.com/docs/manual/cfd-components/) to enable easy implementation of a telephone ordering system that can be integrated with a [3CX API](https://www.3cx.com/docs/crm-integration/) compatible [CRM](https://www.3cx.com/crm-integration/), a [database server](https://www.3cx.com/docs/manual/cfd-components/#h.44lwg0nrv5st) and [Text to Speech](https://www.3cx.com/docs/cfd-text-to-speech-audio-prompt/). 4 | 5 | [Read more](https://www.3cx.com/docs/cfd-order-by-phone-demo/) 6 | 7 | ## Video Guide 8 | [![Setting up Phone Ordering](http://i3.ytimg.com/vi/nAed47UoIh0/maxresdefault.jpg)](https://www.youtube.com/watch?v=nAed47UoIh0) 9 | 10 | ## Additional resources 11 | * [Installing & Updating 3CX Call Flow Designer](https://www.3cx.com/docs/manual/cfd-installation/#h.kql7rxbqfopm) 12 | * [How does it work?](https://www.3cx.com/docs/manual/cfd-installation/#h.kf48zybcuj57) 13 | * [Terminology](https://www.3cx.com/docs/manual/cfd-installation/#h.1qq7k8c0b7ca) -------------------------------------------------------------------------------- /samples/PlayDigits/README.md: -------------------------------------------------------------------------------- 1 | # How to Play a Digit Sequence from a Call Flow 2 | ## Summary 3 | This sample project reads a sequence of numbers that have been pressed by the caller. Many times we face the need to read out a sequence of numbers. For example, we need to request a number using DTMF and ask the user to confirm whether the number that has been entered is valid, by reading the number back to them. We use this example to illustrate how to create an application using the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) to do this: 4 | 5 | 3CX CFD: **“Please, enter your customer code”**. 6 | The user enters *1234* using the keypad. 7 | 3CX CFD: **“The customer code entered is 1234”**. 8 | Since the reproduction of digits may be something that is required in different parts of the application, that functionality should be encapsulated in a custom component. The CFD can create custom components that can then be reused in different parts of the application. 9 | 10 | [Read more](https://www.3cx.com/docs/cfd-digit-sequence/) 11 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/CFD4.cfdproj.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | False 13 | True 14 | 0 15 | 7 16 | True 17 | AKIA6AAZ7JLSPIQEZE4I 18 | Cjw7aKETeiODPGQ2aiunNN3nJjJVQW+AhQW43VRS 19 | us-east-2 20 | -------------------------------------------------------------------------------- /samples/DateTimeRouting/README.md: -------------------------------------------------------------------------------- 1 | # Time-based Routing Without Programming 2 | ## Summary 3 | Routing calls depending on the date and time is a very common task, so we made it simpler than ever to do. Using the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/), is now possible to do this without creating a C# function, without any programming experience. 4 | 5 | This guide describes how to use the new **“Date & Time condition”** component to route calls to different extensions depending on the time of the day, from a Call Flow app created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). We apply this routing scheme: 6 | 7 | * During out of office hours (including holidays): calls are routed to the **“business closed”** queue. 8 | * During in-office hours, on Monday, Wednesday and Friday from 9 to 12 and from 14 to 17: calls are routed to the **“promotions”** queue. 9 | * During in-office hours, the rest of the days and times: calls are routed to the **“standard”** queue. 10 | 11 | [Read more](https://www.3cx.com/docs/cfd-time-based-routing/) 12 | -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/CFD5.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | False 14 | True 15 | 0 16 | 21 17 | True 18 | AKIA6AAZ7JLSPIQEZE4I 19 | Cjw7aKETeiODPGQ2aiunNN3nJjJVQW+AhQW43VRS 20 | us-east-2 21 | -------------------------------------------------------------------------------- /samples/LoopMenu/LoopMenu.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 3 14 | True 15 | False 16 | 17 | 18 | None 19 | None 20 | 21 | 22 | 23 | 24 | us-east-2 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /samples/Survey/Survey.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | True 12 | 0 13 | 1 14 | True 15 | False 16 | 17 | 18 | None 19 | None 20 | 21 | 22 | 23 | 24 | us-east-2 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /samples/CRMLookup/CRMLookup.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | False 11 | False 12 | 0 13 | 1 14 | True 15 | False 16 | 17 | 18 | None 19 | None 20 | 21 | 22 | 23 | 24 | us-east-2 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Libraries/TextFileValidator.cs: -------------------------------------------------------------------------------- 1 | using System.Xml; 2 | 3 | public class Validator 4 | { 5 | public bool ValidateXML(string fileContent, string id, string pin) 6 | { 7 | XmlDocument xmlDocument = new XmlDocument(); 8 | xmlDocument.LoadXml(fileContent); 9 | 10 | XmlNodeList customerElementList = xmlDocument.GetElementsByTagName("customer"); 11 | foreach (XmlNode xmlNode in customerElementList) 12 | { 13 | string customerID = xmlNode.Attributes["id"].Value; 14 | string customerPIN = xmlNode.Attributes["pin"].Value; 15 | 16 | if (id == customerID && pin == customerPIN) 17 | return true; 18 | } 19 | 20 | return false; 21 | } 22 | 23 | public bool ValidateCSV(string fileContent, string id, string pin) 24 | { 25 | foreach (string line in fileContent.Split('\n')) 26 | { 27 | string[] lineParts = line.Trim().Split(','); 28 | if (lineParts.Length == 2) 29 | { 30 | string customerID = lineParts[0]; 31 | string customerPIN = lineParts[1]; 32 | 33 | if (id == customerID && pin == customerPIN) 34 | return true; 35 | } 36 | } 37 | 38 | return false; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /tutorials/README.md: -------------------------------------------------------------------------------- 1 | # Call Flow Designer - Video Tutorials 2 | The 3CX Call Flow Designer (CFD) is a powerful tool that allows you to automate how incoming calls are handled and eliminate repetitive tasks. Just like everything else 3CX, it’s easy to use! Create complex call flows and voice applications visually with drag and drop – no advanced programming skills required. 3 | 4 | We’ve prepared a series of 5 videos to show you just how easy the CFD really is. Check them out and let us know your thoughts and feedback! 5 | 6 | ## Tutorials 7 | * [Creating your First Call Flow and Deploying it to 3CX](https://www.youtube.com/watch?v=wBRFPCBQjLE&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=2&t=0s) 8 | * [Modifying Existing Call Flows – Out of office hours and emailing messages](https://www.youtube.com/watch?v=snToJw3pIbA&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=2) 9 | * [Expanding an Existing Project to use Components](https://www.youtube.com/watch?v=6RlA97XrvlY&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=3) 10 | * [Adding more Intelligence to your Call Flow – authenticating IDs against a database](https://www.youtube.com/watch?v=pxmQb2Pp9j0&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=4) 11 | * [Verifying users’ input by refining the validation and digit playback](https://www.youtube.com/watch?v=3O3E2PRhCTQ&feature=youtu.be) 12 | 13 | > Head on over to the [CFD documentation pages](https://www.3cx.com/docs/manual/call-flow-designer-manual/) to see what else this powerful tool has to offer. -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/PhoneSupportPortal.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | SalesTeamExtension 16 | "100" 17 | false 18 | true 19 | 20 | 21 | HelpDeskExtension 22 | "101" 23 | false 24 | true 25 | 26 | 27 | 28 | False 29 | True 30 | 0 31 | 14 32 | True 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Call Flow Designer sample applications 2 | The 3CX Call Flow Designer (CFD) allows you to easily create call flows and voice applications visually – without requiring any programming or scripting knowledge. You can, for example, query a caller for a customer number, validate this number against a database and route the call based on customer type. This repository contains sample applications that demonstrate different usage scenarios. 3 | > Get [3CX for free](https://www.3cx.com/phone-system/download-phone-system/?src=github) for unlimited users, in your Google, Amazon or Azure cloud account or on-premise on Windows or Linux. 4 | The 3CX Call Flow Designer requires a 3CX PRO licence. 5 | 6 | ## Additional resources 7 | * [Installing & Updating 3CX Call Flow Designer](https://www.3cx.com/docs/manual/cfd-installation/#h.kql7rxbqfopm) 8 | * [How does it work?](https://www.3cx.com/docs/manual/cfd-installation/#h.kf48zybcuj57) 9 | * [Terminology](https://www.3cx.com/docs/manual/cfd-installation/#h.1qq7k8c0b7ca) 10 | * [Migrating V15.5 Call Flow Projects to V16](https://www.3cx.com/docs/manual/cfd-troubleshooting/#h.lsc0dfwmd9eg) 11 | 12 | [![Migrating V15.5 Call Flow Projects to V16](http://img.youtube.com/vi/sWmIJ_pxdYo/0.jpg)](https://www.youtube.com/watch?v=sWmIJ_pxdYo) 13 | 14 | ## Using the samples 15 | To start using these projects, you'll need to clone the projects. 16 | 17 | Clone this repository by executing the following command in your console: 18 | 19 | ``` 20 | git clone https://github.com/3cx/cfd-demos.git 21 | ``` 22 | 23 | Navigate to the cloned repository folder which should be the same as the repository name: 24 | 25 | ``` 26 | cd cfd-demos 27 | ``` 28 | 29 | Choose a sample project and open it with 3CX Call Flow Designer 30 | 31 | -------------------------------------------------------------------------------- /samples/OrderByPhone/CreateDatabase.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE `orderbyphone` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */; 2 | 3 | USE orderbyphone; 4 | 5 | CREATE TABLE `customers` ( 6 | `id` varchar(100) NOT NULL, 7 | `pin` varchar(100) NOT NULL, 8 | PRIMARY KEY (`id`,`pin`) 9 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; 10 | 11 | CREATE TABLE `items` ( 12 | `id` int(11) NOT NULL, 13 | `name` varchar(100) NOT NULL, 14 | `stock` int(11) NOT NULL DEFAULT '0', 15 | `price` decimal(10,2) NOT NULL DEFAULT '0.00', 16 | PRIMARY KEY (`id`), 17 | UNIQUE KEY `iditems_UNIQUE` (`id`) 18 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; 19 | 20 | CREATE TABLE `notifications` ( 21 | `contactid` varchar(100) NOT NULL, 22 | `itemid` int(11) NOT NULL, 23 | PRIMARY KEY (`contactid`,`itemid`), 24 | KEY `itemidfk_idx` (`itemid`), 25 | CONSTRAINT `itemidfk` FOREIGN KEY (`itemid`) REFERENCES `items` (`id`) 26 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; 27 | 28 | CREATE TABLE `orders` ( 29 | `id` int(11) NOT NULL AUTO_INCREMENT, 30 | `customerid` varchar(100) NOT NULL, 31 | `status` varchar(45) NOT NULL, 32 | PRIMARY KEY (`id`), 33 | UNIQUE KEY `id_UNIQUE` (`id`), 34 | KEY `customerid_fk_idx` (`customerid`), 35 | CONSTRAINT `customerid_fk` FOREIGN KEY (`customerid`) REFERENCES `customers` (`id`) 36 | ) ENGINE=InnoDB AUTO_INCREMENT=100013 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; 37 | 38 | CREATE TABLE `orderdetails` ( 39 | `orderid` int(11) NOT NULL, 40 | `index` int(11) NOT NULL, 41 | `itemid` int(11) NOT NULL, 42 | `quantity` int(11) NOT NULL, 43 | PRIMARY KEY (`orderid`,`index`), 44 | KEY `itemid_fk_idx` (`itemid`), 45 | CONSTRAINT `itemid_fk` FOREIGN KEY (`itemid`) REFERENCES `items` (`id`), 46 | CONSTRAINT `orderid_fk` FOREIGN KEY (`orderid`) REFERENCES `orders` (`id`) 47 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; 48 | -------------------------------------------------------------------------------- /samples/Callback/Callback.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | GlobalPropertyName 15 | "CFD_SCHEDULED_CALLBACKS" 16 | ReadOnly 17 | false 18 | true 19 | 20 | 21 | 22 | 23 | False 24 | False 25 | 0 26 | 5 27 | True 28 | True 29 | 852 30 | GoogleCloud 31 | GoogleCloud 32 | 33 | 34 | 35 | 36 | us-east-2 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /samples/TextToSpeech/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | AccountBalance 8 | 100 9 | false 10 | true 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/ValidateDataWebService.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | CustomerID 8 | true 9 | true 10 | 11 | 12 | CustomerPIN 13 | true 14 | true 15 | 16 | 17 | ValidationResult 18 | true 19 | true 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /samples/PlayDigits/PlayDigits.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | Digits 8 | true 9 | true 10 | 11 | 12 | Index 13 | 0 14 | Private 15 | true 16 | true 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /samples/OrderByPhone/source/OrderByPhone.cfdproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | OperatorExtension 19 | 100 20 | false 21 | true 22 | 23 | 24 | DatabaseServer 25 | "ENTER_DATABASE_SERVER" 26 | false 27 | true 28 | 29 | 30 | DatabasePort 31 | 3306 32 | false 33 | true 34 | 35 | 36 | DatabaseName 37 | "ENTER_DATABASE_NAME" 38 | false 39 | true 40 | 41 | 42 | DatabaseUsername 43 | "ENTER_USER_NAME" 44 | false 45 | true 46 | 47 | 48 | DatabasePassword 49 | "ENTER_PASSWORD" 50 | false 51 | true 52 | 53 | 54 | 55 | False 56 | True 57 | 0 58 | 27 59 | True 60 | 61 | 62 | ENTER_CLIENT_ID 63 | ENTER_CLIENT_SECRET 64 | us-east-2 65 | -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/ValidateDataDB.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | CustomerID 8 | true 9 | true 10 | 11 | 12 | CustomerPIN 13 | true 14 | true 15 | 16 | 17 | ValidationResult 18 | true 19 | true 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/ValidateDataCsvFile.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | CustomerID 8 | true 9 | true 10 | 11 | 12 | CustomerPIN 13 | true 14 | true 15 | 16 | 17 | ValidationResult 18 | true 19 | true 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/ValidateDataXmlFile.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | CustomerID 8 | true 9 | true 10 | 11 | 12 | CustomerPIN 13 | true 14 | true 15 | 16 | 17 | ValidationResult 18 | true 19 | true 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /samples/EmailSender/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /samples/PredictiveDialer/MainDialer.dialer: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Read_Digits.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | Index 8 | 0 9 | Private 10 | true 11 | true 12 | 13 | 14 | Length 15 | Private 16 | true 17 | true 18 | 19 | 20 | Digits 21 | true 22 | true 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /samples/UserInput/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /samples/TimeBasedRouting/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /samples/Menu/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /samples/Callback/StoreCallback.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | In_SelectedDateTime 8 | true 9 | true 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /samples/PlayDigits/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /samples/Callback/CallbackDialer.dialer: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /samples/PhoneSupportPortal/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /samples/OrderByPhone/source/ContactLookup.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | ContactFound 8 | false 9 | true 10 | true 11 | 12 | 13 | ContactID 14 | "" 15 | true 16 | true 17 | 18 | 19 | ContactName 20 | "" 21 | true 22 | true 23 | 24 | 25 | ContactEmail 26 | "" 27 | true 28 | true 29 | 30 | 31 | FirstName 32 | Private 33 | true 34 | true 35 | 36 | 37 | LastName 38 | Private 39 | true 40 | true 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /samples/OutboundDialer/MainDialer.dialer: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /samples/DateTimeRouting/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | BusinessClosedQueue 8 | 800 9 | ReadOnly 10 | false 11 | true 12 | 13 | 14 | PromotionsQueue 15 | 801 16 | ReadOnly 17 | false 18 | true 19 | 20 | 21 | StandardQueue 22 | 802 23 | ReadOnly 24 | false 25 | true 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /tutorials/1. Creating a Call Flow/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Sales_Option.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tutorials/3. Expanding an Existing Project/Sales_Option.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tutorials/4. Adding more Intelligence to your Call Flow/Sales_Option.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tutorials/5. Verifying users’ input by refining the validation and digit playback/Sales_Option.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /samples/DatabaseAccess/Main.flow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /samples/OrderByPhone/source/ItemChangeQuantity.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | MaxQuantity 8 | true 9 | true 10 | 11 | 12 | SelectedQuantity 13 | 1 14 | true 15 | true 16 | 17 | 18 | HasToAskQuantity 19 | true 20 | Private 21 | true 22 | true 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /samples/OrderByPhone/source/ItemAddNotification.comp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.1 4 | 5 | 6 | 7 | ItemID 8 | true 9 | true 10 | 11 | 12 | ContactID 13 | true 14 | true 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | --------------------------------------------------------------------------------