Importación masiva
Cargar miles de contactos de una, y saber después qué entró y qué no.
Mandá el lote
Hasta 5.000 contactos por pedido. La respuesta es inmediata (202) y trae el trabajo: la carga sigue en segundo plano.
curl https://api.dialsprint.com/api/v1/contact-imports \
-H "Authorization: Bearer $DIALSPRINT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contacts": [
{ "name": "Ana Gómez", "phones": ["+5491155550001"], "external_id": "crm-1" },
{ "name": "Beto Ruiz", "phones": ["+5491155550002"], "external_id": "crm-2" }
]
}'Seguí el trabajo
Consultá el estado cada tanto hasta que quede en completed o failed.
created, updated y unchanged son exactos. suppressed no es una categoría de fallo: son contactos que entraron igual y quedaron marcados porque su número está en una lista de supresión. El bloqueo ocurre al momento de discar, no al importar.
{
"data": {
"id": "01M2XF0000000000000000IMP1",
"status": "completed",
"total_rows": 2,
"processed_rows": 2,
"existing_contacts": "update",
"created": 2,
"updated": 0,
"unchanged": 0,
"suppressed": 0,
"failed": 0,
"failure_reason": null
}
}Contactos que ya existen
Cada fila se identifica por external_id y, si no lo trae o no existe todavía, por sus teléfonos. Un contacto que ya existe nunca se duplica, y existing_contacts decide qué le pasa: update (por defecto) le aplica los valores de la fila y le suma los números nuevos; keep lo deja exactamente como está y sólo lo suma a contact_list_id.
Usá keep cuando cargás una tanda nueva de prospectos y tu equipo ya trabajó algunos: lo que corrigió un agente no se pierde. Esas filas se cuentan en unchanged.
curl https://api.dialsprint.com/api/v1/contact-imports \
-H "Authorization: Bearer $DIALSPRINT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contact_list_id": "01M2XF0000000000000000LST1",
"existing_contacts": "keep",
"contacts": [
{ "name": "Ana Gómez", "phones": ["+5491155550001"] },
{ "name": "Carla Díaz", "phones": ["+5491155550003"] }
]
}'Las filas que fallaron
El endpoint de errores devuelve una muestra de las filas con problema, con el número de fila y el motivo.
Es una muestra y no la lista completa: el campo truncated te avisa cuando se quedó corta. Los contadores del trabajo sí son exactos.
Qué se rechaza en la puerta
Antes de encolar nada validamos el lote entero, así que si algo está mal te enterás en el mismo pedido.
- Más de 5.000 filas, más de 5 MB en total o más de 100 KB en una fila.
- Un valor de lista que contenga punto y coma, coma o salto de línea: se partiría en dos al importarse, así que preferimos rechazarlo antes que corromperlo.
- Una lista segmentada o una lista de campaña como destino: esas arman sus miembros solas.