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

# conversations

List, read, create, update, reply, resolve, snooze, and assign support conversations.

# `rogeriq conversations`

The conversation surface mirrors the
[`/v1/projects/:pid/conversations`](/api/conversations) endpoints.

## Subcommands

**list**

```bash
    rogeriq conversations list \
      [--status open|snoozed|resolved|closed] \
      [--priority low|normal|high|urgent] \
      [--channel email|chat|slack|discord|telegram|api|widget] \
      [--assigned-to <user-id>] \
      [--contact <contact-id>] \
      [--q "search text"] \
      [--limit 50] [--cursor <cursor>]
    ```

    Returns paginated `{ data, cursor, has_more }`. Pass the returned `cursor`
    on the next call to walk pages.

  **get**

```bash
    rogeriq conversations get con_xxx
    ```

    Returns the conversation with its recent messages.

  **create**

```bash
    rogeriq conversations create \
      [--subject "Refund question"] \
      [--contact ctc_xxx] \
      [--channel api] \
      [--priority normal] \
      [--tags billing,refund]
    ```

  **update**

```bash
    rogeriq conversations update con_xxx \
      [--subject ...] [--status ...] [--priority ...] \
      [--assigned-to <user-id>] [--tags a,b,c]
    ```

  **reply**

```bash
    rogeriq conversations reply con_xxx "Thanks — looking into it."
    rogeriq conversations reply con_xxx "Note for the team" --internal
    ```

    `--internal` posts an internal note that the customer cannot see.
    Sets `is_internal: true` on the message.

  **resolve / snooze / assign**

```bash
    rogeriq conversations resolve con_xxx
    rogeriq conversations snooze con_xxx
    rogeriq conversations assign con_xxx <user-id>
    ```

    Each is sugar over `update` with the corresponding fields.

## Examples

### Triage the queue oldest-first

```bash
rogeriq conversations list --status open --json \
  | jq -r '.[] | "\(.created_at)\t\(.id)\t\(.subject)"'
```

### Auto-classify everything open

```bash
for id in $(rogeriq conversations list --status open --quiet); do
  rogeriq agent classify "$id"
done
```

### Resolve every conversation tagged "duplicate"

```bash
for id in $(rogeriq conversations list --status open --json \
  | jq -r '.[] | select(.tags|index("duplicate")) | .id'); do
  rogeriq conversations reply "$id" "Merged with the primary thread."
  rogeriq conversations resolve "$id"
done
```

## Scope

All conversation mutations require `write` scope (or `conversations:write`).
Reads require `read` (or `conversations:read`).