# Listar mensajes

> plazbot messages list: la conversación de un contacto, mensaje por mensaje

Fuente: https://developers.plazbot.com/cli/messages/list/

### Listar los mensajes de un contacto

Muestra la conversación de un contacto: quién escribió cada mensaje, su tipo, el contenido y el estado de entrega. Por defecto los más recientes primero.

```bash
plazbot messages list <contactId> [opciones]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| ID del contacto | `<contactId>` | Sí | ID del contacto (`con_...`) |
| Ascendente | `--asc` | No | Los más antiguos primero |
| Con automatizaciones | `--with-automation` | No | Incluye los mensajes internos de las automatizaciones |
| Límite | `--limit <n>` | No | Para al llegar a N mensajes (páginas completas). Por defecto `50` |
| Cursor | `--cursor <token>` | No | Continúa desde el `nextCursor` de una llamada anterior |
| Todos | `--all` | No | Trae toda la conversación, hasta 5000 mensajes |
| JSON | `--json` | No | Imprime `{ data, nextCursor }` en JSON |
| Workspace | `-w, --workspace <id>` | No | Otro de tus workspaces |
| Zona | `-z, --zone <zone>` | No | `LA` o `EU` |

### Ejemplos

```bash
# Últimos mensajes de un contacto
plazbot messages list con_AbcDef123

# Toda la conversación, de la más antigua a la más reciente, en JSON
plazbot messages list con_AbcDef123 --asc --all --json

# Solo el texto de los últimos 20
plazbot messages list con_AbcDef123 --limit 20 --json | jq -r '.data[].content'
```

### Resultado

```text
Messages (3)
────────────────────────────────────────
┌──────────────────┬─────────────────────────┬──────┬─────────────────────────────────┬────────┐
│ Date (UTC)       │ From                    │ Type │ Content                         │ Status │
├──────────────────┼─────────────────────────┼──────┼─────────────────────────────────┼────────┤
│ 2026-10-06 17:32 │ business (businesshour) │ TEXT │ Nuestro horario es de 9 a 18 h  │ sent   │
├──────────────────┼─────────────────────────┼──────┼─────────────────────────────────┼────────┤
│ 2026-10-06 17:31 │ contact                 │ TEXT │ Hola                            │ read   │
├──────────────────┼─────────────────────────┼──────┼─────────────────────────────────┼────────┤
│ 2026-10-05 10:02 │ business (automation)   │ TEXT │ ¿Cuál es tu número de documento?│ read   │
└──────────────────┴─────────────────────────┴──────┴─────────────────────────────────┴────────┘
More results available: add --all, or use --json and pass its nextCursor to --cursor.
```

| Columna | Descripción |
|---------|-------------|
| From | `contact` (lo escribió el contacto), `business` (lo envió la empresa), `note` (nota interna), `event` (evento del chat) o `call summary`. Entre paréntesis, el origen: `automation`, `agent`, `businesshour`... |
| Type | `TEXT`, `IMAGE`, `AUDIO`, `DOCUMENT`, `TEMPLATE`... |
| Status | `sent`, `read` o `error: <motivo>` si el envío falló |

### Salida JSON

Cada elemento es el mensaje completo:

```json
{
"data": [
  {
    "id": "mes_AbcDef123",
    "contactId": "con_AbcDef123",
    "content": "Hola",
    "type": "TEXT",
    "fType": 2,
    "originMessage": "client",
    "messageStatusId": 2,
    "sentMessageError": null,
    "contentUrl": null,
    "creationDate": "2026-10-06T17:31:40.120Z"
  }
],
"nextCursor": null
}
```

`fType`: `1` empresa, `2` contacto, `3` nota interna, `4` evento, `5` resumen de llamada. `messageStatusId`: `1` enviado, `2` leído, `3` error.

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `No messages` | El contacto no tiene mensajes, o el ID no existe | Revisa el ID con [`plazbot contacts search`](https://developers.plazbot.com/cli/contacts/search) |
