# Códigos de error: Importador de entidades (Excel)

> Previsualizar, aplicar y deshacer importaciones de grupos, leads, contactos, reasignaciones, campos personalizados y metas de venta desde Excel. La validación devuelve un renglón por celda con problema.

**Cómo se detecta (toda la familia):** La previsualización trae cada problema con hoja, fila, columna y `code`. El lote queda en `entity_import_batches`.

**Qué hacer (toda la familia):** Corregir el Excel en las celdas que dice la previsualización y volver a previsualizar. Nunca aplicar con errores.

Lo que un código no dice lo hereda de la familia.

## `assignment_unchanged`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso: el grupo ya está asignado solo a ese vendedor; la fila no cambia nada.

## `category_inactive`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso del importador de metas: la categoría no tiene ningún producto (item ni paquete) activo en Zauru. La meta se carga igual.

## `category_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: el `item_category_id` no es una categoría de esta entidad en Zauru: de producto o, si la entidad agrupa su dashboard por categoría de cliente, de cliente (se usa el id de Zauru; la plantilla trae la lista en la hoja `_Categorias`).

## `channel_type_unavailable`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El canal de una columna (teléfono, WhatsApp, correo…) no existe en la entidad al aplicar.

## `contact_without_channel`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso: el contacto de la fila no trae ningún canal (teléfono, WhatsApp, correo).

## `custom_field_already_exists`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El campo personalizado ya existe: hay que usar el modo «editar», no «crear».

## `custom_field_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El campo personalizado no existe: revisar el nombre exacto en la hoja «_Campos existentes» o usar el modo «crear».

## `custom_field_not_resolved`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Un campo personalizado no quedó resuelto al escribir los valores (al aplicar).

## `custom_field_type_missing`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El tipo de campo confirmado no existe en `custom_field_types`.

## `custom_field_type_not_resolved`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** No se pudo resolver el tipo de un campo personalizado al aplicar.

## `custom_field_unresolved`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** No se pudo resolver un campo personalizado de la hoja.

## `duplicate_column`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: la misma columna viene con dos nombres (por ejemplo `goal` y `amount`); no se adivina cuál vale. Deja una sola.

## `duplicate_goal`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: la misma meta (mes, vendedor y categoría) viene dos veces en el archivo; no se adivina cuál gana.

## `duplicate_group_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El mismo grupo aparece más de una vez; va una sola fila por grupo.

## `duplicate_import_column`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Dos columnas de la hoja se mapearon a la misma columna destino.

## `duplicate_record_field`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El mismo registro trae dos filas para el mismo campo.

## `duplicate_ref_key`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La clave de referencia está repetida en la hoja.

## `duplicate_zauru_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El `zauru_id` está repetido en la hoja Leads.

## `employee_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El `employee_id` no es un vendedor de la entidad (se usa el id de empleado de Zauru).

## `empty_sheet`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: la hoja de datos no tiene ninguna fila con metas.

## `file_required`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Adjunta el archivo .xlsx en el campo "file"

## `goal_rounded`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso del importador de metas: la meta traía más de dos decimales y se guarda redondeada a centavos.

## `group_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El grupo no existe en esta entidad.

## `import_already_running`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** Ya hay una importacion aplicandose en esta entidad. Espera a que termine y revisa "Importaciones recientes" antes de volver a intentar.

## `import_batch_already_undone`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Esa importación ya se había deshecho.

## `import_batch_is_draft`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Esta importacion nunca se aplico: descartala desde la pantalla del importador en vez de deshacerla.

## `import_batch_not_editable`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La importación ya no se puede editar (ya se aplicó o se descartó).

## `import_batch_not_found`

- **Tipo:** HTTP · **HTTP:** 400, 404 · **Estado:** vigente
- **Qué significa:** La importación no existe en esta entidad.

## `import_batch_not_undoable`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La importación no guardó el estado previo: no se puede deshacer.

## `import_batch_rows_without_number`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El borrador se guardó sin el número de fila de Excel (bug corregido el 05/10/2026): no se revalida ni se lista. Descartalo y volvé a subir el archivo.

## `import_batch_still_running`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Esta importacion todavia se esta aplicando. Espera a que termine para poder deshacerla.

## `import_batch_wrong_kind`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La importación es de otro tipo que el que se quiso aplicar o deshacer.

## `import_file_already_applied`

- **Tipo:** HTTP · **HTTP:** 409 · **Estado:** vigente
- **Qué significa:** Ese mismo archivo ya se aplicó en la entidad (misma huella).

## `import_not_applicable`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La importación no se puede aplicar en su estado actual.

## `import_row_not_found`

- **Tipo:** HTTP · **HTTP:** 404 · **Estado:** vigente
- **Qué significa:** La fila no pertenece a esa importación.

## `import_validation_failed`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El Excel tiene errores; corregilos y volve a previsualizar antes de aplicar

## `invalid_boolean`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La celda de un campo personalizado Sí/No no se puede leer como Sí o No (acepta Sí/No, Verdadero/Falso, True/False, 1/0 y X).

## `invalid_boolean_value`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Al escribir, la celda de un campo personalizado Sí/No no se pudo leer como Sí o No.

## `invalid_date`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La celda no es una fecha válida (DD/MM/AAAA o AAAA-MM-DD).

## `invalid_date_value`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Al aplicar, el valor no es una fecha válida para el campo.

## `invalid_email`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La celda no es un correo válido.

## `invalid_employee_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El `employee_id` no es un entero.

## `invalid_goal`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: la meta no es un número válido (negativo, con coma decimal o con letras). Se usa punto para los decimales.

## `invalid_group_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El id de grupo no es un entero válido.

## `invalid_item_category_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: el `item_category_id` no es un entero válido.

## `invalid_mode`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El modo de la fila no es «crear» ni «editar».

## `invalid_month`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: el `month` no es un mes (se acepta 2026-10 o una fecha de ese mes).

## `invalid_multi_select_value`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Al aplicar, el valor no tiene ninguna opción válida del campo (las opciones se separan con «;»).

## `invalid_number`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La celda no es numérica para el campo.

## `invalid_number_value`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Al aplicar, el valor no es numérico para el campo.

## `invalid_phone`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El teléfono no tiene suficientes dígitos para el canal.

## `invalid_record_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El id del registro no es un entero válido.

## `invalid_seller_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: el `seller_id` no es un entero válido.

## `invalid_zauru_id`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El `zauru_id` no es un entero.

## `known_field_absent`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso: un campo personalizado de la entidad no viene en el Excel (no se toca).

## `lead_without_contacts`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso: el lead no tiene contactos.

## `missing_required_column`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Falta una columna obligatoria en la hoja.

## `missing_required_value`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Falta un valor obligatorio en la fila.

## `missing_sheet`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El archivo no trae las hojas que espera el importador.

## `missing_target_column`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Falta decir a qué columna se mapea una columna del Excel.

## `record_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El registro (grupo, lead o contacto) no existe en esta entidad.

## `seller_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: el `seller_id` no es un empleado de esta entidad en Zauru (se usa el id de empleado de Zauru; la plantilla trae la lista en la hoja `_Vendedores`).

## `seller_not_marked_as_seller`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Aviso del importador de metas: el empleado existe en Zauru pero no está marcado como vendedor, así que no tendrá venta contra la cual medir la meta.

## `unconfirmed_custom_field`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Hay un campo personalizado nuevo sin confirmar su tipo: se confirma antes de aplicar.

## `unknown_column`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La hoja trae una columna que el importador no conoce.

## `unknown_import_column`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La columna no existe en esa hoja de la importación.

## `unknown_import_sheet`

- **Tipo:** HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La importación no tiene esa hoja.

## `unresolved_ref`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Una referencia (p. ej. `cliente_ref`) no resolvió a un registro.

## `unsupported_custom_field_type`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El importador no escribe valores de ese tipo de campo: quitar la columna o cargarlo a mano.

## `value_not_in_options`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El valor no es una de las opciones del campo, ni siquiera comparando sin tildes, mayúsculas ni puntuación.

## `wrong_entity`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Importador de metas: la columna `entity_id` de la fila no es la entidad en la que se está importando. Evita cargar el archivo de otra empresa por error.
