Parameters

Extract a part of the caller's input
Parameters help your agent to extract and utilize specific information from the user’s input.
In order to collect a user's information (i.e Pizza size), you need to define a parameter that will know to extract the specific information from the user's input and store it under this parameter.
Parameters are can be in many nodes, e.g. in the Collect Input node, the Classification node, as well as the Conditions node, as well as Set Parameter.
Custom parameters are created by the user based on the flow, e.g. ORDER_NO parameter to collect and store an order number.
User Parameters are user specific information that is going to be saved under the user data storage parameters.

Create a parameter

  1. 1.
    In the left navigation, click on Properties -> Parameters.
  2. 2.
    A new drawer will open up on the right side of the screen,
  3. 3.
    Add a parameter by clicking on the first row of the parameter table.
  4. 4.
    Name the parameter- Use capital letters and “_” in between the words (i.e. CALLER_NAME).
  5. 5.
    Select the relevant @entity type.
  6. 6.
    If you are looking for the caller to fill the value, leave the value empty.
  7. 7.
    To save the parameter click anywhere in the drawer.
You can use the parameters you created throughout the conversation in multiple places.
You can also create a new parameter on the spot in each node (e.g. Collect Input, Classification & Condition) by pressing the Parameter drop-down and then clicking ‘Create Parameter’.

Using Parameter Values during the conversation

The agent can read out a value that has been collected in the intent or throughout the conversation. You can add the name of the parameter preceded by a dollar sign ($PARAM_NAME) to the response.
For example, “Thank you for your order. Your keyboard will arrive soon” suggests that the agent collected the type of product in the intent and completed the process by reading it out. In the response, you may write “Thank you for your order. Your $PRODUCT_TYPE will arrive soon".

System Parameters

These parameters are saved right from the start of the call throughout the entire conversation. Feel free to use them in the conversation, e.g. when you want to send a text message to the user with the call start date/ time.

For voice-based agents

CALLER_PHONE_NUMBER - Phone number of the caller
CALL_START_DATE - date of the call
CALL_START_TIME - time when the agent picked up the call
CALL_DIRECTION - will hold either "Inbound" or "outbound" in the value depending on whether this is going to be an inbound or outbound agent. Useful when you want to restrict an agent only to be reached if it's an outbound or inbound call.
AGENT_PHONE_NUMBER - Virtual phone number of the agent.
SESSION_ID - Sequence of numbers and letters to identify the specific call.
CONVERSATION_ID - Contains the Conversation ID/UUID sent from Vonage API.
AGENT_ID - Contains the Agent ID.
VAPI_CALL_ID - This parameter contains the Call ID from Voice API in the dashboard. This allows you to match calls between the Studio log and Voice API dashboard log.

For text-based agents

SENDER_PHONE_NUMBER - Phone number of the user.
CONVERSATION_START_TIME - time of the interaction.
CONVERSATION_START_DATE - date of the interaction.
AGENT_PHONE_NUMBER - Virtual phone number of the agent.
SESSION_ID - Sequence of numbers and letters to identify the specific call.
INITIAL_MESSAGE - The content of the first message to initialise the conversation.
AGENT_ID - Contains the Agent ID.

Multi-value Parameters

Enabling multi-value parameters allows the agent to catch more than one value.
E.g., a user is ordering a pizza and wants to add more than one topping. If the multi-value logic is enabled, the agent will be able to pick up all chosen toppings.

How does it work

  1. 1.
    When creating a new parameter, make sure to click on the three little dots on the right of the parameter and enable "multi-value". To check whether a parameter has this logic enabled, check the icon next to the parameter name. In the example above, we are using a manually created entity called "toppings" with the values we are then collecting in the example (pineapple, cheese, etc)
  2. 2.
    Add the parameter like you would do any other parameter to the Collect Input node.
  3. 3.
    If you want the agent to read the captured values back to the user, simply add $ and a drop-down will show you the list of your agent's parameters. When you're selecting the multi-value parameter you can choose whether you'd like the agent to separate the values with "and" or "or".