> ## Documentation Index
> Fetch the complete documentation index at: https://assembly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Client AI assistant

> Give clients an assistant that answers from your knowledge base and their own account, and hands off to your team when it can't.

> [!NOTE]
>
> **Template.** You can change anything about this app by describing it in its build chat. See [App templates](https://assembly.com/docs/building-new-apps/app-templates.md).

Give every client an assistant in your client experience that answers their questions from the materials you add and from their own account. When it can't answer, it says so and tells your team, so you can reply and add the missing answer to its knowledge.

**Category:** AI assistants · **Used by:** your team and your clients · **Works with:** CRM, Messages, Files, Tasks, Contracts, Forms, Billing

## Features

* A chat in your client experience, with suggested questions and each client's past conversations
* Answers from one shared knowledge base that you build from files, web pages, and written text
* Answers about the client's own tasks, contracts, invoices, files, messages, forms, and the details on file for them and their company
* A review queue for your team, with counts of **Unanswered**, **Unhelpful**, and **Answered** questions
* **Add to knowledge**: turn a question the assistant missed into a new knowledge material
* A preview that shows the exact answer a chosen client would get
* A name and icon for the assistant, and an optional **Message my team** button in the chat
* A view in each client's profile showing that client's conversations

## How to use it

### For your team

> [accordion] Build the knowledge base
>
> 1. Open the app, go to the **Knowledge** tab and click **Add material**.
> 2. Choose how to add it:
>    * **Upload file**: enter a **Title** and add a PDF, Word (.docx), text, Markdown, or CSV file up to 10 MB. Click **Upload**.
>    * **Import URL**: paste a **URL**. The **Title** is optional and defaults to the page title. Click **Import**.
>    * **Write text**: enter a **Title** and the **Content**, and optionally a **Label**. Click **Save**.
> 3. The material is **Active** right away and the assistant uses it for every client.
>
> The assistant reads the text of each material, up to its first 50,000 characters. Pages that load their content with JavaScript can't be imported, so use **Write text** for those. Only admins can add or change materials. Staff can see the list.

> [accordion] Manage materials
>
> Use the filter above the list to show **Active**, **Archived**, or **All** materials. From a material's actions you can **View** it, **Edit** written text or an imported page, **Rename** it, **Replace file**, **Archive** it so the assistant stops using it, **Restore** an archived one, or **Delete** it.

> [accordion] Review what needs attention
>
> 1. Go to the **Conversations** tab. **Needs attention** shows a card for **Unanswered**, **Unhelpful**, and **Answered** questions. Click a card to list those questions.
> 2. Use **Search questions…** or filter by client to narrow the list, then open a question to read the exchange.
> 3. For a question the assistant couldn't answer, or one the client marked unhelpful:
>    * **Add to knowledge** opens a new written material with the question as its title. Write the answer and save it. The question leaves the queue.
>    * **Message client** opens a message channel with that client.
>    * **Ignore** removes it from the queue.
> 4. For an answered question, click **Mark as read**, or **Mark as incorrect** to move it to **Unhelpful**.

> [accordion] Browse all conversations
>
> Under **All conversations**, search by title, filter by date (**Last 7 days**, **Last 30 days**) or by client, and open any conversation. Archive a conversation from its actions to clear it from the list. It comes back on its own if the client writes in it again.

> [accordion] Preview answers as a client
>
> On the **Knowledge** tab, click **Preview**, pick a client under **Viewing as**, and ask a question. You get the same answer that client would get, from their data and the current knowledge base. Nothing you ask in the preview is saved or sent.

> [accordion] Name the assistant and set the chat options
>
> On the **Knowledge** tab, click the settings button to open **Bot settings**. Set a **Bot name** and a **Bot icon** (an emoji, or an image up to 512 KB), and choose whether to **Show "Message my team" in the chat**. Only admins can change these.

> [accordion] See a client's conversations in their profile
>
> Open a client in your CRM and go to this app's tab. **Conversations** shows only that client's questions. **Knowledge** shows the same shared knowledge base as the app.

### For your clients

> [accordion] Ask a question
>
> Clients open the app to **How can we help?**, with a few suggested questions. They type in **Ask a question...** and get an answer in a few seconds. Answers about their records name each item and say where to find it in your client experience.

> [accordion] Rate an answer or reach the team
>
> Under each answer, clients can give a thumbs up or thumbs down. If **Message my team** is turned on and the client can see your Messages app, they can click it to message your team directly.

> [accordion] Go back to past questions
>
> The history button opens **Past questions**. A past conversation opens read only. Clients click **Ask a follow-up** to continue it. After 30 minutes away, the chat starts fresh and the earlier conversation stays in **Past questions**.

The assistant answers only from your knowledge base and the client's own data. It doesn't answer general questions from outside knowledge. It only reads apps the client can see, and only for the company they're signed in under. It never mentions apps a client can't see, other clients' records, or your internal notes. When a question is about something it can't see, it says it can't answer and points the client to your team.

## Notifications

* **When the assistant can't answer**, your team members who have access to that client get an **Unanswered question** email and in-product notification, with the question.
* **When it can't answer three times in a row**, it tells the client their team was notified, and your team gets a **Request to speak with the team** notification instead.
* **When a client gives an answer a thumbs down**, your team gets an **Answer marked unhelpful** notification with the question and the answer.

Clients aren't notified by this app. To change who's notified or what the messages say, see [Configuring notifications](https://assembly.com/docs/building-new-apps/configuring-notifications.md).

## Set it up

**1. Add the template**

Click **Add App** in the Dashboard sidebar. Find **Client AI assistant** under **Start from a template**, or scroll down to **Browse all apps** and pick the **AI assistants** filter.

**2. Try it as your team**

The app lands in your sidebar as a draft. Add a few knowledge materials, such as your FAQ or onboarding guide, then click **Preview** and ask questions as your test client.

**3. Check the client side**

In the builder's **Client view**, pick your test client, ask a question, and give one answer a thumbs down. Check that it shows up under **Needs attention**.

**4. Publish it**

Publish the app with visibility set to **Hidden from all people**, or on plans with custom visibility, limited to your test client. Sign in as your test client to try it in the real client experience, then make it visible to the clients who should use it. See [Launching apps](https://assembly.com/docs/building-new-apps/launching-apps.md).

## Change it with the app builder

This app is a template, so you can change anything about it by describing what you want.

**1. Open the build chat**

Open **Client AI assistant** from your Dashboard sidebar, click its name at the top, then click **Switch to builder**.

**2. Describe the change**

Write what you want the way you'd ask a teammate. Say who it's for and where it shows up, such as your team's review queue or the client's chat.

**3. Check the preview**

The app builder makes the change and updates the preview. Switch between **Team view** and **Client view** to check both sides, and pick a client to see it as them.

**4. Publish**

Click **Publish** when you're happy. Until you do, your clients keep seeing the last published version.

Changes people often make to this template:

* "Let me add knowledge materials that only one client can see"
* "Let clients attach a file or a screenshot to their question"
* "Hand off to the team after two unanswered questions instead of three"
* "Show which knowledge material each answer came from"
* "Change the suggested questions on the welcome screen"
* "Let staff add and edit knowledge materials, not just admins"

See [Iterating on apps](https://assembly.com/docs/building-new-apps/iterating-on-apps.md) for how to describe changes well and how to go back to an earlier version.

To rename the app, or change who can see it and how it notifies people, click its name at the top and choose **Rename app** or **Manage app**.

## Related

> [card] [Helpdesk](https://assembly.com/docs/apps/helpdesk.md)
>
> Take client support requests and track them to resolution

> [card] [Internal wiki](https://assembly.com/docs/apps/internal-wiki.md)
>
> Keep your team's processes and answers in one place

[View this template on assembly.com](https://assembly.com/templates/client-ai-assistant)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.