Publish your Bot

Publish your Bot

The last step to start using your bots is to publish them on one or more channels connectors.

ConvyAI support 9 connectors:

  • web chat
  • WhatsApp
  • Facebook Messenger
  • Telegram
  • Google Assistant
  • Amazon Alexa
  • Email.

In the "Publish -> Connectors" section, you can start creating your publications: one bot can be published on one or more connectors.

Each connector has a unique name and holds all the configurations needed by the specific connector to work: for a detailed explanation of each connector, check out our ConvyAI - Bot publication document.


Inside the additional parameters section, you can set up the "typing" indicator:

If disabled, the bot messages will be sent to the customer without any delay.

If enabled, you can choose the boundaries, in milliseconds, of the simulated typing and select the number of milliseconds per character used to calculate the amount of typing needed for a message.

A practical example is about an output text that should be sent out saying "hi, I'm your virtual assistant". With the above configuration the typing will be calculated as 30 (number of chars in the output) * 50 (milliseconds per char) = 1500 milliseconds. Since the result is between the boundaries it will be used as is.

Web publication

The web publication has some additional configurations:

  • Availability Times
  • Initial Form

Availability Times

It's possible to control via this configuration when the engagement button is going to be visible or not on the web pages.

The web publication has three possible configurations:

  • Always: it's the default option selected. The bot will be always available, and the engagement button will be always visible on the website.
  • Business hours: you can select in which hours the engagement button will be visible. For each week day you can choose in which time frames the button will appear or not. The time frames are located in the company time zone.

  • Agent availability: the engagement button will be shown only if the minimum specified number of agents are available in the selected queues.

Initial Form

You can create a simple form that the customer "must" or "can" compile before starting a conversation with your bot.

The form fields can be mandatory or optional and each information the customer enters, it's available as a variable inside the bot.

In the example below, the initial form is composed by 2 fields (name and phone). Only the name is mandatory.

In the "Variable name" column you can see the name of the variables that will be automatically created as the conversation with the bot starts.

The checkbox called "Used as initial text" means that, if checked, the text inserted in the corresponding field will be used as input text for the first node. This can be useful if the first node is a menu with a semantic engine and the customer compiles a field explaining his/her needs.

Inclusion on a website

Once the connector's created, it's time to include the bot in your personal website. To do this, it's necessary to create an HTML snippet to include the customer interface on the desired page of your site.

Push to "generate HTML snippet" button to create the snippet.

First select the interface you want to use, then the bot language and, if you choose the 2021 bot version, you can also define some bot interface behavior. In the end, click on the green button to create the snippet.



2021 bot version behavior

Below the list of behavior that can be defined on the interface

Autostart conversation Automatically start the conversation when the script is loaded into the page
Autostart delay

To be used with "autostart conversation" enabled, sets a conversation start delay, after the script has been loaded into the page

Hide engagement button Hide the engagement button (Autostart conversation enabled needed or a deeper integration with the webpage, using the SDK explained in the next chapter)
Fullpage bot The bot interface takes up the entire page size (e.g. totem)
Include on load Include the bot UI automatically during the loading of the page in which is included, otherwise it will be included when the script is dynamically loaded

Inclusion on a website - Extra for developers

The GUI exposes functions that can be called externally, without iterating on the GUI itself.
The functions are available after the script is included in the HTML page using the syntax: 'window.ConvyAI.function_name', where 'function_name' correspond to a function listed below. Data exchange is done via postMessage.

Available functions:


  • startConversation()

Start the conversation with the bot. The action performed, mirrors the action of clicking on the engagement button.


  • endConversation()

End the conversation in progress.


  • sendMessage( text_message )

Send a text message to the bot. Parameter 'text_message' correspond to a String data type.


  • attachData( obj )

Send data containing customer information. 'obj' parameter correspond to an Object data type. These parameters will be sent with the next startConversation command as attached data and will be available as variables in the flow editor


  • sendEvent( event_name, parameters )

If the bot flow is configured to wait for an event, it's possible to trigger the event with this function.

'event_name' is a String data type corresponding to the event to trigger

'parameters' is an Object data type. It can be empty: {}. These parameters will be available in the "WAIT_FOR_EVENT" node to be transformed in variables


  • init( init_parameters )

Define bot behaviors before the conversation start ( e.g. { hideButton: true } )

'init_parameters' is an Object data type that accept the following settings:

autoStart (Boolean)
autoStartDelay (Number)
hideButton (Boolean)
fullPage (Boolean)

These parameters will be merged with the query string parameters. If the same parameters are specified in both ways, the init function will take precedence.


  • getVersion()

Return the GUI version


  • listen

Listen, allows receiving notification from the GUI. It returns a list of functions useful to receive notification from the interface.

List of events that can be received:

conversationClosed() Notify when the conversation has ended
conversationCreated() Notify when the conversation starts
eventReceived() Notify when an event is received
handoverClosed() Notify when a handover has ended
handoverFailed() Notify when a handover has failed
handoverStarted() Notify when a handover has started
handoverSuccessful() Notify when a handover has successfully ended
messageReceived() Notify when a message is received

Notification returns an Object containing a 'type' key indicating the notification name. For eventReceived() and massageReceived(), the object contains also the events parameters and the message string, respectively.

These functions accept a callback function as parameters that will be used to notify the caller about the events.




If you want the interface which occupies the entire window size type:

window.ConvyAI.init({fullPage: true})


For receiving a notification when a conversation is terminated, use the listener:


When the page receives the notification, 'my_function' is executed.