# Welcome & Introduction

Welcome to **CX Genie** 👋 — we’re excited to have you on board!

CX Genie is an **AI-powered platform** that helps businesses improve customer interactions across industries such as customer service, e-commerce, marketing, financial services, and tech startups. With advanced features like auto-learning, intent detection, and personalized messaging, CX Genie enables companies to:

* Automate responses to common questions.
* Handle large volumes of inquiries efficiently.
* Provide consistent, 24/7 customer support.

The platform integrates seamlessly with tools like Messenger, WhatsApp, and Shopify, while offering a user-friendly, no-code interface for building and managing chatbots. By combining AI automation with human support, CX Genie helps businesses optimize engagement and streamline customer service processes.

This guide will walk you through the essentials so you can quickly set up and start improving your workflows. Each topic in this guide follows a common format:

* **Overview**: What the feature helps you achieve
* **Steps to Use**: Clear, step-by-step instructions
* **Video Guide**: A visual walkthrough of the setup and usage
* **Quick Tips**: Suggestions to make your work smoother
* **Troubleshooting**: Common issues and how to resolve them

👉 Let’s dive in and get started!


# General Features

With features such as intent detection, personalized messaging, and a user-friendly message flow builder, CX Genie allows for seamless AI-human interactions.

## I. Interface

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

The interface is divided into **two main parts**:

1. **Left Sidebar (Red Rectangle)**
   * This area contains all of CXG’s tools and modules.
   * You can navigate through features such as Bot, Livechat, Contacts, and Settings from here.
2. **Main Display Area (Blue Rectangle)**
   * This section shows the detailed view of whichever tool or module you select on the left sidebar.
   * For example, if you click **Chat**, the chat interface will appear here.

## II. Tools&#x20;

### 1. Workspace

<figure><img src="/files/Szkw3OX4VmJ7sJjhtuth" alt=""><figcaption><p>Workspace</p></figcaption></figure>

The **Workspace** section allows you to:

* **Switch between accounts**: Move from one workspace to another without affecting your current setup.
* **Customize settings**: Adjust preferences and configurations for each workspace independently.
* **Manage subscriptions**: Select and manage different paid plans for each workspace, depending on your team’s needs.

This ensures that settings and plans remain separate, so changes in one workspace do not overlap with others.

### 2.  Online/Offline Status

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

<figure><img src="/files/1yQCuJHCmeVeCnOHv06Z" alt=""><figcaption></figcaption></figure>

Online/Offline status can be set, which defines whether you will receive incoming messages or not.

### 3. Notifications

<figure><img src="/files/PkDDAUc291znJDozqXpI" alt=""><figcaption><p>Notifications</p></figcaption></figure>

The **bell icon** displays all notifications whenever customers send messages to your chatbots.

* In this section, you can review the list of incoming notifications.
* You may choose to delete specific notifications.
* You can also mark all notifications as read with a single action.

This helps you stay updated on customer interactions without missing important messages.

### 4. Dashboard

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

The **Dashboard** section provides a comprehensive overview of the chatbots created in your workspace.

* Key statistics displayed include:
  * **Total Chat Users**: The number of unique customers who interacted with your bots.
  * **Total Conversations**: The overall count of chat sessions.
  * **Total Members**: The number of workspace members managing the bots.
  * **Total Messages**: The total volume of messages exchanged.
* In addition, the Dashboard features **daily and monthly report charts** to help you track trends over time.
* At the top of the Dashboard, you will also see a **banner** announcing new features and updates.

This section helps you quickly monitor chatbot performance and stay informed about product improvements.

### 5. Bots

<figure><img src="/files/6Ual55kuR8DGhZtupWnr" alt=""><figcaption><p>Bots section</p></figcaption></figure>

The **Bots** section displays all chatbots that you have created within the selected workspace.

* **Manage existing bots**: Configure settings for each chatbot, such as name, greeting message, and knowledge base.
* **Create new bots**: Add additional chatbots to serve different purposes or projects.
* **Display options**: Choose between two viewing modes:
  * **List View** – shows detailed information in rows.
  * **Icon View** – displays bots in a grid with large icons.\
    You can switch between these modes from the top right corner of the screen.

This section helps you easily organize and manage multiple chatbots in one workspace.

### 6. Live Chat

<figure><img src="/files/1xD0jsaFauwr9xuuWmJh" alt=""><figcaption></figcaption></figure>

In the **Live Chat** section, you can monitor all incoming messages from customers and reply directly within the platform — no need to switch to other tools. Beyond messaging, Live Chat also includes various integrated features. See the **Live Chat** section for detailed guidance.

### 7. Contacts

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

The **Contacts** section allows you to manage the list of customers who have connected and interacted with you in each workspace.

* **Contact list**: View all users who have started a conversation with your chatbots.
* **Contact tags**: Create and assign custom tags to customers for segmentation, tracking, or other specific purposes.
* **Workspace scope**: Each workspace maintains its own set of contacts and tags without overlapping with others.

This section helps you organize your customer base effectively and personalize how you engage with different groups.

### 8. Data Center

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

The **Data Center** feature allows you to export workspace data for reporting and analysis. You can select data types (e.g., conversations, tickets), apply filters such as date range, and choose which fields to include (conversation, customer, assignee, source). This ensures you have flexible access to the information you need.

### 9. Categories & Tags

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

* **Categories**: Categorize support tickets by grouping them into different categories. This makes it easier to organize requests and improves support efficiency.
* **Tags**: Create and assign tags for Help Desk and Ticket management. Tags allow you to classify tickets or contacts for faster filtering and reporting.

Together, categories and tags help structure your support data for smoother operations.

### 10. Settings

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

The **Settings** section allows you to configure and manage your workspace.

* **General**: Update workspace details such as name, logo, company information, working hours, and description.
* **Roles & Permissions**: Define access rights for admins and members to control who can view or edit specific features.
* **Notifications**: Manage how and when system notifications are delivered to workspace members.
* **Activity Logs**: Review a history of actions performed in the workspace for tracking and auditing purposes.

This section ensures your workspace is personalized, secure, and managed according to your team’s needs.


# Knowledge base


# How AI handles incoming messages.

This article will let you understand how CX Genie handles incoming messages.

<figure><img src="/files/B1cscfF5b8Itt7vRQInL" alt=""><figcaption><p>The process of the user's message</p></figcaption></figure>

The process by which AI handles incoming messages is both structured and efficient, as depicted in the provided workflow.

1. **User Sends Message**: The process begins when a user sends a message.
2. **AI Classifies Message**: The AI system classifies the incoming message into different categories.
   * If the message is a general greeting or casual conversation (e.g., "Hi," "Hello"), the AI will automatically generate an appropriate reply.
   * If the message pertains to product inquiries, services, or business-related questions, the AI proceeds to the next step:&#x20;
     * **AI Finds Data**: For business-related messages, the AI searches relevant information within a knowledge base or database.
3. **Reply Message**: Finally, the AI generates and sends a response based on the retrieved data.

This streamlined process ensures that user inquiries are addressed promptly and accurately, enhancing the overall customer experience.


# Bot Learns from Conversations

Your bot can continuously improve by learning from real conversations with users.

To enable this feature, go to **Bot Settings → Learning from Conversation**, and make sure the toggle is turned on.\
Once enabled, there are two ways for your bot to learn.

***

<figure><img src="https://storage.cxgenie.ai/files/80fe58599e3efab4ff493b51d317a6a3.png" alt=""><figcaption><p>Learning from Conversation</p></figcaption></figure>

### 1. Learn Immediately

#### How it works

When this option is turned on, the bot automatically learns from a conversation right after it ends.\
The system extracts useful questions, answers, and related details, then adds them directly to the bot’s knowledge base.

#### When to use

Use this option if you want the bot to improve quickly without manual review.\
It’s fully automatic and requires no team involvement.

***

### 2. Learn After Review

#### How it works

When this option is selected, the bot will not learn automatically.\
Instead, a team member can review each conversation and decide which information should be added to the bot’s knowledge.

#### When to use

This option helps maintain accuracy and control.\
It is suitable for teams that want to ensure only correct and relevant content is saved.

***

### Recommendation

We recommend using **Learn After Review** to keep your bot’s knowledge base clean, accurate, and trustworthy.


# Bot learns from conversations immediately

This feature brings out the new feature in CX Genie: real-time learning the conversations.

**Here are 4 steps for Real-time learning:**

1. **Initiate Learning:**
   * Support agents can prompt the bot to learn from a conversation by selecting "AI > Learn this conversation" or pressing Shift + L.
2. **Immediate Processing:**
   * The bot processes the conversation immediately and notifies the team once the data is captured.
3. **Admin Review:**
   * An admin (which added) reviews and approves the new information to ensure accuracy before it’s added to the Knowledge base.
4. **Knowledge Base Update:**
   * The approved information is integrated into the bot’s knowledge base, enhancing its ability to respond to future queries.

<figure><img src="/files/je72qKJx1qSGfun2pVMp" alt=""><figcaption><p>Staff must be included in here so that staff can request bot learn immediately.</p></figcaption></figure>

* To access this feature: from the Dashboard -> Bots -> Click the bot you want to use -> Settings
* Back to Livechat tab <img src="/files/exHpxHvGBWnICNDZdEzQ" alt="" data-size="line">-> Click on the chat you want to the bot learn -> Click the icon <img src="/files/odvMBw4r4eP9EsVg7kXI" alt="" data-size="line"> (in the box texting) -> Choose AI Learning from the Conversation.

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

* Once clicked, there will be a notification appears saying that "Bot is learning".&#x20;
  * This process will take a few minutes (less than 4 minutes for a normal conversation).
* Once completed, there will be a notification appears saying that "Bot learned successfully". You can find the data which was imported in the Knowledge base.

<figure><img src="https://imgr.whimsical.com/object/UdEM5fszCv2bembehrCFHY" alt=""><figcaption></figcaption></figure>


# What to Do When the Bot Doesn’t Know the Answer

When the bot receives a question it doesn’t know the answer to, you can set up how it should respond using two available methods:

* [CX Genie Default Settings](/getting-started/knowledge-base/what-to-do-when-the-bot-doesnt-know-the-answer/cx-genie-default-settings)
* [Using Workflow](/getting-started/knowledge-base/what-to-do-when-the-bot-doesnt-know-the-answer/using-workflow)

## Quick Tips

* Not sure which method to choose? Use **CX Genie Default Settings** for a quick and easy setup. If you want the bot to follow specific steps in certain situations, try using **Workflow**.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# CX Genie Default Settings

This feature lets you use CX Genie’s quick preset settings when the bot doesn't know the answer to a question.

## Steps to Use

**Step 1:** In the **Bots** section, go to the **Settings** tab. Scroll down to the **Automation** section and enable the **Auto reply** option.

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

**Step 2:** Under **Action on unknown question**, choose one of the following options:

* **Input your answer:** The bot will always reply with the message you write in the input field.
* **AI-generated answer:** The bot will try to answer based on its AI-trained knowledge.
* **No reply:** The bot will stay silent and not respond.

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

**Step 3:** Click **Save changes** at the top right corner to apply your settings. Go to your chatbot and test it out.

<figure><img src="/files/UKauC7w2fGjX7C0n4YBO" alt="" width="371"><figcaption></figcaption></figure>

## Video Guide

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

## Quick Tips

* Use the **“Input your answer”** option if you want **full control** over what the bot says.
* **“AI-generated answer”** is useful if you want the bot to try **answering flexibly using its trained knowledge**.

## Troubleshooting

* **Problem:** The bot doesn’t respond to unknown questions.

  **Solution:** Check if the **Auto reply** option is enabled and make sure an action is selected for unknown questions.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Using Workflow

This feature lets you create automatic action flows to handle when the bot doesn't know the answer to a question.

## Steps to Use

{% hint style="warning" %}
*Note: If you are enabling enable the **Action on unknown question** setting, set it to **No reply** to avoid duplicate responses. Then click Save changes.*
{% endhint %}

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

**Step 1:** In the **Bots** section, go to the **Workflow** tab. Then click **+ Add new flow**.

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

**Step 2:** Name your flow and choose one of the 3 available channels.

*If you want it to work on more than one platform, create a separate workflow for each.*

<figure><img src="/files/Xyq0mTzTDGxQde6ZmzW5" alt="" width="484"><figcaption></figcaption></figure>

**Step 3:** Enable the **Trigger conditions** option. Then choose **Trigger by actions → When the bot does not know the answer**.

<figure><img src="/files/WEcKKWrqiDvZmMp59tep" alt="" width="486"><figcaption></figcaption></figure>

**Step 4:** Inside the workflow, click the right arrow next to the **Start** block to add a new block.

<figure><img src="/files/7Mzbqt5QI6nJLQziuuat" alt="" width="350"><figcaption></figcaption></figure>

**Step 5:** Click the new block and open the dropdown list. Select the **bell icon (Notify agent)** block. This will send a notification to your agents in their CX Genie dashboard so they can assist the customer promptly.

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

**Step 6:** Click the **→** icon from the **Notify agent** block to add another block. Choose the **T icon (Text & Image)** block and write a message to let the customer know an agent will assist them shortly.

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

**Step 7:** Review your workflow one last time. Then click **Save changes**. Finally, click **Publish** to activate the workflow.

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

**Step 8:** Go to the selected channel and test your workflow.

<figure><img src="/files/F9HhiFVme4FPJn6GAUrr" alt="" width="371"><figcaption></figcaption></figure>

The **Notify Agent** block sends a noficiation to your agents in the workspace, and they can click on it to start helping the customer right away.

<figure><img src="/files/U0rNaG6P50pbGSeZVa2a" alt="" width="366"><figcaption></figcaption></figure>

## Video Guide

{% embed url="<https://www.youtube.com/watch?index=10&list=PLDjYzJq8XiPUySns0_nSDmgolst-R3Q5t&pp=gAQBiAQB&v=170gQVIoL0I>" %}

## Quick Tips

* Always enable **Trigger conditions** or your workflow will not work.
* You can reuse this flow for other platforms by creating a new one with the same steps.
* If you're using Workflow, make sure to set **Action on Unknown Question** in the bot’s settings to **No reply** first. This prevents the bot from giving conflicting answers.

## Troubleshooting

* **Problem:** Workflow isn’t working.

  **Solution:** Make sure the **Trigger conditions** are enabled, the correct trigger action is selected, and the workflow is **published**.
* **Problem:** Customer doesn’t see any message.

  **Solution:** Check if the **Text & Image** block was added and contains your custom message.
* **Problem:** Why am I seeing two answers from the bot in this situation?

  **Solution:** If you're using Workflow, check the bot's **Settings page** and set **Action on Unknown Question** to **No reply**. This will stop the bot from replying automatically and prevent it from giving two answers.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Let Customers Book Appointments with CX Genie

This section helps you build a form that customers can fill out to book appointments with CX Genie chatbots.

{% hint style="danger" %}
***IMPORTANT**: You must have the **Form Builder** feature enabled. If not, purchase it from the **Marketplace** section.*
{% endhint %}

## Steps to Use

### Create a Form

**Step 1:** Go to the **Form Builder** section in the left sidebar. Then click **+ Create form name**.

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

**Step 2:** Name your form (this name is for your reference only and won’t appear in the chat).

**Step 3:** Click **+ Add field**. Enter **input labels** such as Name, Email, Phone Number, Appointment Date, or any other fields you need for your form.

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

**Step 4:** Choose an input type for each field. For example:

* Use **Text** for name and email.
* Use **Number** for phone number.
* Use **Date & Time** for appointment scheduling.

<figure><img src="/files/orBtFps5FxOivbrptk9O" alt="" width="468"><figcaption></figcaption></figure>

**Step 5:** Enable the **Require** option if the field must be filled before submitting.

**Step 6:** Repeat steps 3–5 to add as many fields as needed.

**Step 7:** Review your form. Then click **Save changes** at the top right to save your form.

*Note: Once a customer submits the form, you can’t make changes to its structure again.*

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

### Use the Form in Workflow

**Step 1:** Go to the **Bots** section → **Workflow** tab. Then click **+ Add new flow**.

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

**Step 2:** Name your flow and select the **Website** channel.

*Note: Forms currently don’t work on Facebook Messenger or Telegram.*

<figure><img src="/files/tYr1qoDluW3mb8wg94FI" alt="" width="483"><figcaption></figcaption></figure>

**Step 3:** Enable **Trigger conditions** and choose a trigger that best fits your needs.

For this example, we will select **Contain Keywords**. This means that the workflow will be triggered when a customer message includes any of the keywords you set.

Type a keyword like “book” and click Enter to submit it.

<figure><img src="/files/uSwK4ZZ5bIgYmVq28TTL" alt="" width="486"><figcaption></figcaption></figure>

**Step 4:** Inside the workflow, click the right arrow next to the **Start** block to add a new block.

<figure><img src="/files/kpQshTeUotXswTj9Shek" alt="" width="338"><figcaption></figcaption></figure>

**Step 5:** In the new block, click the new block and open the dropdown list. Then select the **clipboard icon (Form Submit)** block. This block will send the form to customers to fill in.

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

**Step 6:** Type your desired message in the message field (this will be the form title).

You can also enable **Form completion required before continuing** to pause chat until form is filled.

<figure><img src="/files/VppANuSEB6LmQL3uOtsB" alt="" width="397"><figcaption></figcaption></figure>

**Step 7:** In the **Collect information** section, choose **Use custom form**. Then select the form you created earlier.

<figure><img src="/files/vIGTBU5jhoygNTjExDLC" alt="" width="397"><figcaption></figcaption></figure>

**Step 8 (Optional):** Add a **Text & Image** block to follow up with a thank you message or next steps.

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

**Step 9:** Review your workflow one last time. Then click **Save changes**. Finally, click **Publish** to activate the workflow.

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

**Step 10:** Go to your website and test the form by triggering it with one of the keywords you set.

<figure><img src="/files/F0urxeNhqASiGKuRwztJ" alt="" width="370"><figcaption></figcaption></figure>

The customer will see a summary of the information they entered after submitting the form:

<figure><img src="/files/BGe4KTHaWOSaBTRvlq8N" alt="" width="371"><figcaption></figcaption></figure>

**Step 11:** You can go back to the Form Builder section to see the form result.

<figure><img src="/files/94AIiKB8BmsndBVKSsfV" alt=""><figcaption></figcaption></figure>

## Video Guide

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

## Quick Tips

* Remember to **double-check your form before saving**. You cannot edit or change the field positions after customer submission.
* In your workflow, **use the Website channel only**, as forms don’t currently work on Facebook Messenger or Telegram.

## Troubleshooting

* **Problem:** The form doesn’t appear in the chat.

  **Solution:** Ensure you selected the **Form Submit** block and chose the correct custom form.
* **Problem:** The workflow isn’t triggered when the customer types a keyword.

  **Solution:** Confirm that **Trigger conditions** are enabled and the keywords are entered correctly.
* **Problem:** Can’t edit a form after a customer submits it.

  **Solution:** This is expected. You must create a new form and replace the one you’re using in Workflow if changes are needed.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Escalate to a Human Agent

When your chatbot cannot answer the question. Then make it notify live agent (if online) or collect the contact from client (if offline).

* When your bot cannot answer the question, you can decide the next step for your bot - just type your prompt.
* Access to the Workflow -> Create Workflow -> Choose Trigger Condition ->  Tick "Trigger by action"  -> Choose "When the bot does not know the answer"

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

* Click on the component -> Choose "Select condition" -> Choose "At least one human agent is online", you can find how to set online/offline [here](https://documents.cxgenie.ai/getting-started/knowledge-base/pages/rLeo88Wo0zH5zftJa0lI#id-2.-online-offline-status).&#x20;

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

* Choose the action for the condition if true or false (online or offline)

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

* The flow will work: if at least one human agent is online, they will be notified. If not, send a ticket to the customer to fill out the information.&#x20;
* See more @ [Notify agent](/bots/workflow/workflow-components-1/notify-agent) & [Create Ticket(s)](/ticket-system-add-on/create-ticket-s).


# SAAS Template

This template will help you to complete your chatbot more easily without struggling.

By clicking on the "Create bot" button, there is a tab pop up, from here, you can choose whether the templates we created for you: SAAS Start-up.

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

* There are 3 steps to creating the chatbot you might need to know:

## 1. Your Website Information

* Or your business website, we recommend you use a specific link for each field to the chatbot to learn more efficiently.

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

## 2. Basic FAQ

1. What is the cost of using SAAS?&#x20;

Provide your cost of SAAS, we recommend you should input your price package (eg: starting from ..., or package 1: ...; package 2: ..., etc).

<figure><img src="/files/qu0QjDOST6l2cA6S2kSF" alt=""><figcaption><p>Example of section 1. What is the cost of using SAAS.</p></figcaption></figure>

2. What promotions are available?

Provide your promotions are available, we recommend you should add a short text about the number of the discount (eg: a discount of 20% if paid annually, a discount of 10% if paid pro plan, buy 1 get 1, etc).

<figure><img src="/files/l31vDbvY2L9JMzN13ct4" alt=""><figcaption><p>Example of section 2. What promotions are available.</p></figcaption></figure>

3. How to start using?

Show your client how to use your SAAS by creating a short paragraph, we recommend you summarize it into steps. (eg: step 1: go to ...; step 2: click on the icon ...; step 3: use your Google account to sign in).

<figure><img src="/files/rZWUBgmimtRTBkNi7Vmo" alt=""><figcaption><p>Example of section 3. How to start using. </p></figcaption></figure>

4. Who should use this product?

Targeting your customer base in the field you are operating in. We recommend you list some fields that your SAAS can really help.&#x20;

<figure><img src="/files/1DOOMkQrup1wNef0iBki" alt=""><figcaption><p>Example of section 4. Who should use this product.</p></figcaption></figure>

5. What is your contact information? How to contact you?

Show your contact information and provide various ways to connect (email, social media, etc.).

<figure><img src="/files/8xRqkn0n3yuGBXXZBtBi" alt=""><figcaption></figcaption></figure>

* Click the "Next button" to jump to step 3.

## 3. More information

1. List of service packages, prices, and features corresponding to each package.

Write down your plans/packages, we recommend you use the format tool to separate your plans/packages into different parts to help the chatbot understand and respond to customers more efficiently.&#x20;

<figure><img src="/files/IjsnAtmklG5f8xXtidTS" alt=""><figcaption><p>Example of section 1, using the format tool to classify 2 packages. </p></figcaption></figure>

2. List of outstanding features and their benefits.

Bring out the features, or benefits of your SAAS. We recommend you use format tools to highlight your SAAS advantage.&#x20;

<figure><img src="/files/P2kGO88aV74B5qQjShy8" alt=""><figcaption><p>Example of section 2, using the format tool (Bold, heading 1, paragraph). </p></figcaption></figure>

3. Your case studies, use cases, or your client success stories.

Publish your case studies, use cases, or client success stories. If you don't have any of it, we recommend you use customers' reviews to import to this section, as much as possible. Use format tools to separate your content more clearly and help the chatbot learn more efficiently.&#x20;

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

## Note

* Click on the button "Create new bot" to complete. This template will be only a basic for beginners to use the chatbot.
* For more advanced features, please refer to the chapter BOTS in this document ([here](/bots/create-a-bot)).
* After creating the chatbot, you can re-check the data of your chatbot to edit or modify some contents/features suitable for your business in [Training Data](/bots/training-data) or [Bot's Knowledge](/bots/bots-knowledge-1).


# Agency Template

This template will help you to complete your chatbot more easily without struggling.

By clicking on the "Create bot" button, there is a tab pop up, from here, you can choose whether the templates we created for you: Agency.

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

* There are 3 steps to creating the chatbot you might need to know:

## 1. Your first information

* Or your business website, we recommend you use a specific link for each field to the chatbot to learn more efficiently.

<figure><img src="/files/7IgnwBlvSll1x3a00dMd" alt=""><figcaption></figcaption></figure>

* Click the button "Continue" <img src="/files/RBMrFpqabb5mYpMPeqOR" alt="" data-size="line"> to jump to step 2.

## 2. Your basic FAQs

1. What are the service costs?

* For pricing details of our services, we advise you to provide a brief price input. (eg: starting from ..., or cost  ... /plan, etc).

<figure><img src="/files/IBi46oDBgJIvzq1a1lot" alt=""><figcaption><p>Example of section 1.</p></figcaption></figure>

2. How to start using the service?

* Show your client how to book your agency by creating a short paragraph, we recommend you summarize it into steps. (eg: step 1: go to ...; step 2: click on the icon ... to contact us).

<figure><img src="/files/L8JuQ2MNl2x1elHxqYdB" alt=""><figcaption><p>Example of section 2. </p></figcaption></figure>

* Click the button "Continue" <img src="/files/BOZRyofH556BW7Jlz02q" alt="" data-size="line"> to jump to step 3.&#x20;

## 3. More Information

1. Agency Process

* Demonstrate to your client the step-by-step process your agency will undertake. We recommend you use the format tools to edit more clearly so your chatbot can learn more efficiently.&#x20;

<figure><img src="/files/K0zaT6kFygBQNisS3mW7" alt=""><figcaption><p>Example of section 1, used format tool (heading 1, number bullet).</p></figcaption></figure>

2. Agency services and information about each service.

* Show details about your agency service, we also recommend you use the format tool to edit your content separately into titles, and paragraphs.&#x20;

<figure><img src="/files/OBAzNRtb4ER84QTfZ1d0" alt=""><figcaption><p>Example of section 2.</p></figcaption></figure>

3. List of successful clients of the Agency.

* Show some clients who have worked with your agency.&#x20;

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

4. Achievements, successful campaigns, or case studies that the Agency has worked on.

* Show some campaigns, and case studies that the Agency has worked on.&#x20;

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

## Note

* Click on the button "Create new bot" to complete. This template will be only a basic for beginners to use the chatbot.
* For more advanced features, please refer to the chapter BOTS in this document ([here](/bots/create-a-bot)).
* After creating the chatbot, you can re-check the data of your chatbot to edit or modify some contents/features suitable for your business in [Training Data](/bots/training-data) or [Bot's Knowledge](/bots/bots-knowledge-1).


# F\&B Template

This template will help you to complete your chatbot more easily without struggling.

By clicking on the "Create bot" button, there is a tab pop up, from here, you can choose whether the templates we created for you: F\&B (Small Brand).

## 1. Your Information

1. Your menu&#x20;

* Input your menu, we recommend using text instead of images, but you can attach a photo of your food for introduction.&#x20;
* You can use format tools to edit your content by separating it into Headings and Paragraphs.&#x20;

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

2. Your address and hotline.

<figure><img src="/files/2tXrnwUfnKo8jlWdonpX" alt=""><figcaption></figcaption></figure>

3. Your opening hours

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

4. Your website homepage link

* We recommend you not use the link to the food delivery application.

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

* Click the button "Continue" <img src="/files/RBMrFpqabb5mYpMPeqOR" alt="" data-size="line"> to jump to step 2.

## 2. Frequently questions

1. Do you deliver?&#x20;

* We recommend you use the link to the food delivery application.&#x20;

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

2. What's your best seller?

* We recommend you use text only for this field, if you want to attach the dish image, please see more at [Workflow Components](/bots/workflow/workflow-components-1).&#x20;

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

3. Do you issue invoices?

* We recommend you use text only for this field, every country will have a different tax system (depending on the country where your F\&B is located).

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

4. Do you have any promotions or events?

* This field can import as deals, combos, and promotions (eg: buy 1 get 1, buy the combo with discount price, etc.)

<figure><img src="/files/2RDLarPZCOOqn8SRyNZE" alt=""><figcaption></figcaption></figure>

## Note

* Click on the button "Create new bot" to complete. This template will be only a basic for beginners to use the chatbot.
* For more advanced features, please refer to the chapter BOTS in this document ([here](/bots/create-a-bot)).
* After creating the chatbot, you can re-check the data of your chatbot to edit or modify some contents/features suitable for your business in [Training Data](/bots/training-data) or [Bot's Knowledge](/bots/bots-knowledge-1).


# E-commerce Template

This template will help you to complete your chatbot more easily without struggling.

By clicking on the "Create bot" button, there is a tab pop up, from here, you can choose whether the templates we created for you: E-commerce.

## 1. Basic FAQs

1. What is your address and contact information?

* You can use your address where your shop is located.

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

2. Is your shop running any promotions?

* This field can import as deals, combos, and promotions (eg: buy 1 get 1, buy the combo with discount price, etc.)

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

3. What are the shipping costs?

* In this field, you can import shipping costs, so we recommend you separate between internal countries and worldwide. Especially, when you have customers from various e-commerce platforms.&#x20;

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

4. How to buy your product? How to order?

* In this section, you can freely attach links to your shop from various e-commerce platforms for customers can access more conveniently. &#x20;

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

* Click the button "Continue" <img src="/files/RBMrFpqabb5mYpMPeqOR" alt="" data-size="line"> to jump to step 2.

## 2. About your shop and your product.

1. General introduction about your shop (what's special about your shop?)

* In this field, you can use the banner of your shop and a short description of your shop.&#x20;

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

2. What is your best seller? How much is it? Any detailed information about it? How to use it?

* In this section, you can write down your best-seller, high-purchase rate, or even details about your product. You can either show an instruction about your items.&#x20;

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

## 3. More information

* All these sections can be inputted optionally, some of them may not be available with your shop.

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

## Note

* Click on the button "Create new bot" to complete. This template will be only a basic for beginners to use the chatbot.
* For more advanced features, please refer to the chapter BOTS in this document ([here](/bots/create-a-bot)).
* After creating the chatbot, you can re-check the data of your chatbot to edit or modify some contents/features suitable for your business in [Training Data](/bots/training-data)or [Bot's Knowledge](/bots/bots-knowledge-1).


# From Scratch

This section will let you create your bot manually import.

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

* By clicking this template, you can manually import your bot's data. You can check references in [Broken mention](broken://pages/BLyE7F6GbFditXd1IfnM) or start from [Bots](/bots/create-a-bot). By going to these articles, you can complete the basics for your chatbot to be ready to use.&#x20;


# Create a Bot

This section helps you set up your first chatbot in CX Genie. By giving it a name, profile picture, and greeting message, you create the foundation for customer interactions

## Steps to Use

**Step 1:** Sign into [**CX Genie**](https://app.cxgenie.ai/).

**Step 2:** In the left sidebar, go to **Bots** and click **+ Create bot**.

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

**Step 3:** Enter your bot’s name and upload a profile picture. Then click **Continue**.

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

**Step 4**: Check the greeting message and adjust if needed.

Click **Create new bot** to finish.

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

## Video Guide

{% embed url="<https://www.youtube.com/watch?index=1&list=PLDjYzJq8XiPUySns0_nSDmgolst-R3Q5t&v=6bw5Jj1LOY0>" %}

## Quick Tips

* Choose a **friendly name** and a **profile picture that match your brand** — these are what your customers will see when chatting with the bot.
* Keep the **greeting short and helpful** — this is the **first message users will see**.

## Troubleshooting

* **Profile picture not uploading**: Check the file size (must be ≤1 MB) and format (JPG/PNG).**Cannot create bot**: Ensure your account has workspace permissions to add new bots.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) community or email us at <hello@cxgenie.ai>.


# Bot Overview & Creation

***

### **Overview** <a href="#overview" id="overview"></a>

* The Bots module allows you to manage and organize AI chatbots in CX Genie.
* Each bot can be trained, configured, and deployed for scenarios such as customer support, lead generation, or onboarding.
* This page covers the **Bots Dashboard**, **view options**, and **how to create a new bot**.

***

### Bots Dashboard

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

* Go to the **Bots** tab in the left sidebar.
* Bots are displayed as cards (default **Grid view**).
* Each bot card shows:
  * Avatar + Name
  * Last updated time
  * ⚙️ Settings (edit)
  * 🗑️ Delete

### Switch Between Grid and List Views

* Toggle in the top-right corner:
  * **Grid view (🔲)** – cards with images.
  * **List view (☰)** – vertical list format.
* View preference is saved per user.

***

### Create a New Bot

1. Click **+ Create bot**.
2. Fill in bot details:
   * Name (required, max 50 characters).
   * Greeting message (optional, max 250 characters).
   * Avatar (choose from preset options).
3. Choose a template (Blank or predefined).
4. Click **Create new bot**.
5. System redirects to the bot’s configuration interface.

### Example / Use Case

* A company creates a bot named **OrderHelper** to handle order tracking.
* The admin adds a friendly greeting, picks an avatar, and selects the Blank template.
* After creation, they continue configuring training data and workflows.

### Notes

* You can create multiple bots depending on your package.
* Grid/List view is saved individually for each user.

[<br>](https://documents.cxgenie.ai/dashboard/overview)


# Bot General Information

***

## **Overview**

The **General Information** tab defines the basic identity and appearance of your bot. Here, you can set its name, add a business name, choose an avatar, customize the chat theme color, configure the reply language, and control whether the watermark is shown on the chat widget.

***

![Figure 1. General Information](/files/IE1wOH7vwJoNVwA7O1v0)

## Steps to Use

### 1. S**et Bot Name**

* Enter a clear and memorable name in the **Name** field. This name will be visible to users during conversations.

### 2. A**dd Business Name (Optional)**

* Provide a business or brand name to associate with the bot.

### 3. C**hoose Avatar**

* Upload or select an avatar image. The avatar appears next to the bot’s replies, helping users identify the bot.

### 4. P**ick Theme Color**

* Select a color or enter a hex code for the chat widget’s theme.
  * A contrast ratio indicator ensures the text remains readable with your chosen color.

### 5. S**elect Reply Language**

* Choose the default reply language for the bot.
  * To enable auto-detection, click the **x** next to the selected language.

### 6. T**oggle Watermark Display**

* Turn the watermark on/off to control whether “Powered by CX Genie” appears in the widget.

***

## **Example / Use Case**

A bakery creates a bot named **“Bánh mì Floppicanna”**, uploads a bread-themed avatar, and sets the widget color to **#364DE7**. They initially configure the reply language as Vietnamese but later clear it to enable automatic language detection. Finally, they decide to keep the watermark visible for branding transparency.

***

## **Notes**

* Bot name limit: **50 characters**.
* Ensure chosen theme color passes the **contrast ratio** check for readability.
* Clearing reply language enables **auto-detect mode**.
* Watermark toggle controls whether branding appears on the chat widget.


# Bot Configuration Interface

***

### Overview

* After creating a bot, you’re taken to the **configuration interface**.
* This is the main setup space for how the bot looks, thinks, and talks.
* Different from the sidebar **Settings tab** (which controls live chat behaviors).

***

### Accessing the Configuration Screen

* From the Bots dashboard, click on any bot card.
* This opens the full configuration interface.

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

***

### Left-Side Navigation (Sections)

* **Preferences**: `General information` : Basic identity (name, business name, avatar, theme color, reply language).
* **Data**:
  * `Training Data` : Upload raw sources like FAQs, documents, and help articles.
  * `Bot’s Knowledge` : Manage structured knowledge learned from conversations.
* **Operation**:
  * `Support Center`: Build and display FAQs, articles, and guides in a self-service help portal.
  * `Workflow`: Design conversation logic using blocks.
  * `Settings`: Configure runtime options such as timeouts, feedback, and agent assignment.
* **Development**:
  * `Launch Bot`: Deploy your bot for public use.
  * `Ticket Settings`: Configure ticket creation inside chat sessions.
  * `Prompt & Models`: Adjust model prompts and behavior.
  * `Advanced Tools`: Domain, Webhook, Platform Integration, API Document.

***

### Live Testing with “Chat with Bot”

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

* Black **Chat with bot** button at the top.
* Opens simulator panel to:
  * Test responses from Training Data.
  * Preview workflows.
  * Validate that inputs are understood.

### Example / Use Case

* A user creates a bot called **Bánh mì Floppicanna**.
* They upload product FAQs in **Training Data**, design conversation flow in **Workflow**, and test responses via **Chat with bot**.

***

### Notes

* Changes in each section must be saved manually.
* The preview chat updates in real time → useful for QA and iteration.
* This is the **central place** to build and maintain your bot.


# Training Your Bot

This section helps you train your bot to answer customer questions by providing it with different types of information, such as FAQs, knowledge articles, or imported documents.

## Steps to Use

### 1. Open Training Data

* From the **Bots** section, select your bot.
* In the left-side navigation, click **Training Data** under the **Data** group.

<figure><img src="/files/2udZBYuXYyc8Y6lSgZ5V" alt=""><figcaption></figcaption></figure>

### 2. Choose a Training Method

CX Genie supports multiple data sources:

* **FAQs**: Import question–answer pairs.
* **Articles**: Add structured knowledge articles.
* **Documents**: Upload files (PDF, Word, etc.).
* **URLs**: Crawl public web pages for content.
* **Database**: Connect structured data sources.

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

**Start with FAQs & Articles (Recommended for beginners)**

* [FAQs (Frequently Asked Questions)](/bots/training-your-bot/faqs-frequently-asked-questions)are best for short, common questions.
* [Articles](/bots/training-your-bot/articles) work well for detailed guides or policies.

### 3. Save & Sync

* After uploading, click **Save changes**.
* The bot will automatically start learning from the added sources.

## Quick tips

* Begin with FAQs and short articles for faster setup.
* Keep answers **concise and user-friendly** (avoid long paragraphs).
* Use **consistent formatting** (e.g., product names, dates).
* Update Training Data regularly as new promotions, features, or FAQs are introduced.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# FAQs (Frequently Asked Questions)

***

## **Overview**

The **FAQs** section allows you to manage common customer questions and answers that your bot can use to provide quick and accurate information. This improves support by handling frequent inquiries consistently, reducing wait times and agent workload.

***

## Steps to Use

### Method 1: Add FAQs one by one

**Step 1:** In the **FAQs** tab, click the **Add FAQs** button.

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

**Step 2:** Enter a clear question that your customer might ask and the answer you want the bot to give. Then click **Save changes**.

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

**Step 3:** Wait until the **Status** column shows a ✅ green check mark — this means the bot has learned the FAQ.

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

***

### Method 2: Upload multiple FAQs at once

**Step 1:** Click the **Import FAQs** button.

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

**Step 2:** Download and fill in the **FAQ template** file with your questions and answers.

**Note:**

* File must be `.xls` or `.xlsx`, with size up to **100 MB** or **200 rows**.

<figure><img src="/files/4u1h8tYPa22JRWI2P6Lu" alt="" width="537"><figcaption></figcaption></figure>

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

**Step 3:** Upload the file by clicking the **Click here** area or dragging and dropping it.

<figure><img src="/files/aiqZN3h9sQpvjPOFTDfG" alt="" width="537"><figcaption></figcaption></figure>

**Step 4:** Review the uploaded FAQs.

* To remove an FAQ, click the **trashcan icon** (🗑️) next to it.
* To upload an additional file, click **Choose Another**.
* To update your file, click **Cancel**, edit the file, then upload again.

Once you’re done, click **Import** to submit the data.

<figure><img src="/files/69Si36vaSfDw4ZNnJ2Pf" alt=""><figcaption></figcaption></figure>

**Step 5:** Wait for the **Status** column to show a ✅ green check mark.

<figure><img src="/files/1s4ntuGUIK8OqrFbKued" alt=""><figcaption></figcaption></figure>

### Edit or Delete FAQs

* **Edit**: Click the 🖊️ pen icon to update a question or answer.
* **Delete**: Click the 🗑️ bin icon to remove an FAQ permanently.

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

***

## FAQ Status Definitions

* **Imported**: The FAQ has been successfully learned and added to the bot’s knowledge base.
* **In Queue**: The FAQ is waiting to be processed.
* **Overlapped**: The FAQ duplicates or overlaps with existing knowledge (similar meaning questions) and may need review.

***

## Example / Use Case

A bakery bot includes FAQs such as:

* *What are the prices of your cakes?*
* *How to place an order?*
* *What ingredients do you use?*

The bot instantly answers these, saving time and improving satisfaction.

***

## Notes

* FAQ questions should be clear, specific, and easy to understand.
* Avoid vague or abstract questions that the bot may not detect.
* Use full sentences or commonly asked phrases for better accuracy.
* Regularly review and update FAQs to keep them relevant.

***

## Quick Tips

* Keep the **question and answer in the same language** for best results.
* Start with the **top 10–20 common questions**.
* Use consistent terms (e.g., product names, service types).

## Troubleshooting

* **File won’t upload** → Check that it’s .xls or .xlsx, under 100 MB, ≤200 rows.
* **FAQ not showing green check mark** → Wait a few moments, or re-import the data.
* **Bot gives slightly different answers** → This is normal; the bot may rephrase to sound more natural.

***

## Video Guide

{% embed url="<https://www.youtube.com/watch?list=PLDjYzJq8XiPUySns0_nSDmgolst-R3Q5t&v=SGv8EYpDBT8>" %}


# Articles

***

## **Overview**

The **Articles** feature allows you to create, manage, and organize detailed written content about your products or services. Unlike FAQs, which are short Q\&A entries, Articles support longer, structured content with multiple sections or headings.

This helps:

* Deliver **comprehensive explanations**.
* Improve **customer understanding and engagement**.
* Provide a strong **knowledge base** that the bot can use when answering queries.

![Figure 1. Training Data - Articles](/files/QcovDZROX8ftaci6vjxH)

***

## Steps to Use

**Step 1:** In the **Articles** tab, click the **+ Article** button.

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

**Step 2:** Enter the **title** and **content** of your article.

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

**Step 3:** Use **Heading 1**, **Heading 2**, **Heading 3**, and normal paragraph formatting to divide your content into clear sections. This will help the bot learn more accurately.

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

**Step 4:** Apply formatting like **bold, bullet points, links, and images** for clarity and readability.

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

**Step 5:** Click **Create** to submit the article.

**Step 6:** Check the **Status** column — a ✅ green check mark means the article was successfully learned.

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

## Edit or Delete Articles

**Edit:** Click the 🖊️ pen icon to update the title or content.

**Delete:** Click the 🗑️ bin icon to remove an article.

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

***

## **Knowledge Base Tab**

All imported Articles are stored in the **Knowledge Base tab**.\
Here, you can:

* Search and filter articles.
* Review status (Imported, In Queue, Overlapped).
* Manage active content for chatbot queries.
* Perform bulk actions (delete, update statuses).

<figure><img src="/files/203vljwTPZ5lhvzrEa1Y" alt=""><figcaption><p>Figure 2. Training Data - Knowledge base tab</p></figcaption></figure>

***

## Article Status Definitions

* **Imported**: Successfully learned and added to the bot’s knowledge base.
* **In Queue**: Still processing.
* **Overlapped**: Content is similar or duplicated, requiring review.

***

## **Example / Use Case**

A product support bot includes Articles like:

* *How to integrate with Facebook/Meta Messenger*
* *Complete guide to using Premium Plan features*
* *Troubleshooting common order processing issues*

These enable the bot to provide **detailed, structured responses**, reducing repetitive support tickets.

***

## **Notes**

* Articles should be **well-structured** with clear headings for maximum readability.
* Avoid duplicating information from FAQs — use Articles for **longer, in-depth explanations**.
* Regularly review items marked as *In Queue* or *Overlapped*.
* Overlapped content should be cleaned up to prevent conflicts in bot knowledge.

***

## Quick Tips

* Start with 2–3 core guides (setup, troubleshooting, product features).
* Add images or links where helpful — visual content improves learning.
* Keep article titles **descriptive and searchable** (e.g., “How to reset your password”).

## Troubleshooting

* **Article not showing green check mark** → Wait or re-upload.
* **Duplicate/Overlapped status** → Edit content to avoid redundancy.
* **Bot gives partial answers** → Ensure headings and formatting are applied properly.

***

## Video Guide

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


# Documents

***

## Overview

The **Documents** feature allows you to upload and manage files that your bot can learn from to improve its knowledge base. Supported formats include **.pdf, .pptx, and .ppt**.

You can upload up to **10 files at once** with a combined size limit of **100 MB**. Once uploaded, the bot automatically processes the documents, extracts text content, and uses it to provide more accurate and detailed answers.

![Figure 1. Training Data - Documents section](/files/x5zaclax3x8t0eoBXc49)

Figure 1. Training Data - Documents section

***

## Steps to Use

1. **Access the Documents Tab**

* Go to the **Training Data** section in your bot’s dashboard.
* Select the **Documents** tab.

#### 2.  Add New Documents

1. Click **Add documents** (top right).
2. In the pop-up window, drag and drop files or click to browse from your computer.
3. Supported formats: **.pdf, .pptx, .ppt**.
4. Upload up to **10 documents** at once (max total size: **100 MB**).
5. Click **Import** to begin uploading and processing.

#### 3. View Uploaded Documents

* Uploaded files appear in a list with details:
  * Filename
  * File size
  * Date/time uploaded
  * Processing status (e.g., “0/33 pages processed”)
* Use pagination to navigate if many files are uploaded.

#### 4. Manage Documents

* **Download**: Click the download icon to get the original file.
* **Delete**: Click the 🗑️ trash icon to remove a file (this also deletes its learned content from the bot).

***

## Example / Use Case

A company uploads:

* Product manuals
* Training guides
* Corporate presentations

The bot then learns from these files and can answer customer questions about technical details, policies, or product features—without needing manual FAQ entry.

## Notes

* Processing may take longer for large or complex files.
* Only **text content** is extracted—images, tables, or special formatting are not processed as knowledge.

<figure><img src="/files/lXnfFb77UpBKvKlLYMPV" alt=""><figcaption><p>Figure 2. Document Detail</p></figcaption></figure>

***

## Quick Tips

* Upload documents in text-based format (not scanned images).
* Split large manuals into smaller files for faster processing.
* Use clear titles for files so you can track them easily later.

## Troubleshooting

* **File won’t upload** → Check format (.pdf, .pptx, .ppt) and size ≤100 MB.
* **Status stuck at 0/x** → Wait a few minutes or re-upload.
* **Bot not using content** → Ensure document has extractable text.
* **File disappears after upload** → Refresh page or re-import.


# URLs

***

## Overview

The **URLs** feature lets you feed web content directly into your bot’s knowledge base. By adding links to relevant web pages, the bot will crawl and extract text so it can answer customer questions more accurately.

Each URL has a learning status:

* **Imported**: Successfully learned and integrated.
* **In Queue**: Still processing.
* **Overlapped**: Content overlaps with existing knowledge (duplicate/similar).

![Figure 1. Training Data - URLs](/files/ABOX8emxCUZXGAyvYhao)

***

## Steps to Use

1. **Access the URLs tab**

* Go to **Training Data** → **URLs** in your bot’s dashboard.

2. **Add a new URL**

* Enter the full link (max 255 characters) in the input field.
* Click **Add URL** → the link goes into the queue for processing.

3. **View existing URLs**

* See all added links, creation time, status, and actions.
* Use pagination for long lists.

4. **Interpret status**

* ✅ **Imported** → URL processed successfully.
* ⏳ **In Queue** → still crawling.
* ⚠️ **Overlapped** → duplicate or similar content detected.

5. **Re-crawl URLs**

* Use **Recrawl all URLs** (top right) to refresh data.

6. **Delete URLs**

* Click 🗑️ to remove a URL (this also deletes its learned content).

***

## Example / Use Case

A company adds:

* *Privacy policy page*
* *Product data sync documentation*

The bot then learns directly from these pages and can answer questions like “How does data sync work?” or “Where is my data stored?”

***

## Notes

* Processing may take time depending on page size.
* Only **text content** is extracted (no images, videos, or scripts).
* Avoid adding many pages with similar content → this can reduce accuracy.
* Deleting a URL removes all knowledge derived from it.

***

## Quick Tips

* Add official documentation or policy pages for accurate answers.
* Keep URLs stable (avoid links that change often).
* Periodically use **Recrawl** to refresh outdated content.

## Troubleshooting

* **URL won’t add** → Check link format (http/https) and length ≤255 characters.
* **Status stuck in Queue** → Wait, then try **Recrawl**.
* **Overlapped warning** → Remove duplicate or redundant links.
* **Bot not using content** → Ensure the page has visible text (not just images or dynamic scripts).


# Connect with Database

***

## Overview

The **Connect with Database** feature lets your bot connect directly to external databases, so it can use structured data in real time. This enriches the bot’s knowledge base and enables dynamic, accurate answers.

Supported databases: **PostgreSQL** and **MySQL**.

![Figure 1. Connect with database panel](/files/ITQIBZ3QYkk5kbeHmw0J)

## Steps to Use

1\. Access the Database Tab

* Go to **Training Data** → **Connect with Database**.

#### 2. Add a New Database Connection

1. Click **Add Database**.
2. Fill in the form:
   * **DB Name**: Friendly name for the connection.
   * **Type**: PostgreSQL or MySQL.
   * **Host**: Server hostname or IP.
   * **Port**: Database port.
   * **Username / Password**: Login credentials.
   * **Require SSL**: Toggle if SSL is needed.
3. Click **Create** to connect.

#### 3. Manage Connections

* After setup, the database appears in the list with name, partial connection string, and last update.
* Use **✏️ Edit** to update details, or **🗑️ Delete** to remove.

#### 4. View & Edit Tables and Columns

* Click the database name to open tables and columns.
* Select a table → view its columns.
* Click **ℹ️ Info** beside a table/column to add descriptions.
  * Add descriptions to explain the purpose/meaning.
  * Leave blank if you don’t want the bot to use that data.

#### 5. Sync with the Bot

* After updating descriptions, click **Sync to bot’s knowledge**.
* This pushes schema and metadata into the bot’s knowledge base.
* Sync again after any schema or description change.

<figure><img src="/files/pWWL4piCx68xN3kPqcMJ" alt=""><figcaption><p>Figure 2. Database management panel</p></figcaption></figure>

## Notes

* Use **snake\_case** (lowercase letters with underscores) for column names (avoid uppercase or special characters).
* Write **clear, meaningful descriptions** for better accuracy.
* Only structured data with descriptions will be used — blank ones are ignored.
* Keep credentials secure and update if server settings change.
* Always re-sync after schema changes to refresh knowledge.

***

## Quick Tips

* Start with the most relevant tables (e.g., orders, customers).
* Add short but descriptive notes for columns (e.g., `order_date` = “Date when order was created”).
* Test queries with the bot after syncing to confirm data mapping.

## Troubleshooting

* **Connection fails** → Check host, port, and credentials.
* **SSL error** → Ensure SSL is enabled in both DB and CX Genie.
* **Bot not retrieving data** → Confirm table/column descriptions were added and synced.
* **Schema updated but not reflected** → Run **Sync to bot’s knowledge** again.


# Connect E-commerce Store

***

## Overview

The **Connect E-commerce Store** feature lets you link your CX Genie bot directly with online store platforms such as **Shopify** or **WooCommerce**.

This integration enables the bot to:

* Access your **product catalog**
* Provide **real-time pricing and stock status**
* Answer detailed product questions with live data

![Figure 1. Training Data - E-commerce store panel](/files/vHFPHeMvIq1zOG3XCMUs)

***

## Steps to Use

#### 1. Access the E-commerce Tab

* Go to **Training Data** → **Connect E-commerce Store**.

#### 2. View Connected Stores

* See all stores linked to your bot.
* Columns include **Store name**, **Platform** (Shopify/WooCommerce), and **Actions**.
* Use the 🗑️ Trash icon to remove a store connection.

#### 3. Add a New Store Connection

1. Click **Connect Store**.
2. Choose **Shopify** or **WooCommerce**.

**For Shopify**

* Enter **Access token**.
* Enter **Store permanent link** (e.g., `shop.myshopify.com`).
* Click **Connect**.

**For WooCommerce**

* Enter **Consumer key** and **Consumer secret**.
* Enter **Store permanent link** (e.g., `mydomain.com`).
* Click **Connect**.

#### 4. View Store Details & Products

* Click on a connected store name → open details panel.
* See a list of products with **name, price, stock availability**.
* Use the search box to find specific products.

<figure><img src="/files/kRDGr63eULnZNebdeTnB" alt=""><figcaption><p>Figure 2. Store details</p></figcaption></figure>

#### 5. View Product Details

* Click a product → view details:

  * Product image
  * Price & stock count
  * Description
  * Direct product page link

  <figure><img src="/files/td2bLmi1v0CWXwS8wFRT" alt=""><figcaption><p>Figure 3. Product details</p></figcaption></figure>

#### 6. Remove a Store Connection

* In the store details panel, click **Remove Store** to disconnect.

## Example / Use Case

A Shopify store owner connects their shop to CX Genie.

* Customers ask: *“Is the Mocha Latte Pack in stock?”*
* The bot fetches real-time stock and pricing from Shopify and replies instantly.
* This reduces manual updates and improves customer shopping experience.

***

## Notes

* Only **1 store connection per bot** is supported.
* Credentials needed:
  * Shopify → Access token + store link
  * WooCommerce → Consumer key, secret, and store link
* Data is updated **in real-time** when synced.
* Removing a store connection deletes all linked product data.
* Switching platforms? → Remove the old store before adding the new one.
* 📄 Guide for access tokens: [Shopify/WooCommerce Integration PD](https://storage.cxgenie.ai/Guide-Integration-Shopify-WooCommerce.pdf)

***

## Quick Tips

* Sync regularly to ensure stock and prices are accurate.
* Use descriptive product names in your store — the bot uses these for search.
* Test product queries in **Chat with Bot** after integration.

## Troubleshooting

* **Connection fails** → Check credentials (Access token / Consumer key & secret).
* **Products not syncing** → Confirm store data is published and live.
* **Bot not answering with product info** → Re-sync or refresh the integration.
* **Exceeded 1 store limit** → Remove existing connection before adding a new one.


# Bot’s Knowledge

***

## Overview

The **Knowledge Base** feature, located in the **Bots** module, is where you teach your bot to understand and accurately answer customer questions. It helps you build a structured and smart AI assistant by combining:

* Pre-defined question–answer entries
* Business-specific terminology via Dictionary
* Auto-detection of unanswered queries
* Suggestions from real conversations with agents

> This module improves continuously as your bot interacts with users and learns from experience.

***

## 📘 1. Knowledge Entries

### Overview

This is the main list of Q\&A pairs that the bot uses to provide automatic replies. Each entry contains a question, an answer, and a status label.

### Status Types

* **Imported** – Already learned and usable
* **In Review** – Pending admin approval
* **Overlapped** – Similar to an existing entry

### How to Use

1. Go to **Bots → Knowledge Base**
2. View the list of Q\&A entries
3. Click ✏️ to edit or 🗑️ to delete any entry

> You can search entries using the top-right bar.

![Figure 1. Bot’s knowledge section](/files/JwDgIlZTtS3gSeflDlRh)

***

## 2. Dictionary

### Overview

The **Dictionary** is used to help the bot understand **slang, abbreviations, or business-specific terms**. It allows you to define what each keyword means so the bot can interpret customer input more accurately.

> ❗ The dictionary only supports plain text (no emojis or symbols).

### How to Use

1. Click **Dictionary** from the top-right corner of Knowledge Base
2. Click **+ New Keyword**
3. Enter:
   * **Keyword** (e.g., “promo”)
   * **Meaning** (e.g., “discount”)
4. Click **Save**

<figure><img src="/files/E3MIdovkKfHJP5Hmaiwm" alt=""><figcaption><p>Figure 2. Dictionary Panel</p></figcaption></figure>

***

## 3. Unanswered Questions

### Overview

When the bot is asked something it doesn't understand (i.e., not in the trained knowledge base), the question is logged as **Unanswered**. This lets admins review and decide whether to create a new answer.

> ⚙️ You can configure how the bot handles these events in Bots → Settings.

### How to Use

1. Go to **Bots → Knowledge Base**
2. Click **Waitlist → Unanswered Questions**
3. Use:
   * ✏️ to add a new answer and train the bot
   * 🗑️ to delete irrelevant/spam entries

<figure><img src="/files/3YTZTriHA5M0ZuK7Fi7p" alt=""><figcaption><p>Figure 3. Unanswer Question Panel</p></figcaption></figure>

***

## 4. Learn from Conversation (via AI Button)

### Overview

This feature allows the bot to **learn Q\&A pairs from real conversations**, but only when agents manually trigger learning via the **AI button in the bottom-left of the chat window**.

> ⚙️ Must be enabled in Bots → Settings under “Bot learns from conversation”.

### How it Works

* When the AI button is clicked during a live chat, the system will extract the most recent question–answer exchange.
* These entries are stored in **Waitlist → Learn from Conversation** for admin review.

### How to Use

1. Enable the feature in **Bots → Settings**
2. During chat, agent clicks the **AI button**
3. Go to **Bots → Knowledge Base → Learn from Conversation**
4. Use:
   * 📥 Import to accept
   * ✏️ Edit before importing
   * 🗑️ Delete if not suitable

<figure><img src="/files/hHS5WnWknDUqBNmXfRvq" alt=""><figcaption><p>Figure 4. Bot learns from messages panel</p></figcaption></figure>

<figure><img src="/files/bUB4Kgx6bq3OeqvIS0Tb" alt=""><figcaption><p>Figure 5. AI Actions button in Help Desk</p></figcaption></figure>

***


# Review the Bot’s Knowledge

This section helps you review and manage all the knowledge your bot has learned from your training data. The more varied and detailed your knowledge is, the better your bot can respond to users.

***

## Steps to Use

### Method 1: In Training Data

**Step 1:** In the **Bots** section, open the **Training Data** tab.

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

**Step 2:** Choose the method you used to train the bot — either **FAQs** or **Articles**.

**Step 3:** Click on the specific FAQ or Article you want to check.

**Step 4:** Go to the **Knowledge Base** tab to see what the bot has learned.

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

**Step 5:** Click on any piece of knowledge to edit or delete it. Remember to click **Save changes** when you’re done.

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

***

### Method 2: In Bot’s Knowledge

In the **Bots** section, go to the **Bot’s Knowledge** tab.

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

***

## Structure Overview

1. **Search Questions Box:** Use this to quickly find specific knowledge entries.
2. **Multiple Select Boxes (🔲):**

   Use the checkboxes on the left to select and delete multiple knowledge items at once.
3. **Knowledge Entries:**

   Click on any item to see its:

   * **Question**
   * **Answer**
   * **Data Source** – shows where the information came from (e.g. FAQs, Articles, etc.)

   After making any changes, click **Save changes** so the bot can relearn the updated information.

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

1. **Status Column:**

   This shows whether an item is:

   * **Imported** – already learned by the bot
   * **In Review** – not yet learned due to an issue, such as overlapping content with other entries\
     Use the **filter icon** next to this column to view entries by their status.<br>

     <figure><img src="/files/rg934L2XPrBZbed2NNfF" alt="" width="168"><figcaption></figcaption></figure>
2. **Pen Icon (🖊️):**

   Click this to edit a knowledge entry.
3. **Bin Icon (🗑️):**

   Click this to delete a knowledge entry from the bot’s memory.

***

## Chat Test with the Bot

**Step 1:** In the **Bots** section, open the **Launch Bot** tab. Then scroll down to the **"Or send this link to your customer"** section and click the **Copy** icon next to the link.

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

**Step 2:** Open a new tab in your browser and paste the link. Start chatting with your bot to test what it has learned.

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

## Video Guide

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

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Bot learns from Conversations

Get know more about how to make Bot learns from conversations.

### This feature will help your chatbot, designed for your clients, understand your customers.

* Bot Learns From Conversations helps the chatbot learn the reply from the live agent, it can be imported manually or autosave in the settings. When you click on the "Bot Learns From Conversations" a box will pop up and let you decide the action of every reply. &#x20;
* This feature will help you to train your chatbot more efficiently, especially when you have a mass traffic message on your business social media platform.&#x20;
* To access this feature you can follow: from Dashboard -> Bots -> Bot's Knowledge -> Bot Learns from Conversations. (\****Note: you need to turn on this feature before adding the chatbot to your business social media platform***).
* When you add a Facebook page or activate the auto-learning mode (located in the [**Settings**](/bots/settings)), the knowledge will be loaded here for approval. The bot will only learn the approved information
* There, a tab appears:

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

* 3 tools let you decide on each Question - Answer Data:
  * Import (<img src="/files/nuSygzPJHzM70xGVoj55" alt="" data-size="line">): Import the data to the Knowledge Base.
  * Edit (<img src="/files/1dDplQYSNKHCvmx3X4Vj" alt="" data-size="line">): Edit your data before import to the Knowledge Base
  * Delete (<img src="/files/a7vV25bfUOCi71T0pNMj" alt="" data-size="line">): Delete unwanted data.
* When you click on the edit icon, there will be a box pop-up. It will let you know the content, where the question comes from which customers, you can also click on the name of the customer to jump to the specific client.

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

* You may need to use format tools to modify your content.

<figure><img src="/files/WNBrmfbNHUN7zI1Jodqc" alt=""><figcaption><p>Format Tools</p></figcaption></figure>

* Remember to click "Save changes" before leaving.
* By clicking <img src="/files/2AMJPSybSQPhBVw8GnbV" alt="" data-size="line">, you will add the data to [Bot's Knowledge](/bots/bots-knowledge-1).


# Support Center

Support Center lets you create a self-service help portal where customers can quickly find FAQs, troubleshooting guides, and articles without needing live support.

***

## 1. Feature Overview

The Support Center allows users to create a central help portal where they can upload articles related to their products or services. It helps deliver information to customers quickly without requiring a chatbot or live agent.

This feature is especially useful for:

* Frequently asked questions (FAQs)
* Simple troubleshooting guides
* Common customer issues

## 2. How to Access the Feature

The Support Center works at the **bot level**, so each bot has its own independent help center.

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

To access:

1. Log in with your Google account or an existing account.
2. Go to the **Bots (1)** module.
3. Select any bot.
4. Navigate to **Support Center (Operation) (2)**.
5. The Support Center interface will appear.

## 3. Structure and Hierarchy

* **Topics** are the highest level.
* Each Topic can contain multiple **Folders** and **Articles**.

## 4. How It Works

### 4.1 Create a New Topic

<figure><img src="/files/1dLBoTh7C8C3vHpoc3UA" alt=""><figcaption><p>Create new topic</p></figcaption></figure>

1. In the Support Center interface, click the black **“New Topic”** button (top right).
2. A form will appear where you fill in the details:
   * **Upload icon**\* (only .png, .jpeg, .jpg; recommended size: 200px x 200px)
   * **Title**\*
   * **Description**\
     (\* fields are required)
3. Click **Create Topic** to save, or **Cancel** to discard.
4. Once created, the new Topic will immediately appear in the Support Center.
5. Key details shown:
   * Topic name
   * Description
   * Status (Published / Unpublished)
   * Number of folders and articles

<figure><img src="/files/470wbW9eFsYsMs53KA7T" alt=""><figcaption><p>When succesfully create new Topic</p></figcaption></figure>

### 4.2 Support Center Toolbar

<figure><img src="/files/1jDnBT9jp7Z3S6qf5T8I" alt=""><figcaption><p>Support Center Toolbar Area</p></figcaption></figure>

The toolbar helps you manage how your Support Center content is displayed:

1. **Languages** – Default is English. If additional languages were set in *Settings*, they will appear here. (Note: articles will not auto-translate.)
2. **Search bar** – Find topics quickly.
3. **Settings** – Configure personalization options:
   * **Supported languages** – Display articles in 150+ languages (manual translation required).<br>

     <div data-full-width="true"><figure><img src="/files/F3s9f8mQPP7Swr1B2r6O" alt="" width="563"><figcaption></figcaption></figure></div>
   * **Custom domain** – Map your own domain for branding.<br>

     <figure><img src="/files/AxKUAFhNsyJdivD3p9Oy" alt=""><figcaption></figcaption></figure>
   * **Appearance** – Customize branding and logo.<br>

     <figure><img src="/files/IpBxeVJh4Gk9fPIE46Xe" alt=""><figcaption></figcaption></figure>
   * **Ticket settings** – Enable ticket submission so customers can create support requests.<br>

     <figure><img src="/files/pahzTZIJq5QBqeYYZxtv" alt=""><figcaption></figcaption></figure>
4. **Filter** – Search topics by status, creator, or date.<br>

   <figure><img src="/files/S7yg6c4NJb12QXNGPbeS" alt=""><figcaption></figcaption></figure>
5. **View portal** – Preview your Support Center site. By default, a domain is auto-generated, but you can customize it.
6. **Publish** – Only published topics are visible to customers.<br>

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

### 4.3 Customer View

Once topics and articles are published, customers can access them via the Support Center portal.

<figure><img src="/files/okj268hkzqLbel3KcgXl" alt=""><figcaption><p>Support center in Customer view </p></figcaption></figure>

### 4.4 Inside a Topic

When entering a Topic, you will see its sub-folders and articles.

> **Note**: Publishing a Topic does **not** automatically publish its folders or articles—you need to publish each one individually.

<figure><img src="/files/6N0ay1SepBey35qReI1X" alt=""><figcaption><p>Inside a Topic Interface</p></figcaption></figure>

\
Available actions:

1. **Publish/Unpublish** – Control availability of a topic.
2. **Edit** – Update title, description, and logo.
3. **Delete** – Remove a topic.
4. **Search** – Find articles or folders inside the topic.
5. **Filter** – Sort by status, creator, or date.
6. **New** – Create a new Folder or Article.
7. **Article/Folder actions** – Options include:
   * Edit
   * Move to another topic/folder
   * Publish/Unpublish
   * Delete
8. **Details section** – Shows creation/update time and assigned owner.

👉 Inside a Topic, you can only add **one additional folder level**.


# Bot Configuration Interface Overview

***

## **Overview**

Once a bot is created, users are taken to its **configuration interface**, where they can customize how the bot behaves, what it knows, and how it interacts with users. This is the main working area for setting up a bot in CX Genie.

> ✨ Just a heads-up: This configuration screen is different from the Settings tab in the sidebar.
>
> Think of this as your bot’s full setup space — where you design how it looks, thinks, and talks.
>
> Meanwhile, the **Settings** tab is more about how your bot behaves during live chats (like when to hand over to a human).

***

## **Steps to Use**

**1. Access a Specific Bot’s Configuration**

From the **Bots** dashboard, click on any bot card to open its full setup interface.

**2. Left-Side Navigation**

The configuration interface has its own vertical navigation grouped into sections:

* **Preferences**:
  * `General information`: basic identity, theme color, watermark, and hireable link
* **Data**:
  * `Training Data`: raw data like FAQs, documents, and help articles
  * `Bot's Knowledge`: structured knowledge learned from selected messages
* **Operation**:
  * `Workflow`: manage the logic blocks used in conversations
  * `Settings`: control timeout, feedback, or assignment settings
* **Development**:
  * `Launch Bot`: deploy your bot
  * `Prompt & Models`: customize language model instructions
  * `Domain`, `Webhook`, `Platform Integration`, `Custom Authentication`: advanced integrations

**3. Live Testing with “Chat with bot”**

At the top of the interface is a black button: **“Chat with bot”**.

Clicking it opens a live simulator panel (on the right), where you can:

* Test responses from **training data**
* Preview logic built via **workflow**
* Ensure the bot understands your inputs as expected

***

## **Example / Use Case**

After creating a bot, a user clicks into “Bánh mì Floppicanna”. They use the left sidebar to upload product FAQs in “Training Data”, define a logic flow in “Workflow”, then test how the bot handles questions by using the “Chat with bot” panel.

***

## **Notes**

* Changes made in each section must be saved manually. Look for the **“Save changes”** button.
* The preview chat updates in real-time and is useful for QA and iteration.
* This is the central place to build and maintain your bot.

***

![Figure 1. Configuration interface](/files/kSTLLfFj9QobuNG1YCka)


# General Information

Here is one of the sections you need to fill out before starting to create the chatbot. In this tab, you will configure the chatbot with information fields to display to customers.

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

1. **Name\***: This is your chatbot name, text format, is limited to 50 characters (\* is required). It will display outside the Dashboard.

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

2. **Business** **name**: This is your company name (optional). The chatbot will use this name to communicate with the clients.

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

3. **Avatar**: For the best interface experience, we recommend using the circular format for your bots' avatars. **Theme**: You can choose any colors you want, but we suggest using colors that reflect your company's identity.&#x20;

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

4. **Reply** **languages**: you can choose the language you want it to reply to. If you don't select any languages, it will automatically reply based on the language customer's text.

<figure><img src="/files/8oa2RHua7YzEcnGoyNl4" alt=""><figcaption></figcaption></figure>

* If you want to change from *a selected language* to *all languages*, you need to click "x" and save changes to the setting.&#x20;

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

5. **Watermark**: You can show/hide the watermark on the chat widget; This feature is only available when upgraded to the premium version.

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

<figure><img src="/files/t2427l5O31cDkTEtbffF" alt=""><figcaption><p>Watermark mode is on</p></figcaption></figure>

6. **Test** **Display**: This will show you how your customer sees it. You can test with your chatbot by clicking "Chat with 🤖"&#x20;

<figure><img src="/files/Upw5el1XeTvbHjOWfny6" alt=""><figcaption><p>You can test the chatbot before integrate with any platform.</p></figcaption></figure>

7. **Save** **changes**:&#x20;

This button will preserve any settings you configured previously.&#x20;

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


# Training Data

Here are 5 types of data that CXG can convert to train the chatbot for you.

<figure><img src="/files/oP2kB5iiTphVFhab7DNt" alt=""><figcaption><p>You can freely switch between 5 types of data by clicking each tab</p></figcaption></figure>

### [1. FAQs](/bots/training-data/faqs)&#x20;

This tab is designed to assist your chatbot in comprehending customer inquiries and providing accurate responses.

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

### [2. Articles](/bots/training-data/articles):&#x20;

This tab will contain information about your products, business, and more. The chatbot will share this with your customers.

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

### [3. Documents](/bots/training-data/documents)&#x20;

This is a tab where you can import data as documents, the data will be extracted as text, a file, or a picture based on your purpose.

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

### [4. URLs](/bots/training-data/urls)&#x20;

This is a tab where you can freely input your website links (URLs) for chatbot learning. It will import data from your website and will import all data for later use.

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

### [5. Connect with database](/bots/training-data/connect-with-database)

This is a tab where you have local data storage, you can use this to get information about your business faster.

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

### [6. Connect E-Commerce Store](/bots/training-data/connect-e-commerce-store)

This is a tab where you can manage the chatbot when connecting to your e-com store

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


# FAQs

This tab will help your chatbot understand clearly about customers' questions and deliver correctly the answers to the clients.

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

## I. FAQs in CX Genie

FAQs stands for 'Frequently Asked Questions,' meaning a list of common questions users often ask along with corresponding answers, typically organized by topic or type.

The structure of an FAQ usually includes:

1. **Question Title**: A brief question addressing a specific issue of user concern.
2. **Answer**: The response or specific information related to the question.

To help CXG Chatbot understand that it's dealing with an FAQ, you can employ the following methods:

1. **Question Classification**: Training the chatbot to recognize and categorize questions by topic or sentence pattern, such as 'Shipping-related questions' or 'Ordering inquiries.'
2. **Keyword Integration**: Using terms like 'FAQs' or 'Frequently Asked Questions' within the question or in the content of the answer to aid the chatbot's recognition.
3. **Use of Special Symbols or Icons**: Adding symbols like '?' or 'FAQs' to the question can help the chatbot identify it as a frequently asked question.

Every set of Questions & Answers you import to the chatbot will be immediately understood and ready to deliver to your customers. This will decrease the rate of irrelevant answers.

<mark style="color:red;">**This is one of two important sections for bot learning, we recommend you import the data through this method**</mark><mark style="color:red;">.</mark>&#x20;

## II. How to use

At CXG you can choose whether to Import the FAQs via Table (we have the template) or manually import:

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

**Import FAQs**: You can use our template (click the file below to get it).&#x20;

<mark style="color:red;">**\*Note: import a table of data FAQs maximum file size of 100 MB or 200 rows**</mark><mark style="color:red;">.</mark>&#x20;

{% file src="/files/eApE5JHuJuQFjYPRq1NC" %}

<figure><img src="/files/tR0bOXgA5cv1qC0OxsOx" alt=""><figcaption><p>Import FAQs by template.</p></figcaption></figure>

**Add FAQs**: You can manually create FAQs and follow 3 steps:

1. **Questions**: This field is in text format. We recommend you add this content in Question and at the end of the sentence, a symbol like "?" needs to be attached for the bot to learn effectively.&#x20;
2. **Answers**: This field is in text format, you can also add some characters to help improve your content look. We recommend that you provide the most appropriate answer to the question you entered in section (1) so that the bot can learn more effectively and deliver relevant content when needed by customers.
3. **Save changes**: This button will let you save the FAQ and will import data for bot learning.&#x20;

\*<mark style="color:red;">**Note: The content in both Question and Answer must be in the same language.**</mark>&#x20;

<figure><img src="/files/p8w1yjZ8I5LdXytBwjua" alt=""><figcaption><p>Create FAQ(s) manually.</p></figcaption></figure>

* After you import successfully, there will be a column showing that your data is ready to use. You can edit the FAQs that were imported by clicking the pen icon.&#x20;

<figure><img src="/files/NqQ0HpHJDlylTSZVEigt" alt=""><figcaption><p><strong>Status</strong> column let you know your data was imported sucessfully.</p></figcaption></figure>

<figure><img src="/files/KC83IJu72QvvVQyQtJPn" alt=""><figcaption><p>By clicking the <strong>pen icon</strong>, you con edit the data which was imported.</p></figcaption></figure>

* You can also choose the amount of data you want to delete by clicking the box in the left column (1) and then clicking the bin icon (2) to delete.

<figure><img src="/files/ED1A02MGXoaiPl1fIogf" alt=""><figcaption><p>By clicking the box (1), you can optionally choose the amount of data to delete. Click the bin icon (2) to confirm. </p></figcaption></figure>

{% embed url="<https://youtu.be/Hne9AK5yVao?feature=shared>" %}
How to Add FAQs Effectively: A Step-by-Step Guide.
{% endembed %}


# Articles

Articles is a tab that will include your information about product, business, etc. Chatbot will share it with your customer.

## I. Articles in CX Genie

The articles section in CX Genie helps you provide information about your products, your business or everything you might think is helpful for your customers.&#x20;

Every article data you import will be immediately understood and ready to be delivered to your customers. This will decrease the rate of irrelevant answers.

<mark style="color:red;">**This is one of two important sections for bot's learning, we recommend you import the data through this method.**</mark>

Here is the Articles tab in CXG:

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

## II. How to use

You can edit or delete every single Article created. The **"Status"** column shows you the data is successfully imported to the chatbot.

<figure><img src="/files/LHLufnzpC3DJZ8e3j9KW" alt=""><figcaption><p>By clicking "Add Article" button, there will popup a box let you starting to create your article.</p></figcaption></figure>

To be effective so the chatbot can extract and provide your information correctively, you can follow these instructions:

* Determine the same language of the title and content.

<figure><img src="/files/d4jAILMNZqoSNdh0dL2w" alt=""><figcaption><p>A box of "Create Article".</p></figcaption></figure>

* Divide the section of the content you imported, such as heading 1, heading 2, heading 3, and paragraph (normal) by clicking "Choose heading"&#x20;

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

* We recommend using the format tool for the best layout or the image for the best bot's learning.&#x20;

<figure><img src="/files/dh1gpeW8CJR6uMogrP0P" alt=""><figcaption><p>An example use format tool to input the article.</p></figcaption></figure>

* After you import successfully, a column will show that your data is ready to use. You can also edit/delete available Articles.

<figure><img src="/files/qkbmXdOzrLrcnEgp2HMj" alt=""><figcaption><p><strong>Status</strong> column let you know your data was imported sucessfully. </p></figcaption></figure>

<figure><img src="/files/nYUtmnttQ5NDvcqSq4Go" alt=""><figcaption><p>By clicking the <strong>pen icon (1)</strong>, you can edit every content which was imported.</p></figcaption></figure>

* You can also choose the amount of data you need to delete by clicking the box in the left column (1) and then clicking the bin icon (2) to delete.

<figure><img src="/files/9WVaxPngNZ2A0UB2ZbRT" alt=""><figcaption><p>By clicking the box (1), you can optionally choose the amount of data to delete. Click the bin icon (2) to confirm.</p></figcaption></figure>

<mark style="color:red;">**\*Note: Content\* cannot recognize data as**</mark><mark style="color:red;">**&#x20;**</mark>*<mark style="color:red;">**Table, Audio, or Video**</mark>*.&#x20;

{% embed url="<https://youtu.be/Jwqbf3DnKsA?feature=shared>" %}
How should you add Articles: A Step-by-Step Guide
{% endembed %}


# Documents

At CX Genie, you can import data as documents, the data will be used to extract as text, a file, or a picture based on your purpose.

## I. Documents in CX Genie

In the Documents section, you can upload your data such as a contract, a menu, an instruction book, a certificate, or everything in pdf, or PowerPoint format.&#x20;

We recommend you use this feature as a tool to store information related to contracts, certificates, menus, etc., for sending to customers.

## II. How to use

* You can use it by clicking on the "Add documents" button on the top-left of the screen.&#x20;

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

* You can drag any files in pdf, pptx and ppt format to the chatbot.&#x20;

<figure><img src="/files/Fe5zE7thphsgnvg7CYOd" alt=""><figcaption><p>After click "Add document" - a box will popup </p></figcaption></figure>

* After you import successfully, a column will show that your data is ready to use.

<figure><img src="/files/HAReceUn6QXMr0hInABL" alt=""><figcaption><p>The status column shows that your files is ready to use.</p></figcaption></figure>

<figure><img src="/files/MgSntJmSRjjdAF6SKVLo" alt=""><figcaption><p>By clicking to the download icon, you can save your document in your laptop/PC. </p></figcaption></figure>

* You can download the documents imported and also delete them whenever you don't need them anymore.&#x20;

<figure><img src="/files/WGk6CQZnMbwVidrj6dfX" alt=""><figcaption><p>By clicking the box (1), you can optionally choose the amount of documents to delete. Click the bin icon (2) to confirm.</p></figcaption></figure>

\*Note:&#x20;

* <mark style="color:red;">**Format files: .pdf, .pptx and .ppt.**</mark>
* <mark style="color:red;">**Up to 10 files.**</mark>
* <mark style="color:red;">**Total file size not exceeding 100 MB.**</mark>
* <mark style="color:red;">**The input document must have a clear layout. If you upload a document consisting solely of images, the bot will not be able to interpret it**</mark>.


# URLs

In the URLs section, you can freely input your website for chatbot learning. It will import data from your website and will import all data for later use.&#x20;

## I. URLs in CX Genie

In this section, you can use your website to provide information for the chatbot to better understand your business. It can scan most of the data on your website and import it to the knowledge data.

We recommend you should use this feature after you complete the FAQs and Articles section.

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

## II. How to use

* You can copy your website link, then paste it to the text box (1), then click the "Add URL" button (2) for bot learning.

  <figure><img src="/files/90E4jpOmicWchlNYOedH" alt=""><figcaption></figcaption></figure>

* After successfully importing, the **Status** column will appear as 1 of 3 status, depending on your link. There are 3 types of icon status when you insert the URL for the chatbot:
  * ![](/files/qUxvHdehQ23647Ylm8DR): Your chatbot is learning. Please wait a couple of minutes.&#x20;
  * ![](/files/J1wFeIZFNA90hfi4Qrfg): Your website data is completely learned by the chatbot and stored at the **Knowledge Base**.
  * ![](/files/JGvEBslc6KoTZsGQUXul): Your data extracts failed. You can try to click the icon ![](/files/EuG5pp5pIvatqPPVAEIg) to have your chatbot learn again.

* You can optionally choose the link by ticking each box in (1), then click the bin icon (2) to delete.

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

* You can update your website data when there's something new by clicking the "Recrawl All URLs" button above the "Add URL" button.

<figure><img src="/files/K5BDjrKdIxRGfDKpzdBq" alt=""><figcaption><p>Recrawl all URLs button helps you update your URLs without re-inputing. </p></figcaption></figure>

* ***Overlapped in URL:***

When you import the link if the Status column shows "Overlapped", it means you need to check whether the content overlaps with the content you previously created in the FAQs or Articles section. You can check it by following these steps:

1. Click the column shown Overlapped (1).

<figure><img src="/files/1u25TE9bJ11wymYv8jIY" alt=""><figcaption></figcaption></figure>

2. There will be a pop-up appears, then click on the tab "Knowledge base" (1).

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

* You will see 4 columns, which will help you to modify your data.&#x20;

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

1. You can manually choose this column to remove the data you do not need anymore.
2. Question - Answer column: The data you imported from your website. If there is a purple label "Overlapped" means you have at least 2 answers for 1 question.
3. Status column: you can choose the filter based on your purpose, there are 2 filters you can use: In review (overlapped) or imported.&#x20;
4. Action column: there are 3 acts you can choose: **Import data** (when you edited your content at the Answer - Question column), **Edit your content** and **Delete your content**.&#x20;

* When you click on the overlapped content, there will be a pop-up tab:&#x20;

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

* You can read, and edit the overlapped content and decide which will be the best answer to your questions.

* After you modify your content, please click "Save changes" to apply the new one.

For more information about Knowledge Base, please visit [Bot's Knowledge](/bots/bots-knowledge-1).


# Connect with database

When you have a local data storage, you can use this to get the information about your business faster

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

* When you click "Add Database" button, there will be a pop-up tab:

  <figure><img src="/files/vm6oHc2o6OShW9HFnr4C" alt=""><figcaption></figcaption></figure>
* This is the section used for dev, to get more information, don't hesitate to get in touch with us.


# Connect E-Commerce Store

This section let you import the data from your E-commerce platform and let you manage the your product.

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

* By clicking on the "Connect Store" button, you can easily connect with your e-com platform. Now we support you connect to 2 e-com platform: Shopify and WooCommerce.&#x20;

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

* &#x20;How to connect? Please go further at this link:<https://storage.cxgenie.ai/Guide-Integration-Shopify-WooCommerce.pdf>


# Bot's Knowledge

Users can control the information the bot learns from different sources here. More accurate and extensive knowledge improves the bot's response quality and capability.

## 1. Overview

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

* You can manage all the data you imported from **FAQs, Articles, Documents, URLs, and Connect with database** section.&#x20;
* You can also use the "Search questions" box on the top of the screen to search your Question - Answer more quickly.

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

* Column (1): This field will let you optionally choose to delete the **Question - Answ**er content.

  * You can choose by clicking on each box or all of them and press the bin icon to delete

  <figure><img src="/files/GaLj3jm4OY63OQKFaQiW" alt=""><figcaption></figcaption></figure>
* Column (2): This field will let you edit the content of your Answer - Question when you click on it, there will be a box appears.

  <figure><img src="/files/Qw3mXOor6L8eqZXwo6BR" alt=""><figcaption><p> (1) Question and (2) Answer you have imported ; (3) <strong>Data source</strong> means your content was imported and found by one of five types at Training Data. Click <strong>"Save Changes"</strong> to apply the setting</p></figcaption></figure>
* Column (3): This column will let you filter the data between **Imported** and **Reviewed.** You can choose "In review" filter to display "Overlapped" content.

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

* Column (4): This column allows you to modify or delete the data you have previously entered.
  * &#x20;![](/files/xKVgrn4EZjC0211BKf2z): **Pen Icon** helps you edit your content
  * ![](/files/efUBKVYniV8lMk3hwSwn): **Bin Icon** helps you delete your content.<br>

## 2. Bot Learns From Conversations

<figure><img src="/files/44CL0UyJBIWAs3avHLgD" alt=""><figcaption><p>Bot Learns From Conversations - Unanswered Questions Function</p></figcaption></figure>

* Bot Learns From Conversations helps the chatbot learn the reply from the live agent, it can be imported manually or autosave in the settings. When you click on the "Bot Learns From Conversations" a box lets you decide the action of every reply. &#x20;
* To access this feature you can follow: from Dashboard -> Bots -> Bot's Knowledge -> Bot Learns from Conversations.
* When you add a Facebook page or activate the auto-learning mode (located in the [**Settings**](/bots/settings)), the knowledge will be loaded here for approval. The bot will only learn the approved information
* There, a tab appears:

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

* 3 features let you decide each Question - Answer Data:
  * Import (<img src="/files/nuSygzPJHzM70xGVoj55" alt="" data-size="line">): Import the data to the Knowledge Base.
  * Edit (<img src="/files/1dDplQYSNKHCvmx3X4Vj" alt="" data-size="line">): Edit your data before import to the Knowledge Base
  * Delete (<img src="/files/a7vV25bfUOCi71T0pNMj" alt="" data-size="line">): Delete unwanted data.

## 3. Unanswered Questions

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

* Unanswered Questions help to list any questions asked by clients that don't have suitable answers. You can optionally update your content by clicking on any questions or delete them if you don't need them.
* If the customer cannot find a question in the Bot's Knowledge, that question will appear in the box.
* You can decide whether to **import or delete** the Unanswered Questions for every circumstance.
* Editing these unanswered questions will help your chatbot understand and respond to similar questions in the future.&#x20;

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

### 4. Dictionary

This feature will allow you to train your chatbot to understand your slang or shorthand characters, making the chatbot's responses more accurate.

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

\*Note: please fill in the right column to help the bot understand the context.


# Workflow

***

## Overview

The **Workflow** feature in CX Genie allows you to design automated chat flows that guide interactions between your business and customers.\
With workflows, you can:

* Provide customers with multiple-choice options.
* Trigger specific actions based on user input.
* Collect customer feedback seamlessly.
* Automate repetitive interactions for better efficiency.

This ensures a smoother customer experience and reduces manual handling for your team.

Here is WorkFlow Dashboard:

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

* To start using the Workflow feature, click the<img src="/files/GjnXxMWQAe3oxYsgTaZk" alt="" data-size="line"> button. A setup box will appear where you need to fill in the required information before the flow can be created.

***

## Steps to Use

#### Step 1: Create a Workflow

1. Go to the **Workflow** section in the CX Genie dashboard.
2. Click **“Create New Workflow”**.
3. Enter a unique name for the workflow.

#### Step 2: Select Channels

Choose the channels where this workflow will be active:

* Facebook Messenger
* Telegram
* Website

You can select only one channel at the same time.

#### Step 3: Define Trigger Condition

Each workflow must have **only one** trigger condition. It defines when the workflow will run. Available types:

* **When user chat** – When user sends a message
* **When user intent** – Based on detected intent
* **Contain keyword** – Match predefined keywords
* **Trigger by tag** – Based on tag applied
* **Trigger by action** – Triggered by user or agent actions:
  * When the bot does not know the answer
  * When the agent closes the ticket
  * When the agent closes the customer's conversation
  * When a new conversation is created
  * When a conversation is closed
  * When the agent replies to the customer's message

<figure><img src="/files/CvgeefUJ3VZngqkkstpA" alt=""><figcaption><p>Figure 1. Trigger by action</p></figcaption></figure>

> Only one condition is allowed per workflow, and cannot be duplicated across workflows.

<figure><img src="/files/EftGj2yLOHReEb9RbbP2" alt=""><figcaption><p>Figure 2. How to create new workflow</p></figcaption></figure>

#### Step 4: Build Workflow with Blocks

Use blocks to define the automation flow. You can:

* Drag and drop blocks into the visual canvas
* Connect them to define the flow logic
* Click the **Preview** button to simulate the flow and see how blocks are arranged and executed

#### Step 5: Publish the Workflow

Once the flow is ready:

1. Click the **“Publish”** button in the top right corner.
2. A published workflow is now live and will be triggered when its condition is met.

<figure><img src="/files/QvtPi6HzsKlAc7sQUmXq" alt=""><figcaption><p>Figure 3. An Example of workflow</p></figcaption></figure>

#### Step 6: Export (Optional)

You can **export the workflow as a `.json` file** at any time — even if the workflow is still in draft mode.

This is useful for:

* Reusing the workflow in other bots
* Creating template libraries for your team
* Backing up workflows for version control

> ✅ No need to publish before exporting. Drafts can be exported as well.Step 7: \[Optional] Use Dynamic Variables

<figure><img src="/files/waotLb7MWyOhw3pk9wHI" alt=""><figcaption><p>Figure 4. Export Available Workflow</p></figcaption></figure>

#### Step 7: Use Dynamic Variables (Optional)

If your workflow requires data from external APIs (e.g., product name, price, etc.), you can define **Dynamic Variables** to fetch and reuse them inside blocks.

#### 👉 See [`Dynamic Variable`](/bots/workflow/module-explaination/dynamic-variables-explaination) for full guide.

## Dynamic Variables

#### Overview

Dynamic Variables allow your workflow to dynamically fetch and reuse external data (usually from APIs). You can inject them into blocks to personalize messages, make logic decisions, or display product results.

They can be created ahead of time or while configuring blocks.

***

#### How to Create

1. Open the **Create Dynamic Variable** modal.
2. Fill in the required fields:
   * **Variable name**
   * **Code (snake\_case)**
   * **Type** – usually `API Information`
   * **API URL**
3. Choose one of two return strategies:

***

#### 🅐 Specified Result

Use when you want to extract a specific field from the API response.

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

| Field       | Description               |
| ----------- | ------------------------- |
| Result data | e.g., `data.product.name` |

***

#### 🅑 Random Result

Use when the response is an array and you want a random item.

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

***

| Field              | Description                           |
| ------------------ | ------------------------------------- |
| Random Target      | e.g., `data.items`                    |
| Selected Attribute | e.g., `price` from each random object |

***

## Workflow version

Overview

The **Version History** feature in the CX Genie Workflow module allows users to view, track, and manage different published versions of each workflow. This is essential for teams working collaboratively or for users who need to roll back changes and maintain a history of chatbot flow modifications.

<figure><img src="/files/75mlmbzcuF7RMbHR35tE" alt=""><figcaption></figcaption></figure>

#### Step 1: Open an existing Workflow

* Go to the **Workflow** module from the left sidebar.
* Click the **edit icon ✏️** on any workflow in the list.

#### Step 2: Access the Version History panel

* Inside the workflow editor, click the **Version history** button located in the top-left corner.
* A side panel will open showing all the previously published versions.

#### Step 3: View available versions

* If the workflow has been published before, each version will appear in a list with timestamp details.
* If no versions are available, a “No data” message will be shown.

> 🔄 Version history is only created after a Publish action.

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

***

### Notes

* The version list only includes **published** versions.
* The current version can be choosen.
* Support for **rollback or comparison between versions**.

***

## Blocks Reference

Workflow Blocks in CX Genie are the building elements of a chatbot flow. Each block represents an action or condition (like sending a message, collecting info, tagging, or calling an API) and can be connected together to automate customer interactions.

👉 See the detailed list in the Workflow Blocks Structured Documentation


# Trigger Workflow Condition

This will help you to understand the condition to create workflow more efficiently and understand customers' behaviors.

The chatbot will base its responses on the actions you've set in various sections to provide appropriate feedback to your customers. To understand the conditions that match your objectives, you can refer to the following criteria:

## 1. When user chat

This is a function where you input common customer questions to help the chatbot recognize and deliver the appropriate workflow based on customer intent. It doesn’t have to be an exact match — as long as the customer message has the same meaning, it will trigger the corresponding flow.

* Example: If a customer asks "What's your pricing?", "How much do you charge?", or "How much is your service?", the same workflow will be triggered.

<figure><img src="/files/0qhu2VXbBh2iWCSJBkxt" alt=""><figcaption><p>"When user chat" condition</p></figcaption></figure>

## 2. When user intend

This is a function where you need to input a customer's intent. The chatbot will read the customer's message when they send a sentence matching the intent you entered, and then the message flow will start. You can

* Example: Customer asks "How to chat with a live agent?" it will understand the customer's need to meet a live agent, and trigger the flow chat *(notify the agent)* if you have set it already

<figure><img src="/files/Gl6CbyOmsoTPFwBmPZMU" alt=""><figcaption><p>"When user intend" condition</p></figcaption></figure>

## 3. Contain keyword

This is a function where you can enter the keywords you want. When customers chat with you and their messages contain those keywords, the created flow message will be triggered. You need to press "Enter" to input the keyword. A complete keyword has a blue label with your keyword.&#x20;

<figure><img src="/files/VzSVP5wU6iHDo6K4fh6X" alt=""><figcaption><p>"Contain keyword" condition</p></figcaption></figure>

## 4. Trigger by action

This is a function where you can choose the action to trigger the next step in Workflow. There will be 5 actions to choose from (they will be updated in the future).

<figure><img src="/files/7N4DOONHS2X8uyEmlxZb" alt=""><figcaption></figcaption></figure>

1. When the bot does not know the answer: decide the next step for the chatbot to act. You can combine it with other components. See more tips at **Escalate to a Human Agent.**
2. When the agent closes the ticket
3. When the agent closes the customer's conversation
4. When a new conversation created
5. When the agent closes the ticket or the customer's conversation

## 5. Trigger by tag

This function allows you to use available tags to determine the next actions based on customer behavior. For example, if you want to alert Agent A to support long-time users, you can create a process that sends a notification to Agent A whenever tagged old users chat with your chatbot.

<figure><img src="/files/6ScjDnaIaDobkWi8CDFP" alt=""><figcaption></figcaption></figure>


# Workflow Components

The **Workflow module** in CX Genie enables teams to automate customer interactions across channels such as Facebook Messenger, Telegram, and Website. Each workflow is made up of blocks that determine how and when actions happen, based on triggers and logic.

Workflows are used to automate responses, collect information, escalate to agents, and personalize user journeys — all without manual intervention.

***

## Utilities

### Text & Image

#### Overview

Create a message that includes both text and an image to send to the user.

#### Steps to Use

1. Add this block to your workflow using the visual editor.
2. Configure its options as needed (e.g. message content, conditions, variables).
3. Connect it to the previous and next blocks appropriately.

#### Notes

* Has **2 connectors**: receives logic and passes it forward.
* Executes instantly without waiting or requiring user input.

<figure><img src="/files/waBGO2hyfAf6CChiNRXM" alt=""><figcaption><p>Figure 1. Text &#x26; Image Block</p></figcaption></figure>

***

### Saved Flow

#### Overview

Redirect to a pre-built saved flow to continue the current conversation path.

#### Steps to Use

1. Add this block to your workflow using the visual editor.
2. Configure its options as needed.
3. Connect it to the previous blocks appropriately.

#### Notes

* Has only **1 connector (input)** — does not pass logic forward.
* Executes a standalone action and ends the path here.

<figure><img src="/files/2W4ELt9eRQFu6LGZsPRM" alt=""><figcaption><p>Figure 3. Saved flow block</p></figcaption></figure>

***

## Navigation

### Message with Actions

#### Overview

Send a message that contains interactive action buttons

#### Steps to Use

1. Add this block to your workflow.
2. Configure its options as needed (e.g. message content, conditions, variables).
3. Connect it to the previous blocks appropriately.

#### Notes

* Has only **1 connector (input)** — cannot connect to next block.
* Starts countdown **only if the customer does not interact**.
* If the user responds, timeout is **canceled**. Otherwise, it ends silently.
* This block supports **“Require to continue”** toggle:

> If enabled: requires interaction to proceed

<figure><img src="/files/wF56ZsMC2ntkn24KhcBD" alt=""><figcaption><p>Figure 2. Message with actions block</p></figcaption></figure>

***

### Conversation Language

#### Overview

The **Conversation Language** block determines the language used throughout the conversation. It supports two modes:

* **Auto-detect**: Detects the customer's language based on location or browser settings.
* **Manual selection**: Allows the customer to choose their preferred language from a predefined list.

This block is typically placed early in the workflow to ensure proper localization of all following messages.

<figure><img src="/files/YgYGBIPMTeO3KkBeugME" alt=""><figcaption><p>Figure 9.1 Conversation language block (Auto-dectect language mode)</p></figcaption></figure>

<figure><img src="/files/16upsjsbsncnD7gT9dna" alt=""><figcaption><p>Figure 9.2 Conversation language block (Manual selection mode)</p></figcaption></figure>

#### Steps to Use

1. Drag the **Conversation Language** block into your workflow.
2. Choose a language setting mode:
   * **Auto-detect language**: No user input is needed.
   * **Manual selection**:
     * Select available languages to show.
     * (Optional) Enable “Required to select to continue conversation” to force user selection.
3. (Optional) Enable the **Wait** option to set a timeout duration. If the customer does not select a language within that time, the flow continues automatically.
4. Connect this block to the next step in the conversation.

#### Example / Use Case

* Automatically detect language for international customers
* Offer a language picker (EN, VI, JA, etc.) at the beginning of a chatbot flow
* Combine with translation logic to dynamically localize messages

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** Yes
  * If the user doesn’t interact, the system continues after the timeout.
* **Require to continue (manual mode only):** Optional
  * If enabled, it forces the user to select a language before proceeding.
* Dynamic language selection may impact which message variations are sent later in the workflow.

***

### Frequent Question

#### Overview

The **Frequent Question** block displays up to 5 commonly asked questions from your knowledge base. This helps guide users toward quick answers without needing to ask the same thing repeatedly.

It’s useful in onboarding, troubleshooting, or as fallback when the bot isn’t sure how to respond.

<figure><img src="/files/i4uw49vrI41kX2v6qIbU" alt=""><figcaption><p>Figure 11. Frequent question block</p></figcaption></figure>

#### Steps to Use

1. Drag the **Frequent Question** block into your flow.
2. Enter a **message prompt** to ask users what they need help with.
3. Use the dropdown to **select up to 5 questions** from your knowledge base.
4. (Optional) Enable:
   * **Require user select question to continue the flow**: forces the user to click before proceeding.
   * **Wait**: auto-continue if no response within a set time.
5. Connect this block to the rest of your workflow (note: only input is supported).

#### Example / Use Case

* “How can I help you today?” → Offer top questions to let the user self-serve
* Serve as a fallback when the bot doesn't understand the previous input
* Pre-qualify customers before routing them to an agent

#### Notes

* **Connector:** 1 (input only)
* **Output is not supported** — this block does not continue the flow directly.
* **Timeout supported:** Yes
  * If no interaction happens within the timeout, the flow continues if connected via external logic.
* **Require to continue:** Optional
  * If enabled, the user **must select a question** to proceed.
* Linked questions are displayed as quick replies and pulled from the **knowledge base**.

***

### Select Category

#### Overview

The **Category** block allows you to show a list of categorized choices to the user. Each choice (called a **Selection**) can trigger a different branch in the workflow. This is ideal for routing conversations based on user intent.

You can create up to **15 selections**, and each one links to a **specific category**, allowing custom logic paths for each choice.

<figure><img src="/files/XRg0jXDCo81WgRKbWT5U" alt=""><figcaption><p>Figure 15. Category block</p></figcaption></figure>

***

#### Steps to Use

1. Drag the **Category** block into your workflow.
2. Enter a **message prompt** to ask the user to make a selection.
3. Add one or more **Selections**:
   * Each selection includes:
     * A **Label** (displayed to the user)
     * A mapped **Category** (used internally for routing)
4. (Optional) Enable:
   * **“Require user to select a category to continue the flow”** — forces interaction
5. For each category, connect the output dot to the next appropriate block.

***

#### Example / Use Case

* Ask users what they need help with (e.g., “Product Support”, “Billing”)
* Route leads based on interest type (e.g., “Book a Demo”, “View Pricing”)

***

#### Notes

* **Input connectors:** 1 (left side, to receive flow)
* **Output connectors:** 1 per category (right side of each selection)
* **Timeout supported:** No
* **Required to continue:** Optional
  * If enabled, the user **must select one** before the flow continues.
* Maximum **15 selections** supported

***

### Route

#### Overview

The **Route** block is used to conditionally route the conversation based on the **value of a variable**. You define a list of possible values, and each one can trigger a different path in the workflow.

This is ideal for branching logic based on previous answers, dynamic variables, or API responses.

<figure><img src="/files/EoUuKZpt2daBfNKIxphN" alt=""><figcaption><p>Figure 17. Route</p></figcaption></figure>

#### Steps to Use

1. Add the **Route** block into your workflow.
2. In the **Input variable** field, specify the variable to check (e.g. `category_selected`, `customer_type`).
3. Define the possible **Values** that this variable can take.
   * Each value creates a separate output connector.
   * Click **Add value** to include more conditions.
4. (Optional) Enable the **“Other”** toggle to handle all unmatched cases via a fallback path.
5. Link each output to its respective next step in the workflow.

#### Example / Use Case

* Route users based on subscription plan (`free`, `pro`, `enterprise`)
* Create different flows for `lead_type = hot` vs `cold`
* Use dynamic API return value to direct logic conditionally

#### Notes

* **Connector:** 1 input (left side)
* **Output connectors:** 1 per defined value, plus optional "Other"
* **Timeout supported:** No
* Supports both static and dynamic variable values (via `{{variable_name}}`)
* Flow will follow the first matching value

***

### Branches

#### Overview

The **Branches** block is used to create conditional branches in your workflow. It allows you to define different execution paths based on the values of user attributes, message content, or other conditions.

This is useful when you want the bot to respond or behave differently depending on user data such as name, email, country, tags, etc.

<figure><img src="/files/UWIcIBLGE2lNDdmA9rM0" alt=""><figcaption><p>Figure 28.1 Branches block (Object)</p></figcaption></figure>

<figure><img src="/files/K16Fckgg2QuMssTRTOQP" alt=""><figcaption><p>Figure 28.1 Branches block (Conditions)</p></figcaption></figure>

#### Steps to Use

#### Step 1: Add the Branches block

* In the Workflow builder, click the **Branches** icon from the left toolbar (flow control section).
* A new Branches block will appear on the canvas.

#### Step 2: Define your conditions

* Click on the block to open its settings panel.
* Under **Route list**, click **Add route** and enter a name (e.g. "VIP User").
* Define the condition using the dropdown fields:
  * **Field**: Name, Email, Phone, Country, etc.
  * **Operator**: is, is not, contains, starts with, is unknown, etc.
  * **Value**: The target value to match (e.g. `Vietnam`, `John`, etc.)
* You can click **+ or / and** to add alternative conditions within the same route.

#### Step 3: Add an Else path (optional)

* The **Else** branch will be triggered when none of the specified conditions match.

#### Step 4: Connect each branch

* Drag connection arrows from each branch (including Else) to the next block in the flow.

#### Example / Use Case

**Scenario:** You want to greet users differently based on their country:

* Branch 1: If `Country is Vietnam` → Send Vietnamese greeting block
* Branch 2: If `Country is United States` → Send English greeting block
* Else: Send default greeting

This ensures personalized experiences based on known user information.

#### Notes

* Conditions are evaluated **top-down**, and only the **first matched condition** will be triggered.
* If multiple routes match, only the first route (by order) will execute.
* The **Else** branch is optional but recommended as a fallback.
* You can use tags, assigned team/agent, conversation categories, or even message content to route dynamically.
* Connectors: 1 input and various outputs (depending on adding route)

***

## Input

### Collect Feedback

#### Overview

The **Collect Feedback** block allows you to request user ratings at the end of a conversation. It presents a visual scale (emoji-based, heart, or star) for customers to rate their experience. This helps you measure satisfaction and gather actionable insights.

You can customize:

* The **message content**
* The **icon style** (😍 / ❤️ / ⭐)
* Whether **completion is required** before continuing
* A **timeout** to proceed if the user doesn’t interact

<figure><img src="/files/8408BKtkb3jxDUzpUDVx" alt=""><figcaption><p>Figure 4. Collect feedback block</p></figcaption></figure>

***

#### Steps to Use

1. Drag the **Collect Feedback** block into your workflow.
2. Enter a **message** asking for feedback (e.g. “How was your experience?”).
3. Choose an **icon style** (Emoji, Heart, or Star).
4. Optionally configure:
   * **Form completion is required before continuing** — the user must rate before the flow continues.
   * **Wait timeout** — auto-continue after a set time if the customer doesn’t respond.
5. Connect it to the next block in the flow.

#### Example / Use Case

* After a live support session, collect customer satisfaction ratings.
* Combine with tagging or analytics to track feedback trends and agent performance.

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** Yes
  * If no interaction within the set time, the flow proceeds.
* **Require to continue toggle:** Optional
  * If enabled: requires user to complete feedback to proceed.
  * If disabled: timeout can auto-advance the flow.

***

### Form Submit

#### Overview

The **Form Submit** block is used to collect structured customer information during a workflow. You can either:

* Use the **default form** with predefined customer properties (e.g. name, email), or
* Use a **custom form** created in the Form Builder module

Submitted data can be sent to a backend endpoint via `POST`, saved as a variable, or both.

<figure><img src="/files/0i5imXAY4WIkhm7Pbu2v" alt=""><figcaption><p>Figure 6. Form submit block</p></figcaption></figure>

#### Steps to Use

1. Drag the **Form Submit** block into your flow.
2. Write a **message content** that will be shown when sending the form.
3. Choose one of the two data collection options:
   * **Use default**:
     * Attach common customer fields (name, email, phone, etc.)
     * Specify a backend URL (optional) and security token
   * **Use custom form**:
     * Select an existing form created in **Form Builder**
4. (Optional) Enable:
   * **“Form completion required before continuing”**: forces the customer to complete the form
   * **“Save result as variable”**: store submitted data for reuse later
   * **“Wait” timeout**: auto-continue after a defined period if the customer doesn't respond
5. Connect this block to the next step in your workflow.

#### Example / Use Case

* Collect customer's email and phone for follow-up
* Send structured lead info to CRM via API
* Display a tailored form based on prior answers (with conditional logic)

#### Notes

* **Connectors**: 2 (input + output)
* **Timeout supported**: Yes
  * If enabled, the system will wait for user input.
  * If no interaction after timeout, proceeds to next block.
* **Require to continue**: Optional
  * When enabled, user **must** submit the form to move forward.
* Supports both **default fields** and **custom-designed forms**.
* Accepts **dynamic variables** in the message or API fields.
* Only available when purchasing the add-on or LTD packages

***

### Capture Customer Info

#### Overview

The **Capture Customer Info** block allows you to collect key customer details directly in the flow. You can choose specific fields (e.g. name, phone number) and optionally update these into the customer profile automatically.

This block helps reduce manual data entry and keeps your CRM updated in real time.

<figure><img src="/files/6LsJCFsuyrdEeuaM2KaF" alt=""><figcaption><p>Figure 12. Capture Customer Info</p></figcaption></figure>

***

#### Steps to Use

1. Drag the **Capture Customer Info** block into your workflow.
2. Select which fields to collect:
   * name
   * email
   * phone number
   * address
   * gender
3. (Optional) Configure the following:
   * **Form completion required before continuing**: ensures user submits info before proceeding
   * **Wait timeout**: proceeds automatically if user doesn't respond within set time
   * **Save Customer Info** toggle: enables auto-updating collected fields to the customer profile
4. Connect this block to the next step in your flow.

***

#### Example / Use Case

* Ask for missing user information before routing to support
* Collect email or phone for follow-up
* Update user records in real-time without manual syncing

***

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** Yes
  * If timeout is enabled, the block will proceed even if the customer doesn’t fill in the info.
* **Require to continue:** Optional
  * When enabled, the flow only moves forward after form completion.
* **Save Customer Info:** If enabled, all selected fields are saved directly to the customer profile (`customer_name`, `customer_email`, etc.)

***

## Automation

### Wait for chat

#### Overview

The **Wait for chat** block pauses the workflow until the customer sends a message. Once the message is received, the content will be saved into a variable and the workflow continues to the next block.

This block is useful for collecting user responses during a conversation, such as name, preferences, or other free-form input.

<figure><img src="/files/6sQyjrbSJUyJLuuQ9mTB" alt=""><figcaption><p>Figure 23. Wait for chat</p></figcaption></figure>

#### Steps to Use

1. Drag the **Wait for chat** block into your workflow.
2. In the **Settings** panel, enter the **variable name** to store the customer’s reply.
   * Example: `hi`, `user_input`, `product_choice`
3. Connect to the next step using the output dot (→) after this block.
4. You can reuse the variable in any subsequent block by referencing `{{your_variable_name}}`.

#### Example / Use Case

* Ask for the customer’s name and store it:
  * Message: “What’s your name?”
  * Wait for chat → store as: `customer_name`
  * Message: “Hello {{customer\_name}}, how can I help you today?”
* Gather product preference or free text reply from user

#### Notes

* This block does **not render any message on its own**
* It's commonly used **after a message block**, waiting for a reply
* Internally, the system tracks if the user is at this block, and captures the next message into the defined variable
* **Connectors**:
  * 1 input
  * 1 output (→ right side dot)

### Turn off Auto Reply

#### Overview

The **Turn off Auto-reply** block disables the bot’s auto-response for the current conversation.

Once this block is triggered, the bot will **stop replying automatically,** allowing agents to take over manually if needed.

> ⚠️ This block does not affect conversations where auto-reply has already been turned off earlier.

<figure><img src="/files/5nhdVBMVgYIU2FgnJD8f" alt=""><figcaption><p>Figure 7. Turn off auto-reply block</p></figcaption></figure>

***

#### Steps to Use

1. Add the **Turn off Auto-reply** block into your workflow.
2. Connect it after the point where you want the bot to stop responding.
3. No further configuration is needed — it acts immediately when triggered.

***

#### Example / Use Case

* Stop bot messages once a **human agent is assigned**
* Disable auto-replies when the user asks for a live person
* Use before transferring the conversation to an external channel

#### Notes

* **Connector:** 1 (input only)
* Once triggered, it **turns off auto-reply** for this conversation.
* This block **does not continue** to the next step.
* Auto-reply stays off for the remainder of the conversation unless re-enabled in Help Desk/Livechat.

***

### Close Conversation

#### Overview

When triggered, the **Close Conversation** block automatically ends the current chat session or ticket. It is typically used at the end of a workflow to signal that no further interaction is needed.

Once this block is reached, the conversation will be marked as **closed** in the system.

<figure><img src="/files/KhJOL6H8saUSS4YRgp2K" alt=""><figcaption><p>Figure 8. Close conversation block</p></figcaption></figure>

#### Steps to Use

1. Add the **Close Conversation** block to the end of your workflow.
2. No additional configuration is required.
3. It will execute automatically and stop the flow when triggered.

#### Example / Use Case

* End a conversation after feedback is submitted
* Automatically close the conversation after an issue is resolved

#### Notes

* **Connector:** 1 (input only)
* This block **does not continue** to another step — it ends the flow.
* **Timeout is not supported**
* Closing is applied **only to the current session**

***

### Recap Chat Message

#### Overview

The **Recap Chat Message** block allows the system to **generate a summary of the entire conversation** and **send it to the customer’s email**. This is often used at the end of a support flow to give users a full record of their interaction.

The recap includes:

* All relevant messages exchanged in the session
* Agent and bot responses

<figure><img src="/files/LU4gkR5Bt90aeA5hjlee" alt=""><figcaption><p>Figure 10. Recap chat messsage block</p></figcaption></figure>

#### Steps to Use

1. Insert the **Recap Chat Message** block at the appropriate point in your flow (typically at the end).
2. No manual configuration is needed — the system will:
   * Automatically collect the full conversation
   * Format it into a recap email
   * Send it to the customer’s email
3. Connect it to a terminal block if needed (optional).

#### Example / Use Case

* Send a summary of the conversation once it has been completed
* Use in workflows that handle escalations or transactions

#### Notes

* **Connectors:** 2 (input + output)
* When triggered, this block generates a **recap of the entire conversation** and sends it to the customer’s email.
* The flow will **continue to the next block** after the recap is sent.
* Requires `customer_email` to be available in order to deliver the email.
* **Timeout is not supported**

***

### Create Ticket

#### Overview

The **Create Ticket** block allows you to generate a new support ticket during the conversation. The ticket is submitted with a message and saved in your system for agents to review and resolve later.

You can optionally send a **ticket link** back to the customer after creation.

<figure><img src="/files/zfk6qJX67YXuPbwgP8IO" alt=""><figcaption><p>Figure 13. Create ticket</p></figcaption></figure>

#### Steps to Use

1. Add the **Create Ticket** block to your flow.
2. Enter a **ticket name** (supports dynamic variables like `{{customer_name}}`).
3. Write the **message content** that will be included in the ticket.
4. (Optional) Enable **"Send ticket link to customer"** to let them view it directly.
5. Connect to the next step in your flow.

#### Example / Use Case

* Log unresolved bot questions for agents to follow up
* Create support tickets for order issues, account problems, or special requests
* Trigger human intervention while maintaining ticket history

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** No
* The ticket will be created **instantly** with the provided information.
* If the “Send ticket link to customer” option is enabled, a clickable link will be sent to the chat.
* Ticket data can be combined with **dynamic variables** like `{{customer_email}}` or `{{last_message}}`.

***

### Auto-tag

#### Overview

The **Auto-tagging** block allows the system to automatically assign predefined tags to the conversation based on detected intent or keyword matches. Tags help categorize, route, or track conversations more effectively.

Each tag can have an optional **description** to help the chatbot understand and assign them more accurately.

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

#### Steps to Use

1. Add the **Auto-tagging** block into your workflow.
2. Define tags under the **Tags list** tab:
   * Give each tag a **name** (e.g., “New Customer”, “Order Issue”)
   * (Optional) Add a **description** to help improve classification logic
3. Tags can be managed via:
   * 📝 **Edit icon** (pencil) to rename or update description
   * 🗑 **Delete icon** (trash) to remove the tag
4. The system will evaluate the conversation and assign tags if matching logic is met.
5. Connect this block to the next step in your flow.

#### Example / Use Case

* Tag conversations with “New Customer” if the user asks about onboarding
* Assign “Shipping Delay” if the user complains about delivery
* Help agents filter or search by topic automatically

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** No
* Tag logic is handled automatically; no user interaction is required
* Tagging does not interrupt the flow and continues immediately

***

### Auto-assign Agents

#### Overview

The **Auto-assign Agents** block automatically assigns the conversation to an agent using the **Round Robin** method. You can assign by team, or limit the assignment to specific team members.

This ensures a fair and automated distribution of workload across support agents.

<figure><img src="/files/VlR17GR2xMkuT9bQDUK8" alt=""><figcaption><p>Figure 16. Auto-assign agents block</p></figcaption></figure>

#### Steps to Use

1. Drag the **Auto-assign Agents** block into your workflow.
2. Select a **team** from the dropdown to assign conversations to.
3. (Optional) Enable **“Select specific team members to assign”**:
   * Choose which members will be eligible for auto-assignment.
   * If enabled, the system **ignores max concurrent chat limits**.
4. Connect to the next block to continue the conversation after assignment.

#### Example / Use Case

* Distribute live chats evenly across agents in a team
* Assign onboarding conversations to a dedicated success team
* Route VIP customers to a select group of experienced agents

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** No
* If no available agent in the selected group, the conversation stays unassigned.
* **Round Robin logic** ensures even load balancing between available agents.
* When **specific members** are selected, the **maximum concurrent chat limit is bypassed**.

***

### Follow-up Conversation

#### Overview

The **Follow-up Conversation** block allows the AI to proactively re-engage with customers by sending automated follow-up messages. This helps extend the conversation naturally, especially in cases where the user may have dropped off or not interacted for a while.

The message content is managed automatically by the system — this block does **not require manual customization of the message**.

<figure><img src="/files/8TpttJMjyBoISNLLZWWI" alt=""><figcaption><p>Figure 19. Follow - up conversation block</p></figcaption></figure>

#### Steps to Use

1. Add the **Follow-up Conversation** block to your workflow.
2. Place it after key interaction points where re-engagement may be useful.
3. Connect this block to the next step in your flow to continue after the follow-up.

#### Example / Use Case

* Gently prompt the customer to resume the chat if they paused too long
* Boost lead conversion by re-engaging hesitant customers

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** No
* AI handles the follow-up content automatically — no message setup is required
* Can be used multiple times in a long workflow to maintain engagement
* Ideal for improving user retention in drop-off scenarios

***

### Remove Conversation Tag

#### Overview

The **Remove Conversation Tag** block allows you to automatically remove one or more existing tags from the current conversation. This is helpful for cleaning up tag-based logic, resetting conversation states, or managing user segmentation dynamically.

Tags are often used in automation, routing, and analytics — removing them at the right moment ensures clean and accurate data flow.

<figure><img src="/files/CRW4sQma4CTaAbk1WLWP" alt=""><figcaption><p>Figure 29. Remove conversation tag block</p></figcaption></figure>

#### Steps to Use

#### Step 1: Add the Remove Conversation Tag block

* In the Workflow builder, click the **Remove Tag** icon from the left toolbar.
* A red-colored block will appear on the canvas with the label: `Remove conversation tag`.

#### Step 2: Configure tags to remove

* Click on the block to open the **Settings** panel.
* In the dropdown labeled **Select tags**, choose one or more tags you want to remove from the conversation.
  * Example tags: `New Customers`, `Old customers`, `VIP`, `Chưa xử lý`, etc.

> 📌 Only tags already attached to the conversation will be affected. Tags not present will be ignored silently.

#### Step 3: Connect to the next block

* Drag a connection arrow to link this block to the next step in the flow.

#### Example / Use Case

**Scenario:** After a user completes onboarding, remove the `New Customers` tag so that future flows do not treat them as new users.

Workflow:

1. Branch: If tag = `New Customers`
2. Show Welcome Message
3. Remove Conversation Tag: `New Customers`

This keeps the tag logic clean and avoids repeating onboarding content.

#### Notes

* Tags removed by this block are conversation-level tags, not contact-level tags.
* If the tag does not exist at the time of execution, the block still completes silently (no error).
* You can remove multiple tags at once by selecting them in bulk.
* Connector: 1 input and 1 output.

***

### Set customer tag

#### Overview

The **Set Customer Tag** block allows you to manually assign tags to a contact (not just the current conversation). These tags are persistent and remain even after a chat session ends, making them useful for long-term user profiling and segmentation.

This is especially helpful for CRM, marketing, or behavior-based automation workflows.

<figure><img src="/files/Xvt6WSGmcMLbAYMTv6XE" alt=""><figcaption><p>Figure 30. Set customer tag block</p></figcaption></figure>

***

#### Steps to Use

#### Step 1: Add the Set Customer Tag block

* In the Workflow builder, select the **Set Customer Tag** icon from the left toolbar.
* A blue-colored block labeled `Set customer tag` will appear on the canvas.

#### Step 2: Choose or create tags

* Click on the block to open the settings panel.
* You'll see a list of existing **Contact Tags**.
* Tick the checkbox next to any tag(s) you want to assign.
* To add a new tag:
  * Click **+ Create Tag**
  * Enter tag name and confirm.

> 🛠️ Tags are managed centrally under Contacts → Contact Tags in the main menu.

#### Step 3: Connect to next block

* As with other blocks, drag the connector arrow to link this block to the next step in the flow.

#### Example / Use Case

**Scenario:** You want to label users who provide feedback as “Engaged Users”.

Workflow:

1. User completes feedback form
2. Trigger `Set Customer Tag` block → apply `Engaged Users`
3. Move to thank-you message

The tag will remain on their profile permanently and can be reused for future targeting or logic.

#### Notes

* These are **Contact-level tags**, not session/conversation tags.
* Tags applied via this block will **remain even after the chat ends**.
* Useful for long-term segmentation such as: `VIP`, `Trial User`, `Has Purchased`, `Support Risk`, etc.
* You can manage the full list of contact tags via: **Contacts → Contact Tags** in the left navigation panel.
* Connectors: 1 input and 1 output.

***

### Remove Customer Tag

#### Overview

The **Remove Customer Tag** block allows you to remove one or more tags from the **contact profile** (not just from a conversation). This is useful for managing long-term segmentation and cleaning up outdated or temporary customer labels.

Unlike conversation tags, **customer tags** are persistent and stored at the contact level, so this block is used to manually unassign them when needed.

<figure><img src="/files/QcFV2o0LQ0abemm56D3Y" alt=""><figcaption><p>Figure 31. Remove customerr tag block</p></figcaption></figure>

#### Steps to Use

#### Step 1: Add the Remove Customer Tag block

* In the Workflow builder, click the **Remove Customer Tag** icon from the left toolbar.
* A red-colored block labeled `Remove customer tag` will appear on the canvas.

#### Step 2: Choose tags to remove

* Click on the block to open the **Settings** panel.
* From the dropdown, select one or more customer tags you want to remove.
  * Examples: `Feedback`, `Hoàn thành`, `Khách giao hàng`, etc.
* You can scroll or search through the list of tags.

#### Step 3: Connect to next block

* As with other blocks, use the connector to link this block to the next action in the flow.

> 🧩 Tags listed here are created and managed in the Contacts → Contact Tags section.

#### Example / Use Case

**Scenario:** After a user finishes their second purchase, you may want to:

* Remove the tag `First-time Buyer`
* Assign a new tag `Returning Customer`

Your flow would include:

1. `Remove Customer Tag`: First-time Buyer
2. `Set Customer Tag`: Returning Customer

This keeps your contact segmentation up to date automatically.

#### Notes

* These are **contact-level tags**, not session-specific.
* Removing a tag does not delete the tag from the system — it only unassigns it from the specific contact.
* If the selected tag is not currently applied to the user, the block simply skips without error.
* Tags are managed centrally in the **Contacts → Contact Tags** module.
* Connectors: 1 input & 1 output.

***

## Agents

### Notify Agent

#### Overview

The **Notify Agent** block sends a push notification to human agents when a customer message reaches this step in the workflow. This is useful to **alert specific people or teams** for immediate attention without interrupting the flow.

You can choose to:

* Notify **all agents** (default)
* Or **target specific agents or teams** manually

<figure><img src="/files/XHJcJKR3yhrKo9P4t9Pk" alt=""><figcaption><p>Figure 5. Notify agent</p></figcaption></figure>

***

#### Steps to Use

1. Drag the **Notify Agent** block into your workflow.
2. (Optional) Enable the toggle **“Allow selection of specific agents to get notification”**.
3. Choose one or more:
   * **Individual agents**
   * **Teams** (e.g., Sales team, Support team)
4. Connect the block to the next step in the flow.

> 📌 If toggle is off, all available agents in the workspace will receive the notification.

***

#### Example / Use Case

* Alert a **live chat agent** when the bot can’t answer a question.
* Ping the **order team** when a customer completes a form.
* Notify a **dedicated support rep** for VIP users.

***

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** No
* Flow **continues immediately** after the notification is sent.
* The notification does **not pause the workflow** — it runs in parallel.

***

## Logic

### Condition

#### Overview

The **Condition** block allows you to branch your workflow based on whether a condition is true or false. You can define logic manually using dynamic variables or choose from predefined options like agent availability.

This gives you fine-grained control over the direction of your customer flows.

<figure><img src="/files/UjorSGer13KvXxndDH56" alt=""><figcaption><p>Figure 20. Condition block</p></figcaption></figure>

#### Steps to Use

1. Drag the **Condition** block into your workflow.
2. Choose how to define the condition:
   * **Input condition**: Manually enter a logic string using dynamic variables (e.g. `{{customer.name}} is equal to John Smith`).
   * **Select condition**: Pick from built-in options (e.g. “At least one human agent is online”).
3. (Optional) Click the **AI Generate** button to receive logic suggestions based on your scenario.
4. Connect the block:
   * **TRUE output**: Used when the condition is met.
   * **FALSE output**: Used when the condition is not met.

#### Example / Use Case

* Route VIP users by checking if `{{customer.type}} == vip`
* Show different flows based on user country or email domain
* Only assign to an agent if at least one is available

#### Notes

* **Connectors**:
  * 1 input
  * 2 outputs: `TRUE` and `FALSE`
* **Timeout supported**: No
* Conditions can reference variables set earlier in the workflow
* “Input condition” mode supports AI-based logic suggestions
* 🔹 **Important**: Conditions are only evaluated to control **content logic** (what users see or which block to go next). They do **not** apply to action execution (e.g. Assign Agent, Send Email).

***

## Dev tools

### AI Instruction

#### Overview

The **AI Instruction** block allows you to send a custom prompt to OpenAI. It uses the current chat context along with your prompt to generate a result from the AI.

This block is **independent** — it does not branch logic like Condition blocks. You simply collect and store the AI’s response for later use in the workflow.

<figure><img src="/files/OJTzkeCAQ5CxIS2X1157" alt=""><figcaption><p>Figure 21. AI Instruction block</p></figcaption></figure>

#### Steps to Use

1. Drag the **AI Instruction** block into your workflow.
2. In the **Prompt** field, enter your instruction (e.g., “Summarize this message” or “Detect sentiment from customer input”).
3. Under **Select action with the result**, choose **Save as variable** and enter a variable name (e.g., `ai_result_summary`).
4. Connect to the next block using the output dot (→).

#### Example / Use Case

* Use AI to extract key information from a message and store it
* Ask AI to rephrase user input or translate text
* Generate suggestions or options to display in future steps

#### Notes

* This block **does not support logic branching** (no TRUE/FALSE outputs)
* **Must** define a variable name to save the AI’s result
* Output can be reused in future blocks like Send Message or Form
* **Connectors**:
  * 1 input
  * 1 output

***

### Smart Product Query

#### Overview

The **Smart Product Query** block uses the current conversation context to extract the top 5 products the customer is most interested in. It leverages AI to interpret the user's intent and automatically query your store database.

You can choose to send a default AI-generated product message, or customize your own format to control how the product is shown to the user.

<figure><img src="/files/2hYwOAbKCoOZwYsJq5cd" alt=""><figcaption><p>Figure 18. Smart Product Query block</p></figcaption></figure>

***

#### Steps to Use

1. Insert the **Smart Product Query** block into your workflow.
2. Select the **Store** source:
   * Supported platforms: **Shopify** and **WooCommerce (*****see it how to integrate*****)**
3. Choose how to respond:
   * **Auto send message**: bot will immediately send call out results to the customer
   * **Custom message**: this field lets you **format the result** using dynamic variables (e.g. show name, price, image)
4. (Optional) Enter a **variable name** to store the query result (used in later blocks).
5. Connect the block to the next block in your flow.

#### Example / Use Case

* Recommend relevant products after a customer asks “Do you have running shoes?”
* Use custom format to embed product links and layout
* Store results in a variable for filtering, routing, or tagging later

#### Notes

* **Connectors:** 2 (input + output)
* **Timeout supported:** No
* The bot returns a list of up to **5 product objects** matching the user’s request.
* You can **custom format** the result message using the **Custom message** field.
* **Result variable** can be used in later logic or display.

#### Result Variable Structure

```json
[
  {
    "id": "string",
    "status": "string",
    "name": "string",
    "description": "string",
    "brand_name": "string",
    "category_name": "string",
    "tags": ["string"],
    "price": 0,
    "stock_quantity": 0,
    "image": "string",
    "images": ["string"],
    "link": "string",
    "currency": "string",
    "has_variant": true
  }
]

```

***

### API Call

#### Overview

The **API Call** block allows you to fetch data from or send data to an external API (via GET or POST). It’s typically used to retrieve a result and either store it as a variable or send it directly to the customer during the conversation flow.

<figure><img src="/files/GsR90aDk7a3nTwwCTd6v" alt=""><figcaption><p>Figure 22.1 API Call block</p></figcaption></figure>

<figure><img src="/files/TeqRtzSqwVW77iRx4P51" alt=""><figcaption><p>Figure 22.2 API Call block</p></figcaption></figure>

***

#### Steps to Use

1. Drag the **API Call** block into your workflow. A white block with **2 purple dots** will appear.
2. Configure the following fields:

   #### Step 1: Select Method

   * Choose between `GET` (retrieve data) or `POST` (send data).

   #### Step 2: Enter API URL

   * Example: `https://api-staging.cxgenie.ai/api/v1/public-api/example`

   #### Step 3: Add Header Object

   * Default includes:

     ```json
     {
       "Authorization": "Bearer <your_token>",
       "Content-Type": "application/json"
     }

     ```
   * You can modify or add headers as needed.

   #### Step 4: Define Body (for POST)

   * Default:

     ```json
     {
       "key": "string"
     }

     ```
   * Customize with dynamic data like `{{customer.email}}`.
3. Choose how to process the **Returned Result**:

   * **Specified Result**: Extract a specific path from the response (e.g. `data.purchase_history[0].items[0].product_name`)
   * **Random Result**: Retrieve a random value from an array

   #### Example for Specified:

   * To extract the first product name in the first order:

     ```
     data.purchase_history[0].items[0].product_name

     ```

   #### Example for Random:

   * **Random Target**: `purchase_history`
   * **Selected Attribute**: `order_id`
   * **Save as Variable**: `random_order`

   The system will randomly return one order ID from the customer’s purchase history.
4. Select action with the result:
   * ✅ Choose **Save as variable**
   * Enter a variable name (e.g. `api_response` or `random_product`)

#### Example / Use Case

* Retrieve customer purchase history and show a product
* Get shipping status from a third-party service
* Check subscription level from CRM and store it for future logic
* Randomly display one product from their previous purchases

#### Notes

* Headers and body must follow a valid JSON structure
* Dynamic variables (e.g., `{{customer.email}}`) are supported in both header and body
* The API block **does not control flow logic** — use a **Condition** block if you need to act based on the returned value
* **Connectors**:
  * 1 input (left dot)
  * 1 output (right dot)
* Always click **Save changes** after configuration

***

### Smart DB Query

#### Overview

The **Smart DB Query** block allows the bot to connect to a database and automatically generate a SQL query based on the last 20 user messages.

Once connected, the system sends the generated SQL query to the selected database, executes it, and stores the result in a variable for later use.

The returned result is an array of rows from the database.

<figure><img src="/files/OCi4JZwiO1ELdp0w6ZZU" alt=""><figcaption><p>Figure 24. Smart DB Query</p></figcaption></figure>

#### Steps to Use

1. Drag the **Smart DB Query** block into your workflow.
2. In the **Settings** panel:
   * **Select database**: Choose a configured PostgreSQL or MySQL database by setting up in Training Data
   * **Save as variable**: Enter a name for the variable where the results will be stored (e.g. `query_result`)
3. Connect to the next block using the output dot (→).
4. Use the result in subsequent blocks by referencing `{{query_result}}`.

#### Example / Use Case

* Let the bot answer product-related questions by querying your inventory database
* Let the user type “Show me my last 3 orders” → the bot generates a SQL query to fetch orders from MySQL/PostgreSQL
* Display product stock level by querying inventory table automatically

#### Notes

* Supports both **PostgreSQL** and **MySQL**
* The query is auto-generated by the system based on user conversation — no need to manually write SQL
* You only need to:
  * Select the database
  * Define a variable to hold the results
* **Returned data is an array** of rows (objects)
* Use this block in workflows where AI-driven SQL retrieval enhances dynamic user support
* **Connectors**:
  * 1 input (left)
  * 1 output (→ right)

***

### Connect to database

#### Overview

The **Connect to database** block allows you to run SQL statements on a selected database. You can either:

* Write your own SQL manually (**Type SQL**), or
* Use natural language to let the system auto-generate the query (**Smart Query**)

It supports both **PostgreSQL** and **MySQL**, and the result can be saved as a variable for use in following blocks.

<figure><img src="/files/OzDPJMuhODJYtqvoEAgJ" alt=""><figcaption><p>Figure 25. Connect to database</p></figcaption></figure>

#### Steps to Use

1. Drag the **Connect to database** block into your workflow.
2. In the **Settings** tab:
   * **Select database**: Choose from a list of pre-connected databases (PostgreSQL/MySQL).
   * Choose how you want to define the query:
     * 🔹 **Type SQL**:
       * Manually write your SQL statement in the editor provided.
       * Example:

         ```sql
         SELECT * FROM orders WHERE customer_id = {{customer.id}};

         ```
     * 🔹 **Smart Query**:
       * Type a natural language prompt (e.g. “Get the list of products in Europe”)
       * Click **Generate Query** to let the system convert it into a valid SQL statement.
3. **Set variable**: Enter a variable name to store the result (required). This allows later blocks to use the query result via `{{your_variable}}`.

#### Example / Use Case

* **Manual SQL**:
  * Insert a log:

    ```sql
    INSERT INTO logs (event, created_at) VALUES ('started_checkout', NOW());

    ```
* **Smart Query**:
  * Prompt: *“Get the name and price of all shoes in stock”*
  * System generates:

    ```sql
    SELECT name, price FROM products WHERE category = 'shoes' AND stock > 0;

    ```

#### Notes

* You must select a database before writing a query or using Smart Query
* Smart Query is powered by AI and supports natural language input
* Dynamic variables like `{{customer.id}}` are supported in SQL statements
* Result is saved as an array of rows into the defined variable
* **Connectors**:
  * 1 input (left)
  * 1 output (→ right)

***

### JS Code

#### Overview

The **JS Code** block allows you to write and run custom JavaScript code that is executed on the client side. This is useful for manipulating data, performing calculations, or integrating with external services via API calls, parsing logic, or conditional handling.

It offers advanced customization for developers who need fine control over workflow logic.

<figure><img src="/files/pgmEaHC9BqnVBH5jEGtS" alt=""><figcaption><p>Figure 26. JS Code block</p></figcaption></figure>

#### Steps to Use

1. Drag the **JS Code** block into your workflow.
2. In the **Settings** tab:
   * Enter your JavaScript code into the editor field.
   * You can access dynamic variables from the conversation using `{{variable_name}}`, which are passed into the execution context.
3. After execution, use standard JavaScript logic to:
   * Transform data and store it back into variables
   * Trigger or simulate actions
   * Prepare content for next steps
4. Connect the output to the next block in the workflow using the right dot (→).

#### Example / Use Case

* Format a phone number:

  ```
  const cleaned = input.replace(/\\D/g, '');
  return cleaned;

  ```
* Calculate total from an array of prices:

  ```
  const total = prices.reduce((sum, p) => sum + p, 0);
  return total;

  ```
* Send an API call using fetch (if supported by environment):

  ```
  fetch('<https://api.example.com/check>', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ email: user.email })
  }).then(res => res.json())
    .then(data => {
      return data.status;
    });

  ```

#### Notes

* This block runs **client-side JavaScript**
* You can **read from and write to variables**
* Avoid long-running scripts or sensitive logic as it runs in the user's browser context (if client-side truly applies)
* Best used for lightweight transformations, conditionals, or client integrations
* **Connectors**:
  * 1 input
  * 1 output (→ right side dot)

***

### Query to knowledge base

#### Overview

The **Query to knowledge base** block allows the bot to retrieve relevant answers from a connected knowledge base using semantic matching. It supports two modes:

* **Smart Query**: Auto-generates a query from the last 20 messages in the conversation.
* **Query Value**: Allows you to specify a query manually or via variable.

This block is used to enable AI-powered knowledge retrieval for FAQs, guides, and help articles.

<figure><img src="/files/J7K2MACkcPqEKBeuTozc" alt=""><figcaption><p>Figure 27. Query to knowledge base block</p></figcaption></figure>

#### Steps to Use

1. Drag the **Query to knowledge base** block into your workflow.
2. Choose your **query mode**:
   * 🔹 **Use smart query**: The system generates a query from the last 20 user messages.
   * 🔹 **Use query value**: Manually enter a query or a dynamic variable (e.g., `{{user_question}}`).
3. In the **Save as variable** field, enter a variable name (e.g., `kb_result`) to store the matched results.
4. Set **maximum number of results** (must be less than 10).
5. Make sure a **Knowledge Base is already trained** in the bot; otherwise, this block will return no results.
6. To display the result, use another block (e.g. **Message block**) and reference the result variable, like:

   ```
   Top answer: {{kb_result[0].answer}}

   ```

#### Example / Use Case

* User says: “How do I reset my password?”
* Smart Query detects intent and searches the knowledge base.
* Top match (based on semantic distance) is saved into variable `kb_result`
* Message block displays:

  ```
  Here's what I found: {{kb_result[0].answer}}

  ```

#### Notes

* The returned result has the structure:

  ```json
  {
    "question": "Question from user",
    "answer": "Answer from knowledge base",
    "distance": 0.95
  }

  ```
* `distance` ranges from 0–1, where 1 is a perfect match
* Results are returned as an array, even if there's only one
* You **must use another block** to display or act on the result (e.g., Message or Condition)
* The **bot must have a Knowledge Base configured** with content to search against
* **Connectors**:
  * 1 input
  * 1 output (→ right side dot)


# Module Explaination

Workflow module in CX Genie helps businesses create dynamic, personalized conversations that enhance customer engagement and automate support processes.

## Purpose of the Module

The **Workflow module** in CX Genie allows businesses to define the exact flow of actions their chatbot should follow when interacting with customers. This is especially useful in scenarios such as answering inquiries, providing assistance, or collecting customer information—ultimately enhancing the overall customer service process.

## Main Function

The main goal of a workflow is to guide chatbot interactions in a structured way. It enables the bot to perform tasks such as giving recommendations, processing requests, or conducting surveys. Each workflow can be customized and adapted to fit the needs of the business.

## How It Works

Workflows are built as a sequence of steps, conditions, and actions. When customers interact with the bot, the workflow decides how the bot should respond based on the user’s choices or actions.

* Example: If a customer asks about service prices, the bot provides the relevant information. If a customer shows interest in a product, the bot can request their details for follow-up.

## Related Components

The Workflow module works hand-in-hand with:

* The AI engine (for intent recognition and smart replies).
* Customer data storage (to personalize responses).
* Other CX Genie modules such as CRM integrations, email, or automation tools.\
  It also supports dynamic variables for more natural, personalized conversations.

## Instructions for Use

You can create or modify workflows using a **visual drag-and-drop interface**. Define events and pathways with simple conditions—for example:

* *If a customer clicks option A → go to step B.*\
  No technical skills are required, making it easy to design flexible and business-specific chatbot behaviors.

## Real-Life Example

Imagine a visitor asks the bot for product suggestions. The workflow can guide the bot to ask clarifying questions (e.g., *age, price range, style preferences*). Based on the answers, the bot recommends suitable products. If the customer shows interest, the workflow can prompt the bot to request their contact information for future engagement.


# Dynamic Variables Explaination

This section will help you to use Dynamic Variable feature in WorkFlow

## I. Introduction

The objective of Dynamic variables within CX Genie would be to make their interaction with the chatbot more personalized and flexible, pulling variable data in dynamically upon conversations. It would therefore be able to change responses at will, depending on any specific information at that particular moment through user input, APIs, or other sources of information.

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

In short, Dynamic Variables enable CX Genie's chatbot to:&#x20;

***Personalize responses**:* Calling out the user's name or referring to actual data about them, making the conversation appear more personalized.&#x20;

***Data Collection and Usage from Outside Sources***: It may fetch and use real-time data from APIs or databases, such as fetching stock availability or order status, or personalized recommendations.&#x20;

***Automate decision-making***: The chatbot can change responses dynamically, or execute different sequences of actions based on the variable values, making workflows smarter and context-aware.&#x20;

This ensures that customer interactions are more accurate, engaging, and relevant, improving overall service quality.

## II. How to use

### 1. Dynamic Variables' name

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

This is the name of the dynamic variable you are creating. You should enter a clear and descriptive name that reflects the purpose of the variable, such as "CustomerName" or "OrderTotal." This name will be used to reference the variable in the workflow.

### 2. Code

<figure><img src="/files/4zdOiMqQa58EbctiHEz2" alt=""><figcaption></figcaption></figure>

This field is for the code representation of the dynamic variable. The code must be written in **snake\_case** (all lowercase with words separated by underscores). For example: "customer\_name" or "order\_total." This is how the system will identify the variable.

### 3. Determine Returned Result

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

* **Specified result**: Select this option if you want to specify a fixed result that the dynamic variable will return, meaning a specific result that you already know.
* **Random result**: Choose this option if you want the system to return a random result, useful for cases where the outcome is unpredictable or for testing scenarios.

### 4. Result Data

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

Here you provide the data or information that the system will use to return the variable’s value. For example, if you are pulling information from an API, the returned value might be in JSON format, and you would need to provide the paths to the specific data you want.

### 5. Type

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

* **API Information**: Choose this option if you want the dynamic variable to pull data from an external API. An API allows the system to connect to external services or databases to retrieve specific information.
* **CURL**: Choose this option if you want to use **CURL**, a command-line tool used for transferring data with URLs. CURL is often used for making more complex HTTP requests.

### 6. API URL or CURL

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

If you selected **API Information** as the **Type**, this is where you enter the **URL** of the API you want to pull data from. The **URL** is the web address that the system will query to retrieve data.

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

If you selected **CURL** as the **Type**, this is where you enter the **CURL** of the API you want to pull data from. The **CURL** is the web address that the system will query to retrieve data.


# Workflow Components

Using Workflow's Components, you can spice up customer interactions with chatbots, making conversations lively and wonderfully genuine, so they're never dull!

* For the first use, we would like to introduce Workflow Dashboard, here, it has components that help you to create an amazing Message Flow.
* Each component that you add to your whiteboard. We call it "Block". Each block has 1-2 purple dots, which help you connect with the other components.&#x20;
* "Start" block  <img src="/files/bOapyYznoXfBYKoRoqwM" alt="" data-size="line">can only connect with 1 block
* Every component now will have instruction tab.

<mark style="color:red;">= Note: You need to draw a straight line from the purple dot in this block to the purple dot in another block to complete the diagram. This allows the chatbot to execute the sequences you have set up.</mark>

## [1. Text and Image Button.](/bots/workflow/workflow-components-1/text-and-image-button-create-text-and-image-message)

This component lets you create the workflow message for your chatbot to send the reply with the image if the customer triggers a workflow condition.

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

## [2. Message with actions](/bots/workflow/workflow-components-1/message-with-actions)

This component lets you create the workflow message for your chatbot to send the reply with the message action if the customer triggers a workflow condition.

<figure><img src="/files/8z8XEWC7wEx06vScjvo6" alt=""><figcaption></figcaption></figure>

## [3. Saved Flow](/bots/workflow/workflow-components-1/saved-flows)

This component lets you create the workflow and use the old one to send the reply with the message action if the customer triggers a workflow condition

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

## [4. Collect Feedback](/bots/workflow/workflow-components-1/collect-feedback)

This component lets you create the workflow to collect feedback based on the emoji to evaluate the customers' attitude

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

## [5. Notify Agent](/bots/workflow/workflow-components-1/notify-agent)

This component lets you create the workflow to notify the live agent. Help your staff know the customers' needs

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

## [6. Form Submit](/bots/workflow/workflow-components-1/form-submit)

This component lets you create the workflow to send a form where your customers can filling any information you need.

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

## [7. Recap Chat Message](/bots/workflow/workflow-components-1/recap-chat-message)

This component lets you Recap chat messages in a chatbot is a feature that allows the chatbot system to summarize the content of previous conversations between the customer and the chatbot

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

## [8. Frequent Question](/bots/workflow/workflow-components-1/frequent-questions)

This component lets you use the data from Bot's Knowledge (FAQs) to make a list of Frequent Question

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

## [9. AI API](/bots/workflow/workflow-components-1/ai-api)

This section is exclusively for developers, so the information here is only meant to provide a general overview of the features available at CX Genie

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

## [10. API Call](/bots/workflow/workflow-components-1/api-call)

This section is exclusively for developers, so the information here is only meant to provide a general overview of the features available at CX Genie.

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


# Text and Image Button: Create Text and Image message

This component lets you create the workflow message for your chatbot to send the reply with the image if the customer triggers a workflow condition.

## I. How to use

<figure><img src="/files/j3RO6cS1EuHuAqFoPcGX" alt=""><figcaption><p>Edit Block of Text &#x26; Image Button Interface</p></figcaption></figure>

You can use the format tool to get a better outline.

Here are the 3 basic steps to create the flow based on the Text & Image Components:

* Step 1: Create Text & Image block by clicking <img src="/files/JeqbvRJgVmV4QF23VEJl" alt="" data-size="line"> (it's on the left of the workflow component tool). There's a block of message that will appear.
* Step 2: Connect 2 purple dots to activate the flow.
* Step 3: Click "Save changes" to confirm the setting.&#x20;

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

<figure><img src="/files/GEXVR7BQwBwAZjAv64wK" alt=""><figcaption><p>Create message flow by using Text &#x26; Imagage Button</p></figcaption></figure>

<figure><img src="/files/o4OC1ZgYNxZNCxh8kzdT" alt=""><figcaption><p>When your customer trigger the workflow condition, it will send exactly the message you have created above</p></figcaption></figure>

\*Note: You can upload a maximum of 5 images per 1 block.


# Message with actions

This component lets you create the workflow message for your chatbot to send the reply with the message action if the customer triggers a workflow condition.

## I. How to use

There are 3 parts that you need to know:

### 1. The message part

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

* This part lets you edit the content of your workflow. You can use the format tool (1) to highlight your text for better outline.&#x20;
* (2) is the area where you can input the content.&#x20;
* (3) is the option if you want your customer to choose the action before continuing the flow.&#x20;

### 2. The action part

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

* You can add actions by clicking on the button (1) 'Add action'. Depending on your purpose, you can choose to add text or insert a link by clicking on the options in the list (2).
* Label: This section is used to enter the name of the action button, which will display information for customers.
* Tracking ID: To track the ID in the knowledge base
* Link (for the option use Link in Action): This section will attach a link and send to the chatter.

### 3. The wait counter

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

* You can customize the waiting time for customer response. If the customer does not respond within a specified time, they will no longer be able to select items from the list you've set up.
* Every selection can connect with the other components.

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

<figure><img src="/files/4BPb92bz8W3RolpuXxrB" alt=""><figcaption><p>Make sure your blocks is connected with each other</p></figcaption></figure>

<figure><img src="/files/4wFuVSuIwKCgA1y0kOuy" alt=""><figcaption><p>The workflow will be appear to the customer like this.</p></figcaption></figure>


# Saved flows

This component lets you create the workflow and use the old one to send the reply with the message action if the customer triggers a workflow condition.

## I. How to use

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

* By clicking on the "Saved flows" component, you will add a blue block to your whiteboard, which will let you use the old template of another workflow you have created.&#x20;

<figure><img src="/files/4CRgwfzKrgXCftXNvMWD" alt=""><figcaption></figcaption></figure>

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

<figure><img src="/files/QSFVAKQRnarBAdWI5iVW" alt=""><figcaption><p>Use the old workflow to apply for the new one.</p></figcaption></figure>

<figure><img src="/files/wD8sKE4KlpQxWqUDVAVD" alt=""><figcaption><p>Example 3 workflow will use Example 2 workflow</p></figcaption></figure>


# Collect feedback

This component lets you create the workflow to collect the feedback based on the emoji to evaluate the customers' attitude.

## I. How to use

<figure><img src="/files/oFscrDSmCqPzZjZDow5s" alt=""><figcaption><p>Collect feedback components.</p></figcaption></figure>

* By clicking on the "Collect feedback" component, you will add an orange block to your whiteboard.
* This block has 2 purple dots. So you can connect with any blocks you want.&#x20;
* We recommend you use this feature once you have answered or resolved a customer's question/issue, helping you and the chatbot better understand customer behavior.

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

<figure><img src="/files/5Ix3XzyKBNXlPivUrTeW" alt=""><figcaption><p>Connect with the message block to get the feedback from the customers'</p></figcaption></figure>

<figure><img src="/files/J21DL3mdfYVW3bcysoFs" alt=""><figcaption><p>Customer can click once one emoji for giving feedback</p></figcaption></figure>

<figure><img src="/files/aY2tBxlt53tgv3L4MpPV" alt=""><figcaption><p>After clicking the emoji, the bot will automatically reply and completely record the customer's feedback.</p></figcaption></figure>


# Notify agent

This component lets you create the workflow to notify the live agent. Help your staff can know the customers' needs

## I. How to use

<figure><img src="/files/x4x8lYPXMrDqCu8qdpcq" alt=""><figcaption><p>Notify agent component</p></figcaption></figure>

* By clicking on the "Notify agent" component, you will add a pink block to your whiteboard.
* This block has 2 purple dots. So you can connect with any blocks you want.&#x20;
* We encourage you to use this feature when you are aware of customer issues that require a live agent to resolve, which the chatbot cannot handle.

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

<figure><img src="/files/4pAg2pOKnxr7Q2zHVFzp" alt=""><figcaption><p>Connect with the message block to get the notify to a live agent.</p></figcaption></figure>

<figure><img src="/files/06uZ0zQU2svN8nbt5AJh" alt=""><figcaption><p>The message of the chatbot will send without settings in the workflow.</p></figcaption></figure>

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

* If a customer triggers the condition to call a live agent, a notification will appear immediately in the bell icon (see it here). You can click on the notification to jump to the chat box where the customer called.


# Form submit

This component lets you create the workflow to send a form where your customers can filling any information you need.

## I. How to use

* By clicking on the "Form submit" component, you will add a turquoise block to your whiteboard.
* This block has 2 purple dots. So you can connect with any blocks you want.

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

There are 5 parts that you need to know, let's find out:

### 1.  The message

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

* The format tool (1): this will help your content looks more better.
* The content area (2): to input the information.

### 2. The URL

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

* This section will let you input the link where you save your form for your customer fill-in (ex: Google Drive, Mega, etc.)

### 3.  Security token

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

### 4. Attached customer property

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

* This section will let you optionally choose the customer information to collect, include: customer ID, customer external ID, customer name, customer email and customer phone number.&#x20;
* Three fields need to be filled out by the customer are: Customer name, customer email and customer phone number.

### 5. Wait counter

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

* You can customize the waiting time for customer response. If the customer does not respond within a specified time, they will no longer be able to select items from the list you've set up

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

<figure><img src="/files/LEGvTqExqjTxEXYsn7Rk" alt=""><figcaption><p>(This is an example for testing purpose)</p></figcaption></figure>


# Turn off auto-reply

This block allows you to trigger the auto-reply function based on the [Trigger Workflow Condition](/bots/workflow/trigger-workflow-condition) or set up by your purpose.

For example, you can determine when your customer wants to speak with a real agent regarding the pricing of your product. You can select **When user intends (**[/pages/nyKlnMy5QrPBUUZIdxpE#id-2.-when-user-intend](https://documents.cxgenie.ai/bots/workflow/workflow-components-1/pages/nyKlnMy5QrPBUUZIdxpE#id-2.-when-user-intend "mention")): When a customer expresses a desire to talk to a real agent, you can disable the auto-reply feature. This will be triggered when the customer types, "I want to talk to a real agent."

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

\*Note: This function will not be affected if the conversation is turned off beforehand.\*


# Close conversation

This block allows you to trigger the close conversation function based on[Trigger Workflow Condition](/bots/workflow/trigger-workflow-condition) or set up by your purpose.

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

For example, after consulting with your client about the product, your customer wants to leave feedback. You can follow these steps:

1. Trigger condition by keyword: "feedback"
2. Connect with the collect [feedback block](/bots/workflow/workflow-components-1/collect-feedback)
3. Choose the time response from customers
4. Connect with the close conversation block

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

The result: If your customer wants to leave feedback, they can provide their latest response within 1 day.


# Recap chat message

This component lets you Recap chat message in a chatbot is a feature that allows the chatbot system to summarize the content of previous conversations between the customer and the chatbot.

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

* By clicking on the "Recap chat message" component, you will add a purple block to your whiteboard
* This block has 2 purple dots. So you can connect with any blocks you want.&#x20;
* We encourage you to use this feature when your customer need to summarize the conversation.  This recap message will send to customer email.&#x20;

<figure><img src="/files/BotWDvVyx7pLjyBu4YEh" alt=""><figcaption><p>The recap message will send to your customer email once it reply this sentence.</p></figcaption></figure>

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>


# Frequent Questions

This component lets you use the data from Bot's Knowledge (FAQs) to make a list of Frequent Question

* By clicking on the "Frequent Question" component, you will add a green block to your whiteboard
* This block has 1 purple dot. You can connect with any blocks you want.&#x20;
* We recommend using this feature when you need your clients can access the FAQs of your business easier.

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

## I. How to use

* There are 2 parts that you need to know:

### 1. The message

This part lets you edit the content of your workflow

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

1. The format tool (1): modify your text for better outline.&#x20;
2. The content area (2) : where you can input the content.&#x20;

### 2. The question

This part lets you select the FAQs from your Bot's Knowledge (FAQs)

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

1. You can search your question from Bot's Knowledge. Click to add the flow
2. Where you can see the question you have added. Maximum 5 questions at the same time.

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

## II. Examples

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


# Capture Customer Info

This component will let you collect your information of the customer. Help you to manage the clients from every platform.

* By clicking the icon of the WorkFlow button <img src="/files/mS2otuhQqHwJK3cLukIJ" alt="" data-size="line">, you will be able to add the Capture customer info component.

<figure><img src="/files/4uG5lOFx4OIsB4ViZ4G2" alt=""><figcaption></figcaption></figure>

* This component will have 2 options for you to choose from when setting the component.

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

* Use default: 5 fields that can be selected to collect the info.
* Use custom form: use the form created in the Form Builder (click [here](/marketplace/form-builder) to navigate this feature).
* Click "Save changes" to save the workflow, and "Publish" to activate the WorkFlow for your chatbot.
* You can click the "Preview" button to see the demo of this feature.&#x20;

<figure><img src="/files/BkSSk2YhmNJKY99xw3sk" alt=""><figcaption><p>An example for usingn this component.</p></figcaption></figure>


# Create Ticket

This component will let you automatically create ticket for the customer, which can manage the issue/problem and easy to handle.

* By clicking on the button "Create ticket" <img src="/files/eH65jwmXFlAWw2DUPt6O" alt="" data-size="line"> on the WorkFlow tool, immediately add it to the whiteboard.&#x20;

<figure><img src="/files/ZCUwne0X3x5PW7H07UBP" alt=""><figcaption><p>Block of Create Ticket in the whiteboard.</p></figcaption></figure>

* You can also edit this component when sending the ticket with the specific answer by using dynamic variables and text
  * Dynamic variables available: {{customer.name}}, {{customer.access\_token}} {{customer.email}} {{customer.phone\_number}} {{message.content}}.

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

* Click "Save changes" button on the top-right of the box to save your Workflow, and "Publish" to activate this feature.&#x20;


# Auto-tagging

This section will let you auto-tag the conversation you want to group and will label the conversation.

<figure><img src="/files/24lGUePDw9vY2nDWizMz" alt=""><figcaption></figcaption></figure>

* This function will use the AI to auto-tag the conversation, it will label from the sub-group to the parent group based on the tag you created.&#x20;

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

* You can also create the tag you want in this block.&#x20;


# Queue list

This feature will let you customize your queue so your customer can show the exact time that the agent will be available to meet your client.

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

You can freely set up follow 2 options:

* The position in the queue
* Expected wait time: this will be counted based on the average timing response by your agent

<figure><img src="/files/2j1BstLpyofYsqKcNrtC" alt=""><figcaption></figcaption></figure>


# Auto-assign Agent

This block will let you choose the agent/team you want to assign the conversation or ticket.&#x20;

\*Note: This feature will be available once you have enabled the Help Desk feature.\*

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

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

* Based on your purpose, you can set up a round-robin for assignment, or select a specific team member to assign.
* Turn on the team assignment: the maximum concurrent chat will be applied.&#x20;
* Turn on the specific member assignment: the maximum concurrent chat will be unavailable.


# Condition

This component will be based on the True - False Condition to activate the components you have set up in the WorkFlow.

* Clicking the "Condition" button <img src="/files/rWcpsqcTS8isoH0v1vVh" alt="" data-size="line"> on the WorkFlow tool will immediately add one block to your whiteboard.

<figure><img src="/files/QP07uWYBica3shziWv0v" alt=""><figcaption><p>Block of Condition.</p></figcaption></figure>

* This component will have 2 options for you to choose:&#x20;
  * Input condition: create everything in the true-false structure, you can also use some dynamic variables to make your condition more specialized. There are 5 variables available:  {{customer.name}}, {{customer.access\_token}} {{customer.email}} {{customer.phone\_number}} {{message.content}}.
  * Select condition: based on the request of the user, we will continue to update the template of condition for you easy to use. Available in condition: At least one human agent is online. Please see how to use it [here](/getting-started/knowledge-base/escalate-to-a-human-agent).
* Click "Save changes" button to save your Workflow, and "Publish" if you want to activate this component for the chatbot using.


# AI API

This section is exclusively for developers, so the information here is only meant to provide a general overview of the features available at CX Genie.

**Application**\
The AI Call feature is used to obtain a result through an API call to OpenAI. This result can then be used as a variable within a workflow or sent directly to the customer.

* By clicking on the "AI API" component, you will add a white block to your whiteboard
* This block has 2 purple dots. You can connect with any blocks you want.&#x20;
* If you need to use them, don't hesitate to contact our team for more detailed guidance.

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

* There will be an edit block appearing once you click on the block

<figure><img src="/files/1A4bGRESt9fVP0f7EtyU" alt="" width="375"><figcaption></figcaption></figure>

* **OpenAI Key**: The OpenAI API key is provided by the customer to authenticate requests.
* **Select Model**: Choose the specific OpenAI model to be used for the API call.
* **Prompt**: The input text (or prompt) that will be sent to OpenAI during the API call.
* **Select Action with the Result after Calling from API**: Choose what to do with the result returned from the API call:
  * **Save as Variable**: Store the result as a variable to be used later in other workflow blocks that utilize variables.

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>


# API Call

This section is exclusively for developers, so the information here is only meant to provide a general overview of the features available at CX Genie.

**Application:**\
The API Call is used to retrieve a result from an API and either use it as a variable within a workflow or send the result directly to the customer.

* By clicking on the "API call" component, you will add a white block to your whiteboard
* This block has 2 purple dots. You can connect with any blocks you want.&#x20;
* If you need to use them, don't hesitate to contact our team for more detailed guidance.

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

<mark style="color:red;">**= Please remember to click the "Save changes" button before leaving.**</mark>

**Explanation of Configurations**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd0XvsmKBhdFr9p_-fYQKY1h4O7Rjc348aWE3H9cavaowWK3cKwGaa7ZawZgULtdzM7zLLrnfMmJjiKKrtDyeKdAu2w7kmj82RIaHXXeDAsBNGIJBLk3ixNLMGaQIHb1p9teN5tYd1SY7Wx3a7_gdBOsPU?key=JUAXvKooXgoVpV_DTvFzs_DR" alt=""><figcaption></figcaption></figure>

(1) **Select Method**: You can choose the API call method as either GET or POST. Simply put, GET is used to retrieve data from the API, while POST is used to send data to the API.

(2) **URL**: Enter the URL of the API you wish to call. Example URL: `https://api-staging.cxgenie.ai/api/v1/public-api/example`.

(3) **Header Object**: This section is for configuring the request's header information. You may use it or leave it at the default setting, depending on your usage needs. By default, when creating a block, you’ll see two items:

* **Authorization**: Uses a Bearer token for authentication. Replace "Bearer token" with your actual token.
* **Content-Type**: `application/json`, indicating that the data format being sent is JSON.

(4) **Body**: This section contains the data you want to send with the request. For GET, you usually don’t need a body, but for POST, the body will include the required API data. The default body when creating a block is `{ "key": "string" }`, where "key" should be replaced with the actual value. Example:

```json
{
     "product_id": "PROD002",
   "product_name": "Jeans",
   "quantity": 1,
   "price": 300000
}
```

(5) **Determine Returned Result**:

* **Specified Result**: The API returns a specific result.
* **Random Result**: The result returned will be random.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXewD-weYUO6YuyTDR7LCeanYKvqgvTr1PpDQRg-suCF6Jp-6vkr7Bmun4GVZvKf8KyyIBpLmWPOsbKV47kcC9ucb_yr2C1QwC9pdLrKnvl0weGl3rqzwyCfCDBhjJalPLPImuLpu1qGwUAjD9f8m_ZzIQk?key=JUAXvKooXgoVpV_DTvFzs_DR" alt=""><figcaption></figcaption></figure>

**If you select Specified Result**:

The **"Select the value to retrieve from the API result"** field is where you specify the exact value from the API response you wish to retrieve and use in your workflow.

For instance, if the API returns a JSON object with multiple fields and values, you can input the name of the field (or the path to it) in this field to extract the exact value needed.

Example:

* To have the system return the complete list of `purchase_history`, including all orders and items within each order, input in "Select the value to retrieve from the API result": `data.purchase_history`.
* To get items within the first order in `purchase_history`, input: `data.purchase_history[0].items`. This will return the list of items for the first order (`purchase_history[0]`). Each item will contain details like `product_id`, `product_name`, `quantity`, and `price`.

To get specific values from items, like the `product_name` of the first item in the first order, input: `data.purchase_history[0].items[0].product_name`. Indices \[0], \[1], \[2]... represent the order or product index.

(8) **Select action with the result after calling from API**:

* **Save as variable**: The result from the API is saved as a variable for later use in the workflow. Enter the variable name in the "enter\_variable\_name" field.

**If you select Random Result**:

If you select this option, the system will return a random result from available results:

(6) **Random Target**:

* This field is for selecting the object you want to retrieve a random result from. Choose an object from the list to randomize the result.

(7) **Selected Attribute**:

* This option allows you to select a specific attribute from the chosen object in "Random Target". This is the attribute you wish to retrieve from the API result.

(8) **Select action with the result after calling from API**:

* **Save as variable**: The result from the API will be saved as a variable for later use in the workflow. Enter the variable name in the "enter\_variable\_name" field.

To configure the API to return a random result from this data, you can set it up as follows:

1. **Random Target**:
   * Choose the data object you want to randomize. For example:
     * `purchase_history`: if you want to randomly select a purchase in the history.
     * `preferences`: if you want to randomly select among customer preference attributes.
2. **Selected Attribute**:
   * Select a specific attribute within the object to return. For example:
     * `order_id` if you selected `purchase_history` and only want a random order ID.
     * `product_name` if you selected `items` within `purchase_history` and want a random product name in the order.
   * Leave blank or select the whole object if you wish to return the entire object in `purchase_history` or `items`.
3. **Save as Variable**:
   * Name the variable to store the result. For example:
     * `random_order` to store a random order from `purchase_history`.
     * `random_product` to store a random product from the items list.

Example:

* **Random Target**: `purchase_history`
* **Selected Attribute**: `order_id`
* **Save as Variable**: `random_order`

The returned result will be, for example, `ORD001` if there’s only one transaction. If multiple transactions exist in `purchase_history`, a random `order_id` will be selected.

To return a random product from the purchase history, you might choose:

* **Random Target**: `items` (within `purchase_history`)
* **Selected Attribute**: `product_name`
* **Save as Variable**: `random_product`

This will retrieve a random product name from the customer’s purchase history.


# Connect to database

This section allows you to use the previously connected data storage. You can customize, process, and execute the statements freely.

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

Depending on your database, you can call out information about products, such as price, description, origin, promotions, etc.


# Route

This section will allow you to use the previously attached variables and categorize them for tracking the information.

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

We currently have several variables available for classification based on your needs. First, you need to input values for these variables, which can be collected in various ways. Additionally, we provide a field for gathering information directly from your customers.

<figure><img src="/files/3E0SEMa9emYXSf8VA8kp" alt=""><figcaption></figcaption></figure>

* {{Customer.name}}: Assign a name to a variable.
* {{Customer.access\_token}}: Assign a dynamic value in fetching and inserting as a variable.
* {{Customer.email}}: Assign an email to a variable.
* {{Customer.phone\_number}}: Assign a phone number to a variable.
* {{Message.content}}: Assign a message content to a variable.
* {{Customer.country}}: Assign a country to a variable.

For example, let's use the input variable {{Customer.country}}. By entering their country, the chatbot can identify the user's location and assign it to the appropriate variables, categorizing it into the previously established fields. \
\
If the user is from Europe, Asia, Africa, or Oceania, the chatbot will respond with the message, "From GMT+0 to GMT+12." If the user is from South America, North America, or Central America, it will respond with, "From GMT-12 to GMT-0." However, if the user does not meet either of these conditions, the chatbot will ask, "Where are you from? Tell me your GMT." (All the messages in the example are just for testing; you can freely set them up.)

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


# Settings

This section will help you configure the settings for your chatbot

<figure><img src="/files/PVEm86BDmRWaGDvncl00" alt=""><figcaption><p>Settings Interface</p></figcaption></figure>

* This settings tab will be applied for only one chatbot you clicked.
* There are 3 parts you need to know:

## 1. Reply

This section is for setting up the initial message when customers use your chatbot.

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

* Default message flow section: you can use your message flow as a greeting. There will be a list of the message flows you have created before. They will replace the "Greeting" section.
* Greeting section: You can input a greeting text to appear when your customer accesses the chatbot. Maximum to 255 characters (you can use the emoji to have a unique greeting).
* You can use pictures (like your logo) to send with the greeting.&#x20;

## 2. Learning from conversations

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

* You can optionally choose to turn on or off the bot's learning from conversations with all customers who have chatted with you. The data will be imported into the Bot's Knowledge base, and you can decide whether to keep or delete the data.

<figure><img src="/files/5c3rl7dYdCZxBY9mfZx2" alt=""><figcaption></figcaption></figure>

* When you turn on this feature, there will be some selections will appear:
  * Choose a member who can import: this will let you choose the conversation of whom you want to. If it's blank, it can be done manually.&#x20;
  * You have 2 options to choose from when importing to the knowledge-based: Immediately or After reviewing. You can find it in ([here](/bots/bots-knowledge-1)).

## 3. Automation

<figure><img src="/files/6eUVRVQp9IFcebIZOcJL" alt=""><figcaption></figcaption></figure>

* **Auto reply**: When the chatbot meets an unknown question, there's a turn on-off button on the right, turn on if you want to start. You can optionally choose 1 of 3 selections to continue the conversation:
  * Input your answer: You can freely choose based on your purpose. Example: We don't have enough information to answer the question.
  * AI-Generated Answer: The chatbot will automatically reply based on the information it has, in Bot's Knowledge or the AI Model.
  * No reply: the chatbot will no longer reply to the customer.
* **Using LLM Knowledge**: When you turn on this function, if the chatbot cannot find the answer, it will generate a new one based on the LLM. This makes it flexible, but sometimes it may give unrelated answers.
* **Allow the bot to use emojis in chat messages**: Turning on this feature will let your chatbot use emojis, making the conversation more lively.
* **Auto-suggestion**: Turning on this feature will recommend the answer for the live agent joining the conversation. To get know more about this, please head to **Livechat.**
* **Collect Information:** Turning on this function will let your chatbot collect the information from customers. You can choose any option, but your selection must include an email or phone number. You can also choose the default zip code with phone number field, which will appear when the customer use the chatbot.&#x20;

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

* Auto open chat in web: when this mode is on, the chat window will automatically opens on the website when users visit, even they don't click to the chat icon.&#x20;

<mark style="color:red;">**Please remember to click the "Save changes" button before leaving.**</mark>


# Bot settings

## Overview

The **Bot Settings** panel in CX Genie lets administrators fine-tune how the bot greets users, handles unknown questions, learns from conversations, and collects customer details. These settings improve the customer experience but remain optional — your bot will still function without them.

***

## Reply

### Opening

When a new conversation starts, you can decide how the bot greets the customer.

<figure><img src="/files/3JVcEa690khN8BYvY6by" alt=""><figcaption></figcaption></figure>

#### 1. Input Your Greeting

* Write a custom greeting message (max **255 characters**).
* Supports rich text formatting (bold, italic, lists, links, etc.).
* Optionally, add an **image** to make your greeting more engaging.
* Example:\
  *“Hello 👋 Welcome to CXG! How can I help you today?”*

#### 2. Workflow Greeting

* Instead of a static message, start directly with a **Workflow**.
* The bot triggers a workflow using **“When customer created new conversation”** as the condition.
* Useful if you want a dynamic opening sequence (e.g., showing multiple choices, asking a quick question, or starting a form).

**Tip:**\
Use **Workflow Greeting** if your business needs structured onboarding or lead capture.\
Use **Input Greeting** for a simple welcome message.

***

### Show chat session option

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

Choose what customers see when opening the chat:

* **Show all chat sessions** → Customers can view their entire chat history.
* **Show opened chat sessions only** → Customers see only active, ongoing sessions.

***

## Bot's Knowledge

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

* **Allow Bot to use Online Search** → Bot can pull answers from the web.
* **Show answer source** → Display the source (FAQ, Article, URL, etc.).

## Learning from conversation

* Toggle **Allow bot to learn from conversations**:
  * **Immediately** → Bot learns instantly.
  * **After reviewing** → Knowledge must be approved before use.
* *Available only in Premium plans & LTD packages.*

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

***

## Automation

The **Automation** section lets you configure how the bot responds automatically to unknown questions and how detailed its answers should be.

**1. Auto reply**

* Toggle this on/off to let the bot reply automatically to user messages.

**2. Action on unknown question**\
Choose how the bot should react when it doesn’t know the answer:

* **Input your answer** → Provide a fallback message (e.g., *“Sorry, I don’t have enough information to answer this question.”*).
* **AI-generated answer** → The bot will attempt to reply using AI models.
* **No reply** → The bot stays silent.
* **Trigger bot’s unknown answer workflow** → Start a workflow you’ve designed for unknown inputs.

**3. Bot’s answer length**\
Adjust the level of detail in the bot’s responses:

* **Short** → Summarized, concise replies.
* **Normal** → Standard length (default).
* **Long** → More detailed responses, longer than the normal format.
*

```
<figure><img src="/files/VCmu41m45vqchQpRLp2i" alt=""><figcaption></figcaption></figure>
```

***

### Chat Behavior Enhancements

* **Emoji in replies** → Bot can include emojis in responses.
* **Auto-suggestion** → Bot suggests replies to human agents.\
  ⚠️ *Auto-suggestion works only if Auto-reply is disabled.*

<figure><img src="/files/wUOjGOqCKu7q33nsN812" alt=""><figcaption><p>Chat Behavior Ehancements</p></figcaption></figure>

<figure><img src="/files/4VrVXYj0ENDRH3s9gf6W" alt=""><figcaption><p>Auto-suggestion when displayed</p></figcaption></figure>

***

### Collecting User Information

* Toggle **Collect information before chat**: Request details before a session starts.
* Choose collection mode:

  * **Basic info** → Name, Email, Phone (default fields).

  <figure><img src="/files/gXyx7eyMdK5DTbrxe4JF" alt=""><figcaption><p>Contact Info Collection</p></figcaption></figure>

  * **Custom info** → Use the **Form Builder add-on** to design tailored fields (e.g., service type, preferred date).
    * ***Note**: This feature is only available when purchasing the add-on **Form Builder***

  <figure><img src="/files/JsSTQm9E8HqLZh7lKYoe" alt=""><figcaption><p>Custom Form via Form Builder</p></figcaption></figure>

<figure><img src="/files/RvadKLW40mPsEIgzhI3z" alt=""><figcaption><p>Information field is played when toggle on</p></figcaption></figure>

***

## Example / Use Case

> A bakery chatbot named PoizPiez:
>
> * Greets users: *“Hello, PoizPiez is here. What would you like to order?”* (with a croissant image).
> * Shows full conversation history.
> * Learns from resolved tickets after admin review.
> * Responds to unknowns with: *“Sorry, we can’t get your question.”*
> * Collects **Name** and **Email** before starting chats.
> * Uses **emoji** to maintain a friendly tone.

***

## Notes

* Always click **Save changes** to apply edits.
* For **Custom information**, design fields in the **Form Builder**.
* Avoid enabling **Auto-reply** and **Auto-suggestion** at the same time.

***


# Launch bot

This section will let you send the bot to the customers or optionally add it to your website, mobile app.

## Add to your website

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

* Embed with chat button: (like the chat bubble on the screen)
  * Use the code snippet to embed the chatbot to your website interferes.
  * Auto open chat in the web:  when your customer goes to your website, it will automatically open the chatbot.
  * Draggable chat button: toggle on this button will let your customers move the chatbot freely in your website
  * Postion: change the position of the bubble you want to pop up when your clients click on it.
  * You can also change your avatar of the bubble chat by uploading your image with our recommended size

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

* Embed without chat button: if you want to trigger the chatbot in your website by the button
  * Use the code snippet to embed the chatbot to your website interferes.
  * Auto open chat in the web:  when your customer goes to your website, it automatically opens the chatbot.
  * Trigger the chatbot by clicking on the button: you can use this code snippet for your website.

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

* Select language: You can edit the keywords displayed in the language you select to suit your context and preferences.

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

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

* You can find us on AppStore: <https://apps.apple.com/vn/app/cx-genie/id6474287133>; Google Play: <https://play.google.com/store/apps/details?id=ai.cxgenie.app&pli=1>

For instant use, you can copy the link to send your customer:&#x20;

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

<mark style="color:red;">**Please remember to click the "Save changes" button before leaving.**</mark>


# Connect the Bot to Your Business

This section explains how to connect your CX Genie chatbot to your website or popular platforms.

Start with these channels:

* [Website](/integrations-and-connections/connect-the-bot-to-your-business/website)
* [Facebook](/integrations-and-connections/connect-the-bot-to-your-business/facebook)
* [WhatsApp](/integrations-and-connections/connect-the-bot-to-your-business/whatsapp)


# Website

This section helps you add the chatbot to your website so it can start answering your customers' questions.

## Steps to Use

**Step 1:** In the **Bots** section, go to the **Launch Bot** tab.

**Step 2:** Copy the code snippet provided for your bot.

<figure><img src="/files/8rjrmwX5hvRW3iCO6Lie" alt=""><figcaption></figcaption></figure>

**Step 3:** Open your website’s main `.html` file, find the `</body>` tag, and paste the code snippet **just before** it. Save the file.

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

**Step 4:** Open your website and give your chatbot a try!

<figure><img src="/files/5Ed5LGo8kAYMnxpLhExm" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/MAZrA3uBjGRFNuDmja2Q" alt="" width="490"><figcaption></figcaption></figure>

## Video Guide

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

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Facebook

This feature lets you connect your chatbot to a Facebook Page so it can answer customer questions directly in Facebook Messenger.

## Steps to Use

**Step 1:** In the **Bots** section, go to the **Platform Integration** tab. Then click the **Facebook** button.

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

**Step 2:** Inside, click the **+ Add page** button.

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

**Step 3:** Log in to your Facebook account.

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

**Step 4:** Give CX Genie permission to access the page where you want to add the bot and click the **Save** button.

<figure><img src="/files/czGIJLey7Y0juR28D6m2" alt="" width="533"><figcaption></figcaption></figure>

**Step 5:** Select the bot you want to use for the Facebook page and click **Submit**.

<figure><img src="/files/yE7748qyZrSuC1gkAEt0" alt="" width="431"><figcaption></figcaption></figure>

If you're not sure which bot to add, click **I’ll do it later**, then click **+ Select Bot** to choose your bot. After that, click **Save changes** to connect the bot to your page.

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

**Step 6:** Go to your Facebook page and give your chatbot a try!

<figure><img src="/files/N1hOFNE0Xkj0s4mDQwJU" alt="" width="308"><figcaption></figcaption></figure>

## Video Guide

{% embed url="<https://www.youtube.com/watch?index=6&list=PLDjYzJq8XiPUySns0_nSDmgolst-R3Q5t&pp=gAQBiAQB&v=TXYTyvs_RO4>" %}

## Quick Tips

* **Each Facebook page** can only be connected to **one bot at a time**.

## Troubleshooting

* **Problem:** Cannot add the bot to a Facebook page.

  **Solution:** Make sure the page is not already connected to another bot. Remove it from the other bot first.
* **Problem:** Trying to connect the bot to a personal Facebook account.

  **Solution:** CX Genie only works with Facebook Pages, not personal accounts. Make sure you are connecting to a Page.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# WhatsApp

This feature lets you connect your chatbot to your WhatsApp Business account.

## Steps to Use

**Step 1:** In the Bot section, go to the **Platform Integration** tab. Then click the **WhatsApp** button.

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

**Step 2:** Click the **+ Add phone number** button. A popup will appear. Don’t enter anything yet — just continue to the next step.

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

<figure><img src="/files/OiZOPc0aXIFrGi3gLozo" alt="" width="561"><figcaption></figcaption></figure>

**Step 3:** Go to the [**Meta Business Suite** website](https://business.facebook.com/) and log in to your business portfolio.

**Step 4:** In the **System Users** tab, choose a user with **Admin** access. Then click **Generate token**.

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

**Step 5:** In the **Select App** step, choose the app you created in Meta Business Suite. Click **Next**.

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

**Step 6:** Select your preferred token expiration. Click **Next**.

*Note: If you choose the 60-day expiration, you’ll need to remove the WhatsApp integration from CX Genie and connect it again for the bot to keep working.*

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

**Step 7:** Assign the following permissions:

* `whatsapp_business_management`
* `whatsapp_business_messaging`

Then click **Generate token**.

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

**Step 8:** If prompted, verify your Meta account. If not, move on to the next step.

<figure><img src="/files/mu3Gmmgzfjk2pzWfzSoI" alt="" width="561"><figcaption></figcaption></figure>

**Step 9:** Copy the generated token and paste it into the **Permanent access token** field in CX Genie.

<figure><img src="/files/7RLDJ2meybJdg6c2ZUmU" alt="" width="561"><figcaption></figcaption></figure>

<figure><img src="/files/xwqFNvnbkld0AhG5QVyv" alt="" width="560"><figcaption></figcaption></figure>

**Step 10:** Go back to Meta Business Suite, go to Accounts > WhatsApp accounts and copy the system user’s ID, and paste it into the **Account ID** field in CX Genie. Once you’re done, click **Add WhatsApp Account** to connect it with CX Genie.

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

<figure><img src="/files/Zzhj2KNXpMTLGdb7m7M2" alt="" width="559"><figcaption></figcaption></figure>

**Step 11:** Select the bot you want to connect to this WhatsApp account. Click **Save changes** to apply the connection.

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

<figure><img src="/files/hni6DDQfhXmv1ddN6ioe" alt="" width="432"><figcaption></figcaption></figure>

**Step 12:** Go chat with your WhatsApp number and give your chatbot a try!

<figure><img src="/files/2q04GzoqBSm6DBSVos5T" alt="" width="464"><figcaption></figcaption></figure>

## Video Guide

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

## Quick Tips

* If you choose **a token that expires in 60 days**, make a note to renew it before it expires to keep the bot active.

## Troubleshooting

* **Problem:** The bot doesn’t respond on WhatsApp.

  **Solution:** Make sure the correct permissions are granted and the token has not expired. Also, check that you’ve connected it to a bot after adding it to CX Genie.
* **Problem:** Error while pasting token or Account ID.

  **Solution:** Double-check that you copied the correct token and WhatsApp account ID from Meta Business Suite.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Platform Integration

The platform Integration feature of CX Genie is designed to cater to a wide array of business needs, enhancing customer engagement and operational efficiency. Here are some key applications:

1. **E-commerce Support**:
   * **WordPress, Shopify, BigCommerce, Magento**: These popular e-commerce platforms are essential for online retailers. By integrating CX Genie, businesses can automate responses to customer inquiries, provide product recommendations, assist with order tracking, and handle common support issues, thereby improving customer satisfaction and reducing the workload on human agents.
2. **Social Media Engagement**:
   * **Facebook, Instagram**: Social media is a critical touchpoint for customer interaction. CX Genie can respond to comments, direct messages, and inquiries on these platforms, ensuring that customers receive timely and accurate information. This continuous engagement helps businesses build stronger relationships with their audience and boosts their online presence.
3. **Team Collaboration**:
   * **Slack, Discord**: In internal business operations, seamless communication is key. Integrating CX Genie with collaboration platforms like Slack and Discord allows for automated task management, meeting scheduling, and answering frequently asked questions, enhancing team productivity and communication.
4. **Community and Customer Interaction**:
   * **Telegram**: For businesses that leverage messaging apps for community building or customer support, integrating CX Genie with Telegram provides an efficient way to manage large volumes of messages, offer support, and keep customers engaged with automated responses.


# WordPress

How your chatbot can connect with WordPress? Let's find out

* Login to the dashboard as admin.&#x20;
* Navigate to Theme File Editor in Appearance.
* Open Theme Functions, inject script to PHP Code.
* <pre class="language-javascript" data-overflow="wrap" data-full-width="false"><code class="lang-javascript">function enqueue_cxgenie_script() {
        wp_enqueue_script('cxgenie-chat', 'https://widget.cxgenie.ai/widget.js', array(), '1.0', true);
        wp_localize_script('cxgenie-chat', 'cxgenie_data', array(
            'aid' => 'd8fe74c3-103b-4c0c-99e4-3a5d7c711750',
            'lang' => '',
        ));
  }
  add_action('wp_enqueue_scripts', 'enqueue_cxgenie_script');
  </code></pre>

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


# Shopify

How your chatbot can connect with Shopify? Let's find out

How to integrate with Shopify:

* Login to the dashboard as admin
* Go to Sales Channel > Online Store
* Click Customize > Edit code

<figure><img src="https://app.cxgenie.ai/images/integration_shopify_1.png" alt=""><figcaption></figcaption></figure>

* Go to theme.liquid and inject script inside body tag
* <pre class="language-javascript" data-overflow="wrap"><code class="lang-javascript">&#x3C;script src="https://widget.cxgenie.ai/widget.js"  data-aid="d8fe74c3-103b-4c0c-99e4-3a5d7c711750">&#x3C;/script>
  </code></pre>

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


# Big Commerce

How your chatbot can connect with Big Commerce? Let's find out

How to integrate with BigCommerceSolution 1:

* Login to the dashboard as admin
* Go to Script Manager, click Create Script

<figure><img src="https://app.cxgenie.ai/images/integration_bige_1_1.png" alt=""><figcaption></figcaption></figure>

* Choose the position of the script and inject the script into the box

<figure><img src="https://app.cxgenie.ai/images/integration_bige_1_2.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://app.cxgenie.ai/images/integration_bige_1_3.png" alt=""><figcaption></figcaption></figure>

Solution 2:

* Login to the dashboard as admin
* Go to Themes, click Edit Theme files

<figure><img src="https://app.cxgenie.ai/images/integration_bige_2_1.png" alt=""><figcaption></figcaption></figure>

* Go to templates \&gp; layout \&gp; base.html, inject script inside body tag
* <pre class="language-javascript" data-overflow="wrap" data-full-width="true"><code class="lang-javascript">&#x3C;script src="https://widget.cxgenie.ai/widget.js"  data-aid="d8fe74c3-103b-4c0c-99e4-3a5d7c711750">&#x3C;/script>
  </code></pre>

<figure><img src="https://app.cxgenie.ai/images/integration_bige_2_2.png" alt=""><figcaption></figcaption></figure>


# Magneto

How your chatbot can connect with WordPress? Let's find out

* Create default.xml at app\code\[Vendor]\[Module]\view\frontend\layout

```
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<link src="[Vendor]_[Module]::js/js_fileName.js"/>
</head>
</page>
```

* Create or place js file at app\code\[Vendor]\[Module]\view\frontend\web\js\[filename].js
* Run setup upgrade and setup:static-content:deploy command


# Discord

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


# Slack

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


# Telegram

{% embed url="<https://youtu.be/il-o4DJDhlg>" %}


# Facebook

* You can select which Facebook page you need to add your chatbot. Then click the "Next" button to go to step 2.

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

* You have to accept all permissions for your chatbot to work properly. Click "Done" button to complete add your Facebook page to your Workspace.

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

* After successfully adding to your WorkSpace, the next step is to add your bot to the Facebook page. You can choose which bot to add to your Facebook page from a list containing all the chatbots you have in the WorkSpace.

<figure><img src="/files/7JZHTNoqbDm6f5nPBiBE" alt=""><figcaption></figcaption></figure>


# Connect with previous chat history for the bot to learn

Help your bot understand behavior of your customers so it can respond more comfortably.

## Connect with Facebook Message to learn 50 conversations

* To access this feature: Platform Integration -> Facebook.
* You will see a list of which pages have been added to your bot.

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

* By clicking "Add page" button on the top-left screen. You can add the chatbot to your Facebook Page.
* There will be a tab pop-up&#x20;

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

* You can select which Facebook page you need to add your chatbot. Then click "Next" button to go the step 2.

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

* You have to accept all permissions for your chatbot to work properly. Click "Done" button to complete add your Facebook page to your Workspace.

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

* After successfully adding to your WorkSpace, the next step is to add your bot to the Facebook page. You can choose which bot you want to add to your Facebook page from a list containing all the chatbots you have in the WorkSpace.

<figure><img src="/files/7N7ygYIdPafOWJKOMpaE" alt=""><figcaption><p>A list contains all chatbot you have.</p></figcaption></figure>

* After adding the bot, it will start to extract and learn data from the first 50 conversations on the page.

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

* A notification will appear in the top-left corner of the screen to show you the progress of this process, which may take up to 5 minutes to complete depending on your conversations.


# Instagram

* If you have previously integrated with 1 Facebook page and 1 account of Instagram, you can click "Continue as \[your Facebook name]". Otherwise, you can click "Edit settings" to optionally choose the Instagram account and the Facebook page you want to add to the chatbot.&#x20;

<figure><img src="/files/1ZWBEdYrcwhnxsFIiHVe" alt=""><figcaption></figcaption></figure>

* You need to accept all the permissions for normal chatbot activities. Then click "done" to complete.

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


# Zalo

* By going to Bots -> Platform Integration -> Zalo. You can now integrate the chatbot to your platform.

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

* Clicking on 'Add Zalo OA' will redirect you to the Zalo website, where you will be prompted to grant permissions. It is necessary to accept all the requested permissions to help the chatbot work properly.

<figure><img src="/files/93TazR18JRoBni9JUM0h" alt=""><figcaption></figcaption></figure>

* You can now choose the chatbot you wish to integrate with your Zalo Official Account.


# WhatsApp

WhatsApp integration allows you to directly and fully control your WhatsApp conversations in real-time by leveraging CXGenie AI functionalities and unlock full potential of your support efforts

We’ve created a step-by-step video guide to help you integrate your chatbot with WhatsApp quickly and easily.

🎬 **Watch the full integration tutorial here:**

{% embed url="<https://drive.google.com/file/d/1R_Ox48rSMUo4-fy3nFVnI_7YnSWj4Qya/view?usp=sharing>" %}

#### What’s covered in the video:

* Connecting your WhatsApp number to the platform
* Setting up the chatbot to respond automatically
* Testing

> 💡 **Note:** All actions are demonstrated clearly in the video — simply follow along step by step!

If you run into any issues, feel free to reach out to our support team. We’re here to help!


# WhatsApp

WhatsApp integration allows you to directly and fully control your WhatsApp conversations in real-time by leveraging CXGenie AI functionalities and unlock full potential of your support efforts

## Prerequisite

You must have prepared these resources before integrating your WhatsApp phone number to CXGenie:

* Permission to access your company's Meta Business Manager
* WhatsApp business profile
* WhatsApp business account which is connected to your Meta Business Portfolio
* Verified WhatsApp business number

***

{% hint style="warning" %}
Currently CXGenie haven't support migrating your WhatsApp Business phone number from other providers yet.
{% endhint %}

## Before you get started <a href="#h_b9965f8ae4" id="h_b9965f8ae4"></a>

Refer to this [link](https://www.facebook.com/business/help/353293243562513) to setup your WhatsApp Business Account. Note that this is not the account used for the WhatsApp Account mobile app or WhatsApp Business mobile app. From now on, the document will assume that you have already had a WhatsApp Account that connected to your business portfolio

***

## Prepare your verified phone number

If you already have a verified WhatsApp phone number then skip this section and start to [#connect-your-whatsapp-phone-number-to-cxgenie](#connect-your-whatsapp-phone-number-to-cxgenie "mention")

Quickly navigate to WhatsApp Manager in your WhatsApp Account, which can be found in your Meta Business Suite or navigate to this [link](https://business.facebook.com/latest/whatsapp_manager)

Choose the `Phone numbers` section in the left side bar of the dashboard to validate if your phone number is verified. A valid phone number for integrating with CXGenie would have status `Connected` like following image

<figure><img src="/files/ltVEE92z0TLDoc879Yzv" alt=""><figcaption><p>WhatsApp phone number</p></figcaption></figure>

If your phone number hadn't shown up in the list, you would need to manully add your phone number by clicking the `Add phone number` button in the top right corner.

***

## Connect your WhatsApp phone number to CXGenie

Follow these steps to integrate your WhatsApp phone number to CXGenie

1. Sign in to CXGenie [dashboard](https://app.cxgenie.ai) and choose your workspace
2. Navigate to `Bots` and choose the a bot you want to integrate with. You can choose a random one and link the right one to your WhatsApp phone number later.

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

3. In the sub sidebar, you will find the `Platform Integration` section. Click on it and navigate to the integration list

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

4. Choose WhatsApp. CXGenie will navigate you to the list of phone numbers integrated to the platform. Click on `Add phone number` button in the right corner of the page

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

5. Authenticate your WhatsApp account and choose the phone number you want to integrate with CXGenie.&#x20;

<figure><img src="/files/wDo3ctjJYLasfxFiaTiE" alt=""><figcaption><p>Authenticate WhatsApp Account</p></figcaption></figure>

6. After the integration is successfully, there will be a popup like follows

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

7. Turn off that popup and select a bot you want to use. Note that you should check if the bot `Auto reply` option is turned on, if not the bot won't reply to user

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

Now, try to use another phone number and send a message to the one connected to CXGenie to test it out.

{% hint style="info" %}
WhatsApp does not allow a Solution Partner to crawl conversation history at the time you integrate your phone number. CXGenie can only get your customer information by the time they send message to you. This is restrictly implemented by WhatsApp.
{% endhint %}


# Lark

This guide explains how to connect your already-created Lark Custom App to CX Genie.

## **1. Before You Start**

Before connecting Lark to CX Genie, make sure you have completed all required setup steps inside the Lark Developer Console:

* **App ID** & **App Secret**
* **Added the correct Redirect URL**
* **Configured Callback Settings**&#x20;
* **Set up Permissions & Scopes** required for authentication and future actions

You can view the detailed setup guide for these Lark configurations **here**.

Once all the above are ready, you can proceed to connect Lark to CX Genie in the next section.

## **2. Connect Lark to CX Genie**

### **2.1 Open Platform Integration**

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

1. Log in to CX Genie.
2. Navigate to:\
   **Bots → Platform Integration**
3. In the platform list, locate and select **Lark**.

***

### **2.2 Enter App ID and App Secret**

A connection window will appear.

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

Fill in:

* **App ID**
* **App Secret**

Click **Next** to continue.

***

### **2.3 Authorize the Integration in Lark**

You will be redirected to a Lark authorization screen.

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

Click **Authorize** to grant the app required access, including:

* User credential information
* Offline data access
* View / Comment / Edit / Manage Base
* Any additional permissions selected during app creation

After granting access, Lark will redirect you back to CX Genie automatically.

***

### **2.4 Confirm Integration Success**

If the connection is successful, CX Genie will display a confirmation popup:

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

**Status: Connected**

You will see the following options:

* **Disconnect** – remove the Lark integration
* **Reconnect** – refresh or reauthorize the connection
* **Setup training data** – begin syncing documents or bases for RAG Knowledge Base

This means the Lark workspace is now officially linked to your CX Genie bot.

***

## **3. (Optional) Post-Integration Setup**

### **3.1 Sync Lark Data for Training**

Click **Setup training data** to connect Lark Bases or relevant documents to the CX Genie Knowledge Base (for RAG / Q\&A Bot).

***

### **3.2 Test Message Routing**

Send a message from Lark (chat or base activity depending on your setup).\
Confirm that:

* The message appears in CX Genie
* The bot can respond if configured
* Tickets or notifications behave as expected

***

### **3.3 Configure Automation (Optional)**

After integration, you may enhance your workflows by configuring:

* Auto-replies
* Routing rules
* Ticket auto-creation
* Tag assignment
* Escalation logic


# Lark App Setup

This document provides step-by-step instructions for creating a Lark Custom App and configuring all required settings (Redirect URL, Permissions, Scopes, Events & Callbacks).

## **1. Create a Lark Custom App**

### **1.1 Open Lark Developer Console**

1. Go to [**https://open.larksuite.com**](https://open.larksuite.com)
2. Select **Developer Console**
3. Under **Custom Apps**, click **Create Custom App**

***

### **1.2 Fill in App Information**

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

In the “Create custom app” window:

* **Name:** e.g., *CXG Bot*
* **Description:**

  > This app is used to authenticate our Lark workspace with CX Genie. It allows the bot to receive messages, send automated replies, and support workflow automation.
* **Icon:** Select from built-in icons or upload your own
* Click **Create**

*(image reference: Create custom app)*

***

## **2. Retrieve App ID & App Secret**

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

After the app is created:

1. Open the app in Developer Console
2. Go to **Credentials & Basic Info**
3. Copy:
   * **App ID**
   * **App Secret**

You will need these values in CX Genie.

***

## **3. Add Redirect URL**

CX Genie requires the Lark app to include a specific redirect URL for OAuth.

### **3.1 Open Security Settings**

Navigate to:

**Security Settings → Redirect URLs**

### **3.2 Add Redirect URL**

Paste the following URL:

```
https://app.cxgenie.ai/integrations/lark
```

Click **Add** and **Publish Changes**.

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

***

## **4. Configure Permissions & Scopes**

Your Lark App must include several required OAuth scopes and message permissions.

### **4.1 Open Permissions & Scopes**

Go to:

**Permissions & Scopes → User Permissions / Tenant Permissions**

### **4.2 Required Permissions**

The following scopes must be added (examples below; full list depends on your use case):

* `offline_access`
* `im:message`
* `im:message:send_as_bot`
* `im:chat:read`
* `docs:document.content:read`
* `contact:user.base:readonly`
* `wiki:node:read`

These scopes are also included in your uploaded export file:&#x20;

{% file src="/files/x0vEszR5zeclvtCHeufp" %}

**Note:**\
Some scopes require **Admin Approval** before they become active.

Click **Save** and **Publish**.

***

## **5. Configure Events**

CX Genie requires message events to be pushed to the webhook.

### **5.1 Open Events & Callbacks**

Navigate to:

**Events & Callbacks → Event Configuration**

### **5.2 Request URL (Webhook)**

Set the request URL to:

```
https://api.cxgenie.ai/api/v1/lark/webhook
```

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

***

## **6. Configure Callback Settings**

Callback settings are used for Lark interactive components (e.g., card buttons).

### **6.1 Open Callback Configuration**

Navigate to:

**Events & Callbacks → Callback Configuration**

### **6.2 Add Callback URL**

Use the same URL:

```
https://api.cxgenie.ai/api/v1/lark/webhook
```

<figure><img src="/files/7bBnS9yjTL3RZBAvjm6z" alt=""><figcaption></figcaption></figure>

***

## **7. Publish the App**

To activate all configurations:

1. Go to **Version Management & Release**
2. Click **Create Version** (if needed)
3. Submit for release
4. Admin must approve the app if required

Once published, your Lark App is ready for use.


# Troubleshooting

This guide provides solutions for common issues that may occur when integrating Lark with CX Genie. Use this checklist when the connection fails, throws errors, or messages do not sync correctly.

### **1. Error 20029 – Invalid redirect\_uri**

**Error Message:**

> **Error Code: 20029 – The requested redirect\_uri is invalid.**

**Cause:**\
The Redirect URL configured in the Lark Developer Console does not match the URL required by CX Genie.

**Solution:**

1. Go to **Lark Developer Console → Security Settings → Redirect URLs**
2. Add the following URL exactly:

```
https://app.cxgenie.ai/integrations/lark
```

3. Click **Add**
4. Publish your changes
5. Retry the integration from CX Genie

***

### **2. Error 20027 – Missing offline\_access Permission**

**Error Message:**

> **Error Code: 20027 – This application does not request the offline\_access permission. Authorization cannot proceed.**

**Cause:**\
The app does not include the `offline_access` scope, which is required during OAuth authorization.

**Solution:**

1. Go to **Permissions & Scopes**
2. Add the following permission:

* **offline\_access**

3. Publish your changes
4. Try the integration again

***

### **3. App is “Pending Release” or Not Published**

**Symptoms:**

* Integration constantly fails
* Lark shows permission-related errors
* Changes in the Developer Console do not take effect

**Cause:**\
Your app configuration was saved but **not published**, so the latest settings are not active.

**Solution:**

1. Go to **Version Management & Release**
2. Click **Create Version**
3. Submit the version
4. Ask your organization admin to **approve and publish**
5. Retry the integration

***

### **4. Callback or Webhook Not Working**

#### **Symptoms**

* Messages do not appear in CX Genie
* Bots do not respond
* “Test Callback” fails inside Lark Developer Console

#### **Causes & Solutions**

**a. Incorrect Callback URL**

Make sure the webhook URL is correct under both of these sections:

* **Event Configuration**
* **Callback Configuration**

**Correct URL:**

```
https://api.cxgenie.ai/api/v1/lark/webhook
```

**b. Required events are not subscribed**

Go to **Events & Callbacks → Event Configuration**, then add:

* `im.message.receive_v1`
* `im.message.updated_v1`
* `card.action.trigger`

**c. Missing permissions for messages**

Under **Permissions & Scopes**, ensure these permissions are added:

* Obtain private messages sent to the bot
* Obtain group messages mentioning the bot
* Obtain all messages in the associated group chats

Publish after updating.

***

### **5. Authorization Page Errors or Blank Screen**

**Possible Causes:**

* Logged-in user does not have admin permissions
* Browser caching outdated tokens
* Redirect URL mismatch
* Missing required permissions

**Solutions:**

* Switch to a **Lark admin account**
* Logout and login again
* Clear browser cache
* Re-open integration flow from CX Genie
* Re-check Redirect URL under **Security Settings**

***

### **6. Integration “Connected,” but No Messages Sync to CX Genie**

#### **Checklist:**

✔ Webhook URL is correct\
✔ Events are correctly added\
✔ Required permissions and scopes are active\
✔ App is published\
✔ Bot is added to the Lark group

#### **Group Message Handling**

To receive group messages in CX Genie:

1. Open the target Lark group
2. Add the custom app’s bot into the group
3. Ensure these scopes are enabled:

* Read group messages
* Detect @mentions
* Access full group chat messages (if needed)

***

### **7. “Invalid App ID / Secret” Error**

**Cause:**\
Incorrect values copied, missing characters, or App Secret was regenerated.

**Solution:**

1. Go to **Credentials & Basic Info**
2. Copy the **App ID** and **App Secret** again
3. Paste them into CX Genie
4. If the App Secret was regenerated, click **Reconnect** in CX Genie

***

### **8. Bot Cannot Join a Lark Group**

#### **Symptoms:**

* Group messages never sync
* “No permission” errors in logs
* Bot cannot be invited to a group

#### **Solution:**

1. Go to the group chat in Lark
2. Add the bot manually
3. Ensure message-related permissions are enabled

***


# Prompt and Models

This section will let you choose the prompt and models for your chatbot.

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

* You can use 1 of 2 selections below:
  * Use bot default prompt
  * Use custom prompt
* You can choose the AI API Key have input in [Settings](/settings/general)
* If you want to use a custom prompt, ensure you have enough knowledge about the AI machine. It doesn't work solely based on the text you input but also requires coding.&#x20;


# Webhook

This section will let you set up the webhook base on your website

Webhook is a method by which an application or website can send data or notifications to a specific URL (web address) when a certain event happens.

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

* You need to copy your webhook url so that the bot can get the data from your storage.
* You can choose&#x20;
  * Bot receives a new message.
  * Bot does not have an answer for the message.
* Get more advanced, meet us at <hello@cxgenie.ai>.


# Domain

The Domain Settings feature in CX Genie allows you to personalize the chatbot’s web link and chat widget by connecting them to your own custom domain. This ensures that customers interact with your bo

***

### Chat Web

The **Chat Web** option lets you set up a custom domain for your chatbot’s standalone web page.

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

#### Steps to Configure:

1. Go to **Bots → Domain → Chat Web**.
2. Copy the provided chatbot link (default `https://chat.cxgenie.ai?...`).
3. Enter your **Custom Domain** (e.g., `chat.example.com`).
4. Update your DNS settings:
   * Access your DNS provider’s panel.
   * Create a **CNAME** record:
     * **Name**: `example`
     * **Target**: `chat.cxgenie.ai`
   * Example: `chat.example.com → chat.cxgenie.ai`
5. If your DNS panel has proxy enabled, disable it and set to **DNS only** until verification is complete.
6. Save changes and wait 30 minutes to 24 hours for propagation.
7. (Optional) Customize appearance:
   * Upload a favicon (`.png`, 48x48px recommended).
   * Add **Meta Title** and **Meta Description** to improve branding and SEO.

***

### Chat Widget

The **Chat Widget** option allows embedding the chatbot on your website with a custom domain.

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

#### Steps to Configure:

1. Go to **Bots → Domain → Chat Widget**.
2. Copy the script snippet provided (e.g., `<script src="https://widget.cxgenie.ai/widget.js" ...>`).
3. Enter your **Custom Domain** (e.g., `chat-widget.example.com`).
4. Update your DNS settings:
   * Create a **CNAME** record:
     * **Name**: `example`
     * **Target**: `widget.cxgenie.ai`
   * Example: `chat-widget.example.com → widget.cxgenie.ai`
5. Disable proxy (set to **DNS only**) until verification is complete.
6. Save changes and allow 30 minutes to 24 hours for changes to apply.

***

### Notes & Tips

* Ensure your domain is active and properly managed in your DNS provider.
* Avoid using proxy (e.g., Cloudflare orange cloud) until setup is completed.
* Use branded subdomains (`chat.brand.com` / `support.brand.com`) for a professional experience.
* Favicon & Meta title customization is recommended for better UX.


# Collect Your Customer Information

This feature lets your chatbot collect customer information like name, email, and phone number when the chat starts on your website.

## Steps to Use

### Collect Customer Info

**Step 1:** In the **Bots** section, go to the **Settings** tab. Scroll to the bottom and enable the **Collect information** option.

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

**Step 2:** Choose **Basic information** to use the default template (Name, Email, Phone number). You can also adjust the default zip code in phone number field to match your country’s format.

*Note: Choosing **email** or **phone number** in your selection is required.*

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

**Step 3:** Click **Save changes** at the top right corner to apply your settings. Now, every customer who starts a chat with the bot will be asked to enter their information before the conversation begins.

<figure><img src="/files/YBzgLroXNqnY53dAChc7" alt="" width="375"><figcaption></figcaption></figure>

***

### Review Customer Info

{% hint style="warning" %}
*Note: Make sure your customer has **started a conversation** and **entered their information** in the chat before checking this section.*
{% endhint %}

Go to the **Contact** section in the left sidebar.

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

### Structure Overview

1. **Search Box:**

   Use this to quickly find a specific contact.
2. **Multiple Select Boxes (🔲):**

   Use the checkboxes on the left to select and delete multiple contacts at once.
3. **Contact Entries:**

   Click on any contact to view their details and conversation history.
4. **Bin Icon (🗑️):**

   Click this to delete a contact. This will also remove their conversation from the system.

## Video Guide

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

## Quick Tips

* The Collect Customer Info feature only works when your bot is added to your **website**. It will **not work on third-party platforms**, but CX Genie will **automatically collect the info** for you on those platforms.

## Troubleshooting

* **Problem:** The information form does not show up when the chat starts.

  **Solution:** Make sure the bot is connected to your **website**, and the **Collect information** feature is enabled.

**Need help?** Join our [Discord community](https://discord.gg/SsYEF8PW65) or email us at <hello@cxgenie.ai>.


# Live Chat Interface

The Live Chat panel in CX Genie provides agents with a centralized place to manage real-time conversations with customers. The interface is divided into four key areas:

## Overview

The Live Chat interface is designed for **efficient agent–customer communication**. It enables agents to monitor conversations, reply in real time with rich message options, and manage workflow settings (auto-reply, open/close status, tagging). With all tools integrated into one screen, support teams can **handle queries faster and deliver personalized service**.

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

## 1. **Conversation History Panel** (Left Sidebar)&#x20;

This section displays all ongoing and past conversations.

* **All**: Shows all conversations.
* **In Queue**: Displays waiting chats.
* **Your Inbox**: Chats assigned to you.
* **Mentions**: Messages where you were tagged.
* **Tickets**: Integrated support tickets  (Add-on feature).

*Learn more in the full guide* [***Conversation History***](/live-chat-and-support/live-chat-interface/conversation-history)

***

## 2. **Message Input Panel** (Bottom)

This is where agents type replies to customers.

* Supports **text, rich formatting, emojis, and file attachments**.
* Includes quick **AI reply suggestions**.
* **Action menu** available for advanced functions.

*Learn more in the full guide* [***Message Input***](/live-chat-and-support/live-chat-interface/message-input)

***

## 3. **Conversation Control Bar** (Top Right)

This panel provides controls and conversation settings:

* **Auto reply toggle** (ON/OFF).
* **Conversation status** (Open/Closed).
* **Conversation info & details**.
* **Star/favorite** a conversation for quick access.

*Learn more in the full guide* [***Conversation Control***](/live-chat-and-support/live-chat-interface/conversation-control-bar)


# Conversation History

### Overview

The **Conversation History** panel in CX Genie allows agents to manage and track all customer conversations across multiple channels (Messenger, Instagram, Zalo, WhatsApp, Website, Telegram, LINE, etc.). It provides powerful filters, sorting options, and views so agents can focus on the right conversations at the right time.

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

***

### Views

You can switch between different views on the left sidebar:

* **All** → Shows all conversations regardless of status or assignment.
* **In queue** → Displays conversations waiting to be assigned or handled.
* **Your inbox** → Lists only the conversations assigned to you.
* **Mentions** → Conversations where you (the agent) have been specifically mentioned.
* **Community → Group** → Group chats, if enabled.
* **Tickets (Add-on)** → This section belongs to the Ticketing add-on, where unresolved cases can be escalated and tracked separately.

***

### Filters & Sorting

At the top of the conversation list, you’ll find three key controls:

#### 1. **Channel Selector**

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

Dropdown filter to select which channel(s) you want to view:

* **All channels**
* **Messenger, Instagram, Zalo, WhatsApp, Website, Telegram, LINE**

#### 2. **Search by Name or Email**

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

Quickly find a conversation by typing the customer’s name or email address.

#### 3. **Sorting Options**

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

You can sort conversations by:

* Latest
* Oldest
* High Priority
* Started last
* Started first
* Waiting longest

#### 4. **Advanced Filters**

<figure><img src="/files/2xaVsu2JNJU0syB2sVNG" alt=""><figcaption></figcaption></figure>

Click **Filters** to refine conversations further:

* **Channel** (Messenger, Website, etc.)
* **Conversation status** (Open / Closed)
* **Categories** (Custom labels)
* **Mentions**
* **Conversation start date**
* **Bots** (by bot name)
* **Reply status** (Unread only / Read only / Replied only)
* **Tags** (custom tags attached to conversations)

***

### Conversation List

In the middle panel, conversations are displayed with:

* **Customer Name / Anonymous ID**
* **Preview of the latest message**
* **Channel icon** (Messenger, Website, etc.)
* **Conversation status indicator**

***

### Conversation Details

When you click on a conversation, the right panel shows the **full chat history**, including:

* Messages from the customer and bot
* Agent replies
* Timestamps for each message
* Conversation controls (auto-reply toggle, open/close status, conversation info)

***

### Example Use Case

* **Support team**: Filter by *Unread only + Website* to ensure no live chat inquiries are missed.
* **Sales team**: Use *Tags + High Priority* to focus on hot leads first.
* **Managers**: View *All → Waiting longest* to identify conversations that need escalation.


# Message Input

The Message Input area lets agents compose, format, and send messages—and choose how the message is posted in the thread.

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

***

### Reply modes

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

Use the selector at the far left of the composer to choose a mode:

* **Reply**\
  Sends a public message to the customer on the active channel (Messenger, Website, etc.). Appears in the customer’s chat and counts as an agent reply.
* **Private note**\
  Adds an internal-only note to the conversation. Visible to teammates in CX Genie, **not** sent to the customer. Great for handoffs or internal context.\
  Tip: You can @mention teammates in private notes to notify them.

### Formatting tools

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

* **Bold**, **Italic**, **Underline**, **Strikethrough** (Ctrl+Shift+X)
* **Insert link**
* **Numbered list** / **Bulleted list**

Use these to keep replies clear and structured.

### Additional tools

<figure><img src="/files/6OJx3QWTQbKkFx3Ywa4S" alt=""><figcaption></figcaption></figure>

* **Shortcuts:** open the shortcut library to insert saved replies or templates (and create new ones).
* **Attach file (paperclip):** upload documents, images, or other files.
* **Emoji picker:** insert emojis if your brand style allows.

### Sending options

* **Send:** dispatch the composed text.
* **Voice message (microphone):** record and send an audio reply instead of typing.

***

### Notes

* Use formatting options to keep replies clear and professional.
* File attachments should follow CXG guidelines on size and format.
* Voice messages are useful for quick responses but may not be suitable for all customer interactions.


# Conversation Control Bar

## Overview

The **Conversation Control Bar** provides quick access to essential tools for managing live chat interactions. It allows agents to automate responses, search through past messages, escalate issues into tickets, close conversations, and view customer details.

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

***

### 1. Auto-Reply

* **Function**: When enabled, the bot automatically replies to the customer’s messages.
* **Recommendation**: Keep this off if your chatbot is producing incorrect or unwanted answers, so agents can take over directly.

***

### 2. Search

* **Function**: Use the search box to quickly find specific keywords or messages within the conversation history.
* **Use case**: Helps agents review previous interactions without scrolling manually.

***

### 3. Create Ticket

Convert a chat into a **ticket** for tracking and escalation.

<figure><img src="/files/9KVcMGom79wXSgnQvNH4" alt="" width="375"><figcaption></figcaption></figure>

* **Name**: Enter the title of the issue (e.g., “Payment failed” or “Login issue”).
* **Category**: Classify the ticket into a pre-created list. *(See \[Ticket Settings] for how to create categories.)*
* **Priority**: Choose from **High**, **Medium**, or **Low**.
* **Assignee**: Assign the ticket to a specific staff member.
* **Status**: Options include **Open**, **In Progress**, **Solved**, or **Closed**.
* **Reference**: For full setup, see the **Ticket article**.

***

### 4. Close Conversation

* **Function**: Marks the conversation as closed once support is completed.
* **Behavior**: If the customer sends a new message, the conversation will automatically reopen.

***

### 5. Customer’s Information Panel

Displays detailed information about the customer.<br>

<figure><img src="/files/1HPoI3IaCpLk6rGxjUPB" alt=""><figcaption></figcaption></figure>

* **Tags**: Apply pre-created tags to classify or segment customers. *(See \[Tags] for details.)*
* **Notes**: Add internal notes for teammates to view. Notes are not visible to the customer.
* **Assigned Agent**: Shows who is currently in charge of the conversation.

***

#### Quick Summary

The Conversation Control Bar gives agents:

* Automation toggle (Auto-reply)
* Conversation search
* Ticket creation & tracking
* Status control (Close conversation)
* Customer information & classification tools


# List of Conversations

This area will help you to manage your conversation, you can use some tools available to sort the list.

## Select channels

This is a filter you can choose to decide which conversations in Messenger or Website form will appear.

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

## Search by name or email

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

This box will let you find your customer more quickly by using email/name information.

## Filter

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

There will be a list including 2 selections to filter your conversations: Latest first or Unread first by clicking below the search box.

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

* You can also select a category to customize your conversation preferences:
  * **Facebook Messenger**: This filter populates conversations from the Facebook page you've linked to your WorkSpace.
  * **Website**: This filter displays conversations from the website integrated with the chatbot.
  * **Conversation Status**: This filter allows you to view conversations based on their status. Even hidden conversations will appear under the "Closed" category.

&#x20;




---

[Next Page](/llms-full.txt/1)

