> For the complete documentation index, see [llms.txt](https://docs.dapta.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapta.ai/dapta-docs-es/agentes-de-texto/campanas/importar-contactos.md).

# Importar contactos

Los contactos se cargan a una campaña subiendo un archivo CSV o XLSX. Cada fila del archivo se convierte en un destinatario de la campaña — un contacto que recibirá el mensaje de plantilla.

***

## Tipos de archivo soportados

| Formato                     | Extensión | Tamaño máximo |
| --------------------------- | --------- | ------------- |
| Valores separados por comas | `.csv`    | 5 MB          |
| Libro de Excel              | `.xlsx`   | 5 MB          |

***

## Columnas requeridas y opcionales

| Columna                | Requerida   | Descripción                                                                      |
| ---------------------- | ----------- | -------------------------------------------------------------------------------- |
| `phone_number`         | ✅ Sí        | El número de WhatsApp del destinatario.                                          |
| `name`                 | Recomendada | Se usa para personalizar mensajes y se muestra en la pestaña Conversations.      |
| Cualquier otra columna | Opcional    | Datos adicionales que quieras mapear a variables de plantilla o de conversación. |

> **💡 Tip:** Haz clic en **Download template** en el paso de carga para obtener un CSV con los encabezados correctos pre-completados.

***

## Formato del número de teléfono

Los números de teléfono deben estar en formato **E.164**: un signo `+` seguido del código de país y el número completo, sin espacios, guiones ni paréntesis.

| ✅ Válido        | ❌ Inválido       |
| --------------- | ---------------- |
| `+573001234567` | `3001234567`     |
| `+12025550199`  | `(202) 555-0199` |
| `+447911123456` | `07911 123456`   |

{% hint style="warning" %}
Las filas con números de teléfono inválidos o irreconocibles se rechazan en el momento de la importación y se cuentan como `rows_invalid` en el resumen de importación. No recibirán mensajes.
{% endhint %}

***

## Qué ocurre durante la importación

Cuando subes un archivo, Dapta lo procesa fila por fila:

1. **Valida** cada número de teléfono contra las reglas E.164 usando la zona horaria de la campaña como indicador de país.
2. **Deduplica** — si un número de teléfono ya existe en esta campaña, la fila se omite silenciosamente (contada como `rows_duplicate`).
3. **Inserta** los contactos válidos y nuevos como destinatarios pendientes (contados como `rows_inserted`).
4. **Rechaza** las filas inválidas con un código de error estructurado (contadas como `rows_invalid`).

Después del procesamiento se muestra un **resumen de importación**:

| Campo              | Descripción                                                 |
| ------------------ | ----------------------------------------------------------- |
| **Rows received**  | Total de filas en el archivo.                               |
| **Rows inserted**  | Nuevos contactos agregados a la campaña.                    |
| **Rows duplicate** | Números de teléfono ya existentes en la campaña — omitidos. |
| **Rows invalid**   | Filas rechazadas por errores de validación de teléfono.     |

***

## Agregar contactos después de crear la campaña

Puedes subir contactos adicionales a una campaña que ya está en ejecución o programada. Navega a la página de detalle de la campaña, ve a **Settings** y usa el área de carga para agregar un nuevo archivo. Los nuevos contactos se agregan; los números de teléfono existentes se omiten automáticamente.

***

## Solución de problemas

| Problema                              | Solución                                                                                                                            |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Todas las filas son `rows_invalid`    | Verifica que la columna `phone_number` exista y que los valores usen formato E.164 con el prefijo `+`.                              |
| Algunas filas son `rows_duplicate`    | Esos números de teléfono ya fueron importados en una carga anterior. Es el comportamiento esperado — no se requiere ninguna acción. |
| El menú de plantillas está vacío      | El canal seleccionado no tiene plantillas de WhatsApp aprobadas. Aprueba una plantilla en Meta Business Manager primero.            |
| El resumen muestra 0 filas insertadas | El archivo puede estar vacío, tener solo encabezados, o todas las filas pueden ser duplicadas o inválidas.                          |
| La carga del archivo falla            | Confirma que el archivo sea `.csv` o `.xlsx` y que pese menos de 5 MB.                                                              |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dapta.ai/dapta-docs-es/agentes-de-texto/campanas/importar-contactos.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
