Congratulations! You now have your AI Agent built! Now, let's customize your agent with all of the many features we offer! Here is where you will learn how. You can click on the tabs and it will take you through the steps.
Rules to follow while editing the Spreadsheet
Once you open a spreadsheet, you see there are different tabs at the bottom. So, don’t change the tab names. Also, when you open each tab, we have some default header rows. Don’t change those, as they are fixed.
Questions
We can add all the questions we plan to ask on this tab. It consists of four columns: text, variable, type, and condition.
“text” In this column, we add actual questions
1 | Text(required) | variable | type | conditions |
---|
“variable” The column is used if you want to accept input from the user for that question and store it. As for the variable name:
- It should be in lowercase letters without spaces. If it consists of multiple words, you can separate them with underscores
- To use that variable value in the question, include “@variable_name” or use {{variable_name}} in the question field.
“type” Type is divided into two types:
- Data Accepting
- Data Showing Data Accepting types: If you want to validate user input then these types are used. The default type is text. Different data accepting types- text, email, number, file, etc. If you want to add some regex validation then put the variable name in the type column and add regex for the same name in the “validations” tab.
Type | Syntax | Usages |
---|---|---|
Text | text | This is default type. It will accept any type of string |
This type expect "[email protected]" basic email format | ||
Number | number | This type expect any digit number |
File | file | This type is used to upload file |
Regex | variablename | If you want to add regex to some question, you need to put variable in type and need to add regex in validations tab for same variable |
URL | url | If you want to accept valid url from user, then this type is used |
Date | date | To accept a date, use this date type |
Letter | letter | This type is used to accept only lower and upper case alphabetic characters |
Phone | phone | To validate phone number |
Alphanumeric | alphanumeric | To accept only alphabets and numbers |
Birthday | birthday | This will accept valid birthday formats, including: 01-01-1950 01/01/1950 01.01.1950 Jan 1 1950 |
Fullname | fullname | This type will accept fullname from user Eg: Firstname Lastname |
Newtab | newtab | This type is used to open links in a new tab. If we have a list of questions and want to open the text of a specific question in new tab, this type is applied |
Data showing types- This type is used to expect questions in that specific format -
Type | Syntax |
---|---|
list | #listname |
sublist | #listname.listvariablename |
yesno | yesno |
appointment | appointment |
confirmation | confirmation |
service | #service |
prepaid-service | #prepaid-service |
Note: If you want to add payment, use “#prepaid-service" type list. Otherwise, for normal services, use “#service”.
“Conditions” This column is used for displaying questions based on conditions added in this column.
Syntax: variable_name equality_operator value
Eg. yesno_res = yes
If we have more than one condition, separate it with conditional operators like &, ||
Syntax: Variable_name equality_operator value conditional_operator Variable_name equality_operator value Eg. yesno_res = yes && car = audi
Note: If there is no variable name for the message, we combine it with the messages of the next variable. When referring to the previous variable in conditions, you don't need to include the variable name or the operator; simply use the value.
If I have a previous question, the variable is “yesno_res.” We write it as: “yesno_res = yes.”
This can also be written as only “yes”, and it will consider “yesno_res = yes” only. But, it will be applicable for only the immediate next question. It is better to put the full condition like “yesno_res = yes”.
Quick jump: Quick jump is used when user type matching word that putted in word then AI Agent will automatically jump to that question. You can add multiple words in same question separated by “|” pipe. Here is the example of that
1 | Hi, @name, what your "email|mail|contact"? | ||
---|---|---|---|
Add Proper voice pronunciation for particular word: For adding pronunciation use word followed by rounded bracket inside that put your pronunciation string. For eg. F-150("f one fifty") for “F-150” will add pronunciation like this way.
1 | Text(required) | variable | type | conditions |
---|---|---|---|---|
2 | Hi, Welcome to Ford. We are super excited about the new F-150("f one fifty") Lightning! |
Fastlist: This is another way of displaying a list in AI Agent. If you don't want any other thing like sublist,icon,..other list features then you can use these lists.
**Syntax: #word1 #word2**
If you have more than one word in your list use these
**Syntax: #"first word" #"second word"
Example Usage:**
1 | Text(required) | variable | type | conditions |
---|---|---|---|---|
2 | How can I assist you? #"Ask Question" #"Get Quote" #"Book Demo" #"Support" | what_to_do |
Jump (Switching control form one question other based on matching word)
Syntax | Description |
---|---|
displayWord|word1|word2|word3 | These jumps will be triggered from any input and any question when the matching word is given in input. The first jump word is shown in message |
displayWord|word1|word2|word3 | These jumps will be triggered from only list input questions. The first jump word shown in message |
^word1|word2|word3^ | These jumps will be triggered from any input and any questions when the matching word is given as input. All jump words are hidden in message |
^^word1|word2|word3^^ | These jumps will be triggered from only list input questions. All jump words are hidden in message |
yesno(jump_word) | If you want to jump to a particular question based on the 'yes' value of yes/no type question, then this jump is used |
Images
This tab is used to add the images needed to be used in AI Agent questions.
This tab contains two columns(name,URL)
name:- the name of the image
url: Valid URL of the image Syntax to add an image in questions: in question put this in a bracket such as (imagename.imageextension)
Eg: We have an image name: carDog: url: https://d1up6ajknjddp7.cloudfront.net/shield-images/carDog.gif
We’ll create a message like this: “Welcome to Runday! (carDog.gif)”. This will include the image in the message.
1 | name | url |
---|---|---|
2 | carDog | https://d1up6ajknjddp7.cloudfront.net/shield-images/carDog.gif |
We can import images in text message as follows
1 | Text(required) | variable | type | conditions |
---|---|---|---|---|
2 | Welcome to Runday! (carDog.gif) If you want to go to an event or purchase a membership click below |
Validations
This tab is used to add manual validation to type text, and number
Validation tab header consists of five columns
- variable - name of the variable to which we want to apply validation
- min - If the variable type is a string, it is used to specify the minimum required length. If the type is a number, it indicates the minimum numeric value
- max - If the variable type is a string, it specifies the maximum accepted length. If the type is a number, it indicates the maximum allowed value.
- regex - If you want to accept user input that matches a specific regex pattern, please add the regex in the designated column.
Note:To apply regex to a specific variable, enter that variable as the type in the settings tab's type column. This will indicate that it should be treated as a regex type. - Message - This column is for adding an error message if validation for that variable fails.
1 | name | min | max | regex | message |
---|---|---|---|---|---|
2 | purpose | 2 | Enter valid purpose! | ||
3 | target_audience | 2 | Enter valid information regarding target audience! | ||
4 | capture_information | 2 | Enter valid capture information |
Lists
This tab is used to add the lists that need to be shown in the question.
The lists tab contains four columns.
name: This column is used for specifying the name of the list, so using this name we can identify which list needs to be shown. List naming conventions: The list name should be only a single word without spaces. If you have more than one word, separate each by using “_”, such as “employee list” should be “employee_list”.
value: This column contains the values of the list items that should be displayed.
icon: This column is for displaying images for the list items. The icon must be a valid image URL.
sublists: To add sublists for a list value, enter the names separated by commas in this column. To include a list in the question, simply use “listname” in the type field with a “#” in the questions tab.
Eg: I have an employee list, so just go to the questions tab and put “#employee_list” in type. And if you want to add a sublist, then use the same list syntax followed by “.list_variable”. Eg: If I have a “makes” list and if it contains different cars, and I want the car modal as a sublist, we can put “#makes.car”. So, here “makes” is a list, and “car” is a variable that contains selected cars from the makes list.
roles(optional): If we added services, then here we can define the role of that service.
time(optional): The value of time represents the meeting duration of a matching role.
price(optional): The value of this property indicates the price of that particular service.
id(optional): The value of this property is the product ID on Stripe.
1 | name | value | icon | sublists | roles | time | price | id |
---|---|---|---|---|---|---|---|---|
2 | prepaid-service | Monthly Premium Pass | F | 60 | 9.99 | |||
3 | prepaid-service | Monthly Insider Pass | F | 50 | 19.99 | |||
4 | prepaid-service | Monthly University Pass | F | 40 | 99 | |||
5 | prepaid-service | Annual Premium Pass | E | 30 | 79.99 | |||
6 | prepaid-service | Annual Insider Pass | F | 10 | 150 | |||
8 | event | Vault Conference | ||||||
9 | event | Membership | ||||||
10 | event | Contact Sales | ||||||
11 | event | Support | ||||||
12 | event | Buy Merchandise | ||||||
14 | tickets | General - $797 | ||||||
15 | tickets | Platinum - $1,247 | ||||||
16 | tickets | Executive - $2,497 |
Use your defined lists in the text messages
1 | Text(required) | variable | Type | Conditions |
---|---|---|---|---|
2 | Welcome to Runday (carDog.gif) | |||
3 | If you want to go to an event or purchase a membership click below. You may also speak to someone in sales, or learn more by asking a questions | event | #event | |
4 | What level ticket would you want to purchase? | tickets | #tickets | |
5 | Will you please choose which type of pass you want? | service | #prepaid-service | |
6 | Please click the link below to complete your payment | payment | ||
7 | You're confirmed. See you soon! | payment-confirmation |
Settings
This tab is used to configure our AI Agent settings.
1 | name | value |
---|
This tab contains two columns(name, value)
Property Name | Usage |
---|---|
icon | This property is used to set the bot icon. The value of icon is url. |
background | This is used to specify background image of chatbot |
backgroundColor | If you want to use specific hex code color instead of image you can this property |
color | This property defines the primary text color used in the bot, specified as a hex value. |
title | To set the title of the chatbot |
timezone | It defines the timezone of the chatbot( currently, we are using browser timezone) |
company(optional): | It contains the company url. So it will help to answer the company related questions |
demo(optional) | This property accepts boolean values only like (true or false). Default is false. If we set true it will consider 9am - 5pm standard availability and set meeting with dev account |
stripe(optional) | It holds the stripe account ID. If the user is going to his stripe account |
sync_url | It contains the sync url of the bot where we can sync our spreadsheet |
avatar(optional) | If you want to alice in your bot then use this one. The value of this property is enum of "Alice". So if we add this property, then we are generating videos for questions with Alice avatar |
videoAvatar(optional) | The value of this property is the URL for a custom avatar. If you want to replace the Alice avatar with your own, you can add the custom avatar here. |
openIconUrl(optional) | To customize the default chat icon to open the bot with a user-defined icon |
type(optional) | The value of this type is an enum that indicates the document type we are uploading. If it is set to "defaults," it will be directed to OpenAI. If the value is "application," it will be treated as a resume and sent to the resume parser |
repeats(optional) | This property indicates the number of times questions need to be repeated. The default value is "n." If repeats are set to 0, the question will not be repeated. |
catchall(optional) | The value of "catchall" is the variable name. If OpenAI fails to predict an answer, the corresponding variable questions will be displayed. This property is used to handle situations where lists are provided, and the user inputs a random option that doesn't match; in such cases, the catchall will be triggered. |
Latest Release settings tab features:
1. Enable microphone: If you want to enable the speech service, use this feature. It will take a true or false value. The default value is false. A microphone button will now show up on the web agent where you can talk instead of typing. This feature is only available on web based agents.
Syntax: speech
2. Enable video avatar: This key is used to customize the video voice. The value can be any valid voice name accepted by Gooey.
Syntax: voice
To find voices, visit this website:** **https://gooey.ai/compare-text-to-speech-engines/?run_id=jj3vkot4&uid=fm165fOmucZlpa5YHupPBdcvDR02**
- Click on down arrow in settings as shown in above diagram
- Select the provider
- Pick the voice name as shown in below image
- While setting the voice, put provider name colon(:) voice name.For example, for given selected voice it should be, elevenlabs:Dave
3. List modes: This accepts the values numbered or sentence. It is used only for SMS and WhatsApp. If the value is 'numbered', it will use a numbered list. If the value is 'sentence', it separates list items with a comma. The default list mode is 'numbered
Syntax: listmode
4. Catch all questions: If the AI doesn't know the answer, then you can set a question to jump to as a catch all condition. This is useful for instances when you want to control what happens if the agent doesn’t know what to do. The value is the variable name, from the questions tab of the question that you want to jump to.
Syntax: catchall
5. Open the agent automatically: This setting prevents the agent from opening automatically. The default behavior is true.
Syntax: openAutomatically
6. Full screen agent: If you want to see the agent in full screen, set this to "true". The default value is "false.". This option cannot be combined with the document option.
Syntax: fullscreen
7. Document: If you want to use Markdown in the AI Agent preview page, put the value as the public Google Docs URL.
Syntax: document
Here is an example of how the document feature looks
*Below is an example of how a settings tab could look with some of the features listed above: *
Adding and triggering a external webhook (external API calls)
To trigger a webhook after a specific question, set the type to 'webhook' on a blank line below that question. For example, in the screenshot below, there is a webhook that activates after the question asking for an email.
Once the user responds to the email question, the webhook will be triggered.
Your webhook is configurable with the following 3 properties:
1. ** webhook_url :** This is used to specify the webhook URL that needs to be triggered. This is a required property.
2. ** webhook_headers :** If you want to specify request headers. This is a required property.
3. ** webhook_body :** If you want to send some data as a POST request with a body. This is a optional property if it is not specified the request will be a GET request.
If you want to use the values of variables from questions, you can simply specify them using** @variable_name**, as shown in the example above.**
Adding different variations of messages: If you want to add different variations of a message, you need to add a pipe between the two variations.
1 | Text(required) | variable | type | conditions |
---|---|---|---|---|
2 | May I please have your first and last name? | fullname | fullname | |
3 | {{firstName}}, what's your email? | what is your email address? |
Setup visitors dashboard: To use visitors dashboard, take a look at following. Image below show you how to setup your agent for visitors dahsboard in the questions tab.
1. ** pre-support = true : ** This is used to specify questions that will be asked before connecting the customer to your customer support team.
2. ** support-true : ** This is used for the last question the customer needs to answer before being connected to your customer support team.
3. ** support-not-available : ** This is a message that will be sent to the customer if nobody replies to the request. You can set a custom timeout in the settings tab, after which the customer will be provided with this message.
To enable and customize support system use following settings
1 | Name | Usage | Value Type |
---|---|---|---|
2 | ticketMultipleSolutions | It will provide additional solutions before reaching out to a support agent. The field values can be either true or false. | Boolean(true/false |
3 | supportSlackWebhook | This is used to specify where to send support message requests. | Webhook URL |
4 | supportMessage | Its used to show custom support message to user | Any string message eg. Thanks! One moment while I connect you... |
5 | supportButton | This is used to display the text on the support button. | Any string support button text eg. Talk to Customer Service |
6 | ticket | The value of this parameter can be either true or false. Set it to true if you want to allow ticket creation. | Boolean (true/false) |
7 | displayLink | It defines how to display link on bot | Its accept any of this: short/full/link |
8 | hubspotToken | Used to set hubspot account token | Hubspot token |
9 | logResponses | This is used to log responses. The default setting is "all," which means responses will be logged both when the session starts and during interactions. | It will accept any of following: interact: Log responses only when the user starts interaction. all: Log all visitors as well as interaction responses. off: Turn off logging the response |
10 | userQuestionWebhook | This is used to specify the webhook to which your question data should be sent. | Webhook URL |
11 | UserQuestionWebhookMessage | Used to include a custom webhook message before the dashboard link in the message. | Eg. User has asked a question please respond urgently:{{dashboard link}} |
12 | supportThreshold | Activates both support notifications on Slack and transitions the user to the AI question (timeout). | This will accept num value as a number for the timeout value in seconds. For example, to set the timeout value to 1 min, set this value to 60 |
13 | supportThresholdClient | Transitions the user to the AI question (timeout). | This will accept num value as a number for the timeout value in seconds. For example, to set the timeout value to 1 min, set this value to 60 |
14 | supportThresholdNotification | Activates support notifications on Slack (timeout). | This will accept num value as a number for the timeout value in seconds. For example, to set the timeout value to 1 min, set this value to 60 |
15 | webhook_all_message | To send data to the webhook for each message, set this to true. | Boolean(true/false) |
Contents
This tab is used to answer the questions based on the content link added.
This tab contains two columns (name,url)
- ** name: ** name column indicates the name of the doc. It can be any name.
- ** url: ** url column indicates the link of file, webpage, or any other online page url that needs to be vectorized.
Response
This tab is used to store chat responses.
Summary
Syntax and questions
list: #listname eg.#makes
sublist: #listname.list_response_variable eg. #makes.makes_variable
Image: (imagename.extension) eg. (rundayLogo.png)
Want to use a variable in the message: @variablename
Conditions: variablename equality_operator value (eg. is18 = yes) if want more than one condition just put “&& “ or “ ||” between conditions
If need answer in yes or no format: Then put yesno as type in type column and need to add some variable name as well
Want to add regex validation: Add variable name in type column and put a same variable in validations name column then add actual regex in regex column in validations tab.
Want to schedule an appointment: Add some appointment message and in type put type as “appointment”
Want to change the default confirmation message: Add a confirmation message after the appointment then put in a type of that message is “confirmation”
Want to change default AI Agent name, logo, and background image: Go to the settings tab and change the default name, logo, and url with your name, logo, and url
Want to add an image: Go to images tab > add image name and url > add that image in message
Want to add min, max length or number validation: Go to validations tab and add validations for that variable
Inbuilt validations for number, email, uuid
Want to add service: add list type is service I.e. #service give variable name as service. Add the service list in list tabs. Assign roles, time, and price in the spreadsheet. Create a team. Assign the same roles to the team members and assign that team to this flow.
Want to add payment/stripe: To add a list of type "prepaid-service" (i.e., #prepaid-service), use the variable name "service." Include the prepaid-service names in the list tab. Assign roles, time, price, and ID in the list tab. Enter the "stripe" account ID in the settings tab. Create a team, assign the same roles to the team members, and then assign that team to this flow.
Note: If the chat variable "email" and the type "confirmation" do not exist, they will be added automatically in the script.
Manual Creation
To create agents from the app, log in using your company email. After completing the onboarding process, you will see this home page.
Follow the below steps to create an AI Agent:
- Click on AI Agent in the sidebar, then you will see this screen:
If your company has already created bots, you will see a list of bots. Otherwise, you will only see the “+ New Chatbot” button.
- To create a new bot, click on the “+New Chatbot” button, which will open this popup.
Here, you will see 2 fields.
In the first field, you will enter the bot name, which can be any alphanumeric name for your chatbot, and this field is required. The second field is optional; you can build a bot on top of another by simply pasting the spreadsheet URL of the other bot.
After filling in these fields, click on the Create button so that it will create a bot for you. You will see that in the bot list.
To view your bot, click on the menu icon on the right side of the bot. This will display various options. From there, select "View" to open your bot in a new tab.
Your bot will look like this:
- If you want to change the questions, click on the hamburger menu icon and click Edit
It will navigate to a Google spreadsheet. From there, you can make whatever changes you want. You can add new questions and change your bot name, settings, etc.[
](https://www.runday.ai/training#)6. After making changes in the spreadsheet, make sure you sync the bot each time. There are different places where you can sync:
- From the spreadsheet settings:
Simply click the sync_url to get the latest updates for your bot. After syncing, make sure to refresh the bot page to see the changes.
- From chatbot menu:
From here, you can also sync your bot after making changes to the spreadsheet.
- Bot menu options in the app:
With these options, you can sync the bot and receive the latest updates.
Zoom Integration
To link your zoom account you can follow these quick and easy steps.
- Navigate to the 'Settings Page' of the application.
- Click the “Connections” Tab to navigate to the list of app connections.
- Choose the “+” button next to the zoom item and follow the on screen instructions to link your account
USAGE
**After you have enabled the zoom integration it will be used as the primary method of scheduling meetings throughout the app.
- Navigate to the page of the application
- Fill out all required fields.
- Click the ‘Create' button.
- And meeting will be created.
REMOVAL
If you no longer wish your meetings to be scheduled with zoom you can follow these steps to remove the integration. Your meetings will then be scheduled on Google Meet instead.
- Navigate to the Settings page of the application
- Click the “Connections” Tab to navigate to the list of app connections
- Choose the “-” button. And zoom integration will be removed
**ZOOM INTEGRATION REMOVAL
**If you want remove integration completely from app.
- Navigate to the added page of the zoom marketplace
- Click the “Remove” button to remove app
- Next follow the on screen instructions