# Crear o actualizar un contacto

> plazbot contacts upsert: crea un contacto de WhatsApp, o lo actualiza si el número ya existe

Fuente: https://developers.plazbot.com/cli/contacts/upsert/

### Crear o actualizar un contacto de WhatsApp

Crea un contacto de WhatsApp, o lo actualiza si el número ya existe en ese canal. Se puede repetir sin crear duplicados, así que sirve para sincronizar contactos desde otro sistema.

```bash
plazbot contacts upsert -p <número> [opciones]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| Teléfono | `-p, --phone <number>` | Sí | Número de WhatsApp del contacto en formato internacional |
| Canal | `--channel <integrationId>` | No | Número de WhatsApp de tu empresa al que pertenece el contacto (`int_...`). Por defecto, el único número de WhatsApp activo del workspace |
| Nombre | `--name <name>` | No | Nombre |
| Apellido | `--lastname <lastname>` | No | Apellido |
| Email | `-e, --email <email>` | No | Email |
| Fase | `--stage <stageId>` | No | ID de la fase |
| JSON | `--json` | No | Imprime la respuesta de la API en JSON |
| Confirmar | `-y, --yes` | No | Omite la confirmación |
| Workspace | `-w, --workspace <id>` | No | Otro de tus workspaces |
| Zona | `-z, --zone <zone>` | No | `LA` o `EU` |

### Cómo funciona

- Solo crea contactos de WhatsApp.
- El contacto se busca por número y canal. Si ya existe, se actualizan los campos que pasas (nombre, apellido, email y fase); si no, se crea.
- Si el workspace tiene un solo número de WhatsApp activo, se usa automáticamente. Con varios números, o con ninguno, tienes que pasar `--channel`. Consulta los IDs con [`plazbot workspace show channels`](https://developers.plazbot.com/cli/workspace).
- Pide confirmación antes de guardar; sin terminal interactiva necesitas `--yes`.

### Ejemplos

```bash
# Crear o actualizar un contacto
plazbot contacts upsert -p +51912345678 --name Ana --email ana@empresa.com

# Workspace con varios números de WhatsApp
plazbot contacts upsert -p +51912345678 --name Ana --channel int_AbcDef123 --yes

# Crear y dejar en una fase
plazbot contacts upsert -p +51912345678 --name Ana --stage mos_AbcDef123 --yes
```

### Resultado

```text
? Create or update contact +51912345678? Yes

Contact +51912345678 saved
```

### Salida JSON

Con `--json` se imprime la respuesta de la API:

```json
{
"success": true,
"code": 200,
"message": "Contact created successfully.",
"data": { "id": "con_AbcDef123" }
}
```

Para cambiar etiquetas, agente u otros campos después de crearlo, usa [`plazbot contacts update`](https://developers.plazbot.com/cli/contacts/update).

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `The workspace has several WhatsApp numbers.` | Hay más de un número activo | Elige uno con `--channel` |
| `The workspace has no active WhatsApp number.` | No hay números de WhatsApp conectados | Conecta uno con [`plazbot whatsapp connect`](https://developers.plazbot.com/whatsapp/cli/connect) |
| `Invalid phone number "..."` | Número inválido | Usa el formato internacional con código de país |
| `The assigned integration is not located in your workspace.` | `--channel` no es un número de WhatsApp de ese workspace | Revisa el ID con `plazbot workspace show channels` |
| `This action needs confirmation and there is no interactive terminal.` | Sin terminal y sin `--yes` | Agrega `--yes` |
