Conversations is a native Yodel functionality that can be used to automate incoming phone calls. You will need to build your own “conversation” and train the Yodel bot with this guide. You can activate conversations in your number settings.



There are three sections you need to define. To better explain each section, you will see an example with our mood bot. You can call the mood bot and it will ask you how you are doing today. If you are happy, Yodel will thank you and end the call. If you are unhappy, Yodel will tell you a joke. If you are still unhappy after hearing the joke, Yodel will forward you to an employee. If you feel better after hearing the joke, Yodel will thank you and end the call.
Every one of the three sections firstly describes the overall configurations, followed by a screenshot of the mood bot example.



1. Main Settings



The main settings include everything that actually happens during a phone call. Meaning:



  • what the caller is saying (intent)
  • what Yodel does (action) either by replying to the caller (text) or by changing the phone call e.g. the call gets hung up, forwarded to voicemail or rings (command)
  • and how to define what Yodel actually does when answering or moving the call (templates)


Main Settings — Conversations



IMPORTANT

The main settings are written in Yaml.



Intent


Intent is defined as anything to explain why a person is calling. The intent looks like this:


intents:

  - intent_example
  - intent_example_2



Intent could be that someone calls to ask about their latest billing (intent_billing), to schedule an appointment (intent_schedule_appointment), to check the latest order (intent_order), or to buy one of your products (intent_sales). The options are endless and you can give each intent an own unique expression.



Action text & action command


The action is anything that Yodel can do.


The action looks like this:


actions:
  - action_welcome
  - action_fallback
  - action_goodbye
  - action_example

The "action_welcome" states that Yodel greets the caller. The "action_fallback" is added so if Yodel doesn't understand the caller, it can ask to repeat what they said. There can be as many different actions as you need for Yodel to execute. The templates define what Yodel does specifically in case of e.g. action_welcome, etc.



Templates


The templates define each possible action from Yodel. This can either be something that Yodel says to e.g. greet the caller (text_welcome) or that Yodel executes (command_hang_up_call). You can define anything, and as much as you need for the text options.
Yodel can execute the following commands:


  • hang up the call (command_hangup)
  • forward the call to the voicemail (command_fallback)
  • ring (command_ring)


The text and command options can be combined so Yodel firstly says something like "I can confirm that your order was submitted successfully. Thank you for calling today" and then e.g. hangs up the call (text_confirmation, command_hangup). You can also define multiple different options for the same situation (text_hello, text_hi).


The templates could look like this:



Yodel has different options for one action:

templates:

  action_welcome:
  - text: "Welcome and thank you for calling. How can I help you today?"
  - text: "Hello! How can I help you?"

  - text: "Hi ...


  action_fallback:

  - text: "I am sorry but I didn't understand you."

  - text: "Can you please repeat what you've said?"

  - text: "May I ...


Yodel says something and then ends the call (goodbye):

  action_goodbye:
  - text: "I'm happy that I was able to help. Have a good day and goodbye"
    command: "hangup"



2. NLU


NLU stands for Natural Language Processing and includes any possible synonym for the caller’s intent.


If callers often ask about their billing, you can create an intent_billing and define synonyms that also add this option.


##intent:intent_billing

  - statement
  - billing
  - subscription
  - renewal
  - billing statement


Or, if customers usually call to confirm an appointment, add to the main settings the intent: intent_confirm_appointment and define the possible synonyms:


##intent:intent_confirm_appointment

  - I want to confirm my appointment
  - Please tell me if today's appointment is still on


Natural Language Understanding — Conversations





3. Dialog


Finally, the dialog connects the intent (what the person is saying) with the action (how Yodel should react). Since you already defined both, the intent and the action, you only need to match them to each other.


Dialog — Conversations



IMPORTANT

The main settings are written in Yaml and the NLU/Dialog sections are in the markdown format.