Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
...
- Get an API key for Vonage AI API. Ask Vonage to store this key in a custom configuration value for your account. For information about getting an API key for Vonage AI API, see Vonage AI Studio authentication.
- Create a virtual agent and configure the agent's conversation. Save the agent's ID and virtual number to use later. For information about creating a virtual agent, see Create a new Vonage AI Studio agent.
- Make a note of response parameters that your virtual agent can return. For information about response parameters, see Vonage AI Studio parameters.
The following visualization shows an interaction plan that routes interactions to a virtual agent, and collects data about the interaction:
...
Store the session_id
and session_start_time
from the response in SessionId and SessionStartTime data sources respectively. Subsequent applets require these values.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<ApiInteraction> <Request> <Url>https://stairway.ai.vonage.com/flow/init</Url> <Method>POST</Method> <Headers> <Header> <Key>X-Vgai-Key</Key> <Value>#(api_key)</Value> </Header> </Headers> <Body><![CDATA[ { "agent_id": "65d9634bf3a2412eb16e7adf" } ]]></Body> </Request> <Response> <Type>JSON</Type> <ResponseCodeDestination>CreateSessionResponseCode</ResponseCodeDestination> <Fields> <Field> <Locator>session_id</Locator> <Destination>SessionId</Destination> <DataType>string</DataType> </Field> <Field> <Locator>session_start_time</Locator> <Destination>SessionStartTime</Destination> <DataType>string</DataType> </Field> </Fields> </Response> </ApiInteraction> |
...
Use the next Data Connector applet (Extract specific virtual agent data) to get values from required parameters in params_list.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<ApiInteraction> <Request> <Url>https://stairway.ai.vonage.com/insights/sessions/$(session id)?session_start_time=$(session start time)</Url> <Method>GET</Method> <Headers> <Header> <Key>X-Vgai-Key</Key> <Value>#(api_key)</Value> </Header> </Headers> </Request> <Response> <Type>JSON</Type> <ResponseCodeDestination>Session</ResponseCodeDestination> <Fields> <Field> <Locator>params_list</Locator> <Destination>params_list</Destination> <DataType>string</DataType> </Field> </Fields> </Response> </ApiInteraction> |
...
<Field>
<Locator>result.PizzaType</Locator>
<Destination>PizzaTypeValue</Destination>
<DataType>String</DataType>
</Field>
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<ApiInteraction> <Request> <Url>$(JavascriptEngineUrl)</Url> <Method>POST</Method> <Body><![CDATA[{"script": "function findValueWithName(p, name){ for(var i=0;i<p.length;++i){if(p[i].name==name){return p[i].value;}}return '';} var params_list=$(params_list:EscapeDoubleQuotes); result={'Drink':findValueWithName(params_list,'Drink'), 'PizzaType':findValueWithName(params_list,'PizzaType'), 'PizzaSize':findValueWithName(params_list,'PizzaSize')};"}]]></Body> <Headers> <Header> <Key>Content-Type</Key> <Value>application/json</Value> </Header> </Headers> </Request> <Response> <Type>JSON</Type> <ResponseCodeDestination>ResponseCode</ResponseCodeDestination> <Fields> <Field> <Locator>result.Drink</Locator> <Destination>DrinkValue</Destination> <DataType>String</DataType> </Field> <Field> <Locator>result.PizzaType</Locator> <Destination>PizzaTypeValue</Destination> <DataType>String</DataType> </Field> <Field> <Locator>result.PizzaSize</Locator> <Destination>PizzaSizeValue</Destination> <DataType>String</DataType> </Field> </Fields> </Response> </ApiInteraction> |
...