Importar CSV
Carga masiva de clientes desde CSV — columnas requeridas, mapping, validación, mejores prácticas.
El import por CSV es la forma más rápida de poblar LealUp el primer día, especialmente si estás migrando de Gainsight, ChurnZero, Planhat, o simplemente de una hoja de cálculo.
Cuándo usarlo
- Onboarding inicial — importar tu cartera completa (20–2000 clientes en minutos).
- Migración de CS tool anterior — el export → import es la forma universal.
- Bulk update — cambiar owner de muchos clientes a la vez, actualizar tier, etc.
- Backfill de campos personalizados — poblar un campo nuevo para toda la cartera.
Dónde
Admin → Clientes → Importar CSV
Requiere rol admin o director.
Columnas requeridas
Tu CSV debe tener al menos estas columnas (case-insensitive, aceptamos múltiples nombres comunes):
| Columna | Alternativas aceptadas | Tipo |
|---|---|---|
name | customer_name, company, account_name | texto |
email_domain | domain, primary_domain | texto |
arr | arr_usd, annual_revenue, acv | número |
owner_email | csm_email, csm, owner |
Columnas opcionales recomendadas
| Columna | Para qué |
|---|---|
status | Activo, Trial, Churned, Paused (default: Activo) |
renewal_date | fecha ISO 8601 (YYYY-MM-DD) |
country | código ISO 3166 (CL, MX, BR, US, etc.) o nombre |
segment | valor que matchee con tu configuración de segmentos |
tier | Platinum / Gold / Silver / Bronze |
industry | Fintech / Retail / Healthtech / etc. |
created_at | cuando el cliente empezó contigo (defaults a hoy) |
Campos personalizados
Cualquier columna con el prefijo cf_ se trata como campo personalizado:
cf_tier→ mapea al campo customtier.cf_acv_target_usd→ mapea aacv_target_usd.
El campo debe estar previamente creado en Admin → Campos personalizados. Si no existe, LealUp ofrece crearlo durante el import.
Flow del wizard
- Subir archivo — max 10 MB, formato
.csv(UTF-8 recomendado, soporta también latin-1). - Preview — LealUp muestra las primeras 10 filas, detecta headers automáticamente.
- Mapping — columnas del CSV ↔ campos de LealUp. Auto-sugiere, pero puedes override.
- Validación — errores y warnings por fila:
- Email inválido → error (fila skippeada).
- ARR no numérico → error.
- Dominio duplicado con cliente existente → warning (opción: skip / update / merge).
- Campo custom inexistente → warning (opción: crear o skip).
- Dry-run report — summary: "Crear X, actualizar Y, skippear Z". Descargable como log.
- Confirmación — click "Importar".
- Procesamiento en background — para CSVs grandes (>500 rows), corre async. Notificación al terminar.
Ejemplo de CSV mínimo
name,email_domain,arr,owner_email
Acme Inc,acme.com,145000,[email protected]
Globex,globex.io,80000,[email protected]
Initech,initech.cl,32000,[email protected]Ejemplo con campos opcionales y custom
name,email_domain,arr,owner_email,renewal_date,segment,cf_tier,cf_industry
Acme Inc,acme.com,145000,[email protected],2026-06-15,Enterprise LATAM,Platinum,Fintech
Globex,globex.io,80000,[email protected],2026-08-20,Mid-Market,Gold,RetailValidación en detalle
Errores (fila no se crea)
- Email del owner no existe en el workspace como usuario activo.
- ARR no numérico o negativo.
- Dominio vacío cuando es columna requerida.
- Fecha mal formateada (
renewal_datedebe ser ISO 8601). - Valor de DROPDOWN fuera de las opciones (ej.
tier: Ultracuando solo tienes Platinum/Gold/Silver).
Warnings (fila se crea con reserva)
- Dominio duplicado — ya existe cliente con ese
email_domain. Elige: skip (default), update (merge campos), or create-anyway (raro). - ARR = 0 — se crea pero se flaggea como "sin ARR".
- País no reconocido — se crea pero se flaggea.
Info (no bloqueante)
- Clientes en
Trialcon ARR — OK, alimenta el cálculo del tier de plan. - Duplicados por nombre — si no hay dominio pero sí nombre, warning "posible duplicado".
Matching de clientes existentes
Al importar, LealUp busca en orden:
email_domainmatch exacto.external_id(si lo estás seteando vía columnaexternal_id).- Match fuzzy por nombre (threshold 90%).
Si hay match, ofrece opciones:
- Skip — no tocar.
- Update — actualizar campos que están vacíos en LealUp con valores del CSV.
- Overwrite — pisar con lo del CSV (destructivo, requiere confirmación).
Bulk update
Si tu CSV trae solo clientes que ya existen (todos matchean), el flow es efectivamente un bulk update:
- Todos los ARR nuevos pisan los viejos.
- Owner_email nuevo reasigna ownership.
- Campos custom se actualizan.
Útil para:
- Actualizar ARR después de un ejercicio anual de RevOps.
- Reasignar masivamente cartera por CSM que dejó.
- Actualizar un campo nuevo para todo el portfolio.
Rollback
Si después del import descubres un error:
- Admin → Audit log → Filtrar por "bulk_import" → encontrar el import ID.
- Deshacer import → revierte todos los cambios en esa operación.
Ventana: 24h desde el import. Después, manual.
Migrar de Gainsight / ChurnZero / Planhat
Proceso sugerido:
1. Export desde el tool anterior
- Gainsight: Companies → Export (CSV completo con custom fields).
- ChurnZero: Accounts → Export.
- Planhat: Companies → Export.
- Custify: Customers → Export.
2. Limpia el CSV
- Renombra columnas a las nombres estándar de LealUp (o mapeo en el wizard).
- Elimina columnas que no te interesan (simplifica).
- Verifica el formato de fechas (ISO 8601).
3. Import con dry-run
- Primera pasada: dry-run only (no commitea).
- Revisa errores y warnings en calma.
- Ajusta el CSV o mapping.
4. Import real
- Compromételo.
- Verifica sample de clientes (busca 3–5 al azar y chequea que todo esté bien).
5. Complementa con integraciones
- Conecta Gmail/Calendar → el timeline se reconstruye hacia adelante (no hay import histórico).
- Conecta Zendesk/Jira para soporte.
- Opcional: import de eventos históricos via
POST /v1/ingest/eventsbatch.
6. Recrea playbooks
- Los playbooks no se migran automáticamente (lógicas distintas entre tools).
- Empieza con los 5 playbooks sembrados de LealUp y adapta.
Problemas comunes
"UTF-8 se rompe con caracteres latinos"
- Guarda el CSV como UTF-8 con BOM.
- Si tu CSV viene de Excel, usa "Save As → CSV UTF-8".
"LealUp dice 'too many errors'"
- Si >25% de filas fallan, el import se pausa para revisar.
- Descarga el log, arregla el CSV, reintenta.
"Import se trabó en proceso"
- CSVs grandes (>5000 rows) corren async.
- Admin → Audit log → Imports — ver estado.
- Si quedó en "processing" >2h, contacta soporte con el import ID.
"Clientes sin owner"
- Si un
owner_emaildel CSV no existe como usuario activo, la fila falla. - Solución: crea los usuarios primero en Admin → Equipo, luego re-importa.
Límites
- Máximo 10 MB por archivo (aprox 50k filas con columnas típicas).
- Máximo 10 imports simultáneos en cola por workspace.
- Columnas: max 50 por CSV.
Para volúmenes mayores, contacta soporte (Scale/Enterprise pueden usar el endpoint POST /v1/admin/bulk-import directamente via API).