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

# Service desk

> Connect client accounts to one central board, so work items and comments move both ways

A **service desk** connects other QuivaWorks accounts to one central board. Each client works in a Space of their own, and tickets they raise appear on your central board, tagged with the client. When your team changes a ticket or replies, the client sees it on their side.

It is built on **linked accounts**, the way two QuivaWorks accounts are paired. Each client you connect is one link, and every link keeps its own history.

## How it fits together

| Side | Who | What they see |
| - | - | - |
| Central desk | You | One board with a ticket from every connected client. Each synced card carries the client's name, and a **Client** filter on the toolbar lists each connected account. |
| Client desk | Each client | Their own Space, with only their tickets. They cannot see the central Space or any other client's tickets. |

What stays in sync, in both directions:

| Syncs | Does not sync |
| - | - |
| Title, description, status, priority, due date, archived | Assignees, tags, attachments, folder, metadata |
| Comments from either side | Internal comments, which never leave the account that wrote them |

A ticket's **status** crosses by *role*, not by name. Each stage has a role, so a client can name their columns differently from yours.

| Role | In the default client template |
| - | - |
| `intake` | New |
| `acknowledged` | Acknowledged |
| `working` | In progress |
| `done` | Resolved |

## Connect a client

**1. Allow linking on your central Space**

Open the Space's settings and turn on **Allow linking with other accounts**. The Space then shows a **Linked accounts** tab.

**2. Create a service desk product**

In the **Linked accounts** tab, select **+** on the product rail. Set **Type** to **Service desk** and save. The type cannot be changed later. You only need one product for all your clients.

**3. Send an invitation**

In the **Invitations** tab, create an invitation for the service desk product. Choose the status mapping for this client: where each of their stages lands on your board. Send the client the invitation link.

**4. The client accepts**

The client opens the link, signs in as a root or admin user of their account, and chooses how to connect their own workspace.

**5. Tickets start flowing**

The client appears in your **Client** filter, and their tickets land in the column their status maps to.

The client chooses one of two ways to connect.

| Choice | What happens |
| - | - |
| **Set up a new desk** | A Space is created for them from the service desk template, with the four statuses above. It is not locked, so they can rename and recolour columns. |
| **Link an existing space** | They pick a Space they already use and map each stage to one of its statuses. Every stage must be mapped before they can continue. Only tasks created after linking sync. |

A client account can have only one connection with your account. A client with no QuivaWorks account yet signs up first, then opens the invitation link again.

### Edit the status mapping

In your central Space's **Linked accounts** tab, open **Accounts**, then open the menu on the client's row and choose **Edit status mapping**. The new mapping applies to later moves.

> [!NOTE]
>
> You cannot delete a status that a mapping points to, or the only status that carries a required role. Renaming and recolouring columns is always allowed.

## Raise and work a ticket

1. A client creates a task in their desk Space. Within about ten seconds it appears on your central board in the column its status maps to, in that client's folder.
2. Your team moves it, edits it or comments. The client sees the change on their board.
3. Either side can comment at any time. Both comments appear on both sides, with the author's name and account shown on the other side.

A comment can only be edited or deleted by the side that wrote it.

A task that existed before a Space was linked does not sync. To send one across, patch it with `"distribution_share": true`.

## Conflicts

Every ticket has one shared version number. If both sides edit the same ticket at the same moment, QuivaWorks does not overwrite either edit. It marks the ticket with a **Sync conflict** badge, and the task shows who edited it and the incoming change.

| Choice | Result |
| - | - |
| **Keep mine** | Your version stands. The other side receives it and its conflict clears. |
| **Take theirs** | The incoming change is applied to your copy. Both sides converge on it. |

Comments never conflict. Adding a comment on both sides at once keeps both.

## Find a client's tickets

On the central board, choose a client from the **Client** filter. A ticket's details show **Linked account** with the client's name. Each synced ticket's `folder` is the id of that client's link, so you can filter the same way through the API.

```bash theme={null}
curl "https://api.quiva.ai/workspaces/space/DESK/tasks?folder=D0F3A91B22C4" \
  -H "Authorization: Bearer $TOKEN"
```

Integrations work on a connected Space like any other. A change that arrives from a client appears in the [changes feed](/spaces/task-sync.md#read-the-changes-feed) and to webhooks with `origin.kind` set to `distribution`.

## Pause or end a connection

On the central side, these are on the client's row menu under **Linked accounts** > **Accounts**.

| Action | Effect |
| - | - |
| **Suspend** | Changes stop crossing. Edits are retried, and arrive after you **Restore**. |
| **Restore** | The connection resumes and held changes arrive without duplicates. |
| **Revoke** | Ends the connection permanently. A revoked connection cannot be restored, and each side keeps its tasks. Changes that can no longer be delivered are recorded as undelivered. |

Changes that could not be delivered are listed under **Failed deliveries**, and **Delivery health** shows whether each link is syncing.

Clients see each connection under **Account settings** > **Connections** > **Linked accounts**, with its status, the shared Space and a health check. You see the clients you invited there too; **Manage** opens the Space's **Linked accounts** tab.

> [!WARNING]
>
> Deleting a ticket on one side does not delete it on the other. The other side keeps its copy.

## Related

> **[Task sync](/spaces/task-sync.md)**
>
> Versions, the changes feed and the upsert.

> **[Tasks](/spaces/tasks.md)**
>
> Fields on a task.


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