# Build from Scratch

reate a new virtual agent

Click on `New virtual agent` card to start. &#x20;

{% hint style="info" %}
If you're assigned as Editor or Viewer, the button won't be visible. Only Admins and Supervisors can create virtual agents. [Check out profiles table](/user-guide/getting-started/create-and-manage-profiles.md)
{% endhint %}

![](/files/FNlxvdDsmszl0aL424qZ)

You'll be asked if you want to create or import a virtual agent.&#x20;

<figure><img src="/files/0QhYkcnOmTfRSlhcj8wv" alt=""><figcaption><p>After clicking the <code>+</code> card, you'll see this modal. Choose <code>create</code>.</p></figcaption></figure>

Choose the option `create` to see the page below. Now, fill in the requested information.

{% hint style="success" %}
[**Learn how to import and export virtual agents**](/user-guide/nlu-agents/nlu-agents/importing.md)
{% endhint %}

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

### Select NLP and Language

To create the virtual agent, you must choose an engine such as NLP or a LLM model. **Syntphony CAI** allows you to connect with the of the main NLP engines available on the market and also with [**OpenAI models (learn more)**](/user-guide/zero-shot-llm.md).&#x20;

**Syntphony CAI** is powered by [Syntphony NLP (cognitive engine by NTT DATA)](/user-guide/getting-started/language-models/syntphony-nlp.md) by default.&#x20;

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

Then, select the primary language of the virtual agent. Check out the full list of languages supported by each NLP below:

* [Syntphony NLP](/user-guide/getting-started/language-models/syntphony-nlp.md)
* [IBM Watson](https://cloud.ibm.com/docs/assistant?topic=assistant-language-support)
* [Microsoft Luis](https://docs.microsoft.com/es-es/azure/cognitive-services/luis/luis-language-support)
* [Google Dialogflow](https://cloud.google.com/dialogflow/es/docs/reference/language)
* [Amazon Lex](https://docs.aws.amazon.com/lex/latest/dg/how-it-works-language.html)

### Choose Industry

Choose from a variety of industries, the one your agent will be working in.

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

### Choose Main Channel

Select the platform where the virtual agent will interact with users (web, WhatsApp, Facebook, etc.). You can add more channels anytime.

Follow these steps:

1. Choose one channel from the list (Syntphony CAI allows you to connect with more than 30 channels)
2. Add a name and a description as seen below. Every channel must have a name, the is description is optional though (it helps guide the team and new members to understand the virtual agent and project more quickly).

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

{% hint style="danger" %}
**Important:**

* The channel name is unique and cannot be used twice
* Your virtual agent might malfunction if you rename the channel
* Avoid naming it with the same name of the platform, for example, "Facebook Messenger", "Web", "Google Home", etc. as it may confuse you later when you try to create another virtual agent and want to use the same channel. **Tip: give it a name linked to the project and its description.**
  {% endhint %}

{% hint style="success" %}
You can also integrate more channels for the same virtual agent anytime
{% endhint %}

After choosing the main channel, you will be able to go forward and start creating the dialogs.&#x20;

### Design and Create Dialogs

Now, you can start creating conversational flows. There are four different types of flows that you can start with: Welcome, Not expected, User journey, and Jump flow.

![](/files/WQm2nPGT1FWQ7F1vNbOn)

[Learn more about Dialog Flows](https://docs.eva.bot/user-guide/using-eva/develop-your-bot/dialog-flows)

{% hint style="info" %}
**Tip**: If you're a beginner, you might find it easier to start with a Welcome flow. 😉 This is not a mandatory flow, it will depend on the project strategy.
{% endhint %}

#### Welcome flow

The welcome flow is where you create a greeting message. It works especially on channels that allow proactive greeting messages. This flow is not mandatory and allows inserting more than one cell, according to your project needs.

Click on "Welcome" to open the window on the right side of your screen. Type "Welcome" on the field "Name", register the tag Welcome, and click on "Save and view".

![](/files/KvmTulpFwe6WNFb22Rhu)

#### Add cell

On the left side, you'll see the plus icon to "Add cell".&#x20;

![](/files/SvHOODqHaHMcLWzaSeky)

#### Write a welcome message&#x20;

Write a welcome answer and add a menu if you want. If you use the "Option" field, you can add a menu to your virtual agent. Depending on the channel you're using, it may come in the form of text (such as WhatsApp) or buttons (such as web and Facebook).

On the "Value" field, you can register an Intent example, a Synonym Entity value or an expression predicted by a Pattern Entity. After registering your text and/or buttons, click "Save".

![](/files/Xnr1zpqcOEi36cBvFzoL)

{% hint style="info" %}
**Tip:** You can add emojis! 😍 Just copy and paste from [Get Emoji](https://getemoji.com/).
{% endhint %}

#### User Journey

Now, it's time to improve the flow. Go back to the tab Flows, click on "Create flow" to see the options and click on "User Journey". Name your flow (remember to use \_ or - instead of spaces between words).

![](/files/NzH7pJ0ocYDVPUSkfVD6)

#### Create intents

After that, you will be redirected to the Workspace. Press the plus button to see the Create Intent window on the right side.&#x20;

![](/files/hGKRy3NWb9V4NQR1tVKi)

#### Name your intent

Remember to avoid spaces! Instead, you must use \_ or - to connect words. For example, Check\_Balance.

In the "Add example" lines, you should register utterances that your user would use. For example, in the Check Balance, it could be expressions such as "Check account balance", "How much do I have in my account", "I'd like to ckeck my balance", etc. Press enter to register the Examples.

![](/files/CVdt8XvJzjIUWjMv3gn3)

You can upload a file with intents and examples. [Learn more about Intent Cells](/user-guide/build-dialogs/dialog-cells/intent.md)

{% hint style="info" %}
**Tip:** When registering the utterances examples, remember to anticipate possible typos or grammatical mistakes the user might make.&#x20;
{% endhint %}

#### Next cell

After clicking on "Save", you will be redirected back to the Workspace. Hover the mouse over the cell to access the options: create (plus icon), edit (pen icon), and delete (trash can icon).&#x20;

![](/files/6oVAN8SjB3aZefmgxBa2)

The plus icon opens a window for you to choose the next cell. It could be [Entity](/user-guide/build-dialogs/dialog-cells/entity.md), [Answer](/user-guide/build-dialogs/dialog-cells/answer.md), or advanced cells, such as [Jump](/user-guide/build-dialogs/dialog-cells/jump.md), [Service](/user-guide/build-dialogs/dialog-cells/services.md), [Input](/user-guide/build-dialogs/dialog-cells/input.md), [Rule](/user-guide/build-dialogs/dialog-cells/rule.md), and[ Code](/user-guide/build-dialogs/dialog-cells/code.md).&#x20;

{% hint style="info" %}
**Tip:** If you're a beginner, try adding an Answer cell right after the newly registered Intent. 😉
{% endhint %}

![](/files/07vNljup7mVDTYfIs32w)

#### Name your answer

If you choose Answer, you'll see a second step asking you if you want to create an answer or choose from a list. If you have just started the flow, click "New" to see a window on the right side. Name your Answer and click "Next".

![](/files/LbsXO39Mk3fYLctArCxi)

#### Write your answer

Write your answer and click "Save". As aforementioned, you can add buttons in the Answer cells.&#x20;

[**Learn more about Answer cells**](/user-guide/build-dialogs/dialog-cells/answer.md)

{% hint style="info" %}
**Tip:** It's a good practice to use the exact same name for Intents and Answers
{% endhint %}

![](/files/AlALM2DFheoqSNBkAIB0)

#### Continue your flow

You can continue your flow, adding cells such as [Entities](/user-guide/build-dialogs/dialog-cells/entity.md), [Answers](/user-guide/build-dialogs/dialog-cells/answer.md), or the advanced cells [Input](/user-guide/build-dialogs/dialog-cells/input.md), [Rule](/user-guide/build-dialogs/dialog-cells/rule.md), [Code](/user-guide/build-dialogs/dialog-cells/code.md), [Service](/user-guide/build-dialogs/dialog-cells/services.md), and [Jump](/user-guide/build-dialogs/dialog-cells/jump.md).

{% hint style="warning" %}
**Important:** Flows with less than 100 cells perform better.
{% endhint %}

For a better performance, **we recommend to not exceed 100 cells in a single flow**. If you need to add more cells, you can either create new flows such as User Journey or Jump.

The Jump flow is a complementary flow. It can be a common journey that appears in more than one flow, like for example when you need to validate a user, which may be needed in different flows such as open a ticket, follow its status, to cancel it, or even to leave a suggestion or a complaint.

So, using this same example, instead of repeating the same cells in all these flows, you can simplify it by just adding a [Jump cell](https://docs.eva.bot/user-guide/using-eva/develop-your-bot/dialog-cells/jump-cells) in these flows that will lead to a Jump flow for “user\_validation”.

![Basic cells: Intents, Entities and Answers](/files/GgJZph63JfOp21NN49ME)

![Advanced cells: Input, Rule, Code, Service, and Jump.](/files/7xEorV1pkaheES9T2Eym)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.conversational-ai.syntphony.com/user-guide/nlu-agents/nlu-agents/build-your-first-bot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
