# Welcome!

Welcome to the official MyLINK Connect documentation website.&#x20;

The aim of this website is to document and illustrate as clearly as possible each and every action, operation, variable and option you may encounter during your journey into chatbot building.

Please use the menu you can see on the left of this page to pick a topic and navigate to to what interest you.

The MyLINK Connect team is also regularly publishing [new videos](https://www.youtube.com/channel/UCW5D9M1vSKrTuenVR0whOVA), [articles](https://www.xenioo.com/en/articles/) and [tutorials](https://www.xenioo.com/en/tutorials/) on very specific topics. Often giving away full examples and complete chatbots.

You are more than welcome to join our [growing Facebook group](https://www.facebook.com/groups/xenioo) to share your ideas, doubts and issues and, of course, your feedback.

For any inquiry, information or support service you can reach our customer support service by contacting <hello@mylinkconnect.com>.&#x20;

{% hint style="warning" %} <mark style="color:orange;">**PLEASE NOTE:**</mark> MyLINK Connect has recently been rebranded and was historically known as Xenioo. All documentation is currently undergoing a transformation process. Any materials listed using the 'Xenioo' name are still relevant and of use, however are yet to be transformed.&#x20;
{% endhint %}


# Product Overview

This document has been crafted by our Connect (MyLINK Connect) team to provide you a clear and thorough understanding of the overall functionality and capabilities of our product. Whether you're a potential user, a curious stakeholder, or simply someone seeking a general overview, this guide should answer your questions.

{% hint style="info" %}
Use the menu provided on the left to jump to chapters of interest.
{% endhint %}

<mark style="color:orange;">**PLEASE NOTE:**</mark> MyLINK Connect has recently been rebranded and was historically known as Xenioo. All documentation is currently undergoing a transformation process. Any materials listed using the 'Xenioo' name are still relevant and of use, however are yet to be transformed.&#x20;


# Definitions

When discussing the Connect we are likely to reference terms unfamiliar to those who do not play in the industry. These definitions serve to inform and/or confirm your knowledge.

## <mark style="color:blue;">Chatbot</mark>

Imagine an employee who can speak every language, never take a break, and can assist thousands of users simultaneously. That's the power of a chatbot. An AI-powered virtual assistant that revolutionises business communications. Chatbots provide 24/7 support or communications, answer FAQs, and personalise all interactions through integrations, all whilst learning on the job to better themselves. They're the future of customer engagement, driving efficiency, satisfaction, and growth.

Beyond just replacing customer support, chatbots can also be used to provide automated two-way engagements between an audience and a user. Whether it’s a request for your audience to complete an action, a survey with feedback, or even a buying journey, any two-way interaction can be created by MyLINK Connect and it’s ‘chatbot’ capabilities.

Chatbots are intelligent agents that will simulate a human conversation, enabling a seamless interaction between users and digital plugins. Chatbots can also utilise what’s called natural language processing (NLP) to understand user queries. In short, this means that based on the written language a chatbot user provides, it can determine the theme of the conversation and provide valuable and relevant responses to aid the conversation further.

### <mark style="color:yellow;">Benefits of Chatbots</mark>

* <mark style="color:blue;">24/7 Availability and Instant Responses:</mark> Chatbots provide around-the-clock customer support, ensuring that customers receive prompt assistance regardless of the time of day or day of the week. They can handle multiple inquiries simultaneously, offering rapid responses and reducing wait times.
* <mark style="color:blue;">Personalised Customer Experiences:</mark> Chatbots can gather or use readily available information about customers and their interactions, enabling them to personalise their responses and recommendations. This tailored approach enhances customer satisfaction and fosters loyalty.
* <mark style="color:blue;">Efficient Issue Resolution:</mark> Chatbots can effectively handle frequently asked questions (FAQs) and routine tasks, freeing up human agents to focus on more complex issues. They can also provide step-by-step guidance and troubleshooting assistance, resolving customer issues efficiently.
* <mark style="color:blue;">Scalability and Cost Savings:</mark> Chatbots can scale to handle increasing customer demands without requiring additional human resources. This cost-effectiveness is beneficial for any business with a vision of growth.
* <mark style="color:blue;">Data Collection and Insights:</mark> Chatbots can collect valuable data about customer interactions, preferences, and feedback. This data can be analysed to improve customer service, marketing strategies, and product development.

## <mark style="color:blue;">Channels</mark>

A channel can be defined as the location for which a chatbot is deployed/ sent. Popular options here include: in-applications (apps), on websites, SMS, WhatsApp and RCS. The full list of current channels amounts to 16 and covers: Pure API, Telegram, Facebook, Instagram, Discord, MS Teams, Slack, Alexa, Voice, and Genesys.

The below table outlines the countries where our most popular message types are currently operational. For further clarification or to determine accessibility in other markets, please get in touch.

| COUNTRIES | Web                                 | SMS                                 | RCS                                 | WhatsApp                            |
| --------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- |
| UK        | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> |
| France    | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> |
| Spain     | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> |                                     | <mark style="color:green;">✓</mark> |
| Italy     | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> |                                     | <mark style="color:green;">✓</mark> |
| Sweden    | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> |                                     |                                     |
| Finland   | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> | <mark style="color:green;">✓</mark> |

### <mark style="color:yellow;">Channel Set-Up</mark>

LINK Mobility specializes in mobile messaging and can establish accounts and agents for any messaging channel detailed above. However, for businesses who already own access to their channel of choice, connectivity to Connect is also easily supported. Details on technical integrations can be found [here.](https://www.linkmobility.com/partners)

###

## <mark style="color:blue;">Agents</mark>

Depending on your set-up, you will be allocated a set number of ‘Connector Seats’. These represent the number of active users logged in at any one time. Unlike competitors, LINK does not charge for the number of agents you wish to attach to your account. Instead, Connector Seats simply describe the number of employees live on your platform at any one time. With multiple Connector Seats, each team member will be able to view, edit and deploy your creations in real-time. The number of Connector Seats you are given can be discussed with your LINK account manager. This number can be amended at any time should your operations need to scale with your growth.

###

## <mark style="color:blue;">Templates</mark>

### <mark style="color:yellow;">MyLINKConnect's Templates</mark>

Connect’s templates are designed to provide inspiration and act as a starting point for you to build and personalise your own conversations.

These templates do not include the use of AI, and are simply based on pre-determined questions and answer journeys. Chatbots perform best when they are designed with your organisations needs and wants in mind and therefore, we suggest these are only used as inspiration and foundations for your creations.

&#x20;Our team is more than happy to help should you have further questions regarding chatbot build support.

### <mark style="color:yellow;">Your Templates</mark>

You are also able to create your own templates within your account should you wish to save time when creating many similar bots. This can be achieved in one of two ways depending on your needs. Through the creation of template bots or a master bots.

&#x20;<mark style="color:blue;">A template bot</mark> is simply a bot you design and label as ‘template’. This can then be duplicated as needed to create copies which can then be edited as needed. Any edits made to duplicated bots do not affect any other bots which were previously copied.

&#x20;<mark style="color:blue;">A master bot</mark> performs a slightly different function. This specific bot can be copied across various other sister bots. The difference here sees that when an edit is made within the master bot, the edit is automatically applied to all other sister bots too.


# Chatbot & Flow builder

## <mark style="color:blue;">Broadcasts</mark>

Broadcasts are very useful for many organisations allowing for mass messages to be sent at once. In turn, this acts as a mass trigger for a chatbot conversation to begin. Broadcasts act as scheduled tasks that send messages to your users based on a specific time or event. Each broadcast is attached to a unique behavior that can be modelled as you wish.

You can use broadcasts to alert users of a specific event or target a specific audience with a particular promotion. Broadcasts can also be triggered by a first or last user interaction, making it the perfect tool to recover a lost user conversation or ping the user for activity.

Perhaps you have a VIP sale going live at 8pm with a buyer journey bot ready to serve customers. You may broadcast an initial WhatsApp message to all users at 8pm who are opted in and tagged as VIP Members in your CRM. From here users can interact with the message and engage with your pre-arranged chatbot journey.

Alternatively, if a customer engaged with the buying journey but didn’t check-out, you may wish to broadcast a message the next day reminding all incomplete journey’s that the sale ends shortly.

It is worth noting that some messaging channels may hold certain restrictions when it comes to mass deliveries and opt-ins. Our Connect team or your account manager will be able to discuss the limitations (if any) of your desired channel with you in more detail.

## <mark style="color:blue;">Flow Builder</mark>

A flow builder is a visual tool used to design chatbots without coding. It allows users to create conversation flows by dragging and dropping elements, such as messages, questions, and decisions. MLC uses flow builders because of their user-friendly interface that is accessible for everyone. With a flow builder, you can automate back-and-fourths to alleviate manual tasks, create conversations with endless features without code and converse with confidence, knowing that you can test and train your bot to perform as you need it to.

### <mark style="color:yellow;">Benefits:</mark>

* <mark style="color:blue;">Visual representation:</mark> Flow builders provide a visual representation of the chatbot conversation, making it easy to understand and troubleshoot.
* <mark style="color:blue;">Flexibility:</mark> Users can create complex conversation flows with a variety of elements to suit many different use cases.
* <mark style="color:blue;">Reusability:</mark> Re-use and copy common design elements across bots to save development time.
* <mark style="color:blue;">Collaboration:</mark> Allow multiple users to access and edit chatbots

<figure><img src="/files/Pmsgn1Ee1vGghB114RhF" alt=""><figcaption><p>Connect's flow builder</p></figcaption></figure>

##


# Integrations

## <mark style="color:blue;">API Integrations</mark>

Connect API support can cover multiple scenarios, depending on your requirements. If you need to <mark style="color:blue;">pull data from your chatbot</mark> or push information updates for your contacts directly into conversations, you can integrate with our wide range of Public API endpoints.

If your chatbots needs to <mark style="color:blue;">retrieve (or even update) data from external services</mark> (be your own backend or any other API enabled service), Connect's API Action (<https://docs.xenioo.com/actions-and-operations/integration/xenioo.bots.actions.base.callapiserviceaction)[^1>] can support several different scenarios. Data incoming from external services can be integrated seamlessly into the chatbot messages flow thanks to dynamic parsing (<https://docs.xenioo.com/actions-and-operations/dynamic-parsing>). More complex scenarios can also be supported using pure JavaScript actions.

&#x20;

### <mark style="color:yellow;">Public API</mark>

Connect offers multiple endpoints that can be used by any external application to extract data, integrate or create automatic messaging for your chatbot.

Depending on what is your project target, you may want to consider different Connect API, according to the table below.

| API                 | Description                                                                                                                                                                                                                                         |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Custom Channel API  | <p>Ideal if your goal is to build your own, custom chat application, whilst leveraging Connect's advanced flow systems and AI engine. </p><p></p><p>Connect could also be used as a communication bridge for your own, custom chatbot solution.</p> |
| Chatbot Events API  | Ideal if your project needs to receive all of the conversation messages and events that are related to your chatbot usage.                                                                                                                          |
| On Demand Broadcast | Integrate with on-demand broadcast to create events based alerting systems for your users.                                                                                                                                                          |
| Database API        | Ideal if your application needs to remotely access Connect Database Connections.                                                                                                                                                                    |
| Global Platform API | Used to integrate with Connect as a platform. Ideal for cloning existing chatbot templates, retrieving conversations and usage statistics as part of a project.                                                                                     |

### <mark style="color:yellow;">Data Export</mark>

Consolidated data will be exportable from the Reports Scheduling section already available in MyLINK Connect. Following the already existing export scheduling, customer will be able to schedule automatic data export of specific time frames.

Like for all other reports, the data exported will be available for download from the Reporting section of MyLINK Connect.

### <mark style="color:yellow;">General Integrations</mark>

Integrations allow chatbots to connect with other systems and applications. This enables chatbots to access and process information from external sources, enhancing their capabilities and providing a more comprehensive customer experience.&#x20;

Chatbot integrations can be used to:

* <mark style="color:blue;">CRM Systems:</mark> Chatbots can access customer data from CRM systems to provide personalised service and support. Imagine a bot knowing: your name to say hello or your general location to automatically suggest your nearest store. The possibilities are endless.
* <mark style="color:blue;">Payment Gateways:</mark> Chatbots can take users to process payments where MyLINK Connect cannot directly provide this at present.
* <mark style="color:blue;">Marketing Automation Tools:</mark> Chatbots can collect customer information and act as part of marketing campaigns to generate engagement. Work alongside productivity tools: Chatbots can schedule meetings, create tasks and manage calendars or bookings.

LINK will provide all necessary documentation needed to assist a business when looking to implement an integration. This will be done via APIs. We have extensive experience with numerous plug-ins and are open to discussing new ventures that customers would find useful to integrate with.

[^1]:


# Salesforce Integration

Easily integrate your chatbot with Salesforce

![](/files/987cf4ac445c6481f95f358be03fe31a548da4e5)

We all know how much of an asset a smart and well-designed customer support chatbot can be.

Current usage statistics show that at least 70% of level-one customer questions can be handled without real human interaction.

More than 75% of adults today would prefer to exchange messages with a brand instead of waiting indefinitely in a phone queue.

If your support workflow is ready to make the jump, it is very likely that your current setup is holding you back. A chatbot can become a new source of information, but also a new application for your support team to monitor and manage.

<figure><img src="/files/mxPTTmIkyusM4a02VnFc" alt=""><figcaption></figcaption></figure>

In this article, we’ll look at how to integrate Salesforce, a widely used CRM platform that is also used for customer service and marketing automation.

We will deeply integrate MyLINK Connect into the Salesforce interface so that it becomes part of the workflow, rather than just another external tool.

## Getting Started

The first things we need for our integration are, of course, a MyLINK Connect account and a Salesforce account.

You can sign up for a MyLINK Connect account right away to build and preview the bot we’re creating in this post. When you’re happy with your build, you can then choose the upgrade path you prefer to make your chatbot public.

Since we’re going to integrate deeply with the Salesforce API, make sure that your Salesforce license allows external API access. If not, you can still sign up for a free developer account and complete the integration before choosing to fully upgrade.

## Salesforce Connected App

With our Salesforce account created, we need to retrieve the client ID and client secret values that we will use in our API integrations.

To do so, from our Salesforce console, we must click the Setup menu item that you can find in one of the top-right menus. This will open the general setup page.

![](/files/c6310683b4075b60af5cf8627a6ebeeeedb05553)

From the Quick Find menu on the right, type *app* and then click on the App Manager item on the left menu.

This will display the Lightning Experience App Manager view. From there, we must click on “New Connected App”.

![](/files/d4053ab35ea4d4ae11db18a4ce38789b7c6ffa0f)

You can give your app any name you prefer, as long as it is not already taken. Set the contact email you prefer and scroll down to the API section.

Fill the Callback URL field with any URL you prefer, since we won’t be using it, and set the scopes of your connected app to at least “Manage User data via APIs (API)”. Since this is a test and we’re going to play around with multiple things, we suggest that you also add “Full Access (full)” to the list.

![](/files/c00b3dea9a780239be761607f27b70cd3d1ce14c)

The general setup is done and we can now save our connected app configuration. You should be taken back to the list of connected apps. From there click on the “View” command for your app to access the newly created information.

In the API section of the details, you should find both the Consumer Key and Consumer Secret fields, which are, in turn, the client ID and client secret required for every API call. Copy both values somewhere handy and let’s continue to MyLINK Connect.

## Building our Support Bot

Instead of starting from scratch for our support bot, we will use a pre-made template and adapt it for our integration.

For our example, we will restore the free Advanced NLP Customer Care template into our account. You can find it in the Templates section inside MyLINK Connect.

All templates are free to preview and use, so we can just click on the “Use This” button to create a copy of the bot inside our account.

<figure><img src="/files/M2lQRztO1qdRx9nLRtoh" alt=""><figcaption></figcaption></figure>

This support bot is already trained to reply to simple questions about a sample company’s printer connectivity and general driver setup, and it is the perfect playground for our integration.

If you wish to delve deeper into the flow and logic used in this chatbot, you can head to [this blog post](/artificial-intelligence/nlp) explaining the AI setup, [or here](/basic-concepts/chatbot-details/chatbot-teams), where we talk about teams and escalation.

For our example, we are going to slightly change our fallback flow so that the bot will immediately ask the user if human interaction is preferred so that we head to the integration part right away.

Let’s suppose our bot has a conversation like this:

![](/files/7a1629d9b45b8d26eca4bf7529398774fbfea22e)

Now, if our customer asks for a human operator, what we want to do is first hand over the conversation so that the MyLINK Connect bot engine will know not to interfere with it.

After that, we can create a case in Salesforce so that our support personnel can be engaged.

The first step is very easily solved by using the Set Operator Chat State Action of MyLINK Connect. This action, when executed in any part of the flow, will hand over the conversation to an operator.

Just note that when set on your flow [interactions](/basic-concepts/the-chatbot-designer/interactions_concepts), this action may appear differently if you do not have the [Pro-Team package](/basic-concepts/your-account/additional-packages) enabled.

![](/files/a00382c18cd4d00ae9fe7d98829c89dd47d3fad1)

## Salesforce API Integration

With the client ID and client secret we just retrieved from our brand-new Salesforce Connected App, and with our chatbot ready, we can now move on to the actual API integration.

MyLINK Connect can integrate with any public API by using the [Call API Service Action](/actions-and-operations/integration/xenioo.bots.actions.base.callapiserviceaction), which you can find under the Integrations section of the Actions and Operations menu.

This action is extremely flexible and powerful, as it allows for any kind of external call.

To use the Salesforce API, we first need to create an API token. We will do it with our very first API action:

![](/files/a679bf1deff8de9036ec1347c0cda7c996e4c39d)

There are a couple of interesting things going on in this call. First of all, the Salesforce URL is your own, so make sure to use the base URL of your account.

The second part is the payload. The token creation API needs to be invoked with a form POST, and using MyLINK Connect, we accomplish this by selecting “From Encoded” mode. Also, the Salesforce API still needs a user in addition to the client ID and secret. You can provide your own administrative user or create a user that can generate an API token.

If this call succeeds, the result returned by the API will be stored by MyLINK Connect in the configured “salesforce\_token” variable. The resulting data is a full JSON model similar to this:

```json
{
     "access_token":"...DCadsfaqweSAKDSLklerdaoijwqeoif...",
     "expires":3600
}
```

We don’t need everything. We just need the access\_token value. Thanks to MyLINK Connect’s native support of [complex JSON models](/actions-and-operations/dynamic-parsing#json-objects), we can use our variable directly without resorting to any custom script: accessing the values of a JSON model is no different from accessing the value of a simple variable.

Now that we have our token, we can add another API action and call the Salesforce Cases endpoint to create a new support case. Inside the payload, this time, we are writing the full JSON model that the [Salesforce API](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart_intro.htm) expects.

![](/files/c5f6af7daddcd44b8f19ff1994513c0a7c35dcc4)

See how the token was used by simply referencing the model value? This can be done everywhere, in any MyLINK Connect action!

If we repeat the previous flow, choose to talk to a human, and head to our Cases section inside Salesforce, we will find the new case created with the data we just sent using our API.

The case can now be handled by the support team.

![](/files/bbc6d2cb0bc3ac4bf4d2ed176e47081f096e17f1)

If we stopped here, our example would already solve many scenarios…but it would be a little too limited.

The biggest missing piece in this integration is that our support team has no way of contacting the user back and interacting in a real chat.

What we need to do is add a **piece of the MyLINK Connect conversation directly inside Salesforce**. This way, our support team can chat directly with the customer who is having the issue in real time and be ready to answer any question without going back and forth with email and one-way messages.

## Exporting the current conversation

To allow our support team to get in touch with our customer in the very same conversation that created the case, we need an incredibly powerful feature of MyLINK Connect called the [Unique Conversation URL](/actions-and-operations/flow/create-conversation-url-action).

![](/files/2541653703fb8199c75de0bb1e4c511941315173)

Using the [Conversation URL Action](/actions-and-operations/flow/create-conversation-url-action), MyLINK Connect can generate a unique URL pointing to that single conversation and make it accessible for a given time window.

The URL is built so that it can be shared as a view-only or even as a take-over view where a destination operator can interact with the user.

While the URL will display a web view of the conversation, the **real exchange happens from MyLINK Connect to the real customer channel.**

This means that our customers will receive the messages on the platform being used and that our operators do not need to engage on the same channel: our operators do not need to use a WhatsApp account or a Facebook account since they will just chat with users through MyLINK Connect seamlessly.

![](/files/99b633e9412dd9feb28e66e8c556f81c5fd08b66)

## Extending the Salesforce Database

Generating the URL is very straightforward, but what we really need is a field where this information can be stored in Salesforce. To do so, we will need to customize the Cases table.

To edit our case table, we need to head back to the Setup section of Salesforce. This time, we’re going into the “Object Manager” menu that you can see at the top.

From there we scroll down to find the “Case” object we need to edit.

![](/files/a927c56a4dc6e2544652a0046dd8d73838382b20)

In the menu that appears, click on “Fields & Relationships” and then on “New” to add a new field.

The name of the field is up to you. As long as it doesn’t already exist, it will be fine. For our example, since it is going to hold the MyLINK Connect Conversation URL, we’re going to call it “MyLINK Connect Url”. Since MyLINK Connect will create a fairly short URL, a text field with a length of 255 characters will be more than enough to hold all the data we need.

Once created, in the full fields list or in the field detail, take note of the Salesforce API field name. This is the real name of the field for Salesforce and it is the one we need to mention in our updates.

![](/files/f7a4a15ed48f02b3360cf069ba6c068c24c6006e)

Now that our case has been modified, all we need to do is make a small change to our flow in MyLINK Connect so that the URL is also sent to our case. The [Share Url action](/actions-and-operations/flow/create-conversation-url-action), when executed, will create a variable holding the unique URL value. We will send this to Salesforce.

![](/files/b2fd400133c79d6ab947af5e6a9ac21a4aff0445)

If we create a new case from MyLINK Connect and we go back to the detail page, we will find the shared URL set as expected.

Nice, but still not quite the type of integration we’re looking for. We cannot ask our operators to copy/paste the URL or anything like that. We do want the conversation to appear inside the Salesforce page.

## Creating a Salesforce Component

To bring MyLINK Connect inside Salesforce, we need to create a Lightning Component that can be hosted inside a Salesforce page. This may sound difficult, but it is actually fairly easy and, once done, it can be reused anywhere.

![](/files/e11bdcbd6639f2936fe4223242f3450e10c03b44)

To create our component, open the Developer Console window from Salesforce. From the menu there, select “New” and then “Lightning Component”.

The component itself is built around a kind of HTML/XML notation that merges standard HTML with Salesforce objects. We don’t really need much complexity, since MyLINK Connect is doing all of the heavy lifting here. All we need from this component is access to the current case data and the MyLINK Connect URL field we just created.

Copy and Paste the component source below and your component is done:

```xml
<aura:component implements="force:appHostable,force:hasRecordId,flexipage:availableForAllPageTypes" >

    <aura:attribute name="record" type="Object"/>
    <aura:attribute name="simpleRecord" type="Object"/>
    <aura:attribute name="recordError" type="String"/>

    <force:recordData aura:id="recordLoader" fields="xenioo_url__c"
      recordId="{!v.recordId}" targetFields="{!v.simpleRecord}" targetError="{!v.recordError}"
    />

    <iframe style='width: 100%;min-height: 625px;border: none;border-radius:4px;' src='{!v.simpleRecord.xenioo_url__c}'></iframe>
</aura:component>
```

It looks complicated, but it is not. We’re just telling the component that we need the current record and that we’ll be reading the MyLINK Connect URL value. From there, we use the URL value to set the source for a simple iframe page. The iframe will display the MyLINK Connect conversation URL.

Once the component has been updated we can save everything and close the Developer Console.

## Changing the Case Page

If we head back to our case page, we can now add our MyLINK Connect Lightning Component to the page. To do so, we can just click on the Edit Page menu you can see in the top-right area. This action will activate the page editor.

You can place our MyLINK Connect Lightning Component wherever you like. In our example, we’re setting it in an additional tab in the details area. If everything we’ve done up until now is correct, our MyLINK Connect component will be available on the left side of the page, under the Custom Components section.

Drag the MyLINK Connect Lightning Component onto the page, wherever you like. Don’t worry if you see a sad emoji icon in the target spot. It is just MyLINK Connect telling you that there is no current URL for the conversation.

Once you are happy with how your custom page looks, activate it and save everything to go back to the real case detail.

All that is left to do now is click on the MyLINK Connect tab we’ve just created to access the component live.

![](/files/2ae4a261f6851b5ae76e928e2961cbb960a0fff9)

And there it is! Our **MyLINK Connect conversation now runs seamlessly inside a Salesforce case page. From there, we can chat with our customers**, share files, and handle our support case.

## Wrapping Up

You can now integrate any MyLINK Connect chatbot and conversation inside Salesforce Cases. The Salesforce API lets you exchange data with just about everything, so now that you know the way, there are no limits to the depth of your integration!


# Artificial Intelligence

## <mark style="color:blue;">AI Integrations</mark>

### <mark style="color:yellow;">Natural Language Processing (NLP) Engine</mark>

The NLP Engine is a type of Artificial Intelligence that MLC chatbots utilise to improve the user experience. NLP can be seen when chatbot users are given the opportunity to free-type a reply. From this written response, the system will then detect keywords used by the user to detect the most relevant pre-orchestrated user journey. The chatbot will then respond with the most appropriate next journey or a fallback interaction designed to inform the user that their request is not possible.

&#x20;For those with large volumes of knowledge-based documentation and the ability to train OpenAI’s mechanism, access to Large Language Modelling (LLM) is also possible. This allows the creation of a bot with enough knowledge to produce meaningful and reliable responses.

MyLINK Connect utilises AI via integrations from OpenAI. For more specific and technical details that are not listed below, please get in touch with our team where we will be happy to go into greater detail.

### <mark style="color:yellow;">Intents</mark>

The collection of freely written phrases used by your customers to trigger specific user journeys can be called intents. You may title one of your intents ‘Booking Requests’ and ask the bot to send users to a hotel room booking journey that integrates with your systems. Using NLP, your bot will recognise phrases used by customers such as ‘vacancies’, ‘room availability’ to trigger this user journey.

You may also choose to update your NLP Master Container. With this all of your Connect chatbots will be able to share intents from a ‘Global NLP’, ‘Intents’ and ‘Entities’ list, eliminating the need to copy this across all of your bot creations. This means that any edits made to the global list, will automatically be applied to all chatbots. Local edits can also be made to independent bots if necessary.

&#x20;

### <mark style="color:yellow;">AI Account Creation</mark>

There are two ways to utilise AI within MLC:

<mark style="color:blue;">The first</mark> sees customers provide their own OpenAI account. A simple API key will connect the existing account to MyLINK Connect. Here Connectacts as and an enabler, where the customer is responsible for their own documentation that is uploaded to their OpenAI account.

<mark style="color:blue;">Alternatively,</mark> customers can utilise LINK Mobility’s OpenAI account. Here uploaded documentation will sit within LINK’s OpenAI account. Please also note that messages exchanged with this assistant will not be visible within the MyLINK Connect interface but rather within the LINK OpenAI account subscription.

<mark style="color:blue;">**AI Privacy & Storage**</mark>

Currently indexing, embedding, and querying of custom data training requires OpenAI. This means that questions and information indexes are sent to OpenAI servers through API.\
OpenAI does not receive the original documents but will receive the fragments generated by Llama Index RAG. Pieces of the original information supplied by the potential customer will be sent through API to OpenAI services.

By [OpenAI usage policies](https://openai.com/enterprise-privacy):

1. OpenAI will not use data submitted by customers via our API to train or improve our models, unless you explicitly decide to share your data with us for this purpose.
2. &#x20;Any data sent through the API will be retained for abuse and misuse monitoring purposes for a maximum of 30 days, after which it will be deleted (unless otherwise required by law).

The rest of the process with OpenAI is controlled by MyLINK Connect and happens on MyLINK Connect’s EU private servers.

LINK is also considering the implementation of Azure OpenAI Services. This entails a private version of an OpenAI account and diminishes data privacy concerns due to there being no multitenant involved in the processing of third-party data.  For further details, please enquire.


# Statistics & Reporting

## <mark style="color:blue;">Statistics & Reporting</mark>

It is vital to monitor the performance of your chatbot to keep up with the changing demands of your user’s world. This could include adjusting the language used or to user journey’s that you require due to a change in operations.

Bot performance can be reviewed within ‘Reports’ tab found at the top of your MLC page. Here you will be able to monitor the use of your chatbot in real-time by viewing unique users and message numbers sent in a prescribed time period.

With account access, you will automatically be granted permissions to design and build your own reporting dashboards. Your dashboard is fully customisable and can be siloed for different projects, people, or bots.

Perhaps your conversation design team require one dashboard to review drop-off points and fallbacks, however your project manager requires a high-level dashboard report on chat volumes and Goal Completion Rates. This is all achievable within your personalized dashboard settings.

<figure><img src="/files/lTrSbkiVM0b8Bfnu5bIL" alt=""><figcaption></figcaption></figure>

### <mark style="color:yellow;">What can be reported on?</mark>

<details>

<summary><strong>New Users</strong></summary>

User interacting with the bot for the first time.

</details>

<details>

<summary>Returning Users</summary>

User who re-engages with the chatbot after an elected time period.

</details>

<details>

<summary>Active Users</summary>

New and/ or returning users who engaged with the bot within a stated time frame. Active Users count does not count unique users: a new user coming back after 8 hours will be displayed as 2 active users during the selected period.

</details>

<details>

<summary>Messages (Chat Volumes)</summary>

Number of messages generated during a time period.

</details>

<details>

<summary>Unhandled Messages</summary>

Count of fallback messages or wrong replies.

</details>

<details>

<summary>Average Conversation Length</summary>

Average count of minutes passed between first message and last before the conversation becomes idle. (idle recorded after 15 minutes of inactivity).

</details>

<details>

<summary>Retention Rate</summary>

Expressed as a percentage of returning users over total number of users during a selected period.

</details>

<details>

<summary>Human Takeover Rate</summary>

Percentage of conversations that result in operator hand-over.

</details>

<details>

<summary>Average Bot-to-Human Handover Time</summary>

Average time in minutes taken for a human operator to send their first message once the conversation has been assigned to them.

</details>

<details>

<summary>Average Human Conversation Length</summary>

Average time in minutes of a conversation between a human operator and a user.

</details>

<details>

<summary>Goal Completion Rate &#x26; ROI Values</summary>

Goals are created inside the bot builder as a specified interaction called ‘goal completion’. Goals can be defined in the reporting zone by providing a name, description, unit value, measure unit, goal value and time frame (low as hourly, high as yearly).

Example goal. Daily Users Conversion Goal: Have at least 30 users transformed into leads daily.

o    Name: Daily Users Conversion

o    Default Value: 1

o    Goal: 30

o    Reference Period: Day

</details>

{% hint style="info" %} <mark style="color:blue;">Data Consolidation</mark>

All Connect data points will be collected by the application by real-time conversation events that will be consolidated into statistical data by the analytics microservice.
{% endhint %}

## <mark style="color:blue;">Performance</mark> <a href="#toc807419465" id="toc807419465"></a>

MyLINK Connect’s analytics centre provides chatbot builders and stakeholders the ability to identify conversation lengths, drop-out stages, unique versus total conversation counts and more. Our roadmap sees analytics as a key area for development. More on roadmap?

Analytics are very powerful for brands when launching and maintaining a bot. They allow the builder to recognise pain points for users and act to overcome these. It will also be valuable for brands to be able to recount the ROI and associated resources saved by using the bot. For example, a bot with 5,000 conversations, is a bot that has reduced on average 416 hours of customer service’s time (with a 5-minute average call time). Not only this but when NLP cannot determine the user’s intentions, designers can identify areas of knowledge that the bot is absent in and address this through training.

&#x20;The broad range of channels is a great pull for customers and means that should trends shift within their needs or customer base, they are easily able to shift to a different distribution channel for their bot, without the need to uproot all previous designs and work.


# Professional Services & Support

## <mark style="color:blue;">Professional Services</mark>

Professional services encompass a range of specialized activities and expertise provided by professionals to assist organizations in achieving their goals and optimizing their operations. In the context of designing customer use-cases, adding users, and managing credentials, professional services involve a comprehensive approach to streamline processes and enhance efficiency. Below are key components of professional services in this domain:

* <mark style="color:blue;">Designing Customer Use-Cases:</mark> Professional services begin by understanding the unique requirements and objectives of the customer. This involves collaborating closely with the client to identify specific use-cases tailored to their business needs. Designing customer use-cases requires a deep understanding of the industry, business processes, and end-user expectations.
* <mark style="color:blue;">Adding Users and Credentials Management:</mark> Effective management of users and credentials is crucial for ensuring secure and seamless access to systems and services. Professional services include the setup and maintenance of user profiles, access controls, and authentication mechanisms. This ensures that the right individuals have the appropriate level of access to the relevant resources.
* <mark style="color:blue;">Building User-Groups:</mark> Creating user-groups is a key aspect of professional services, facilitating the organization of users based on roles, responsibilities, or other criteria. This helps in managing permissions efficiently and ensuring that each user has access to the functionalities and data relevant to their role.
* <mark style="color:blue;">Building Standard Integrations over Open APIs:</mark> Professional services often involve the development of standard integrations using open Application Programming Interfaces (APIs). This ensures interoperability between different software systems and allows for seamless data exchange. Standard integrations simplify the implementation process and enhance the overall functionality of the system.
* <mark style="color:blue;">Building Automatic Workflow:</mark> Automation is a cornerstone of professional services, aiming to streamline workflows and reduce manual efforts. Building automatic workflows involves the design and implementation of processes that can operate with minimal human intervention. This results in increased efficiency, reduced errors, and faster response times.


# Privacy & Security

## <mark style="color:blue;">Privacy</mark>

As with all LINK Mobility products, we strive to uphold all legal and ethical practices when it comes to data protection and privacy. Connect holds 3 core privacy actions to help you remain compliant:

### <mark style="color:yellow;">Forget User</mark>

By selecting ‘forget user’ on a profile your MLC bot will completely delete all user data and conversation history it holds about that user. This is applicable across all channels.

<figure><img src="/files/4QUDuPSBxrHoU9iXt73w" alt=""><figcaption><p>How to forget user</p></figcaption></figure>

### <mark style="color:yellow;">Opt-in Permissions</mark>

As with any contact made, LINK recommends best practices to seek consent from the chatbot recipient. This may be a legal or recommended requirement in your region, and we suggest that you discuss this with your LINK account manager should you have any further questions.

MLC hosts a specific ‘Privacy Opt-in’ feature. This is a prescribed message that states that the user’s data such as name and email will be collected to support the chatbot experience further. A button linking to a full privacy policy is also provided. Chatbot users are then able to approve or refuse the terms before proceeding.

{% hint style="info" %}
**Note:** This feature is not available for voice channels including Google Assistant and Alexa.
{% endhint %}

<figure><img src="/files/7YgsWkt6I2pV5Qsz957g" alt=""><figcaption><p>Privacy Opt-in Screen</p></figcaption></figure>

### <mark style="color:yellow;">Privacy Flag Condition</mark>

This feature will allow designers to flag users based on their preferred privacy settings and act accordingly.

<figure><img src="/files/0W3MtU5A7hFHTeUxVv7A" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: This feature is not available for voice channels including Google Assistant and Alexa.
{% endhint %}

## <mark style="color:blue;">Security</mark>

LINK's objective is to ensure availability, integrity, and confidentiality of our platforms. ​

We operate in tier-3 certified data centre's that feature redundant connectivity, restricted physical access, video surveillance, fire protection and 24/7 NOC monitoring.

We follow best practices on information security outlined by the ISO 27001 standard.


# GDPR

## <mark style="color:blue;">GDPR Compliance Comment</mark>

LINK and Connect operates in accordance with GDPR regulations. ​Our platforms are under constant care of a Data Protection Officer. ​Our portfolio has been built and designed with privacy in mind. ​We apply external testing to ensure maximum level of protection.

For further specific questions, please get in touch with our team and we will be happy to help.


# Your Account

MyLINKConnect offers a number of upgrade paths that will allow your chatbot to grow together with your business requirements. Not just pre-made plans but fine-tuned solutions for all your needs.


# The Trial plan

As you signup to MyLINK Connect, you will be assigned automatically a 60 days trial account.

**We strongly believe in the power of trying and testing** each and every feature and we are sure that after trying and understanding the power of Xenioo you will choose the [upgrade path that suits you most.](/basic-concepts/your-account/upgrading-from-free)

### **Duration of the Trial Account**

The trial account will expire after 60 days from the day of your signup. After 60 days, if you do not chose to upgrade to a premium plan, your account as well as any related information will be deleted.

### Testing premium chatbot features

Each and every MyLINK Connect chatbot action is free to be tested and tried with your trial account.

Sometimes, while designing your chatbot, you will encounter some actions marked as premium: **these actions can be used and previewed at will** from your trial account.

![](/files/-LdYzKL9aRcOgeTyVLB7)


# Custom AI Provider

By default, the Conversation Translation, Image and Text Generation features use the **Link Mobility** provider. If you prefer, you can configure your own AI provider for each feature in the **Profile Settings**.

<figure><img src="/files/9zburnegZ3liTk3H6tu9" alt=""><figcaption></figcaption></figure>

<div><figure><img src="/files/Q8jckjbiqflO8L552TUX" alt=""><figcaption></figcaption></figure> <figure><img src="/files/LdiDaTVaCytGCTvJLjiO" alt=""><figcaption></figcaption></figure></div>

**To switch to a custom provider:**

1. Open **Profile Settings**.
2. Go to the AI Settings detail
3. Select the desired feature tab
4. Turn **off** the **Default Provider** toggle.
5. Enter your custom AI provider details:
   * **Provider**
   * **Version**
   * **API Key**
6. Click **Update** to save your changes.

<figure><img src="/files/r2oWiygrzkvn2mnbh0be" alt=""><figcaption></figcaption></figure>

Once your settings are saved, using that feature will consume tokens from your configured AI provider instead of the default Link Mobility provider.


# Upgrading your trial

If you wish to upgrade from a trial account to a full premium account all you need to do is select the "Upgrade" button you see near any of the premium plans you see under your account section.

Step by step:

* Click on your avatar icon on the top right corner of the MyLINK Connect page
* On the left menu, click on Active Subscription
* Select the plan you prefer and click on the "Upgrade" button<img src="/files/TW2q9h7fNEPJRMCnsF3h" alt="" data-size="original">
* In the upgrade dialog that will open, make sure to fill any relevant information about your business\
  ![](/files/Dwi9C4VutY9bdM7r8jnd)
* Click on "Send Contact Request" to submit your request
* You will be contacted by a LINK Mobility sales representative that will help you chose the upgrade path that best suits your business.


# Additional Packages

MyLINK Connect is built around multiple modules that can be enabled depending on your bot design requirements.

Here is a small list of all of the Connect optional modules. Make sure to get in touch with your [LINK Mobility](https://www.linkmobility.com/) sales representative to get more details and information.

| Module                                                                                                 | Description                                                                                                             |
| ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| [Channels](/basic-concepts/publishing/channels)                                                        | Enables one or more channel communication provider.                                                                     |
| [Conversation Events](/basic-concepts/chatbot-details/chatbot-settings/integration#events-webhook-url) | Allow each bot to have a unique, external REST endpoint that can receive conversation events.                           |
| [Automatic Backup](/basic-concepts/chatbot-details/backup-and-restore#automatic-backup)                | Activates automatic bot backup for every major update to any bot inside an account.                                     |
| [On Demand Broadcast](/broadcasts/scheduling/basic-settings/on-demand)                                 | Enables triggering of Broadcasts using a custom REST Endpoint.                                                          |
| [Xenioo Forms](/actions-and-operations/forms)                                                          | Enables dynamic data entry forms that can be generated on demand during a conversation.                                 |
| [NLP Master](/artificial-intelligence/nlp/nlp-master)                                                  | Enables sharing of NLP training among multiple bots inside the same account.                                            |
| [Reference Clone](/basic-concepts/chatbot-details/master-and-child#working-with-a-master-bot)          | Enables sharing of bot content among multiple bots inside the same account.                                             |
| [Pro Team](/basic-concepts/chatbot-details/chatbot-teams)                                              | Increase the maximum number of team members that can be invited to your bot and enables fine-grained permission access. |
| [Campaigns ](/broadcasts/campaigns)& [Distribution Lists](/broadcasts/distribution-lists)              | Enable use of campaigns and distribution lists for every bot inside the same account                                    |
| [Database](/database/xenioo-database)                                                                  | Enable use of data collections and queries inside all bots of the same account.                                         |
| [SSO Login](/connect-api/globa-platform-api/platform-sso)                                              | Allows SSO login from external sources.                                                                                 |
| [Global Platform API](/connect-api/globa-platform-api)                                                 | Allows direct access to multiple API endpoints for deeper integration with your bot data and structure.                 |


# Canceling your current plan

If you are currently using a trial account, you can cancel your current Connect plan by simply deleting your account.

If, instead, you're currently subscribed to a premium Xenioo account please get in touch with your [LINK Mobility](https://www.linkmobility.com/) sales representative for every information.


# Deleting your account

Deleting your account means that all your account information as well as chatbots, conversations and any other data associated with your account, will be deleted forever.

In order to delete your account:

* Login to your MyLINK Connect account
* Click on your account avatar icon, on the upper right corner of the page
* Select "Account"
* Click on "Delete Account" on the left menu

![](/files/-M5SNDcrGY2VabKoPibU)

Logging and general platform usage is immediately disabled after confirming deletion. Physical deletion of all data is carried on within the next 5 working days.

Any automatic subscription to MyLINK Connect mailing list must be manually deleted by clicking on the "Unsubscribe" link provided in each mail message.


# Messages Count

One of the main counters of your account is the Messages Count.

MyLINK Connect messages are used as a means of counting how much your chatbot is used and are, most of the time, directly determining the cost of your chatbot.&#x20;

In the following paragraph, we will explore how this counter is affected by messages, operations, and integrations.

### Standard Messages

Very simply: every time your chatbot replies to any of your users, we count one message.&#x20;

A single bot reply may be comprised of multiple elements: for example, it could be made of two text lines and three quick buttons: all the block is still counted as one message by Xenioo.

In the image below, your chatbot is displaying a single line of text. **This is counted as one message**.

![](/files/-Ld_rlnIfshItjX0MjtW)

In the image below instead, your chatbot is displaying 2 bubbles and 4 buttons. **Still, for** MyLINK Connec&#x74;**, this is counted as one message**.&#x20;

![](/files/-Ld_rjg19G_wCQc-tvQC)

So, for both cases, MyLINK Connect will count just one message.&#x20;

After you publish your bot, pay close attention to its real-time statistical dashboard and follow closely its success verifying how many messages are used daily.

**Message count has no impact on how you build your** [**Interaction**](/basic-concepts/the-chatbot-designer/interactions_concepts) **(**&#x49;nteractions define a group of actions but do not affect how messages are counted).

{% hint style="info" %}
Any message exchanged with the bot inside the preview section, where you test and try your chatbot before publishing **DOES NOT,** of course, count toward your total messages limit.
{% endhint %}

### Action Messages

Any action that requires integration with external sources to retrieve or synchronize data will increase your messages counter by 1 upon execution.&#x20;

Any external web service or API call, any [Firebase ](https://www.xenioo.com/en/using-firebase-cloud-data-with-your-chatbot/)or [DialogFlow or IBM Watson ](https://www.xenioo.com/en/integrating-ibm-watson-assistant-nlp-with-xenioo/)integration will increase your message counter as well.

A chatbot that retrieves data from an API REST endpoint and displays the result to the user will, at least, consume 2 messages from your account quota.

Please note that the message is counted as the action executes and not if any result is produced. For example, a broadcast sending news to multiple users based on the results of an [API call](/actions-and-operations/integration/xenioo.bots.actions.base.callapiserviceaction) or [RSS feed](/basic-concepts/publishing/channels/facebook/feed-integration) may not send any message until there's an actual news but still be executed by Xenioo multiple times each day. All of these executions will add to your premium counter.

All of these actions stated below will generate an additional message during chatbot execution.

| Action                                                                                                                         | Mode                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| [IBM Watson Input and Detection](/basic-concepts/the-chatbot-designer/actions_and_operations)                                  | One additional message for each message evaluation, regardless of number of actions     |
| [Dialogflow Input and Detection](/basic-concepts/the-chatbot-designer/actions_and_operations)                                  | One additional message for each message evaluation, regardless of number of actions     |
| [On Demand Broadcast Trigger](/broadcasts/scheduling/basic-settings/on-demand)                                                 | One additional action message per API Call.                                             |
| [API Service Action](/actions-and-operations/integration/xenioo.bots.actions.base.callapiserviceaction)                        | One additional message per action.                                                      |
| [Cloud Script Action](/actions-and-operations/integration/xenioo.bots.actions.base.executescriptaction)                        | One additional message per action.                                                      |
| [Zapier Webhook Action](/actions-and-operations/integration/xenioo.bots.actions.base.integrations.zapierwebhookaction)         | One additional message per action.                                                      |
| [Firebase Document Action](/actions-and-operations/integration/firebase-database-action)                                       | One additional message per action.                                                      |
| [Mailchimp List Action](/actions-and-operations/integration/xenioo.bots.actions.base.integrations.mailchimplistaction)         | One additional message per action.                                                      |
| [ActiveCampaign Action](/actions-and-operations/integration/xenioo.bots.actions.base.integrations.activecampaigncontactaction) | One additional message per action.                                                      |
| [Post To Facebook Action](/actions-and-operations/integration/xenioo.bots.actions.base.integrations.facebookposttopageaction)  | One additional message per action.                                                      |
| [Sendgrid Mail Action](/actions-and-operations/integration/xenioo.bots.actions.base.integrations.sendgridmailaction)           | One additional message per action.                                                      |
| [Wordpress Search API Action](/actions-and-operations/integration/xenioo.bots.actions.base.integrations.wordpresssearchaction) | One additional message per action.                                                      |
| [Send Mail Message](/actions-and-operations/integration/xenioo.bots.actions.base.sendmailmessageaction)                        | One additional message per action.                                                      |
| [Send Custom Mail Message](/actions-and-operations/integration/xenioo.bots.actions.base.sendcustommailmessageaction)           | One additional message per action.                                                      |
| [RSS & Podcast Feed Action](/actions-and-operations/integration/xenioo.bots.actions.base.rssfeedreaderaction)                  | One additional message for each analyzed feed source.                                   |
| [Database Actions](/actions-and-operations/database)                                                                           | One additional message for each action that changes a database collection(save, delete) |

{% hint style="warning" %}
**Time Out**

Xenioo API Actions have by default a 10 seconds timeout. If you require a higher timeout please make sure to get in touch with us at <team@xenioo.com>.

When the timeout is increased, any call using more than 30 seconds will *count for an additional premium message*.
{% endhint %}

### Events Webhook

The [Events Webhook](/basic-concepts/chatbot-details/chatbot-settings/integration#conversation-webhook-url) will automatically transfer to a provided hook URL multiple events happening on MyLINK Connect backend for a specific chatbot.

[Calls to this hook](/basic-concepts/chatbot-details/chatbot-settings/integration#conversation-webhook-url) count as messages outgoing and will be summed to your account messages count.

### Ending your monthly messages

Message counters are reset on the 1st day of every month.

MyLINK Connect will automatically send you the first message whenever your messages usage will rise above 80% and a second one when it reaches 90%.&#x20;

If you finish the number of available messages before the end of the month, your chatbots will stop replying to your users as they don't have any more messages to use.

You can add more messages to your account by simply adding additional packages or switching to an unlimited message model by adding the no-limits package that can bill every message outside your standard messages count separately.&#x20;

The no-limits option can prove very useful if you have chatbots that can have high traffic only in specific months during the year.


# Multiple Owners

As your team grows, managing account ownership and delegation becomes more complex. Currently, Xenioo allows only one owner per account, with other users added as agents or collaborators—limiting their permissions compared to the original owner.

To address this, Xenioo now supports **multiple owners per account**, enabling full administrative control for delegated users while maintaining proper licensing and audit tracking.

With this feature, you can assign additional owners with the same permissions as the primary owner.

{% hint style="info" %}
You can add multiple owners if your license permits it. Each plan specifies how many extra admins are allowed.
{% endhint %}

**Fine-Grained Permissions**

Here is the list of permissions that can be assigned to each additional owner:

Here’s a simplified two-column table with permissions grouped by category:

| **Permission**             | **Description**                                                      |
| -------------------------- | -------------------------------------------------------------------- |
| **Chatbots**               |                                                                      |
| `ViewExistingBots`         | Can see all account bots                                             |
| `EditExistingBot`          | Can edit any bot (if no more restricting permission exists)          |
| `CreateNewBot`             | Can create a new bot                                                 |
| `DeleteExistingBot`        | Can delete an existing bot                                           |
| `CloneExistingBot`         | Can clone an existing bot                                            |
| `RestoreBot`               | Can restore a bot into the account                                   |
| **Dashboards**             |                                                                      |
| `ViewDashboards`           | Can access the general dashboards                                    |
| `EditDashboards`           | Can change the layout and name of an existing dashboard              |
| `DeleteDashboards`         | Can delete any dashboard                                             |
| `ShareDashboards`          | Can share the content of a dashboard by generating a unique link     |
| **Profile**                |                                                                      |
| `ManageProfileInformation` | Can change the account name and general contact information          |
| `ManageActiveSubscription` | Can change current subscription (future, SSU only)                   |
| `InviteAdmin`              | Can add other admins to the account                                  |
| `DeleteAdmin`              | Can remove an existing admin (original owner excluded)               |
| `UpdateAdmin`              | Can change an existing admin's permissions (original owner excluded) |
| `ViewAuditLogs`            | Can access global account audit logs and export them                 |
| **Teams**                  |                                                                      |
| `ViewTeamMembers`          | Can view the teams members list of all bots                          |
| `InviteNewTeamMember`      | Can invite other users to specific bots                              |
| `EditTeamMember`           | Can change a team member's profile                                   |
| `RemoveTeamMember`         | Can remove any team member                                           |

**Bot-Specific Permissions**

If an additional admin has **restricted permissions on specific bots**, the system will **always apply the most restrictive rule**. For example:

* An admin has full access to an account with **10 bots**.
* On **9 bots**, they retain full control.
* On **1 bot**, if they are added only as an **agent**, they will only have access to conversations (not full management).

## How to add an Additional Owner <a href="#how-to-add-an-additional-owner" id="how-to-add-an-additional-owner"></a>

**To add an additional owner:**

1. Go to your **Account Profile**.
2. Select the **Security** tab from the left sidebar menu.
3. Under **Additional Administrators**, you can manage owner permissions.

<figure><img src="/files/ecsmh7tDSYmoxX38GIwP" alt=""><figcaption></figcaption></figure>

To invite a new owner, provide their email address and configure the desired permissions.

<figure><img src="/files/Zm87vWBTWQqqlB7I7Djc" alt=""><figcaption></figcaption></figure>


# IP Whitelisting

For scenarios where security is a priority, you may need to restrict platform access to specific IP addresses instead of leaving it public.

To meet this requirement, Xenioo now supports account-level IP whitelisting. This gives the account owner full control over which IP addresses can access the platform.

### How to enable or disable IP access

1. Go to your **Account Profile**.
2. Select the **Security** tab from the left sidebar menu.
3. Under **IP Whitelisting**, you can manage your IP access.

<figure><img src="/files/49TU5P26UVEFwhmQuXWm" alt=""><figcaption></figcaption></figure>

4. Click "Add New IP Adress" button to add a new IP address.

<figure><img src="/files/RwRuVZ0ubjFREZm4HHfg" alt=""><figcaption></figcaption></figure>

### Supported IP Whitelist Formats

Supported IP entries can be a single, specific address or a wildcard pattern, enabling you to whitelist either individual IPs or entire groups.

You can whitelist IP addresses using the following specific patterns:

* **Full IP Address:** `a.b.c.d` (where a, b, c, d are numbers)
  * *Example: `192.168.1.1`*
* **Single-Level Wildcard:**
  * `a.b.c.*` - Wildcard for the final octet
  * `a.b.*` - Wildcard for the third and fourth octets
  * `a.b.*.*` - Wildcard for the third and fourth octets (explicit format)
  * `a.*.*.*` - Wildcard for the second, third, and fourth octets
* **Partial Wildcard (Prefix Match):**
  * `a.b.c*` - Matches the fourth octet starting with the number `c`
  * `a.b.c.n*` - Matches the fourth octet starting with the number sequence `n`

#### Notes:

* The letters `a`, `b`, `c`, `d`, and `n` represent valid numbers for IP octets (0-255).
* The asterisk `*` is a wildcard character that matches any digit or sequence of digits at that position.


# Designing your Chatbot

Designing is one the core steps of your chatbot creation. Take your time to grasp the concepts of the advanced MyLINK Connect approach and get the most of our design flow.


# My Bots

When you log in the first page you will see is the My Bots page which contains all the bots currently visible to the user as in the following screenshot:

![](/files/p33votjfnJAg1tJvNTcT)

Each bot is shown as a box with basic information: Title, Logo, Last publish Date, Last update Date and Channels (shown as icons).

By clicking on the EDIT button you can enter the details of a bot and will be redirected to the [Build ](/basic-concepts/the-chatbot-designer/behaviours_concepts)page which shows the bot flow.

By clicking on the CREATE NEW BOT button you will create a new bot with a default flow and will be redirected to the [Build ](/basic-concepts/the-chatbot-designer/behaviours_concepts)page.

By clicking on the RESTORE BOT button you can import a bot from a previously created bot backup.

By clicking on the BACKUP button you can create a bot backup file.

By clicking on the DELETE button (bin icon), after a double confirmation which requires the user to enter the bot name.


# Introduction

When you build a chatbot using MyLINK Connect, there are some basic concepts that you will see repeated multiple times and that need to be understood to navigate your flow design.

Your chatbot is basically split into multiple layers. Each layer details more and more specifically a unique functionality.

The highest layer is the *behavior*. A Behavior is, generally speaking, how your chatbot handles a specific situation. A behavior of your chatbot for example, may be called "Feedback Management" and handle everything related to receiving feedback from a user.

Inside each behavior, we find one or more *Interactions*. Interactions define the steps of your chatbot behavior and contain information of how exchanges with your users happens.

Each interaction will then contain one or more action. Each action defines a minimal unit containing a single step of a greater interaction. A single action can be, as an example, a speech bubble or a button or an image.

Lastly, each action may have one or more operations attached. As the user interacts with your chatbot actions certain events can be fired such as the redirections of the flow to another behavior: all of these additional events are operations.

{% embed url="<https://www.xenioo.com/en/creating-first-chatbot/>" %}


# Flow Design

The flow designer is where you will create your bot. If you started with a simple example bot you will be presented with a UI similar to the one you can see below.

<figure><img src="/files/sKgn9bK7PLPZNEKOJCfo" alt=""><figcaption></figcaption></figure>

What you're looking at is your [default Behaviour](/basic-concepts/the-chatbot-designer/behaviours_concepts), with multiple [interaction](/basic-concepts/the-chatbot-designer/interactions_concepts) boxes connected.

### Keyboard Commands

Beside common drag and drop and standard mouse capabilities, the flow designer also supports the following keyboard commands:

|          |                                                          |
| -------- | -------------------------------------------------------- |
| CTRL + C | Copy the selected action or interaction                  |
| CTRL + X | Cut the selected action or interaction                   |
| CTRL + V | Paste the previously copied or cut action or interaction |
| CTRL + Z | Undo last bot change                                     |
| CTRL + Y | Redo the last undone bot change                          |
| CANC     | Deletes the selected action or interaction               |
| CTRL + D | Clones the selected action or operation                  |

### Copy, Cut and Paste

You can copy, cut and paste both actions and [interaction ](/basic-concepts/the-chatbot-designer/interactions_concepts)within the same bot or even into another bot. Clipboard information is kept for the current client session and will be cleared as you close the current browser window.

### Undo and Redo

Any action you execute on the flow can be undone or later redone. Undo information is kept even outside of your current session, for up to 30 days.

{% hint style="info" %}
The Undo and Redo feature is enabled by your current license. If you do not see the feature enabled please make sure to get in touch to your sales representative for an upgrade.
{% endhint %}


# Behaviors

The highest abstraction layer of your chatbot flow is the behavior. A Behavior is, generally speaking, how your chatbot handles a specific situation. A behavior of your chatbot for example, may be called "Feedback Management" and handle everything related to receiving feedback from a user. You are not force to create multiple behaviors in your chatbot as much as you are not forced to create your chatbot using only one: it is up to you to choose how to organize your flow and your conversation parts. You can also change your mind later on and group all interactions into a single one or split them into multiple behaviors using the move command.

When you create a new chatbot, MyLINK Connect will automatically create for you your very first and basic Behavior.

![](/files/-LdPJUSKKbIGXrHXiogB)

Looking at the default behavior image above, we can see all of the main fields and functionalities by number:

1. This is the behavior name. This selection list will hold the full list of all your chatbot behaviors. \
   You can also change the name to anything you want anytime by double-clicking on the name (the box will allow you to edit the text) and then pressing Enter.&#x20;

   <figure><img src="/files/QR9UayMKMkS85VG1CSyR" alt=""><figcaption></figcaption></figure>
2. Using this button you can anytime add a new behavior to your chatbot. New behaviors will always be created with the two empty interactions you see.
3. This cog icon button will slide in the right panel and display the current behavior details. In the picture you already see the right panel displayed.
4. These are name and description of the selected behavior. You can change them anytime to anything that help you organize or better remember your chatbot functionalities
5. This flag makes the current behavior the start behavior. The start behavior is the entry point of your chatbot and it is where the conversation will start. Only one behavior per chatbot can be marked as the start one.
6. This code is your chatbot API Token. Behavior API tokens can be used by external integrations and other utilities to refer to your chatbot and to this specific behavior.&#x20;
7. The Add Interaction button let you add a new interaction to the current behavior.
8. The Add Operation button lets you add a [global behavior operation](/actions-and-operations/execution) to the current behavior. Refer to the actions and operations information to know which operations can be added and how.

There is no limit to the number of behaviors a single chatbot can contain.


# Interactions

Interactions define the steps of your chatbot behavior and contain information of how exchanges with your users happens. Each interaction will then contain one or more action. Each action defines a minimal unit containing a single step in of a greater interaction. A single action can be, as an example, a speech bubble or a button or an image.

We can add a new Interaction to our design by using the Add Interaction button on the behavior detail panel. Clicking on any interaction or on the small cog button on the top right of the Interaction box will reveal a number of options and details.

![](/files/-LdPJkWP_Avm3y6rftw_)

1. This is the Interaction name. You can change it anytime to anything you like.\
   It is also possible to rename the interaction by double-clicking on the name in the box itself and then pressing Enter.<br>

   <figure><img src="/files/BlEHMrbMcjboRMIOUmXy" alt=""><figcaption></figcaption></figure>
2. This flag marks the interaction as the start one. The start interaction in a behavior is the default interaction of the behavior if no interaction is specified for a specific operation.
3. The Fallback Interaction flag marks the selected interaction as the fallback for the selected behavior. The fallback interaction is engaged every time your chatbot encounters an error or something it cannot manage.

   Although an interaction can be both Start and Fallback we strongly advise to keep these two types separated.
4. The Enable User Chat flag is marked by default and specifies if the user can write something while the chatbot is in the selected interaction. Not all channels support disabling the message area: those channels will just ignore the flag.
5. Use the "Add Action" button To add a new action to the selected interaction. Actions can have different effects and display different informations to the user.
6. You can completely duplicate the selected interaction with all included actions and operations using the "Clone" button
7. Using the "Move To..." button you can choose to move the selected interaction to a another behavior or even to a new behavior. All dependent interactions will be moved and all attached or referenced "Go To" actions will automatically adjusted for you.

There is no limit to the number of interactions a single behavior can contain.

{% hint style="warning" %}
The enable user chat flag may have no effect on a  particular channel. Please make sure that your target channel supports this kind of feature before relying on it for your flow.
{% endhint %}

### The Start Interaction

The start interaction is the very first interaction that gets executed by the chatbot when no specific interaction is selected. In the chatbot default [Behaviour ](/basic-concepts/the-chatbot-designer/behaviours_concepts)it will be the very first thing that your chatbot will do for the user.

You can change the default interaction anytime by clicking on another interaction and selecting the Start Interaction toggle in the Interaction details on the right panel.

A behaviour must have one and only one start interaction. if you remove the Start Interaction flag from an Interaction, MyLINK Connect will randomly pick another Interaction to be the start one.

### The Fallback Interaction

The Fallback Interaction is executed every time your chatbot cannot process and input or an user event. For example if the user says "hello" and [no input](/actions-and-operations/input) or [global detection](/actions-and-operations/input/global-detection) catches the text, MyLINKConnect will redirect the output to this Interaction.

{% hint style="info" %}
After the Actions contained inside the Fallback Interaction are executed, Xenioo will automatically redirect the flow to the Interaction where the Fallback was triggered. You can of course change this behaviour by adding a [Go To](/actions-and-operations/flow/xenioo.bots.actions.base.gotointeractionaction) action inside the Fallback Interaction that redirects where you want.
{% endhint %}

A behaviour must have one and only one fallback interaction. if you remove the Fallback Interaction flat from an Interaction, Xenioo will randomly pick another Interaction to be the fallback one.

To force your chatbot to restart whenever something unexpected happens you may want to have an interaction to be both Start and Fallback. Although possible, this is not recommended as it may lead to odd flow redirection patterns during execution.\
A better approach is to redirect the user to a more dedicated handler or to manually [Go To](/actions-and-operations/flow/xenioo.bots.actions.base.gotointeractionaction) the designated Start Interaction.&#x20;


# Actions and Operations

Each of your chatbot [interactions ](/basic-concepts/the-chatbot-designer/interactions_concepts)can contain one or more action. Each action defines a minimal unit containing a single step in of a greater interaction. A single action can be, as an example, a speech bubble or a button or an image.

Generally speaking instead, an operation is an action that results from the triggering of the parent one. For example a button action can trigger a Go To operation or a Switch action can trigger variable change operation. Since there's no virtually limit to the type of actions and operations your can mix and match there's also no limits to the complexity of the chatbot you are going to build. You are not limited by a complex set of pre-defined options but you are instead building the execution of your flow using smaller and more configurable parts.

As you click on an action inside an operation you'll be presented with a detail panel that may look like the one in the picture below.

![](/files/-LdPJpr-swv0NjQHgMxh)

1. These arrows display flow direction. If the action redirects to another interaction you will see arrows describing visually the conversation flow.
2. In this area you will find all fields and options required to configure the selected action. Different actions will have, of course, different fields.
3. This small box will display the event that the action may fire. A button for example (or Quick Reply as it is called) may have a "On User Click" while an input action may have "On User Input".&#x20;

   As the action activates the trigger all child operations are evaluated and executed. Not all actions have a trigger so not all actions may contain child operations.
4. This button will display the operations selection dialog. Not all actions can trigger operations so not all action will have this button available.
5. This is the operation header. Clicking on the operation header will shrink it: this is particularly useful when an action has many attached operations. Each operation can be shrunk or expanded independently.
6. This is the operation delete button. Use this button to remove the operation from the action. All operations that are child of this operation will be removed.

   If your operation is lower in the operations list, an Up or Down button can be used to move the operation up or down the queue.
7. These small icons will display a warning related to specific channel limitations. Using MyLINK Connect you can create a chatbot that lives simultaneously on multiple platforms but some of them may not support some specific actions.

   If an action as a red icon for a channel it means that it is not supported while an orange icon indicate some kind of limitation. You can hover the specific icon to visualize an additional tooltip.

Each action and operation has, of course, its own defining fields: refer to our complete actions & operations guide for all the details.


# Quick Toolbar

The **Quick Toolbar** enhances bot-building efficiency by providing a faster way to construct flows. Instead of manually clicking *"Add Action"* and searching for individual actions, users can simply **drag and drop** actions directly into interactions.

#### **Key Features**

* **Drag & Drop Actions** – Quickly add actions to interactions without navigating menus.
* **Create New Interactions** – Instantly generate interactions by dragging them into the flow.
* **Generate Behaviors & Broadcasts** – Easily initiate new behaviors and broadcasts with a single action.

#### **Toolbar Behavior**

* The toolbar’s visibility state is stored temporarily within the browser session.
* Clicking the **"X"** minimizes the toolbar, sliding it to the left edge with only the tab buttons remaining visible.
* Clicking any tab button when minimized will reopen the toolbar.

{% hint style="info" %}
The Quick Toolbar is not available in the Broadcast designer
{% endhint %}

<figure><img src="/files/DGfi3ezAmO2XK2dTpj9z" alt=""><figcaption></figcaption></figure>

## **Quick Toolbar Functionalities**

### **Drag & Drop**

Actions can be dragged and dropped directly into an interaction, allowing for seamless reordering.

* If dropped **between existing actions**, the action will be inserted in the desired position.
* If dropped **outside the actions list** (within the Interaction box), it will be added as the last action.

### **Search**

A search bar enables quick action lookup by name. The search dynamically filters both the **main Toolbox list** and the **Favorites list** in real time.

### **Favorites (⭐)**

Users can bookmark frequently used actions by clicking the star (⭐) icon on any action card.

* Favorited actions appear under the dedicated **"Favorites" tab**.
* Click the star again to remove an action from favorites.
* Favorites are **persistent at the account level**, ensuring consistency across bots.

### **Channel Compatibility Filtering**

Below the search bar, channel-specific icons allow further filtering:

* Click an icon to **hide actions unsupported** by that channel.
* Active filters are indicated by a **darker green highlight**.
* Channel preferences are **saved per bot**, streamlining workflow for multi-channel bots.


# AI Tools

AI Tools is a suite of advanced features that use generative AI to assist in building flows.


# AI Content

The AI Content feature enables you to enhance text within your chatbot flow by leveraging artificial intelligence. With this tool, you can:

* Translate text into different languages and specific tones or writing styles.
* Generate new content based on your prompts or instructions.

{% hint style="warning" %}
This feature is available only with a specific license and a sufficient number of tokens.
{% endhint %}

#### How to Access and Use the Feature

1. Select the Text: Click on the text element within your chatbot flow that you wish to edit.

   <figure><img src="/files/RzYhJjcImGwepP3sf1e8" alt="" width="515"><figcaption></figcaption></figure>
2. Open AI Content: Click the AI Content button to launch the AI editing dialog

   <figure><img src="/files/LwkOCWPfIp5DEf85OXoe" alt="" width="458"><figcaption></figcaption></figure>
3. Choose one or more Options:
   * Select from predefined options in the 'Default' tab to edit the text.

     <figure><img src="/files/pO6Zxe4UxADE6YT2qOtS" alt="" width="563"><figcaption></figcaption></figure>
   * If the available options don't meet your needs, enter a custom instruction  in the 'Custom' tab to specify how you'd like the AI to modify the text.

     <figure><img src="/files/ccOY4Hx8pZIwnNmYCm8P" alt="" width="563"><figcaption></figcaption></figure>
4. Apply Changes: Review the AI-generated output and apply it to your chatbot flow as desired by clicking on the 'Apply' button.<br>

   <figure><img src="/files/dFKLQkfXBjpvvdFKzfZP" alt="" width="563"><figcaption></figcaption></figure>

   <figure><img src="/files/Ejb31M1j8kouKylPVEGb" alt="" width="563"><figcaption></figcaption></figure>
5. Save changes: Click on the 'Save' button to confirm the changes to the action.

   <figure><img src="/files/4AOapZWpcUURpsFtKF55" alt="" width="512"><figcaption></figcaption></figure>

{% hint style="danger" %}
You must have a sufficient number of Account Tokens to use this feature. Without enough tokens, interaction with the AI Assistant will be disabled.
{% endhint %}


# AI Assistant

The **AI Assistant** is a powerful tool that allows you to create or edit behaviors through a simple chat interface powered by fully integrated artificial intelligence.\
It’s designed to assist both inexperienced and advanced users in exploring available actions and parameters, helping them discover new possibilities or refine existing operations.

With this tool, you can:

* Create a new behaviour from scratch, useful as either a template or a starting point.
* Quickly edit parts of an existing behavior ( or the entire behavior ) by providing clear prompts and specifying which interactions or actions to modify. Specifying which are the interactions/actions to touch.

{% hint style="warning" %}
This feature is available only with a specific license and a sufficient number of tokens.
{% endhint %}

#### How to Access and Use the Feature

On the Build page, if your license includes AI Assistant access, you’ll see a new AI ASSISTANT button next to the PUBLISH button of your bot

1. Open the AI ASSISTANT Chat: Click the AI ASSISTANT button to open the chat dialog.<br>

   <figure><img src="/files/WbBRejmtFGCV2xq8rSkN" alt=""><figcaption></figcaption></figure>
2. AI ASSISTANT Chat: Enter your request (prompt) for the assistant and press the Enter key or click the ASK AI button to submit your prompt.<br>

   <figure><img src="/files/pXcwGFGl59zbS3lHkB76" alt=""><figcaption></figcaption></figure>
3. Apply Changes: Review the AI-generated output. If you're satisfied, click APPLY to update the current behavior.

<figure><img src="/files/kbV32ixMikwWeUtlbzgs" alt=""><figcaption></figcaption></figure>

See the result in your current behaviour.

<figure><img src="/files/zGzgcUqZ1ftskUWcqAPP" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
You must have a sufficient number of Account Tokens to use this feature. Without enough tokens, interaction with the AI Assistant will be disabled.
{% endhint %}

During the same session, it is possible to have a longer chat conversation with the AI ASSISTANT, in this case the history of the conversation will be used for the future prompt.

<figure><img src="/files/k6dE0fo6yYb5htxZEDcO" alt=""><figcaption></figcaption></figure>

If you want to reset the AI ASSISTANT's knowledge of the previous prompts simply press the RESTART button and the chat will be erased, starting from zero.


# Chatbot Details

Your chatbot has multiple default settings that can be changed as well as a full team and operators management section you can oversee directly as a standard team or pro team user.


# Chatbot Settings

The settings page of your chatbot allows you to change or review many global aspects of your chatbot. You can find in the following pages a full reference of all the fields and configurations.

###


# General Settings

The settings page of your chatbot allows you to change or review many global aspects of your chatbot.

### Bot Name

This is the name of your bot inside MyLINKConnect. Your chatbot may actually have a completely different name on other platforms depending for example on the page name for Facebook or on the bot name for telegram. The name you choose here is just for your reference inside MyLINK Connect. \
It is also possible to rename the bot on any subpage by double-clicking on the name and then pressing Enter.\
You can, however, retrieve the the value specified here at runtime by accessing the bot\_name variable.

### Bot Description

This is a general description of the chatbot. It can be whatever you like.

### Enable Type Speed

This flag will either turn on or off type speed simulation for your chatbot. If this flag is enabled, MyLINK Connect will automatically add idle indicators to your chatbot text bubbles to simulate someone typing instead of immediately send all data to the chat window.

### Words Per Minute

This is the amount of words per minute that your chatbot will be able to write if the *Enable Type Speed* flag is enabled. We recommend to use a number much higher than standard, human capable typing speed as the final user can easily move away while waiting for content to appear.

### Avatar

You can upload your chatbot avatar here. This image will be used in the global chatbot list page and as default avatar in the Web Channel configuration. Other channels will still be using the avatar image that is chosen on the specific channel configuration (e.g. Facebook will still use your page avatar).


# Localization Settings

This setting page let you configure the general localization settings of your bot.

### Time Zone

This field let you select the configured time zone for your bot. By default, the bot time zone is configured as the account time zone but it can be changed to anything different.

Time zone changes are applied when the bot is published.


# Conversation Settings

The settings page of your chatbot allows you to change or review many global aspects of your chatbot.

### Enable Automatic Read

This flag will automatically set a conversation as read whenever you click on it. If you set it to false, you will need to mark it manually as read whenever you wan to do so.

### Per-User read tracking

This flag will track the read state of a conversation for each user that can access it. Disabling this flag will set a conversation read or unread for everyone simultaneously.

### Discard any attachment not related to a Media input

This flag will discard any media content sent by the user to the bot, making instead the error message "Media Rejected" in their place, unless the bot is expecting a media to be uploaded.

### Hidden Variables

This area contains all the names of the variables you would like to hide from the [Conversations Variable Panel](/conversations/general). Variable names can be separated on multiple lines or by commas or semicolon.\
Basic wildcard notation is accepted: to hide all variables starting by ***test*** you can specify **test\*** in the list.

## Shared Conversation

### Share Logo

This image will be shown on the top left corner of every [shared conversation](/actions-and-operations/flow/create-conversation-url-action) url your chatbot is using.

### Share View Style

This style sheet will be applied to the shared conversation layout when the conversation is in **view mode**. If left empty, the default Xenioo style will be applied.

### Share Take Over Style

This style sheet will be applied to the shared conversation layout when the conversation is in **take over mode**. If left empty, the default MyLINK Connect style will be applied.

{% hint style="info" %}
When personalized, style sheets will fully overwrite the default Connect styles. Make sure to include all of the classes and subclasses required.
{% endhint %}

### Extended Conversation Variables Panel

Using these custom fields you can add a new custom tab inside the [conversation variables panel](/conversations/filtering). The custom tab will display a custom url of your choice. The custom url can reference any conversation variable that your chatbot may have collected.


# Integration Settings

The integration settings page of your chatbot allows you to change or review all values related to statistica integrations.

## Events Webhook URL <a href="#events-webhook-url" id="events-webhook-url"></a>

In the Events Webhook field you can specify a webhook URL that will receive a configurable number of events, triggered by your bot.

Your custom webhook will receive a payload containing the event associated with the flags above. Events are not grouped: each event will be delivered trough a specific call to your custom webhook.

In the included variables section you can also add one or more variables that will be included in the post payload you will receive. Variables will be automatically populated with the current conversation value.

<figure><img src="https://docs.xenioo.com/~gitbook/image?url=https%3A%2F%2F2532694803-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FvGYwUmVjfELEiJzfmWLC%252Fuploads%252F8C6xENvZ3DFy8DuBnwKF%252Fimage.png%3Falt%3Dmedia%26token%3D58017d80-ea86-4707-8503-56bb3ade0e69&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=8d61fd6b&#x26;sv=1" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Events **are not pushed to the URL in real-time** but sent once about every 30 seconds. Also, depending on queues, events delivery might differ from execution order.

If you are looking into building a real-time system based on chat messages being exchanged by your bot, the [Custom Channel](https://docs.xenioo.com/basic-concepts/publishing/channels/customchannel) would be the perfect fit.
{% endhint %}

You can find below some examples you may expect:

**Xenioo/Operator Message**

Copy

```
{
    "Type": 0,
    "ItemType": "Text",
    "Data": "Hey you, I'm your chatbot!",
    "Date": "2019-07-10T15:47:58.580873+00:00",
    "BotToken": "...",
    "AccountName": "Matelab Srl",
    "ConversationId": "...",
    "UserName":"conversation user name",
    "Channel": "TelegramChannel"
}
```

**User Message**

Copy

```
{
    "Type": 1,
    "Data": "Hello there!",
    "Date": "2019-07-10T15:47:58.5750058+00:00",
    "BotToken": "...",
    "AccountName": "Matelab Srl",
    "ConversationId": "...",
    "UserName":"conversation user name",
    "Channel": "TelegramChannel"
}
```

**Intent Update**

Copy

```
{
    "Type":3,
    "BotToken": "...",
    "AccountName": "Matelab Srl",
    "Name":"Intent Name",
    "Key":"Intent Key"
}
```

**NLP Missed Text**

Copy

```
{
    "Type":7,
    "BotToken": "...",
    "AccountName": "Matelab Srl",
    "Text":"Missed AI Text"
}
```

Each array entry can have the following fields:

| Field          | Description                                                                                                                                                                                   |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Type           | The type of entry, according to the table below.                                                                                                                                              |
| ItemType       | The item specific [visual type](https://docs.xenioo.com/actions-and-operations/integration/xenioo.bots.actions.base.dynamicreplyaction-2).                                                    |
| ItemSubType    | The subtype of the item specific [visual type](https://docs.xenioo.com/actions-and-operations/integration/xenioo.bots.actions.base.dynamicreplyaction-2).                                     |
| Data           | The content of the message. It can be either the text sent by the user or the message sent by the chatbot. If the user clicks a button this field will contain both its text and its payload. |
| Date           | The exact date of the message                                                                                                                                                                 |
| BotToken       | The unique bot token associated to the chatbot generating the item                                                                                                                            |
| AccountName    | The full name of the account generating the item                                                                                                                                              |
| ConversationId | The Id of the conversation associated to this item                                                                                                                                            |
| Channel        | The name of the channel that generated the item                                                                                                                                               |
| Text           | The text that was not detected by Xenioo AI                                                                                                                                                   |
| Name           | The name of the Intent or Entity related to the event                                                                                                                                         |
| Key            | The key of the Intent or Entity related to the event                                                                                                                                          |

Message type can have one of the following values:

| Value | Type                                                                                                                                                                                                                      |
| ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 0     | Chatbot chat message                                                                                                                                                                                                      |
| 1     | User chat message                                                                                                                                                                                                         |
| 2     | A conversation error has occurred                                                                                                                                                                                         |
| 3     | An intent was updated                                                                                                                                                                                                     |
| 4     | An intent was deleted                                                                                                                                                                                                     |
| 5     | An entity was updated                                                                                                                                                                                                     |
| 6     | An entity was deleted                                                                                                                                                                                                     |
| 7     | A user chat message was not detected by Xenioo [Automatic Intent Redirection](https://docs.xenioo.com/ai/intents#activation)                                                                                              |
| 8     | New user connected to the chatbot. The user has never contacted the chatbot before (or has been [forgotten](https://docs.xenioo.com/actions-and-operations/privacy/xenioo.bots.actions.privacy.privacyforgetuseraction)). |
| 9     | A user returned to talk with the chatbot. This event is fired only once every 24 hours even if the user comes back multiple times during the day.                                                                         |
| 10    | Take Over happened                                                                                                                                                                                                        |
| 11    | Hand Over happened                                                                                                                                                                                                        |
| 12    | The conversation hit a fallback interaction                                                                                                                                                                               |
| 13    | The conversation hit a wrong question reply                                                                                                                                                                               |

The expected Webhook reply must be a standard HTTP 200 OK. The reply body can be empty. If your Webhook fails to correctly reply to a request or is unreachable for more than 10 times Xenioo will stop any further call and alert your account with an e-mail. To re-enable the Webhook simply save again the chatbot settings and publish again your bot.

The Xenioo call will contain an authorization header with a Bearer equal to the current bot API Secret. In your own integration you can check for the correctness of the value to make sure that the incoming call is generated by Xenioo.

Each call to your hook will [count as an additional outgoing message](https://docs.xenioo.com/basic-concepts/your-account/messages-count). Xenioo will consider one single outgoing message regardless of the amount of in and out messages sent to the hook in each single push. So for example if a hook call contains 30 messages that will still count as only one additional outgoing message.

The specified Webhook is ignored if your bot is running under a free plan.

## Security <a href="#security" id="security"></a>

Each call to you custom Webhook will contain an **Authorization** header set to the source bot API Secret. Please ensure that your endpoint correctly filters any request that doesn't contain the correct value.

For additional security, enable **“Use Authentication.”** \
This exposes three fields: **Username**, **Password**, and **Challenge Authentication**.

* If **Challenge Authentication** is disabled, the provided credentials are used for standard Basic Authentication.
* If enabled, the credentials are used for challenge-based authentication.

<figure><img src="/files/xWbyGkcBDuoPGKF74DtE" alt=""><figcaption></figcaption></figure>


# Payment Integration Settings

These settings can be used to configure your LINK Mobility Payment landing page. The landing page is displayed after the payment is completed.

## Landing Page Title <a href="#landing-page-title" id="landing-page-title"></a>

The title of the landing page. It will be displayed on the browser tab.

## Logo <a href="#logo" id="logo"></a>

The logo you would like to display on your landing page. The logo will be adapted to the page width.

## Text Message <a href="#text-message" id="text-message"></a>

The text message you would like to display to your users when the payment is completed. Please note that this page is displayed regardless of payment result: your bot should still be sending an update message to your user with the payment result data supplied by LINK Mobility integration.

## Close Button Text <a href="#close-button-text" id="close-button-text"></a>

The text of the close button that will be displayed on the page. Depending on the browser, the close button might not close the current tab.


# Developers Setting

The developers settings page of your chatbot allows you to change or review configuration values associated with deeper integration.

### Public API URL

This is the public base URL for your bot API integrations. Please use this URL anywhere an [API related call is required](/connect-api/choosing-your-api).

### API Token

This code represent your chatbot API Token. Depending on the different outside integrations you will use you may need it to call specific MyLINK Connect API related to your chatbot.

### API Secret

This code is the API Secret of your bot. This value is masked and should be kept secure in your application integrations. You can create a new API Secret whenever you want by using the Reset button. Resetting your bot API secret will stop any running integration as soon as you [publish your changes.](/basic-concepts/publishing)


# Security Settings

The security settings page of your chatbot allows you to change or review configuration values associated with security and safety measures

### Discard any attachment not related to a Media input

If enabled, your bot will discard any user uploaded attachment unless related to a specific media input action in the flow.

### Obfuscate hyperlinks

If enabled, this option will automatically obfuscate links in any user generated message by replacing them with "\[Removed by security settings]".

<div align="left"><figure><img src="/files/VbzbjsEyTTe5P8ydfwso" alt=""><figcaption></figcaption></figure></div>

Disabling the option, will deobfuscate the links, making them readable and clickable again.


# Teams

The Team section is an incredibly powerful feature of MyLINK Connect that puts you in charge of who and how any additional user may access your chatbot design or features.

Using the Team section you can invite new user to work on your chatbot. Multiple users can simultaneously work on different areas of your chatbot like conversations and AI. A user may work on testing the AI NLP section while multiple team members may access the conversation section giving support to directly controlled users.

{% hint style="warning" %}
While multiple users can access and work on different sections of your chatbot only one user can work on chatbot design at any given time. \
Multiple team members simultaneously working on the very same chatbot at the very same time may lead to unwanted loss of data.
{% endhint %}

Chatbots that are shared to you are not seen together with your account chatbots. You will be able to switch to different workspaces depending on the different number of accounts sharing chatbots with you.\
\
The number of team members that your account can invite on each chatbot depends on your current account active plan and can be changed by either [subscribe to a paid plan or by adding an additional team oriented package](https://www.xenioo.com/en/pricing/).

{% hint style="info" %}
License Agents count refers to the number of agents that each bot can have. If your license grants you 3 agents it means 3 agents for each bot. If you have 3 bots, the total number of agents you can have is 9, 3 on each bot.

On each bot agents can be different or be always the same 3 agents repeated or a mix of the two scenarios.
{% endhint %}

### Adding a new Team Member

To add a new team member simply specify the member email and press confirm. The team member will be automatically created and an invitation e-mail will be sent. The team member will not be active until the invitation letter is accepted or the member logs in to a valid MyLINK Connect account.

As the invited member accepts your invitation he/she will be able to fully access your chatbots conversations, design, AI, reports and publishing capabilities.

If available for your subscription plan, team members creation and management can also be customized directly using [Global Platform API](/connect-api/globa-platform-api) interface.

### Offline and Online Operators

MyLINK Connect automatically updates users login and logout to maintain, for every live chatbot, a full list of online operators.&#x20;

### Further Reading

The following article from the official Xenioo blog details additional use cases for the Teams section.

{% embed url="<https://www.xenioo.com/en/managing-a-chatbot-customer-service-team-with-xenioo/>" %}

###


# Team Permissions

The [Pro Team package](/basic-concepts/your-account/additional-packages) can enable a number of permissions for each and very member of your team allowing you to fine-tune you chatbot access.

Right after [adding the Pro Team package](/basic-concepts/your-account/additional-packages) to your account every chatbot teams section will expand to reveal a number of possible permission you can apply to each member. These settings can be added or removed from existing members anytime, even if the members were created using a standard team package.\
\
The table below gives you a full description of all the possible settings

<h3 align="center">Chatbot Permissions</h3>

| Permission  | Description                                                                                                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| View Design | The user can access the general chatbot design flow. A user with only this permission will not be able to change any of the chatbot flow, actions and settings and will not be able of publishing the current version of the chatbot. |
| Edit        | The user will be able to change by adding, moving or deleting any part of your chatbot flow. Enabling this flag will automatically enable the View Permission.                                                                        |
| Publish     | The user can publish the current version of the chatbot and push it online on the selected channels. Some channels may still require an additional login with the target platform account.                                            |
| Backup      | The user can create a backup of your chatbot and download it on its own system. The chatbot can then later be used to restore a previous version or be restored in a different account and modified.                                  |

<h3 align="center">NLP Permissions</h3>

| Permission | Description                                                                                                         |
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
| View       | The user can view all Intents, Expressions, and Entities defined. Also allows to check and test AI through Training |
| Edit       | The user can modify Intents, Expressions, and Entities, changing contents and configuring automatic redirections    |

<h3 align="center">AI Permissions</h3>

| Permission | Description                                                                                                                                                                                                                    |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| View       | The user can access the AI section and overview each and every intent, expression and entity. The user can also view the AI detection logs and check the correctness of the current configuration in the Test & Train section. |
| Edit       | The user can edit, update and remove any intent, expression or entity. Using automatic redirection the user can may also slightly change the chatbot dialog results or flow.                                                   |

<h3 align="center">Broadcast Permissions</h3>

| Permission                         | Description                                                                                                                                                                                              |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| View Broadcasts                    | The user can view and check broadcasts scheduling and delivery but cannot send or change anything. OnDemand broadcast can still be invoked trough URL as no contextual user is applied to the REST call. |
| Run Broadcasts                     | The user with this permission can run any broadcast at any time independently from scheduling. This flag enables the global broadcast play button available in the global broadcasts list.               |
| Edit Broadcasts                    | The user can change any broadcast. Both activation and scheduling and general conversation flow can be changed at will.                                                                                  |
| View Distribution                  | The user can see any distribution list, their schedule status and delivery statistics.                                                                                                                   |
| Edit Distribution Lists            | The user can create and modify the distribution lists, even when already scheduled.                                                                                                                      |
| View Only Group Distribution Lists | [The user can see only the list of scheduled distribution lists that have been created by the same group and their current delivery state](#user-content-fn-1)[^1]                                       |

<h3 align="center">Conversation Permissions</h3>

| Permission                       | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| View Conversations               | The user can access the conversation section and read any user conversation that happened with the chatbot.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Assign Conversations             | The user can assign conversation to other operators (users that can access the conversation and take control). This flag is typically associated with a support manager profile.                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Control Conversation             | The user can take over any visible conversation. When a conversation is take over, MyLINK Connect will stop processing any incoming message and the taking over operator will be able to talk to the user, regardless of **the channel the user is using.** The operator is then capable of giving back control to MyLINK Connect and even redirect the user to a specific chatbot section.                                                                                                                                                                                                            |
| Forget Conversation              | <p>The user can initiate the conversation deletion procedure. This procedure will tell MyLINK Connect to delete and forget anything related to the user. This includes any variable, tag or conversation part that has happened inside MyLINK Connect. Any third party channel may still have saved information about the user: these information must be deleted on each platform manually.</p><p>After the user has requested deletion of its data a 60 minutes average chat ban is applied: during this period MyLINK Connect will not reply to the user or record any of this user activities.</p> |
| View Contact Details             | The user can access the global contact details panel. The global contact detail contains global variables as well as team wide notes                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| View Custom Conversation Panel   | The user can access the custom conversation panel configured in the [current chatbot settings](/basic-concepts/chatbot-details/chatbot-settings/conversation#extended-conversation-variables-panel).                                                                                                                                                                                                                                                                                                                                                                                                   |
| View Variables                   | The user can access the variables panel of the contact details, being able to view and edit both variables and tags                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Share Conversation               | The user can generate a unique link to a specific conversation that can be shared for up to 48 hours                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| View Only Group Conversations    | The user can view **only** the conversations that are associated with his/her group. If the user is not part of any group, **no conversation will be visible**.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| View Only Assigned Conversations | The user can only view their own assigned conversations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

<h3 align="center">Database Permissions</h3>

| Permission                | Description                                                                          |
| ------------------------- | ------------------------------------------------------------------------------------ |
| View Collections and Data | The user can view database collections and extract or filter any data.               |
| Edit Collections and Data | The user can change any database collections and delete, insert, or update any data. |

<h3 align="center">Audience Permissions</h3>

| Permission     | Description                                                                                                                                              |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Edit Audiences | The user can update, create or delete any existing audience. This flag simultaneously affects both Conversation Audience and Broadcast Audience filters. |

<h3 align="center">Reporting Permissions</h3>

| Permission  | Description                                                                                                                                                                        |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Export Data | The user can export detailed information on each and every conversation happened during a specific time filter. Scheduling and availability may be subject to account limitations. |

<h3 align="center">Dashboard Permissions</h3>

| Permission            | Description                                                                                                                                                                                                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| View Dashboard        | The user can access to each chatbot dashboard information detailing average users and conversation for period as well as more, in depth information. Users with this flag can also access the chatbot publishing logs to inspect errors and issues with your chatbot channels. |
| Allow Widget Edit     | The user can edit and delete the widgets inside the bot dashboards.                                                                                                                                                                                                            |
| Allow Dashboards Edit | The user can create, modify and delete the bot dashboards. The user will also be able to modify the widgets positions inside the dashboard and create new widgets.                                                                                                             |

<figure><img src="/files/NvA5wbcTq7yZKFzw4b9v" alt=""><figcaption></figcaption></figure>

### Member Group Name

This new field will appear beside the email as soon as the [Pro-Team package](/basic-concepts/your-account/additional-packages) is activated and allows you to specify a group name for each of your team members.\
Group names can later be used in your chatbot to select an operators team for your support flows as well as to automatically filter conversations based on the members teams.

Multiple group names can be specified by separating each entry with a semicolon (;). A team member part of multiple groups can be picked by the [operator action](/actions-and-operations/flow/xenioo.bots.actions.base.requestoperatoraction) for any group and can also see any conversation assigned to any group specified.

### Further Reading

The following article from the official Xenioo blog details additional use cases for the Teams section.

{% embed url="<https://www.xenioo.com/en/managing-a-chatbot-customer-service-team-with-xenioo/>" %}

###

[^1]: WARNING: The View Group Distribution Lists flag will automatically filter all the distribution lists based on the team member group. If you are not using or assigning groups, the team member may not see any distribution list.


# Team Message Templates

Team Message Templates are chat messages you can create for each and every chatbot in your account once you enable the [Pro Team package](/basic-concepts/your-account/additional-packages).

Message Templates are useful precompiled messages you can assign to your operators (to all of them or just to a selected few). Your operators will then be able to use them to quickly reply to your customers during support. A shared messages pool helps unifying your business communication by making sure that all of your operators use the same wording on specific topics.

![](/files/-MM542janogUi3ZoM96H)

All the message templates you create are visible in the lower commands section of the conversation area. Your operators will be able to see only the messages that are assigned to them.

Template messages are [dynamic](/actions-and-operations/dynamic-parsing): the can contain variables based on the current contact flow.

Enabling the "Visible to shared conversations" flag will automatically make the message template visible to every [shared take-over conversation url](/actions-and-operations/flow/create-conversation-url-action).&#x20;


# Team Member Access

For all intent and purpose, a team member is a fully functional Xenioo account. A team member has its own email and password access (after signup) and, by default, a free account.

Each team member can access its own account and build private chatbots and even upgrade its own account to any premium type. A team member may be managing other team in his own chatbots seamlessly.

When a user who is part of a team logs in, MyLINK Connect will automatically execute one of the following actions:

* If the user is part of a team of only one account, he will be redirected to that account by default;
* If the user is part of more than one team, an account selection window will be presented.

![](/files/ys1ZMDgiJXV6X1bFubfC)

If the user is in any of the above scenario but has already chosen an active account previously, he will be redirected to that automatically.

As a team member, a user can always change the active account by using the Switch Account command on the account avatar context menu.

![](/files/DYQFKtcLlriucCDzZn6f)


# Backup & Restore

The Backup & Restore features of MyLINK Connect let you backup your chatbot anytime and how many times you want to later restore it, overwriting your current chatbot or creating a new one.

The MyLINK Connect backup format **is self contained** and can be even restored to another account completely different from the one that have created the chatbot originally. Free and premium account can both backup and share their chatbots with other accounts and publish them as their own (provided the features used are [inside their respective plans](/basic-concepts/your-account/the-free-plan)).

MyLINK Connect automatically keeps a version number for all your chatbots. This internal number is updated whenever your change, even slightly, your chatbot and is reflected automatically on your default backup filename. Use this number to quickly check which of your backups are more recent.

{% hint style="warning" %}
If you chose to restore your bot as a new bot, both API Token and API Secret will be changed. The new restore bot will have both these values reset. This also happens automatically if the bot is restored into another account.
{% endhint %}

The following table details all information contained in each MyLINK Connect backup file.

| Information                            | Backup                 |
| -------------------------------------- | ---------------------- |
| Chatbot flow and Design                | Full                   |
| NLP, Intents, Expressions and Entities | Full                   |
| Publishing Information and settings    | No                     |
| Scripts, Integrations and automations  | Full                   |
| Broadcasts                             | Full                   |
| Audiences                              | Filter Definition Only |
| Conversations and Users                | No                     |
| Reports and Statistics                 | No                     |

## Automatic Backup

By adding to your account the [Automatic Backup additional package](/basic-concepts/your-account/additional-packages) you will enable additional backup and restore options.

Automatic Backup will allow MyLINK Connect to automatically create a backup of your chatbot on specific events such as&#x20;

* Before Publishing
* Before deleting a behaviour
* Before deleting an interaction
* Before moving an interaction to another behaviour

These backups can then later be restored in case you wish to revert to a previous version of your chatbot. Backups are kept for definite amount of time, according to [standard retention](/conversations/data-retention).

{% hint style="info" %}
Automatic backup will only store information related to the current bot design, broadcasts, campaigns and NLP training.&#x20;

Database, conversations and any other information is not included in the backup.
{% endhint %}


# Master and Child Bot

Any bot inside your account can be quickly cloned by using the supplied "Clone" button. Each bot clone is, by default, a full clone of the original bot and becomes completely detached from it. Any change you make to the original bot is not reflected on the cloned bots.

![](/files/-MUP2Ym2-kj_uVaN4gft)

An optional MyLINK Connect package called "Clone Master" can enable an additional way of cloning bot named "reference clones".&#x20;

## Reference Clones

A reference clone is a bot that remains attached in all content and features to its original source. As soon as you create a reference clone, the original bot will become the "Master Clone" bot and all of the clones will be considered children of the master.\
Visually, you'll notice a crown near any Master Bot you have in your account and a link symbol to each child bot. Hovering over the symbols will let you know how many children the master has or who is the master of a child.

![](/files/-MUP6pu64L2qo2WZUu9X)

### Working with a Master Bot

A master bot is a bot that has at least one reference clone. It can be modified and changed exactly like any other bot. You can build your flow, train AI or add broadcasts freely both before and after creating your reference clones. A Master bot can be online on any channel and carry on its own conversations like any other bot.

The only difference between a master bot and a standard bot is the ability to update all the reference clones with any update made at any given time. A master bot has an additional button just for that on the main design toolbar.

![](/files/-MUP7kyohTqqAmFjA-eS)

The Update and Publish button automatically updates all reference clones, propagating any changes made to the master bot.

### Working with a Child Bot

A child bot is a bot created from a Master Bot, as a reference clone. By default, each behaviour, intent, broadcast and audience will be locked: they cannot be changed as they are reference by the Master Bot and will be updated automatically.

![](/files/-MUP8s2LkDDN80TIPbfm)

You can change the status of each content by selecting the "Detach" button. If you detach a part of the bot from the Master Bot, it will not be automatically updated by the Master Bot and will become local to the child bot.

You could, for example, create a Child Bot that has just one detached behaviour, where you place all local bot configurations.

### Managing Master and Child Bots

Even if a bot was not originally created using the **Reference Clone** feature, it can still be attached to a master bot at any time.

In the bots overview list, click the **chain icon** next to the standard action buttons for the bot you want to attach. This will open a dialog where you can select another bot from your account to act as its master. If the selected bot is not already a master bot, it will automatically be promoted to one.

Once confirmed, MyLink Connect scans the information in both the master and child bots and links them together as if the child bot had originally been created as a reference clone.

<div align="left"><figure><img src="/files/Rykxt4SaIdmsbfwbGPzO" alt=""><figcaption></figcaption></figure> <figure><img src="/files/YOJ41YLZvW30GjDyXr2U" alt="" width="324"><figcaption></figcaption></figure></div>

#### Managing Child Bots from a Master

You can also manage all child bots attached to a master bot by clicking the same **chain icon** on the master bot itself. In this case, the dialog will display a full, searchable list of all bots in your account.

From this list, you can:

* Select bots to attach as children
* Unselect bots to detach them
* Apply your changes by clicking **Save**

All selected bots will become (or remain) children of the current master bot. Any unselected bots will be detached from the master reference, if applicable.

#### Managing Master Bot from a Child Bot

To change the master bot of a child bot, click the **arrows icon** next to the standard action buttons for the child bot. This opens a dialog where you can select a different master bot.

Once confirmed, the selected bot becomes the new master for the child bot.

<div><figure><img src="/files/CCVHVSr0r1UZyjz3pHk3" alt=""><figcaption></figcaption></figure> <figure><img src="/files/sFLVRXQcL9fu9LVX4NBx" alt="" width="486"><figcaption></figcaption></figure></div>

When attaching a child bot to a master bot, you can choose how information is synchronized between them. There are three available connection modes:

#### 1. Attach (Default)

Attaches only information that already matches between the master and child bots.\
Any information that differs between them is left unchanged.

#### 2. Smart Overwrite

Overwrites matching information from the master bot, even if differences exist.\
Any behaviours, broadcasts, or other elements that are **not** present in the master bot are preserved in the child bot.

#### 3. Overwrite

Completely replaces the child bot with the master bot’s information.\
Any data, behaviours, or settings not present in the master bot are removed from the child bot.

### Master Bot And NLP Master

Master bots can use [NLP Master](/artificial-intelligence/nlp/nlp-master) intents. NLP Master intents will be inherited by child bots.


# Publishing

MyLINK Connect publishing process is meant to be fast and straightforward. Each channel has its own configuration and powerful settings.


# Live & Draft Chatbots

MyLINK Connect uses a unique Live & Draft approach for all of your chatbot data that allows you to work on your chatbot without harming your live services.

Every update you do (with the single exception of specific broadcast settings) are reflected to your chatbot only when you press the publish button on the main designer page.

While you edit your chatbot you never stop, change or in any way alter the contents or the setting of your live chatbot. As your press publish, your current draft is transformed into a full live instance and all your channels are updated.


# Publish Your Bot

When publishing your bot you are sending online your current flow. Your chatbot will start to reply and interact with users on each [channel ](/basic-concepts/publishing/channels)you've selected.

Each [channel ](/basic-concepts/publishing/channels)has multiple specific configurations that can managed from the publishing dialog you can open by clicking on the blue "PUBLISH" button.

![](/files/-M6hrMi_gKkAkk7A4CjJ)

The publish dialog shows all of the channels that are available for publishing and highlights them with different colors:

| Color   | Meaning                                                                                                              |
| ------- | -------------------------------------------------------------------------------------------------------------------- |
| Default | The chatbot is not online on the channel and it is not yet configured to go online there.                            |
| Green   | The chatbot is published and online on this channel.                                                                 |
| Blue    | The channel is correctly configured but the chatbot is not online. The channel may be disabled or not yet published. |

### Taking Offline the chatbot

If you wish to take offline your chatbot on one or more channel all you need to do is to open the publish dialog and, for each channel you wish to take offline, click on the "Enabled" checkbox you can see on the top right corner.

If all channels are disabled your chatbot will go completely offline and stop accepting any kind of interaction on any channel.

{% hint style="warning" %}
After disabling the channel remember to save and **publish** your chatbot to confirm all changes. If you do not confirm your changes using the publish button no changes will be made to your live chatbot.
{% endhint %}

<br>


# Channels

MyLINK Connect channels are an ever growing collection of chat and voice platforms where you chatbot can live and communicate with users.


# Web

The MyLINK Connect Web plugin can integrate your chatbot in any web page regardless of the underlying technology.&#x20;

By leveraging all the different functions and methods offered by our default integration script you can [drastically change both appearance and behavior of your Xenioo chatbot](https://github.com/xenioo/Snippets/tree/master/Web%20Chat).

{% embed url="<https://youtu.be/qFfGnlPDeRM>" %}

## Embedding MyLINK Connect into your web site

To embed MyLINK Connect chat widget after publishing, you can just copy and paste the embed example you can find in the "How To Embed" tab of the publishing page.&#x20;

There are three ways to embed the chatbot in your web site.

### Chat Widget

This is the standard way to insert the chabot in your page as a chat widget.

![](/files/-M4E_1FlEFrmsWfUZ-xm)

The position of the embed code inside the page is not relevant: the MyLINK Connect web widget will automatically and quickly create all the required components as child of your page body, without arming your existing page layout.

### Embed

You can embed the full chatbot conversation area in any point of your web page.

![](/files/-M4EZtBYw378Brgj_oC8)

### Full Page

You can host your entire chatbot conversation area full page in your web site.

![](/files/-M4EaI7xIH6PdT3EjjcV)

### Web channel and conversations

Conversations happened inside the Web Channel are saved by MyLINK Connect **only** if the user has interacted with the chatbot at least once.&#x20;

This is done automatically by Xenioo to avoid cluttering your conversation are with potentially thousands of conversations that never had any interaction beside the chatbot initial greeting.

For this reason, your [messages count](/basic-concepts/your-account/messages-count) **may differ** from the one you could infer from checking the actual conversations list.

{% hint style="info" %}
You can disable this default behaviour by setting the variable **override\_web\_forget** to **true** in any conversation you would like to keep, regardless of any interaction hanppened.
{% endhint %}

## General Channel Settings

### Domains

In this field you **must specify** the list of domains that will implement the MyLINK Connect chat widget. You must use the full domain name (e.g. [www.mysite.com](http://www.mysite.com)). Multiple domains can be specified by dividing each entry with a semicolon (;). *Your chatbot script will fail to initialize until the hosting domain is specified in this this field.*&#x20;

If, after publishing don't see the chatbot widget visible on your page try opening your browser console and check for the following message:

**`This`** MyLINK Connec&#x74;**`chatbot is not correctly configured. The chatbot is not published or the current domain is not whitelisted. Please review your settings or contact`** MyLINK Connect **`support.`**

If you see this message, please make sure that the full name of the domain hosting the MyLINK Connect web widget is specified in this field.

### Display History

Each user is automatically identified by a unique id and MyLINK Connect chat widget is capable of recalling the original conversation on each subsequent visit. Enabling this flag will force MyLINK  Connect to load any previous conversation inside the web widget. If this flag is disabled the conversation will always restart from the beginning at each web page visit.

### Enable Sounds

Enable this flag to enable small chat sounds alerting for new messages when the chat widget is minimized.

### Enable Text Bubble Html and Scripting

Enable this flag to allow tags and scripts inside your chatbot [text bubbles](/actions-and-operations/content/xenioo.bots.actions.base.textaction).

## Voice

### Language

Set the voice language to be used when initializing the browser text-to-speech and speech-to-text engines. Additional voices can be set using [scripting](/basic-concepts/publishing/channels/web/widget-customization/scripting).

### Enable User Voice

Enabling this flag will enable speech-to-text on supported browsers. Your users will be prompted to allow microphone use by your web page. When enabled, this flag will display a small microphone near the send button of the chat area: the user can use that button to talk to the chatbot and send commands directly using his own voice.

### Enable Text Reader

This flag will enable a small speaker icon on the top right corner of the chat widget and will enable the browser text-to-speech engine. If the speaker is turned on by the user, every text bubble will be read using the browser default voice or one of the configured voices.

### Reader Specific Voice

In this area you can specify one or more voices you would like to be used by your chatbot. Different browsers may support different voices. MyLINK Connect will try to configure a preferred voice starting from the first one to the bottom one, picking the first one existing.\
Please not that event when having the same name, different browsers and platforms may choose different pitch, intonation or general tone altogether.

{% hint style="info" %}
All of the voice options are not available to [free accounts](/basic-concepts/your-account/the-free-plan).
{% endhint %}

## Behavior Settings

### Chat Widget Appear Delay

Use this setting to choose after how many seconds the chat avatar icon will appear on your web page. Setting a value of 0 (zero) means the avatar icon will appear as soon as the chat widget is initialized.

### Wait for Widget Click

Enabling this setting will force MyLINK Connect to start the chatbot only when the user actually clicks on the widget avatar icon. Enabling this setting may help you *save some monthly messages on high traffic websites* since no interaction is really fired until the user actually clicks on your chatbot.

{% hint style="info" %}
The Wait for Widget Click option is not available to [free accounts](/basic-concepts/your-account/the-free-plan).
{% endhint %}

### Auto Display Chat Delay

This value sets the amount of seconds after which the chat area will automatically open without the user interacting. The default is zero seconds that translates to no automatic display.

### Disable Auto Display On Mobile Devices

Enabling this flag will disable chat area opening on mobile devices if configured through the Auto Display Chat Delay option.

### Disable Auto Display For Returning User

This flag will prevent the web chatbot from automatically opening if the user has already visited your web page.

### Disable Auto Display After First Conversation

This flag will prevent the web chatbot from automatically opening if the user has already had a conversation with it.

### Display Callout Message Bubble

This feature will display a bubble outside of the avatar area containing the same text you've configured in the start [interaction ](/basic-concepts/the-chatbot-designer/interactions_concepts)and with the same delays. If you select "Display First Message", only the first interaction message will appear in the callout bubble.<br>

![](/files/-LdssM8WBqn0V2qDRzlu)

### Context Menu Mode

This setting changes the way context menus are displayed by the web plugin. By default context menus are displayed as a 3 lines button near the chat text area.

Choosing "Floating Dialog Window" instead will display the menu as an external window similar to the "Floating Card" content.

The floating menu content is managed by adding [Nested](/actions-and-operations/cards/additional-buttons/xenioo.bots.actions.base.operations.buttonnestedoperation), [Text ](/actions-and-operations/cards/additional-buttons/xenioo.bots.actions.base.operations.buttonpostbackoperation)or [URL ](/actions-and-operations/cards/additional-buttons/xenioo.bots.actions.base.operations.buttonurloperation)buttons at bot level inside your chatbot design. No context menu will be displayed on your chat area until the context menu has been configured.

#### Open Automatically

Enable or disable automatic display of the context menu. This setting applies to both context menu visualization modes.

#### Floating Dialog Title And Text

Use these boxes to change the text that is displayed by the Floating Dialog Window context menu. Since the floating menu is built as the chatbot starts, only runtime, pre-defined variables are available for [automatic parsing](/actions-and-operations/variables-and-tags).

{% embed url="<https://youtu.be/t0JQbA2nS9A>" %}

## Chat Area Settings

### Send Button Text

Enable or disable the standard send button on the right of the user chat text area. This setting is off by default.

### Message Time Text

This is the default text used under each MyLINK Connect reply part to display the time of the message. You can change the text to anything you like using these pre-defined format placeholders:

| Format | Value                                                    |
| ------ | -------------------------------------------------------- |
| HH     | 24H format hours value (eg. 14, 18 etc)                  |
| hh     | 12H format hours value (eg. 11, 12 etc)                  |
| mm     | Minutes                                                  |
| ss     | Seconds                                                  |
| AMPM   | Will become AM or PM depending on actual time of message |

### Input Text Placeholder

This is the text that MyLINK Connect will display as a placeholder for the user chat area

### Description

This is the text that will appear right below your chatbot title inside the chatbot widget area.

### Display Mode

Here you can choose if the chat area will be displayed as a box at the bottom right of the page or as a full height panel on the right side of the page.

### Message Start Position

This is how new messages will be displayed in the chat area. Setting Top will make the chat start from the top of the area while choosing bottom will make the chat flow from the bottom to the top.

{% embed url="<https://www.youtube.com/watch?v=h0sIUF54bOA>" %}

### Hide Message Area when Interaction User Chat is disabled

If enabled, this flag will automatically hide the bottom chat area, where the user inputs all replies whenever the current interaction is set to disable user chat.

## Avatar

### Icon

This is the image that will be used by your chatbot as web page icon and inline avatar during chat. If you already set the [global chatbot avatar](/basic-concepts/chatbot-details/chatbot-settings/general#avatar) in your chatbot settings you do not need to specify it again here.\
\
Please note that **you cannot upload an avatar** unless your account has available storage space. [Free accounts](/basic-concepts/your-account) are not allowed to personalize their chatbot avatar.

### Avatar Display

Choose if the avatar is displayed only on the title section of the chat area or beside each message.

### Display User Avatar Image

Enable this flag if you wish to see the user avatar image beside each user reply text. The avatar image is automatically retrieved from the [profile\_pic variable](/actions-and-operations/variables-and-tags).

### Bubble Position

Choose if the avatar is displayed beside the first bubble of each interaction or beside the last one.

## Style

### Background Color

This is the main chatbot background color for the web widget. The default value is MyLINKConnect Green.

### Foreground Color

This is the chatbot main foreground color. The default value is white.

### Style Sheet

Here you can upload a customized css file that will override (or be added to) the standard MyLINKConnect styles. Please note that you cannot upload a customized css file unless your account has available storage space.

### Style Sheet Mode

Using this field you can choose how your custom style sheet will be used. You can choose to completely overwrite the existing default Xenioo style or to load your custom style sheet together with the MyLINK Connect one.

Depending on the amount of customization you're going to do it may be faster to simply fully replace the MyLINK Connect style sheet or load an additional style sheet to override just some of the classes.&#x20;

## Variables

In this free text area you can specify every variable you would like to be forwarded to your client widget by MyLINK Connect. Forwarded variables are made available at client level so that your [client scripts action](/actions-and-operations/integration/xenioo.bots.actions.base.executescriptaction) or any other client script can use them at run-time.\
Forwarded variables are sent to the client *at every Connect reply* and thus are updated in real-time.

{% hint style="info" %}
Variables forwarded to the client **are not encrypted**. We *strongly advise against* forwarding any variable value that contains sensitive data as it may be accessed by a debugging console.

Variable forwarding is not available to [free accounts](/basic-concepts/your-account/the-free-plan).
{% endhint %}

## Further Reading

Just about all of the [articles](https://www.xenioo.com/en/articles/) and [tutorials](https://www.xenioo.com/en/tutorials/) by Connect (Xenioo) can be applied to our web chat plugin. Additionally, these chatbot examples can be used as basic starting points for more advanced integrations.

Web Chat Widget supports **text formatting**. See [here ](https://github.com/xenioo/Snippets/blob/master/Web%20Chat/Formatting%20text.md)to learn more.

{% embed url="<https://github.com/xenioo/Snippets/tree/master/Web%20Chat>" %}

{% embed url="<https://www.xenioo.com/showcase/2/>" %}

{% embed url="<https://www.xenioo.com/showcase/hr/>" %}


# Web Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable               | Description                                                                                                                                  |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| bot\_channel           | Set to "WebChannel"                                                                                                                          |
| web\_channel\_url      | The full URL of the page currently hosting the MyLINK Connect web plugin                                                                     |
| web\_channel\_referral | The full referral (if available) of the current page. Usually contains the URL of the page that redirected to the current web\_channel\_url. |


# WordPress

MyLINK Connect Web Chat fully supports WordPress websites. You can insert your chatbot in a WordPress page manually, by adding the code you can copy from the Web Publishing dialog or by installing our dedicated WordPress plugin.

To enable the MyLINK Connect plugin please download it from [WordPress.org](https://wordpress.org/plugins/xenioo-web-chat/) and follow basic installation instructions. Once installed and activated, under "Settings" you should find a MyLINK Connect menu voice.

Clicking on the MyLINK Connect menu entry will open the MyLINK Connect Web Chat settings.

<figure><img src="/files/rOqJ5d3g2M77qFcTvhi3" alt=""><figcaption></figcaption></figure>

The values required by the plugin can be found on the Web publishing dialog inside your MyLINK Connect chatbot:

![](/files/-MOCOpNvx2YZG-q9R8VF)

The Xenioo Version setting lets you use this plugin with either the legacy Xenioo v1 or the new MyLINK Connect v2.


# Widget Customization


# Initialization

The standard initialization script for your web chatbot can be copied directly from the "How To Embed" tab inside the [Web Channel publishing](/basic-concepts/publishing/channels/web) dialog. The script is already configured for your chatbot and will look like this one below:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("<API Token>");
</script>
```

This is the barebone initialization process: all the configuration will be read from your publish settings and nothing else is needed.&#x20;

## Advanced Initialization

The following sections will show how you can go much further with MyLINKConnect initialization to significantly manipulate how the chatbot is initialized and settings are used.

### Changing initialization settings

The initialization call can be modified to supply one or more initialization parameter that will override the settings you've specified in the [Web Publishing Dialog](/basic-concepts/publishing/channels/web). As an example, you could change the chatbot widget appearance delay like this:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("39b71741-1a09-45eb-86e4-f0c90b547d9d", {
            appeardelay:5
        }
    );
</script>
```

The above script will make the chat widget appear after 5 seconds. This parameter will automatically override the delay parameter you've specified in the [Web Publishing Dialog](/basic-concepts/publishing/channels/web) settings.

You can of course add multiple settings like in the script below:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("<API Token>", {
            appeardelay:5,
            subtitle: 'Hello from Xenioo!!'
        }
    );
</script>
```

Use the table below as a general reference for all the initialization parameters you can override:

| Parameter                  | Type    | Effect                                                                                                                                                                                                           |
| -------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name                       | string  | The title of the chat area                                                                                                                                                                                       |
| subtitle                   | string  | The subtitle of the chat area                                                                                                                                                                                    |
| style                      | string  | The full url of your custom chat style sheet                                                                                                                                                                     |
| appeardelay                | number  | The amount of seconds the widget will wait before appearing on the page.                                                                                                                                         |
| avatarinline               | boolean | If enabled will display your chatbot avatar beside each message bubble                                                                                                                                           |
| nocounter                  | boolean | Set to true if the small messages counter displayed on the widget is hidden, otherwise false.                                                                                                                    |
| enablesounds               | boolean | Choose to enable or disable the messages sounds of the widget                                                                                                                                                    |
| startopen                  | boolean | If true, the widget will automatically open as you enter the page                                                                                                                                                |
| backcolor                  | string  | The background color of the chat area                                                                                                                                                                            |
| forecolor                  | string  | The foreground color of the chat area                                                                                                                                                                            |
| autoopenchatdelay          | number  | The number of seconds after which the chat area will automatically open                                                                                                                                          |
| autoopenchatmobiledisabled | boolean | Enables or disables the automatica opening of the chat on mobile devices                                                                                                                                         |
| waitforwidgetclick         | boolean | If enabled, the widget will not retrieve any message from the server unless the user clicks on the widget                                                                                                        |
| hidetimepart               | boolean | If true, the time of each message from the chatbot will be hidden                                                                                                                                                |
| displayuseravatar          | boolean | Set to true if you want to display the user avatar beside each user message                                                                                                                                      |
| showbubble                 | boolean | If true, displays the message callout bubble near the chat widget.                                                                                                                                               |
| enabletextreader           | boolean | If true, displays a speaker button on the top right corner of the chat widget, enabling text-to-speech                                                                                                           |
| enablevoicerecording       | boolean | if true, displays a small microphone near the user send button, enabling speech-to-text                                                                                                                          |
| readerperson               | string  | The list of preferred voices that Xenioo will try to use                                                                                                                                                         |
| readerlanguage             | string  | The code of the language you would like to set for the text-to-speech and speech-to-text engines. The value must be set in the code\_CODE format (e.g. it\_IT, en\_US etc).                                      |
| speakerenabled             | boolean | If true, the bot will start using text-to-speech right away, without waiting for the user to turn it on.                                                                                                         |
| cookiedomain               | string  | Set the cookie domain name for the MyLINKConnect chatbot cookie. The MyLINKConnect chatbot cookie contains the current user-id for chat tracking. Use this setting to set an higher level domain for the cookie. |

### Initializing with Variables and Tags

Different pages on your website may need different variables or tags to be supplied to your chatbot. As an example, you could have your chatbot receive specific campaign parameters so that it can track users coming from specific ad. To do so, you supply variables or tags directly inside the initialization script.\
In the following example, we're sending the variable test:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("<API Token>", {
          variables:[
            { Name:"test", Value:"this is the value" }
          ]
        }
    );
</script>
```

In a very similar way, you can supply one or more tags:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("<chatbotid>", {
          tags:[
            "VIP_USER",
            "FROM_GOOGLE_AD"
          ]
        }
    );
</script>
```

Both variables and tags will be made available to your chatbot from the very start and can be used immediately in your flow.

Using variables or tags you can deeply customize the data used by your bot at startup. In the following example, we retrieve the current client IP and we supply the value to the current conversation as it starts:

```javascript
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
      
      fetch('https://api.ipify.org?format=json')
        .then(response => response.json())
        .then(data => {
              
              //now that we got the ip address, we forward it
              //to the conversation
              xenioowebchat.Start("<chatbotid>", {
                        variables:[
                              { Name:"ip_address", Value: data.ip }
                        ]
                      }
                  );
        })
        .catch(error => console.error('Error fetching IP address:', error));

    
</script>
```

## Starting from a specific behavior

If you want your chatbot to start from a specific behavior you can set the corresponding API token directly in the initialization script:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("<chatbotid>", {
          behaviour: "<YOUR BEHAVIOUR API TOKEN>"
        }
    );
</script>
```

This setting will override the default start behavior and change the default flow. This setting is particularly useful if you have multiple pages on your website and want your chatbot to start addressing the user differently depending on the location.


# Scripting

The MyLINK Connect widget script supports multiple functions you can use to interact with the chat from an external script or to alter chat rendering during execution.[ You can find here](https://www.xenioo.com/showcase/events-log/) an interactive example of the most widely used functions.

## Events

Events are fired as the user or the bot execute specific operations. Your script can implement these events by simply supplying your own function inside the initialization script. In the following example, the initialization script is attaching to the onChatShow event:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("<chatbotid>",{
        onChatShow : function(){
        	console.log( "Chat area is now visible." );
        }
    });
</script>
```

Below you can find the full list of the supported events:

| Event                      | Description                                                                                                                        | Parameters                                                                                            |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| onInit                     | Fired as soon as chatbot initializations is started                                                                                | None                                                                                                  |
| onReady                    | Fired when initialization ends and the chatbot is ready                                                                            | None                                                                                                  |
| onChatClose                | Happens every time the user closes the chat window                                                                                 | None                                                                                                  |
| onChatShow                 | Happens every time the user or a script opens the chat window                                                                      | None                                                                                                  |
| onChatHide                 | Happens every time the user or a script closes the chat window                                                                     | None                                                                                                  |
| onWidgetClick              | Fired as the user clicks on the chat widget on the bottom right                                                                    | calloutclicked = true if the user opened the chat by clicking on the callout bubble, false otherwise. |
| onDataConnection           | Fired whenever the chatbot is retrieving data from the MyLINK Connect servers                                                      | None                                                                                                  |
| onItemRender               | Fired every time a single item is rendered in the chat window                                                                      | obj = the instance of the chat part to be rendered                                                    |
| onElementRender            | Fired after the chat element to be rendered is ready to be added to the DOM                                                        | <p>element = DOM node instance</p><p>obj = the instance of the chat part to be rendered</p>           |
| onButtonClick              | Fired as a button is clicked in the chat window                                                                                    | say = The text of the button, command = the id of the button                                          |
| onUserSays                 | Happens as soon as the user types something in the chat                                                                            | say = the text sent by the user.                                                                      |
| onChatInteractionStarted   | Fired as soon as MyLINK Connect starts rendering the first interaction chat element                                                | None                                                                                                  |
| onChatInteractionCompleted | Fired as soon as interaction rendering is done and control is given back to the user                                               | None                                                                                                  |
| onVoiceConfigured          | Fired as soon as MyLINK Connect completes the initialization of languages and voices for text-to-speech                            | speechutterance = a SpeechSynthesisUtterance object that will be used to for speech-to-text           |
| onDestroy                  | Fired as soon as the whole MyLINK Connect widget is destroyed and removed from the page contents                                   | None                                                                                                  |
| onCalloutDisplay           | Fired when the [callout bubble](/basic-concepts/publishing/channels/web#display-callout-message-bubble) of the widget is displayed | text = the text to be displayed in the callout bubble.                                                |

The following script implements all of the above events:

```markup
<script [...] src="https://res.xenioo.com/plugin/xenioo.js"></script>
<script>
    xenioowebchat.Start("d07be17d-9be1-4f57-b220-af5559f61f8e", {
		onInit : function( options ){
				console.log( "Starting initialization." );
				console.log( options );
		},
		onReady : function(){
				console.log( "Xenioo chat instance is now ready." );
		},
		onChatClose : function(){
				console.log( "User has closed the chat area." );
		},
		onChatShow : function(){
				console.log( "Chat area is now visible." );
		},
		onChatHide : function(){
				console.log( "Chat area is now hidden." );
		},
		onWidgetClick : function( calloutclicked ){
				console.log( "User clicked Xenioo chat widget." );
		},
		onDataConnection : function(){
				console.log( "Connecting to Xenioo servers." );
		},
		onItemRender : function( obj ){
				console.log( "Rendering item in chat area (check console log for object details)" );
				console.log( obj );
		},
		onElementRender: function( element, obj ){
				console.log( "Rendering item in chat area (check console log for object details)" );
				console.log( obj );
		},
		onButtonClick : function( say, command ){
				console.log( "User clicked '" + say + "' button." );
		},
		onUserSays : function( say ){
				console.log( "User input:" + say );
		},
		onChatInteractionStarted : function(){
				console.log( "Interaction started." );
		},
		onChatInteractionCompleted : function(){
				console.log( "Interaction finished. Control is back to the user." );
		},
		onVoiceConfigured: function( utterance ){
				console.log( "Voice is initialized!" );
		},
		onDestroy : function(){
				console.log( "Chat widget erased removed from page" );
	  },
		onCalloutDisplay: function( text ){
   			console.log( "Callout bubble displayed:" + text );
		}
});
</script>
```

## Functions

To use MyLINK Connect web widget functions all you need to do is refer to the global mylinkconnect*webchat* JavaScript variable that is created automatically by the Web Widget script.

#### isChatOpened()

Returns true if the chat area is visible, otherwise false.

#### openChat()

Open the chat area if closed. If the chat area is already visible, nothing happens.

#### closeChat()

Close the chat area if open. If the chat area is already hidden, nothing happens.

#### toggleChat()

This function will open the chat area if closed or close it if opened.

#### resetChat()

This function will reset the chat area, removing all message bubbles and clearing the current user id. Using this function will create a new conversation on Xenioo but will not reset the chat layout and personalization.

#### scrollCarousel( speed, id, indexmove )

This function will make the carousel specified by **id** move by **speed**. If **speed** is negative, the carousel will scroll to the left otherwise to the right. The active index of the carousel will be the result of the current index value plus **indexmove**.

#### say( text, command )

The say function will send a **text** or **command** to the chatbot. This is exactly as the user writes something or click on a specific button.

**showBubble( text )**

Display the chat widget [callout bubble](/basic-concepts/publishing/channels/web#display-callout-message-bubble) with the message specified in text. The bubble is displayed only if the chat area is closed.

**hideBubble()**

Hides the currently displayed [callout bubble](/basic-concepts/publishing/channels/web#display-callout-message-bubble). If no bubble is displayed the command is ignored.

**getVariable( name )**

Returns the value of a conversation variable sent to the client by[ Web Publishing configuration](/basic-concepts/publishing/channels/web). Only variables selected for forwarding are available here.\
If the variable is not found, null is returned.

**setVariable( name, value )**

Will add a variable with a given value to the next message sent to MyLINKConnect. Differently from the [Cloud Scripting SetVariable](/actions-and-operations/integration/xenioo.bots.actions.base.executescriptaction) this command does not set the variable value right away: a user interaction is required in order to send the data back to the bot.

#### goTo( behavior, interaction, params )

This function will redirect the conversation the the specified **behaviour** and **interaction**. Additionally, one or more **parameters** can be specified. These parameters will be translated to variables sent to the chatbot runtime. The script below shows an example of a goTo call:

```javascript
xenioowebchat.goTo( "My Bot Behaviour", "Bot Interaction Name", 
    { 
      mycustomvariable : "sometest",
      myothervariable : "moretest"
    }
);
```

#### closeFloatContent()

Close the floating content area if open. If the floating content area is already hidden, nothing happens.

#### openFloatContent();

Open the floating content area if closed. If the floating content area is already visible, nothing happens.

#### toggleFloatContent();

This function will open the floating content area if closed or close it if opened.

**showFloatingUrl( { Text, Command } );**

This function will open the floating content area and display the Url set in *Command*. The floating area will have the title set in *Text*. The floating area can be seen only if the chat area is opened.

```javascript
xenioowebchat..showFloatingUrl( 
						{ 
						  Text:"Xenioo Home!!!",							//title
						  Command: "https://www.xenioo.com" 	//target url
						} );
```

#### setVoiceLanguage( language, voice );

This function will change the current voice configuration setting by applying a new language or a new voice to the current utterance instance.\
The following example will change the current language to Italian:

```javascript
xenioowebchat.setVoiceLanguage( "it-IT" );
```

In the following example instead, we're switching to the first available voice on the current browser:

```javascript
xenioowebchat.setVoiceLanguage( null, window.speechSynthesis.getVoices()[0] );
```

Voice changes will take effect starting from the next sentence to be said by the text-to-speech engine.

**destroy();**

This function will stop the Connect chat widget and remove any content generated from the page.


# WhatsApp

The MyLINK Connect WhatsApp channel can make your chatbot active on a registered WhatsApp Business number supplied by LINK Mobility.

## General Channel Settings

### General

### Process First User Message

The first message sent by the user is considered by WhatsApp as the "opt-in" message. It's the message that the user sends you to activate your chatbot. This setting will enable or disable the processing of this first message.\
If enabled, your chatbot will [receive the first user text](/basic-concepts/publishing/channels/whatsapp/the-opt-in-message) as a standard user text input, otherwise as a simple variable.

### Sender Phone Number

This is the phone number that will be used for the WhatsApp integration. Typically this is your own phone number for all the providers that require a physical mobile phone or the phone number provided by the gateway.

### API Key

This value must be filled with the provider integration API Key. Each provider account will have its own API Key that you will need to copy here before publishing.

### Account SID

This information is used only for Twilio integration and is the Account SID value you can see on your Twilio account dashboard. Copy and paste the value here.

### Auth Token

As for Account SID, this information is used only for Twilio integration. The Auth Token is visible on your account dashboard or in the integration settings page of your Twilio account. Copy and paste the value here.

### Hook Url

This value will be automatically filled by MyLINK Connect and is the URL of the hook that the selected provider will call whenever a message is received by WhatsApp. Copy this value from MyLINK Connect to the equivalent integration field you see on your provider integration dashboard.

### Contact Filters

In these two boxes, you can specify the numbers that will activate the MyLINK Connect chatbot. By default, all incoming messages will be treated as user contacts and will activate MyLINK Connect. Using these boxes you can specify which numbers will be accepted as contacts and which will be rejected.\
You are free to use multiple wildcards to create complex filters to handle prefixes or area codes.

#### Prefix Transformation

If both Source Prefix and Target Prefix are defined, any incoming phone number matching the Source Prefix regular expression will be rewritten using the Target Prefix.

It is possible to add multiples prefix transformations using the "+" button or remove them individually using the bin.

For example, since META still uses the outdated Mexican prefix, a user may want to replace +521 with +52 for all incoming numbers with 10 digits. In this case, the configuration would be:

Source = ^(\\+521)(\d{10})$\
Target = +52$2

<figure><img src="/files/pEVlGUy0ZlxAQviv1pz0" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
If the regular expression syntax is invalid, the bot will fail to publish.

If the incoming numbers don't match the Source Regex the prefix will not be transformed
{% endhint %}

## Further Reading

The following MyLINK Connect resources can help you set up, configure and manage your WhatsApp chatbot flow and publication.

{% embed url="<https://www.xenioo.com/en/creating-first-whatsapp-bot/>" %}

{% embed url="<https://www.xenioo.com/en/creating-a-whatsapp-dynamic-chatbot/>" %}

{% embed url="<https://www.youtube.com/watch?v=a4lzAhDNIr8&t=149s>" %}


# WhatsApp Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| **Variable**        | **Description**                                                                                                          |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| bot\_channel        | Set to "WhatsAppChannel"                                                                                                 |
| user\_name          | The contact name of the current user, if available.                                                                      |
| user\_id            | The contact phone number                                                                                                 |
| user\_phone\_number | The contact phone number                                                                                                 |
| wa\_id              | The unique id of the contact based on the provider registration database. This value may vary depending on the provider. |


# First Message Processing

The WhatsApp channel is activated by a first user message. Typically is the target user that will start the conversation either by directly typing something or by following a typical [WhatsApp chat url.](https://faq.whatsapp.com/en/android/26000030/)

Using Xenioo you have the choice to decide how to handle this first message.

### Not processing the first message

This is the default setting. MyLINK Connect will receive the very first user message but will not redirect it to the chatbot. The conversation will start from the very [first start interaction](/basic-concepts/the-chatbot-designer/interactions_concepts) normally.\
The text sent by the user can still be accessed anytime by your chatbot from the *optin\_message* [runtime variable](/actions-and-operations/variables-and-tags).

In this case **do not use** an input action as the very first step of your chatbot as the chatbot will stay silent until the user writes again.

### Processing the first message

If you decide to receive the first message like normal text, your chatbot can react to the message received like [with a standard global detection action](/actions-and-operations/input/xenioo.bots.actions.base.textdetectionaction). The global detection can trigger a flow change caused by different options in the control expression.

If you use [automatic redirection NLP](/artificial-intelligence/nlp/intents#activation) intents or [bot or behavior level triggers](/actions-and-operations/input/global-detection), the first message may trigger automatically any of them.

Assuming you're giving away links to your WhatsApp with different starting links, your start interaction may look like this:

![](/files/-MK1NxbVXjPB0Lknt1-I)

The very first [Global Detection Action](/actions-and-operations/input/xenioo.bots.actions.base.textdetectionaction) will receive the text and trigger a flow change based on the incoming value (menu or product in our example). The last Go To is instead used to handle different inputs that can show an help for your user.


# RCS

Rich Communication Services (RCS) Channel will publish your chatbot to an RCS supported provider. RCS has rich messages capabilities that can surpass those of current SMS and MMS.

RCS integration is done through professional providers selected by our team among the most reliable and cost effective. You're free to choose the provider that best suits your needs depending on your budget, expected traffic, and mobile availability.

| Provider      | Configuration                                                                                |
| ------------- | -------------------------------------------------------------------------------------------- |
| LINK Mobility | [Configuration](/basic-concepts/publishing/channels/sms/configuring-providers/link-mobility) |


# RCS Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| **Variable**        | **Description**                               |
| ------------------- | --------------------------------------------- |
| bot\_channel        | Set to "RCSChannel"                           |
| user\_id            | The contact phone number                      |
| user\_phone\_number | The contact phone number                      |
| rcs\_capabilities   | The capabilities list of the current contact. |

### RCS Capabilities

The rcs\_capabilities variable mentioned above will be automatically filled for every new (or returning) contact that is targeted by a push or initiates a conversation with your bot. The variable is automatically filled **before the flow starts** and can be used to change the flow according to your content requirements.

The variable will contain the joined list of all the current device capabilities:

| Value                | Capability                        |
| -------------------- | --------------------------------- |
| CHAT                 | Standard text message             |
| FILETRANSFER         | File Transfer                     |
| GEOLOCATIONPUSH      | Information about geo location    |
| CHATBOTCOMMUNICATION | Rich card and suggested chip list |
| RICHCARD\_STANDALONE | Single card                       |
| RICHCARD\_CAROUSEL   | Multi-card carousel               |
| ACTION\_DIAL         | Dial phone button                 |
| *ACTION\_OPEN*\_URL  | Open external Url.                |


# Configuring Providers


# LINK Mobility

LINK mobility is MyLINKConnect preferred RCS channel partner. To setup your LINK Mobility RCS channel follow the easy steps below:

* Setup an RCS Channel account on [LINK Mobility](https://linkmobility.com/products/sms/)
* Upon activation you will receive your service credentials.
* Fill the required data in the RCS Publishing Dialog on MyLINKConnect

![](/files/-MlAXx4EGmj5K0MI8DPc)

* Click on Save and then Publish to go live!


# Google Business Messages (Deprecated)

{% hint style="danger" %}
Starting July 15, 2024, customers will no longer be able to initiate new chat conversations with businesses on the platform. Existing chat threads will be notified about the upcoming deprecation. On July 31, chat messages will be disabled, and call history will be deleted.
{% endhint %}

The Google Business Messages channel will publish your chatbot on the Google brands messaging platform.&#x20;

MyLINK Connect is a registered provider and can register, maintain and publish your brand agent. If you wish to register a brand agent please get in touch with MyLINK Connectat <hello@mylinkconnect.com>.

Alternatively, MyLINK Connect can also support external, existing providers, by simply accepting incoming messages on a specific endpoint. If you already have a brand agent registered with another provider and would like to use MyLINK Connect capabilities, please get in touch with <hello@mylinkconnect.com> and we'll be glad to help you setting up your integration.

## General Channel Settings

### Integration

#### Agent Id

The Agent Id, as supplied by Xenioo or by your provider.

#### Brand Id

The Brand Id associated to your Agent, as supplied by Xenioo or by your provider.

### Chat Details

#### Avatar

This is the image that will be associated to your agent and will be visible by your users.&#x20;

#### Language

Use this control to choose the edit language for the Welcome Message and Privacy Policy Url fields. This field **does not set the agent language** but let you edit the different texts for your agent.

#### Welcome Message

The very first message your user will see as soon as your agent is started. This text does not override the Start Interaction first message: this message will be seen right after your user writes something.

#### Privacy Policy Url

The url of your privacy policy for the currently selected language.

### Advanced

#### Process First User Message

If enabled this flag will send the very text your user writes to your chatbot. If your chatbot is not expecting any input, this may cause the flow to be redirected to the fallback.

The behaviour of this flag is identical to the [WhatsApp counterpart](/basic-concepts/publishing/channels/whatsapp#process-first-user-message). By default this flag is set to false.

#### Ignore Chat Feedback

When enabled, this flag will ignore any positive or negative feedback the user sends by interacting with the up and down thumbs that are available on the chat UI. If disabled, Xenioo will parse these feedback messages and send them to the chatbot as text.

You can manage the feedback text by using a [global input](/actions-and-operations/input/xenioo.bots.actions.base.textdetectionaction) checking for "feedback:POSITIVE" or "feedback:NEGATIVE" patterns.


# Google Business Messages Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable              | Description                                                                           |
| --------------------- | ------------------------------------------------------------------------------------- |
| bot\_channel          | set to GBMChannel                                                                     |
| gbm\_conversation\_id | The unique id of the conversation for Google                                          |
| gbm\_place\_id        | The unique id of the place as defined in GBM places UI                                |
| locale                | The two letters locale of the current user                                            |
| device\_locale        | The two letters locale of the current user device (may be different from user locale) |


# SMS

The MyLINK Connect  SMS channel can make your chatbot active on any mobile phone number and allow you to reach millions of mobile SMS users.

SMS integration is done through the LINK Mobility provider. Make sure to get in touch with your LINK Mobility sales representative to know costs and availability.

| Provider      | Configuration                                                                                |
| ------------- | -------------------------------------------------------------------------------------------- |
| LINK Mobility | [Configuration](/basic-concepts/publishing/channels/sms/configuring-providers/link-mobility) |


# SMS Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable            | Description              |
| ------------------- | ------------------------ |
| bot\_channel        | Set to "SMSChannel"      |
| user\_id            | The contact phone number |
| user\_phone\_number | The contact phone number |


# Configuring Providers


# LINK Mobility

LINK mobility is MyLINK Connect preferred SMS channel partner. To setup your LINK Mobility SMS channel follow the easy steps below:

* Setup an SMS Channel account on [LINK Mobility](https://linkmobility.com/products/sms/)
* Upon activation you will receive your service credentials as well as Partner and Platform ID.
* Fill the required data in the SMS Publishing Dialog on Connect

![](/files/-MYiGRQT7jpNhrD8RIah)

* Make sure to select the correct localization option on the Platform ID parameter. Refer to LINK Mobility online documentation if in doubt.
* Click on Save and then Publish to go live!


# Facebook

The Facebook channel let you publish your chatbot on your Facebook page.&#x20;

Your chatbot will automatically reply whenever someone initiates a chat using the "Send Message" button on your selected page.

Additionally, MyLINK Connect is also integrating with your page events to give your two more advanced options:

* automatic reaction to any of your page posts (by either opening automatically the chat or replying as a comment)
* posting new content on your page directly from the chatbot. Refer to the complete actions guide to know more about these features.

### Registering MyLINK Connect on your Facebook Page

Registering your page for publishing is a very quick process.&#x20;

The very first time your open the Facebook publishing dialog, MyLINK Connect will require you to bind your Facebook account. To do so, click on the Facebook button you see in the center of the dialog and follow the step by step procedure.

Once the procedure completes, MyLINK Connect will automatically display the list of all the pages where your account has access as admin. If the page is not available in the list your Facebook account does not have access to it or it is not specified as an admin of the page itself.\
\
If you create a page after linking your account with MyLINK Connect , just click on the *Reload Page List* button and it should appear immediately.

### Disconnecting MyLINK Connect&#x20;

#### Disconnecting from your Account

If you later change your mind and want to disconnect MyLINK Connect from your account, you can do so directly from the [Facebook App Integration](https://www.facebook.com/settings?tab=applications) list.&#x20;

#### Disconnecting a single page

If, instead, you just want to disconnect a single page from MyLINK Connect , click on the Disconnect Page red button inside the Facebook publishing dialog in MyLINK Connect .

### Transferring subscribers from another bot platform

If you already have a bot on another platform and want to transfer its subscribers over to MyLINK Connect , please follow the below instructions:

1. Connect your MyLINK Connect bot to the Facebook page that has your other bot connected to it
2. Send a broadcast with a Button to all your subscribers via the first bot
3. Everyone who interacts with the broadcast will appear in your MyLINK Connect chatbot as a new subscriber
4. Now you're free to reach out to your previous bot's audience through MyLINK Connect&#x20;

## General Channel Settings

The Facebook publishing channel will display the following settings:

### Welcome Text

This is the text displayed by Facebook messenger as the user opens the chat area on the very fist contact. After the user chats with chatbot once, this text is not visibile anywhere.

### Whitelisted Domains

This list is used to specify third party domains, outside of your Facebook page, that can be used as a target URL for context menu buttons, extensions as well as the web url of the page hosting the Facebook Messenger Web Widget.

Each URL must be fully qualified with its own protocol (e.g. https\://) and separated by a semicolon (;).

## Customer Chat Plugin Settings

These settings can be modified to have MyLINK Connect automatically generate the required code to embed your Facebook messenger chatbot in your web page.&#x20;

The integration is managed directly by a Facebook script and MyLINKConnect can help you to quickly configure it visually.

Once you're happy with these settings, just click on the Show Button Code button to view the full required code: copy and paste the code in your web page to activate your MyLINKConnect chatbot as a Facebook Messenger embedded plugin.

### Show Minimized

If enabled, the web plugin will be shown as minimized. Only the Facebook Page icon will be visible on the page at startup.

### Greetings

You can write here a text that will be displayed by the plugin as a greeting for the user. This message is displayed only if the current page visitor is currently logged in Facebook.

### Logged Out Greetings

This text has the same purpose of the previous setting but it is used only when your page visitor is not logged into Facebook.

### Theme Color

A standard HTML color code that will be used as a general accent color for the Facebook chat plugin.

Additional informations about functionalities and suppoted pages setup can be found on the official [Facebook Chat Plugin Page](https://developers.facebook.com/docs/messenger-platform/discovery/customer-chat-plugin/).

{% embed url="<https://developers.facebook.com/docs/messenger-platform/discovery/customer-chat-plugin/>" %}


# Facebook Ads Integration

Your MyLINK Connect chatbot can be easily activated by a Facebook Ads integration by simply customizing the payload JSON. By connecting directly to a specific behavior, you can have your Facebook Advertising start a very specific section of your chatbot when interacted.\
\
To use this feature, simply copy and paste the following JSON inside the Facebook Ads custom JSON. Just replace "title", "image-url", "subtitle" and "payload" with your correct values and you're ready to go.

```
{
    "message": {
        "attachment": {
            "type": "template",
            "payload": {
                "template_type": "generic",
                "elements": [
                    {
                        "title": "ANY TITLE",
                        "image_url": "ANY IMAGE URL>",
                        "subtitle": "ANY SUBTITLE",
                        "buttons": [
                            {
                                "type": "postback",
                                "title": "CALL TO ACTION",
                                "payload": "<PUT HERE THE BEHAVIOUR API TOKEN>::"
                            }
                        ]
                    }
                ]
            }
        }
    },
    "user_edit": true
}
```

**Remember: the payload token must always end with 2 (two) colon.** The behavior API token can be easily copy/pasted directly from the [behavior details panel](/basic-concepts/the-chatbot-designer/behaviours_concepts).

![](/files/-LdhYjUBxyaf5mqf3ITd)


# Feed Integration

MyLINK Connect permissions will include also the power to post on your page feed creating both brand new posts or replies to users.\
You can use this integration to automatically post content on your page, directly from your chatbot or reply to your users comments on your page using your chatbot flow.\
If you enable this feature [on some specific actions](/basic-concepts/the-chatbot-designer/actions_and_operations), MyLINK Connect will smartly react in two different ways:

* If the user adding the comment has already interacted with you or with the chatbot trough messenger a conversation will be automatically started.
* If the user has never interacted with you the text reply produced by your chatbot will become a reply to the user post. You can include in the text a link to your messenger.

To let you distinguish between know and unknown users a specific [runtime variable](/actions-and-operations/variables-and-tags) will be generated during execution.

To use feed integration you turn on, on a[ global bot operation](/basic-concepts/the-chatbot-designer/actions_and_operations), the [React to Page comments flag](/actions-and-operations/input/global-detection/xenioo.bots.actions.base.operations.textinputglobaloperation).&#x20;

![](/files/-Lkc64xWoGKWZc3DRt0h)

Once enabled you can choose to react to a very specific post by filling the "Specific Post Id" field with the Facebook post id or react to any comment done on any post of your page. In this second case, you can leave the input field blank.

![](/files/-Lkc6vJRJ2Y-0le7ND6o)


# Messenger Referral

MyLINK Connect Facebook channel fully supports the Facebook Referral link format. This enables your chatbot to automatically present your user with different informations depending on a specific keyword added to your chat link.

## Building the chat link

A standard Facebook chat link would look something like this:

```
http://m.me/<PAGE_NAME>
```

Where \<PAGE\_NAME> is the name of your page. To build a referral link, you just add the referral parameter at the end of the link like this:

```
http://m.me/<PAGE_NAME>?ref=<REF_PARAM>
```

The \<REF\_PARAM> value can be anything you like and it is going to be the value your bot will be looking for.

{% hint style="info" %}
If your page does not have a unique name, the \<PAGE\_NAME> may not work. Use the page id instead: the page id can be retrieved by going into your page settings and selecting the "Messaging" menu section.
{% endhint %}

## Checking for a referral

Inside your chatbot, the referral (ref) value will be translated to a simple text. For your chatbot it will be like the user has typed the referral value. You can check this value anywhere in the chatbot by simply using a [global text detection operation](/actions-and-operations/input/global-detection).&#x20;

![](/files/-LnrJFcO-njkpXJs1deX)

## Further Reading

{% embed url="<https://developers.facebook.com/docs/messenger-platform/discovery/m-me-links/>" %}


# Facebook Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable                             | Description                                                                                                                                                                                            |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| bot\_channel                         | Set to "FacebookChannel"                                                                                                                                                                               |
| facebook\_page\_id                   | The full id of the current Facebook page where the chatbot is hosted                                                                                                                                   |
| facebook\_page\_name                 | The name of the current Facebook page where the chatbot is hosted                                                                                                                                      |
| first\_name                          | The first name of the user                                                                                                                                                                             |
| last\_name                           | The last name of the user                                                                                                                                                                              |
| locale                               | The locale of the user in standard four letter ISO code notation (e.g. en-US)                                                                                                                          |
| timezone                             | The timezone of the user based on GMT hours shift. This value is automatically used if [User Timezone](/broadcasts/scheduling/basic-settings/untitled#time-zone-mode) mode is selected for broadcasts. |
| profile\_pic                         | The user public profile pic url.                                                                                                                                                                       |
| gender                               | The user specified gender                                                                                                                                                                              |
| age\_range\_min                      | The minimum age value of the age range of the user                                                                                                                                                     |
| age\_range\_max                      | The maximum age value of the age range of the user                                                                                                                                                     |
| user\_id                             | The page-scoped id of the user                                                                                                                                                                         |
| subject\_to\_new\_eu\_privacy\_rules | This flag will be true if your Facebook page is subject to Facebook EU regulations. False otherwise.                                                                                                   |

Depending on user specific privacy settings some values may still be empty.


# Moving users from an existing bot to MyLINK Connect

You can easily [import user](/conversations/contacts#import-users) from different formats directly into MyLINK Connect but if you're moving from another Facebook chatbot some additional steps are required.&#x20;

Facebook gives to each of your contacts a unique id that is associated with the chatbot engine you are using. If you disconnect the previous engine and connect Facebook all of your users will be given a brand new id and you'll not be able to track or target them.&#x20;

To move your users from your current chatbot to MyLINK Connect, follow the steps below:

* Create your MyLINK Connect chatbot <br>
* Put a [Flow Control Action](/actions-and-operations/flow/xenioo.bots.actions.base.stopinteractionaction) as the very first action of your start interaction, like in the picture below.\
  This will stop your Xenioo chatbot as soon as it starts. We do not want this later of course but its perfectly fine right now.

![](/files/-M3KiRhLYGB1Mt-3J-0O)

* From your previous bot platform send a broadcast to your users. The content should require to press a simple button or just reply to a simple answer. Any form of interaction will do.<br>
* Any user interacting with your bot will activate Connect that in turn will record the contact.<br>
* Your users are now stored inside the Conversation section of MyLINK Connect. You can now disconnect your old bot and publish your full MyLINK Connect chatbot.


# Instagram

The Instagram channel let you publish your chatbot on an Instagram account.

Your chatbot will automatically reply whenever someone sends a private message to your Instagram account inbox.

Additionally, Xenioo is also integrating with your account to receive automatic event notification to any of your stories.

### Registering MyLINKConnect on your Instagram Page

Registering your page for publishing is a very quick process.&#x20;

The very first time your open the Instagram publishing dialog, Xenioo will require you to bind your Facebook account. To do so, click on the Instagram button you see in the center of the dialog and follow the step by step procedure.

{% hint style="info" %}
Instagram integration is made possible trough Facebook account linking. In order to use your Instagram account, it must be linked to your Facebook page.
{% endhint %}

Once the procedure completes, MyLINK Connect will automatically display the list of all the accounts that are linked to pages you can access.


# Instagram Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable                   | Description                                                |
| -------------------------- | ---------------------------------------------------------- |
| bot\_channel               | Set to "InstagramChannel"                                  |
| profile\_pic               | The full id url of the user profile picture, if available. |
| mention\_url               | The public url of the story subject to the mention event   |
| follower\_count            | The number of followers of the user contacting the bot     |
| is\_business\_follow\_user | Indicates whether the business follows the customer or not |
| is\_user\_follow\_business | Indicates whether the customer follows the business or not |
| is\_verified\_user         | Verification status for the customer                       |
| instagram\_username        | The user username                                          |
| last\_story\_reply\_id     | The unique id of the last valid story reply                |

Depending on user specific privacy settings some values may still be empty.


# Telegram

MyLINK Connect Telegram channel can bring online your chatbot on any defined Telegram bot and handle both one-on-one conversations and group chats.

## General Channel Settings

### API Token

This is the API token that is given to you by the Telegram [BotFather](https://telegram.me/BotFather) upon registering your bot. All bot configurations such as privacy settings for groups or avatar icon must be done inside the [BotFather](https://telegram.me/BotFather) configuration bot on Telegram.

## Further Reading

The following MyLINK Connect articles and resources can guide you in configuring, publishing and maintaining your Telegram chatbot.

{% embed url="<https://www.xenioo.com/en/how-to-make-a-telegram-bot-with-xenioo/>" %}

{% embed url="<https://www.xenioo.com/en/learn-how-create-telegram-group-chatbot/>" %}


# Telegram Deep Linking

MyLINK Connect Telegram channel fully supports the [Telegram Deep Linking](https://core.telegram.org/bots#deep-linking) link format. This enables your chatbot to automatically present your user with different informations depending on a specific keyword added to your chat link.

## Building the chat link

A standard Telegram chat link would look something like this:

```
http://t.me/<BOT_NAME>
```

Where \<BOT\_NAME> is the name of your page. To build a referral link, you just add the referral parameter at the end of the link like this:

```
http://t.me/<BOT_NAME>?start=<REF_PARAM>
```

The \<REF\_PARAM> value can be any single word without blank spaces, and it is going to be the value your bot will be looking for.

## Checking for a referral

Inside your chatbot, the referral value will be available in a variable named *referral*. Inside your chatbot startup flow, you can use the referral value to [differentiate the flow](/actions-and-operations/flow/xenioo.bots.actions.base.variableconditionaction) accordingly.


# Telegram Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable                          | Description                                                                                                                                                                                                     |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| bot\_channel                      | Set to "TelegramChannel"                                                                                                                                                                                        |
| profile\_pic                      | The full url of the user profile picture                                                                                                                                                                        |
| is\_group\_chat                   | TRUE if the current conversation is happening in a group, empty otherwise.                                                                                                                                      |
| telegram\_new\_users\_count       | The number of new users joined during a group conversation. 0 if no users has joined                                                                                                                            |
| telegram\_user\_leaving           | The username of the last user leaving the group                                                                                                                                                                 |
| last\_user                        | The user name of the last user that has typed something in the current group conversation                                                                                                                       |
| last\_user\_id                    | The user id of the last user that has typed something in the current group conversation                                                                                                                         |
| telegram\_new\_user\[INDEX]       | The indexed user name of each user that has joined the chat group                                                                                                                                               |
| telegram\_new\_user\[INDEX]\_type | The indexed user type of each user that has joined the chat group. Can be either USER for a human user or BOT if a bot has joined the conversation.                                                             |
| referral                          | The [referral code](/basic-concepts/publishing/channels/telegram/telegram-referral) that is passed through the telegram bot link                                                                                |
| keyboard\_is\_persisting          | Indicates if the Telegram [custom keyboard](/actions-and-operations/content/xenioo.bots.actions.base.buttonsarrayaction) is persisting between messages or not. true if is persisting otherwise false or empty. |

The following article fully details how to manage your Telegram group using Xenioo:

{% embed url="<https://www.xenioo.com/en/learn-how-create-telegram-group-chatbot/>" %}


# Slack

Using the Slack channel will publish your MyLINK Connect chatbot as a Slack Bot Application of your choice. All the settings for your Slack bot like name, description, avatar and so on can be managed directly from your [Slack Application](https://api.slack.com/apps) area.

## General Channel Settings

### API Token

This is the API token that your can retrieve from your [Slack Application](https://api.slack.com/apps) settings. Copy and paste it here before publishing your chatbot.


# Configuring Slack

The following steps will guide you through the publication of your chatbot on any bot application.

### Create a Slack Application

The first thing to do before publishing your Slack chatbot is to create a new Slack Application. MyLINK Connect uses **the classic Slack application configuration** detailed below.

* First, start creating a new [classic slack app](https://api.slack.com/apps?new_classic_app=1).
* Make sure the Create Slack App title is showing "Classic".

![](/files/-MUwdrkaVtPbC2gSAbIW)

* Give your application a name and select on which development workspace you would like to deploy it.\
  The application name is not the name of your bot in Slack but can have the same value.

![](/files/-MUweNSyrjRghB86EMD5)

* Click on the Create App button to confirm all the parameters
* You will be redirected to a page with multiple features and functionalities that can be added to your app. We are going to choose "Bots" as that is what we need.

![](/files/-MUwelA4M1p_cUZgELRI)

* Click on "Bots" and let Slack add the functionalities you need to your app.
* From the new page that will appear, click on Add Legacy Bot User. This will create a new user that will be impersonated by our bot.

![](/files/-MUwf72qSowLIudSKFR9)

* Choose a Display Name and a User name for your bot. These information will be visible to any user chatting with your bot. Confirm your data by clicking on the "Add" button.
* On the left side, click on the "OAuth & Permissions" menu item, under the "Features" group.
* In the OAuth & Permissions page, click on the very first green button named "Install To Workspace".

![](/files/-MUwfqlprXWABm-5rN-G)

* You will be redirected to a standard authorization page where you will be informed of what your bot will be able to do on your workspace. Review all permissions and click on the green "Allow" button.

![](/files/-MUwgLwqtaCjwZan_m1Y)

* Slack will automatically install your application to your workspace and your OAuth & Permissions page should now display the required authorization tokens.
* From this page, copy the Bot User OAuth Token.

![](/files/-MUwggAdeMN0pgPcEQ8Q)

* Paste the token you've just copied inside the API Token field of the MyLINKConnect Slack Channel configuration.

![](/files/-LdtMC4V9lUs9SlRdhMT)

* Save the Slack Channel data and click on Publish to send your bot online!

### Enabling Button Events

If your chatbot is going to use standard Slack buttons, please follow the steps below to enable the necessary Xenioo integration:

* From your application details menu, click on "Interactivity & Shortcuts"
* In the target page, click on the checkbox on the top right to enable interactivity.

![](/files/2s1YTTlC43bj24zDyOze)

* Copy and Paste the Hook Url you see in the MyLINK Connect Slack publish dialog in the Request URL field.
* Save Changes
* The subscription is now active and buttons are now enabled on your MyLINK Connect Slack bot.


# Slack Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable     | Description                        |
| ------------ | ---------------------------------- |
| bot\_channel | Set to "SlackChannel"              |
| user\_name   | The user name of the slack contact |
| user\_id     | The user id of the slack contact   |


# Microsoft Teams

MyLINK Connect Microsoft Teams channel can bring online your chatbot on any Microsoft Bot App and handle both one-on-one conversations and group chats.

## General Channel Settings

### Bot Id

This is the bot id that [Microsoft App Studio](https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/app-studio-overview) will generate for your bot.

### Bot Password

This is the bot password that [Microsoft App Studio](https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/app-studio-overview) will generate for your bot.

### Messaging Endpoint

This is the MyLINK Connect webhook that must be used when configuring your bot application inside [Microsoft App Studio](https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/app-studio-overview).


# Microsoft Teams Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable          | Description                                        |
| ----------------- | -------------------------------------------------- |
| bot\_channel      | Set to "MSTeamsChannel"                            |
| user\_name        | The full name of the user chatting with your bot.  |
| locale            | The 4 letters ISO code of the current user locale. |
| msteams\_user\_id | The unique Microsoft Teams id of the current user  |


# Discord

The Discord channel let you publish a MyLINK Connect chatbot on Discord. The chatbot can then be invited to servers and channels.

MyLINK Connect Discord bots can communicate in channels and to single users directly.

## General Channel Settings

### Auth Token

This is the authorization token you can retrieve from your bot development page on the Discord Developer Portal.

![](/files/-MPjRJXOW52RXJaPiGja)

### Messages Filter

Here you can specify a general message filter that will be applied to all incoming messages. Use this parameter to block unwanted messages that may trigger specific chatbot actions.

## Button Styles

MyLINK Connect supports Discord interactive content in the form of standard Carousel Cards or Interactive Messages. When used for other channels both these actions will be transformed into standard Discord Interactive Content.

Discord buttons can also have a different color, depending on the associated style. On the Xenioo designer you can associate different colors using the Custom Style Action. The following styles are currently supported:

| Style      | Button                                      |
| ---------- | ------------------------------------------- |
| .primary   | The default button color                    |
| .secondary | Alternate button color                      |
| .danger    | Red button color                            |
| .success   | Green button color                          |
| .link      | Alternate button color with a "link" symbol |

## Further Reading

{% embed url="<https://www.xenioo.com/building-a-game-search-bot-for-discord>" %}


# Discord Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable        | Description                                                                               |
| --------------- | ----------------------------------------------------------------------------------------- |
| bot\_channel    | Set to "DiscordChannel"                                                                   |
| is\_group\_chat | TRUE if the current conversation is happening in a group, empty otherwise.                |
| last\_user      | The user name of the last user that has typed something in the current group conversation |
| last\_user\_id  | The user id of the last user that has typed something in the current group conversation   |


# Alexa

The Alexa publishing channel will automatically build an Alexa skill model from your chatbot design and bring it online on a specific webhook. This webhook can be used as the Alexa skill endpoint for every dialog [interaction ](/basic-concepts/the-chatbot-designer/interactions_concepts)and dynamic operation.

When you publish your chatbot to Alexa, Xenioo will automatically create an Alexa Skill model based on the [NLP intents and expressions](/artificial-intelligence/nlp/intents) you've created inside the [Natural Language Processing](/artificial-intelligence/nlp/intents) section. MyLINK Connect Skills built for Alexa are fully compliant and production ready. The MyLINK Connect webhook is also perfectly capable of passing all security tests made by Amazon during the pre-publish phase.

The first time you open this publish dialog no option is available as the you must first login to your [Amazon Developer Account](https://developer.amazon.com/alexa). After that, you may still be required to refresh your grant for MyLINK Connect as we do not store any kind of information for longer than required to basically update your skill on demand.

## General Channel Settings

### Target Skill

Here you will see the list of all Alexa Skills that are assigned to the [Amazon Developer Account](https://developer.amazon.com/alexa) you've used to identify for the Alexa channel. MyLINK Connect will not create a new skill for you: you first need to create an Alexa skill using your [Amazon Developer Account](https://developer.amazon.com/alexa).\
As soon as the skill is created you will see it here.

### Activation Text

This is basically the name of your skill. By default the name of your chatbot will be used but you're free to change it to whatever you like. The activation text must follow [Alexa naming guidelines](https://developer.amazon.com/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html): choosing a name outside of these guidelines may result in an error during publishing or in your skill being refused by marketplace testers.

### Hook Url

This is the MyLINK Connect webhook that your Skill need to use in order to integrate with this MyLINK Connect chatbot. Copy the full URL from here and copy it into the Endpoint section of your Alexa Skill builder. The following image shows where the Hook option is located.

![](/files/-Ldx3Malk0BWIiAEwfnK)

For each hook, remember to select *"My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority"* as type. This operation must be done only once. After the first publishing, this information is stored forever in your Alexa Skill.

### Do Not Update Alexa Model

Enable this flag if you do not wish to have MyLINK Connect automatically build your Alexa Skill Model for you. This flag can be useful later in the process whenever you want to push a minor change in the chatbot design but do not want to update the whole model or if you wanted to do some manual model modifications and you just want to update the chatbot backend.\
Also, this flag can help you publish minor changes to your chatbot while the skill is under Amazon review during live publish phase.\
*If your skill is already live and published on the marketplace you do not need to enable this flag: your live skill will not be updated by the publishing process.*

## User Details Permissions

Under this section you can specify what data your Alexa chatbot will try to retrieve from the user profile. Make sure **to enable only the information** that you've already marked as requested inside your Alexa Skill builder.\
Enabling any setting here without adding the required permission inside your Alexa Skill builder has no effect on the retrieved data: MyLINK Connect will try to get the data and will be simply denied.

## Further Reading

This interesting Alexa article series is detailing the steps to create a personalized streaming platform using Alexa and Xenioo.

{% embed url="<https://www.xenioo.com/en/building-an-alexa-skill-with-xenioo-part-1/>" %}

{% embed url="<https://developer.amazon.com/en-US/docs/alexa/custom-skills/device-address-api.html>" %}


# Troubleshooting

Based on your [design ](/basic-concepts/the-chatbot-designer)and your [Natural Language Processing](broken://pages/-LdPE8qz0fvL12XOy9TJ) setup, Xenioo will automatically build an Alexa Skill model everytime your choose to publish. The Alexa model enforces some very specific rules on specific contents and variables that may halt your publishing process.\
You can find below the most common messages. If you encounter a message that is not listed and cannot understand what and why it is happening [contact our support](broken://pages/-Ld_n_9XUrjr9urhnRZ1) for a quick resolution.

### There is a build in-progress for this skill

This message may be shown whenever you try to publish from MyLINK Connect to Alexa after a very short while from the previous publish. There's no real issue with your Skill just wait some minutes to allow Alexa to complete the build of the previous submission.

### No AI Intents defined for Alexa skills management

This message is displayed whenever your chatbot has no valid intents specified under the AI section. Alexa Skills are AI based chatbots and can only work using [Intents and Expressions.](/artificial-intelligence/nlp/intents) You must define the required intents for your skill and try again.

### Missing sample utterance. At least one sample utterance is required

At least one of the intents you've created is missing at least one utterance. All intents you are defining inside the MyLINK Connect NLP engine, excluding [some very specific Alexa types](https://developer.amazon.com/docs/custom-skills/standard-built-in-intents.html#amazonnavigatehomeintent), must have at least one utterance.

### Intent name *"NAME"* contains invalid characters. Intent names must begin with an alphabetic character and may only contain alphabets, periods, and underscores.

All intents that are going to be used for an Alexa skill must follow a strict naming rule that does not allow non alphabetical characters outside standard letters, periods and underscores.


# Alexa Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable                     | Description                                                                             |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| bot\_channel                 | Set to "AlexaChannel"                                                                   |
| device\_id                   | The id of the device currently contacting your chatbot                                  |
| locale                       | The locale of the device currently contacting your chatbot                              |
| alexa\_user\_id              | The full Alexa user id retrieved from Alexa contact data                                |
| alexa\_account\_link\_token  | The account link token that Alexa is retrieving from your won account linking procedure |
| device\_state                | The current state of the Alexa device                                                   |
| alexa\_api\_endpoint         | The Alexa reply endpoint                                                                |
| alexa\_api\_messaging\_token | The Alexa messaging token value                                                         |
| user\_name                   | The user name of your contact                                                           |
| first\_name                  | The first name of your contact                                                          |
| user\_email                  | The full email address of your contact                                                  |
| country\_code                | The two letter ISO country code of your contact                                         |
| postal\_code                 | The delivery postal code of your contact                                                |
| state\_or\_region            | The delivery state or region of your contact                                            |
| city                         | The delivery city of your contact                                                       |
| address\_line1               | The delivery first address line of your contact                                         |
| address\_line2               | The delivery second address line of your contact                                        |
| address\_line3               | The delivery third address line of your contact                                         |
| district\_or\_country        | The delivery district or country of your contact                                        |

Some of the fields above are related to very specific Skill permissions that need to be requested from the user and specified in your skill deployment from the [Amazon Skill Development](https://developer.amazon.com/alexa/console/ask?) dashboard. If the required permissions are not requested the fields will be left blank.


# Phone

The Phone channel let you integrate a voice/phone provider directly into MyLINKConnect. The result is a chatbot that lives behind a standard phone number and can reply to your users directly on a standard phone line.

## General Channel Settings

### Service Provider

This is the provider you're going to use for your chatbot. Different providers may offer different features, coverage and pricing. MyLINKConnect is constantly looking for new providers that meet our quality standards so the list may vary from time to time.

Supported providers:

| Provider                                                                                 | Available Language |
| ---------------------------------------------------------------------------------------- | ------------------ |
| Twilio                                                                                   | English only       |
| [Voximplant](/basic-concepts/publishing/channels/phone/configuring-providers/voximplant) | Multiple Languages |

###


# Phone Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable            | Description                                                       |
| ------------------- | ----------------------------------------------------------------- |
| bot\_channel        | Set to "PhoneChannel"                                             |
| user\_phone\_number | The full phone number of the user calling your chatbot            |
| user\_name          | The full user name of the user calling your chatbot, if available |


# Configuring Providers


# Voximplant

To enable your phone based chatbot on Voximplant follow the steps below:

* Signup for a [Voximplant ](https://voximplant.com/)account
* On your home page, after logging in, go to the **Settings** menu on the left
* From this section, move to the **API Keys** section
* Copy both Account id and API Key into the same fields of your MyLINK Connect Phone Voice Channel dialog

![](/files/-MGOf8DuWzhf_juhbkXF)

* From the MyLINK Connect Phone Voice Channel select which voice you would like your bot to use and what language your users are expected to speak.
* Click on save and then on publish
* Xenioo will automatically setup for you everything you need on your account

{% hint style="info" %}
The steps below are not automated as you are required to actually buy a phone number for the country you wish and (in some cases) provide a number of additional information.
{% endhint %}

* After the publish is completed, go back to your Voximplant account and select the **Applications** section
* You should find an Application created for you by MyLINK Connect . Click on it to enter your application.
* Once you are inside your application details select the **Numbers** option from the menu
* Select the Available section and click on **Buy a number**
* After you've a number, click on the number and **attach** it to the current application
* That's it! Your voice chatbot is ready!


# Genesys

The MyLINK Connect Genesys channel allows direct integration into Genesys Open Messaging, extending the number of possible communication channels supported by the agents interaction.

Please get in touch with <growth.team@linkmobility.com> to know more about this integration channel.


# Genesys Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable                  | Description                        |
| ------------------------- | ---------------------------------- |
| bot\_channel              | Set to "GenesysChannel"            |
| genesys\_conversation\_id | The Genesys unique conversation id |


# Viber

The Viber channel can make your chatbot communicate through a Viber business account provided by LINK Mobility

## General Channel Settings

LINK Mobility provides specific channel settings, enabling the use of Viber channel integration.

<figure><img src="/files/N9xT0GSLnrHPuqomF7XG" alt=""><figcaption></figcaption></figure>

### Security Identifier

This is the Account Security Identifier provided by LINK Mobility for your Viber channel integration.

### Short Code

This is the Account Short Code, always provided by LINK Mobility for your channel integration.

### API Key

This value must be filled with the provider integration API Key. Each provider account will have its own API Key that you will need to copy here before publishing.

### API Secret

This value, along with the other values, must be filled with the API secret that LINK mobility will provide.

### Hook URL

This is the endpoint automatically generated by Xenioo, that will be used to receive any incoming message from the Users to your Connect chatbot.


# Viber Variables

The following variables are automatically added to your conversation when your chatbot is conversating on this channel:

| Variable            | Description                            |
| ------------------- | -------------------------------------- |
| user\_name          | The contact phone number               |
| user\_phone\_number | The contact phone number               |
| user\_id            | The contact phone number               |
| first\_name         | This value is empty as is not provided |
| last\_name          | This value is empty as is not provided |
| bot\_channel        | Set to "ViberChannel"                  |


# Custom

The MyLINK Connect Custom Channel allows any application capable of making simple RESTful https calls to integrate and interact with a MyLINK Connect chatbot. This channel is available for live publishing only after adding the [Custom Channel Package](broken://pages/-LdYpe93z-UqrvvQdX7V) to your [premium account](/basic-concepts/your-account).

Using the MyLINK Connect Custom Channel you will be controlling the way the conversation will be displayed to the user as well as [being able to change runtime variables](https://www.xenioo.com/changing-conversation-flow/) anytime.

The custom channel allows the creation of both completely custom chat channels (e.g.. a mobile app, a custom voice provider) and the integration of external services into existing services and conversations.

Custom Channel is not enabled by default. You can enable custom channel by activating the associated [additional package](broken://pages/-LdYpe93z-UqrvvQdX7V).

## General Channel Settings

<figure><img src="/files/ldT94CvKvEIOR50qkVBb" alt=""><figcaption></figcaption></figure>

### Channel Integration Endpoint

This the integration endpoint that you must use to call all [API methods allowed by this channel](/basic-concepts/publishing/channels/customchannel/rest-reference-guide).&#x20;

### Webhook URL

This is the URL that MyLINK Connect will automatically call for every message that is generated "offline" from your connection. Messages such as Broadcasts and pushed content that may be sent to your chatbot while the user is not connected will be redirected to this hook.\
If you enable the "Include All Channels Conversations" flag, the specified URL will receive **all** messages and replies exchanged on all your bot active channels.

Messages sent to the Webhook URL have a very low latency, meaning that they are forwarded to your Webhook URL nearly as soon as they are processed. If you are building campaigns, broadcasts or just approach a big audience, make sure that your endpoint is capable of sustaining a continuous high number of requests.

{% hint style="info" %}
If your Webhook URL fails to reply for more than 5 consecutive times, it will be banned from any update for the next 5 minutes. After 5 minutes delivery will resume from the latest update after the ban period.
{% endhint %}

### Include All Channels Conversations

When this flag is enabled your Webhook endpoint will be receiving real-time user and chatbot events from any conversation happening on any chatbot channels.&#x20;

{% hint style="info" %}
Each notification message sent in real-time from another conversation channel will be counted as an additional [action message](/basic-concepts/your-account/messages-count#action-messages).
{% endhint %}

### Use Simplified Authorization Scheme

By default, the Custom Channel integration API will require a [bot level authorization token](/connect-api/globa-platform-api/authorization#bot-level-token-request) to be created and supplied on each REST call.\
By enabling this flag, the Custom Channel will require simply the bot API Key to be supplied in the authorization header.




---

[Next Page](/llms-full.txt/1)

