> ## 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 ticketing system

> Collect client requests in a shared team inbox, reply or leave internal notes, and let clients track every request from your client experience.

> [!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 clients one place to send requests, and give your team one inbox to work them. Each request is sorted into a shared inbox, picked up by a teammate, and moved from **New** to **In progress** to **Resolved**. Clients see the conversation and the status, but never your internal notes.

**Category:** Support · **Used by:** your team and your clients · **Works with:** CRM

## Features

* Shared inboxes, such as **General**, **Billing**, **Technical**, **Account**, and **Feedback**, that hold new requests until someone picks them up
* Three statuses: **New**, **In progress**, and **Resolved**
* A folder rail with live counts: **My open**, **Subscribed**, **Snoozed**, **Resolved**, **Archive**, plus each shared inbox and each teammate under **Assigned to**
* Replies to the client and internal notes in the same thread, with @mentions, file attachments, and emoji
* Reusable reply templates, and an AI draft of the reply based on the conversation
* Snooze, subscribe, assign, archive, and delete on every request
* Support hours with an automatic reply for requests that arrive outside them
* Requests opened by your team on a client's behalf, as well as requests clients submit themselves
* A client's requests on their CRM profile and their company's profile

## How to use it

### For your team

> [accordion] Work the inbox
>
> The app opens on **My open**: unresolved requests assigned to you. New requests land in their shared inbox under **Shared inboxes**, which only lists unassigned, unresolved requests, so it works as the queue of unclaimed work. Use **Assigned to** to see what each teammate is holding, or **All teammates** for everything unresolved. In **My open**, use **Sort by** to order requests by date or status. Use **Search requests** to find a request by its details.

> [accordion] Reply to a client
>
> 1. Open the request.
> 2. In the composer, choose **Reply**.
> 3. Write your message. Optionally click **Insert template** to start from a saved template, or **Draft with AI** to draft a reply from the conversation, with optional **Writing guidance** such as "keep it brief".
> 4. Attach files if needed, then send. **Cmd+Enter** also sends.
>
> Replying to a **New** request moves it to **In progress**. Replying to an unassigned request assigns it to you, and replying subscribes you to the request.

> [accordion] Leave an internal note
>
> In the composer, choose **Internal note** and write your note. Type @ to mention a teammate. They're notified and subscribed to the request. Clients never see internal notes. You can edit or delete your own notes from the note's options.

> [accordion] Assign, change status, or move a request
>
> Open the request and use its header to:
>
> * Assign it to a teammate, or click **Assign to me**. The new assignee is notified.
> * Change its status to **New**, **In progress**, or **Resolved**. The client is notified of the change.
> * Click the inbox name to move the request to a different shared inbox.

> [accordion] Snooze or subscribe
>
> Click **Snooze** and choose **1 hour**, **4 hours**, **Tomorrow morning**, or **Next week**. The request leaves your **My open** and **Subscribed** folders and waits in **Snoozed** until then. You can only snooze requests that are assigned to you or that you're subscribed to. Snoozing only affects your own view.
>
> Click **Subscribe to updates** to follow a request you're not assigned to. It shows in your **Subscribed** folder.

> [accordion] Open a request for a client
>
> 1. Click **New request**.
> 2. Choose the client, an **Inbox**, and optionally an **Assignee**.
> 3. Enter a **Subject** and a **First message**. Send it as a message to the client, or start with an internal note.
> 4. Create the request. Its status is set to **New**, and the client is notified.

> [accordion] Archive or delete a request
>
> Click **Archive** to move a request to the **Archive** folder, and **Unarchive** to bring it back. Clients can still read an archived request but can't reply to it. Click **Delete ticket** to remove a request and its whole conversation for good.

> [accordion] Manage inboxes, templates, and support hours
>
> Admins can click **Add inbox** next to **Shared inboxes** to add one, or choose **Manage inboxes** to rename, recolor, reorder, or delete them. Clients pick from the same list when they submit a request.
>
> Click **Settings** in the app header to manage reply templates and support hours. Anyone on your team can add, edit, or delete templates. Under **Support hours**, admins can **Enable support hours**, set the **Days**, **Start**, **End**, and **Timezone**, and turn on an **Auto-reply** with your own message.

> [accordion] See a client's requests in the CRM
>
> A client's profile, and their company's profile, list their requests. You can archive or restore requests from there.

### For your clients

> [accordion] Submit a request
>
> 1. Click **New request**.
> 2. Choose a **Category**, then enter a **Subject** and a **Description**.
> 3. Optionally drop in **Attachments**.
> 4. Submit it. The request shows as **New** and your team is notified.

> [accordion] Track and reply
>
> Clients see their requests under **Open**, **Resolved**, and **All**, and can sort them by newest, oldest, or recently updated. A **New response** badge marks requests your team has replied to. Opening a request shows the conversation and its attachments, and the client can reply from there. Replying to a **Resolved** request reopens it as **New**.

Clients only see their own requests, and only the replies, never the internal notes. Teammates with limited client access only see, and are only notified about, requests from companies they have access to.

## Notifications

* **When a client submits a request**, everyone on your team with access to that client gets an email and an in-product notification.
* **When a client replies**, the request's assignee and any teammates who have already posted on it are notified.
* **When you reply or change the status**, the client gets an email and an in-product notification.
* **When you open a request for a client**, the client is notified.
* **When a request is assigned**, the new assignee is notified, unless they assigned it to themselves.
* **When you're @mentioned** in a reply or a note, you're notified.
* **Outside support hours**, if the auto-reply is on, the client gets your auto-reply message in the thread when they submit or reply to a request.

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 ticketing system** under **Start from a template**, or scroll down to **Browse all apps** and pick the **Support** filter.

**2. Try it as your team**

The app lands in your sidebar as a draft. Click **New request** and open a test request for your test client.

**3. Check the client side**

In the builder's **Client view**, pick your test client, reply to the request, and submit a new one.

**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 ticketing system** 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 inbox or the client's request page.

**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:

* "Add a priority field and flag urgent requests to the team"
* "Add a Waiting on client status between In progress and Resolved"
* "Automatically resolve requests when the client hasn't replied in seven days"
* "Notify every subscriber when a client replies, not just the assignee"
* "Let clients rate how their request was handled once it's resolved"
* "Route Billing requests to a specific teammate automatically"

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)
>
> Publish help articles and resources for clients

> [card] [Client AI assistant](https://assembly.com/docs/apps/client-ai-assistant.md)
>
> Answer client questions with AI

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


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