Wednesday, November 30, 2016

Rich HTML Responses, Buttons, Links, and Choices

Bot Libre allows for bot responses to contain rich content including bold text, fonts, styles, colors, images, video, audio, bullets, , links, and much more.

Bot responses can be plain text, or can contain HTML and even JavaScript content. HTML includes tags for bold, style, fonts, bullets, buttons, links, and much more. For more information on HTML see w3schools.

Bot Libre supports HTML on the web, and on mobile. For social media platforms, such as Facebook, Bot Libre maps the HTML content that is supported by the social media platform into their own native syntax, and strips any HTML content that is not supported. Bot Libre supports buttons, links, images, video, and audio on Facebook by mapping HTML elements to Facebook's button and link support.


Bot Libre supports most simple HTML, but filters complex HTML content to remove JavaScript and other potential security issues. It is possible to allow JavaScript and complex HTML in your bot by enabling the 'Allow JavaScript' option in your bot's learning settings (for security reasons, JavaScript is only available on

You can use HTML in bot responses to make them look more impressive, or to include media content such as images, video, or audio.

Example HTML response

You can <b>email</b> us at <a href=""></a>
<br/>or <b>phone</b> us at +1-613-777-1234
<br/>For other contact info see our <a href="">website</a>

You can email us at
or phone us at +1-613-777-1234
For other contact info see our website

Example media response

Check out our new robot<br/><img width="100" src=""/>

Check out our new robot

Buttons, Links, and Choices

You can also use interactive HTML in your bot's responses to engage the user, and improve their user experience.

The HTML <button> tag can be used to provide the user with easy one click options. Bot Libre automatically associates a button click with a post back to the bot with the button text as the message.

Example button response

Do you want to book an appointment?<br/>
<button>Yes</button> or <button>No</button>

Do you want to book an appointment?

Bot Libre defines a special protocol for HTML links that allows the link click to send a post back message to the bot. Using the chat: protocol in any link, you can have the chat message sent to the bot when the link is clicked.

Example link response

Do you want to to order a <a href="chat:large">large</a> or a <a href="chat:small">small</a>?

Do you want to to order a large or a small?

Example choice response

What kind of pizza do you want to order a <select><option></option><option>cheese</option><option>vegetarian</option></select>

What kind of pizza do you want to order a

Commands for Social Media and Mobile

Bot Libre automatically translates HTML into the features supported by social media platforms like Facebook, Twitter, Telegram, and Slack. Bot Libre also provides a command tag to a response to enable it to invoke platform specific features.

A command is a JSON formatted object that is passed to the mobile client, or social media connector. Commands can be used in a "response list" file, the bot's Training page, or from scripts. For mobile, commands can be used to execute virtual assistant functions like opening apps and sending email from a phone. For Facebook, commands can be used to add buttons, and templates to a response.

For more information on mobile commands see, How to Use Commands.

Bots are the New Apps

"Bots are the new apps", this means that software development has shifted from building websites, to building mobile apps, and now to building bots. Bots lets you build a single interface into your business that can be deployed to the web, mobile, and social media.

Rich HTML responses enable bot's to behave like conversational apps, and provide a rich, easy to use, user experience.

Thursday, November 24, 2016

Announcing Bot Libre 5.0!

We have released Bot Libre 5.0!

The worlds most advanced bot platform just got better. Bot Libre 5.0 is a free and open source platform for developing and hosting bots. Bot Libre 5.0 includes support for chat bots, virtual agents, virtual assistants, social media bots, live chat, animated avatars, and speech. Bot Libre supports bots for the web, mobile, Facebook, Twitter, Telegram, Slack, email, SMS, IRC, and new platforms are being added every month.

"Bot are the new apps". Mobile has replaced the web as the main communication market, and social media apps are the most popular mobile apps. Businesses need to connect with consumers on the platforms they use, so it now makes more sense for a business to create a bot/chat interface into their business instead of a website, or their own mobile app. Bot Libre lets you create a bot for yourself or your business and deploy the bot to the Facebook, Twitter, Telegram, Slack, the web, mobile, and other services. Bots let you "write once deploy everywhere".

Bot Libre 5.0 supports rich HTML responses including buttons, links, choices, images, video, and audio. Bot Libre supports HTML responses on the web, mobile, and automatically maps HTML to social media platforms.

Bot Libre bots can be trained using natural language, chat logs, response lists, Twitter feeds, AIML, and scripting. Responses are automatically matched using a heuristic artificial intelligence algorithm and do not require any programming. Responses can also use keywords, topics, required words, labels, repeats, and other meta data.

Bot Libre 5.0 supports programming and scripting your bot using AIML 2, and Self. Self is our own dialect of JavaScript. Self is an object oriented scripting language, and integrated with an object database. Self extends JavaScript to provide support for natural language processing, state machines, object persistence, and includes a class library for accessing web services and utilities. Self also supports all AIML 2 operations, and some aspects of ChatScript patterns.

New features in Bot Libre 5.0 since 4.0 include:

  • Rich HTML responses including buttons, links, and choices
  • Facebook Messenger support
  • Facebook Messenger support for HTML responses including buttons, links, images, and other tags
  • Telegram support
  • SMS text messaging and Twilio support
  • XML and JSON web service support from scripting
  • HTML scraping and social media support from scripting
  • Vision and image processing support
  • Support for uploading files and images to the bot, and file processing
  • Automatic language translation
  • Slack support
  • Google Calendar support
  • New speech and avatar options
  • Mobile command and virtual assistant support

Create your own free account and bot today on, or let us build your bot for you on our commercial service Bot Libre for Business.

Wednesday, November 9, 2016

Connecting your bot to Google Calendar

Bots can do more than just chat. They can book appointments, service calls, meetings, send emails, and SMS messages.

Bot Libre has support for connecting your bot to Google Calendar to access your schedule and book appointments. To connect your bot to Google Calendar go to your bot's "Google" page in its "Admin Console".

To get to your bot's Admin Console click on the button below its "Chat" button on its page.

Next, click on the Google tab.

Click on the Authorize button to connect your bot.

This will give you a link to Google. Click on the link and accept the authorization request.

You will need to login to your Google account. If you want the bot to have its own Calendar you can create a separate Google account. If you do not have a Google account or Calendar you can create one first here.

After you accept the request Google will give you a code.

Copy this code and go back to the Bot Libre page and paste it in the text field.

Click "Done".

Your bot is now connect to your Google Calendar and has permission to access it.

You can use the GoogleCalendar class from a Self script to access your calendar.

The GoogleCalendar class has functions like getEvents(from, to), insertEvent(event), and deleteEvent(event). The event objects are Self objects that match Google Calendars JSON format. You can also call requestJSON(url), or postJSON(url, json) to call any Google Calendar web API. For more information of Google Calendars web API see Google's API reference.

If writing your own script seems too complicated, you can also import existing Calendar scripts from our script library.

In your bot's Admin Console go to its "Scripts" page.

On your bot's Scripts page there is a blue "Import" button on the right toolbar.

Click on this button to import scripts into your bot.

This will give you a lot of scripts to choose from, filter them but typing "calendar" in Tags and "Self" in Language.

Select the "Book Appointment" script and import it.

This script gives your bot the "book" and "cancel" commands that lets a user book appointments to your calendar.

For an example, talk to the Scheduler Bot, or create your own scheduler bot using the scheduler_template.