Files
upstream-mirror e7da97194a
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
2026-09-17 23:28:13 +05:00

199 lines
7.0 KiB
Plaintext

---
title: Asignación de campos
description: Cómo funciona la asignación de campos durante la importación de datos.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Cómo funciona la asignación de campos
Cuando cargas un archivo, Twenty analiza las columnas e intenta hacerlas coincidir con los campos existentes.
### Asignación automática
Twenty intenta hacer coincidir las columnas en función de:
* Nombres de encabezados de columna (coincidencias exactas o similares)
* Detección de tipo de datos (fechas, números, correos electrónicos)
* Patrones de campo comunes
<Note>**Consejo rápido:** Exporta algunas filas del objeto que quieres importar. El archivo exportado tendrá los nombres de columna exactos que Twenty espera, lo que hará que la asignación automática sea fluida durante la importación.</Note>
### Opciones de asignación manual
Para cada columna, puedes:
* **Asignar a un campo**: Selecciona el campo correspondiente de Twenty desde un menú desplegable
* **No asignar**: Omite la columna por completo (los datos no se importarán)
<Note>**Los campos deben existir antes de la importación.** La importación crea registros, no campos. Crea campos personalizados en **Settings → Data Model** antes de importar.</Note>
## Compatibilidad de tipos de campo
Todos los tipos de campo disponibles en el Data Model son compatibles con la importación.
También puedes importar valores de `id` para asignar un ID específico a los nuevos registros o actualizar los existentes.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## Requisitos de formato de datos
<Note>**Algunos campos tienen una sintaxis especial.** Recomendamos descargar el archivo de muestra antes de preparar la importación para ver la sintaxis esperada para cada tipo de campo.</Note>
### Campos de dirección
Dirección es un campo anidado con múltiples columnas. Algunos se pueden dejar vacíos.
* **Address / Address 1**: Primera línea de la dirección
* **Address / Address 2**: Segunda línea de la dirección
* **Address / City**: Nombre de la ciudad
* **Address / State**: Estado o provincia
* **Address / Country**: Nombre del país
* **Address / Post Code**: Código postal/ZIP
### Campos de array
Usa el siguiente formato:
```
["value1","value2"]
```
### Campos booleanos
Usa `TRUE` o `FALSE` (mayúsculas), no `true` o `false`
### Campos de moneda
Moneda es un campo anidado con dos columnas que **ambas deben completarse**:
* **Amount / Amount**: El valor numérico (p. ej., `1234.56`)
* **Amount / Currency**: El código de la moneda (p. ej., `USD`, `EUR`)
### Campos de fecha
Formatos admitidos:
* `YYYY-MM-DD` (recomendado)
* `MM/DD/YYYY`
* `DD/MM/YYYY`
* Formato ISO 8601
### Campos de dominio
* Se recomienda usar el formato `https://domain.com` para evitar crear duplicados, ya que este es el formato utilizado para las Companies creadas por las sincronizaciones del buzón y del calendario
* Se pueden completar `Domain Label` y `Domain URL`: la mejor práctica es poner `domain.com` en la etiqueta y `https://domain.com` en la URL
* Los dominios deben ser únicos dentro del objeto Companies
* **Los dominios deben ser únicos dentro del archivo a importar**
### Campos de correo electrónico
* Debe tener un formato de correo electrónico válido
* Los correos electrónicos deben ser únicos dentro del objeto People
* **Los correos electrónicos deben ser únicos dentro del archivo a importar**
* Para correos adicionales: usa **Emails / Primary Email** para el correo principal y **Emails / Additional Emails** con este formato:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Campos ID
Es opcional especificar un `id` durante la importación. Twenty lo genera automáticamente si no se proporciona.
Casos de uso para asignar una columna `id`:
* **Establecer un ID específico**: Elige el UUID para los registros recién creados
* **Actualizar registros existentes**: Haz coincidir con los registros existentes para actualizarlos en lugar de crear duplicados. En ese caso, se recomienda no asignar los otros campos únicos: asignar solo un campo único garantiza una importación más fluida.
<Note>Si proporcionas un `id`, debe estar en formato UUID (p. ej., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### Campos JSON
Usa un formato JSON válido:
```
{"key":"value","key2":"value2"}
```
### Campos de enlaces
Similar a los campos de dominio:
* Completa ambas columnas de etiqueta y URL: **Links / Link URL** y **Links / Link Label**
* Usa el formato de URL completo: `https://example.com`
* Para enlaces secundarios, usa la columna **Links / Secondary Links** con este formato:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Campos de selección múltiple
Usa los **nombres de la API** (no las etiquetas visibles) con el siguiente formato:
```
["VALUE1","VALUE2"]
```
Consulta [aquí](#finding-api-names-for-select-fields) dónde encontrar los nombres de la API.
<Note>Las nuevas opciones de selección no se crearán automáticamente mediante la importación. Deben agregarse en **Settings → Data Model** antes de importar.</Note>
<Warning>
**Importa sobrescritos; no agrega.**
Si un registro ya tiene seleccionados `VALUE2` y `VALUE3`, y importas ["VALUE1"], el registro solo tendrá `VALUE1` después de la importación. Las selecciones anteriores se reemplazan, no se fusionan.
</Warning>
### Campos numéricos
* Solo números
* Los decimales usan punto: `1234.56`
* Sin separadores de miles
### Campos de teléfono
Teléfono es un campo anidado con múltiples columnas que **deben completarse**
* **Phones / Primary Phone Number**: El número de teléfono (p. ej., `4159095555`)
* **Phones / Primary Phone Country Code**: Código de país (p. ej., `US`)
* **Phones / Primary Phone Calling Code**: Código de marcación (p. ej., `+1`)
### Campos de calificación
Usa el formato de nombre de API: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Campos de Relación
Consulta nuestro artículo dedicado: [Importar relaciones entre objetos](/l/es/user-guide/data-migration/capabilities/import-relations)
### Campos de Selección
Usa el nombre de la API de la opción (no la etiqueta visible):
```
VALUE1
```
Consulta [aquí](#finding-api-names-for-select-fields) dónde encontrar los nombres de la API.
<Note>Las nuevas opciones de Select no se crearán automáticamente mediante la importación. Deben agregarse en **Configuración → Modelo de datos** antes de importar.</Note>
### Campos de texto
* No se requiere formato especial
* Los espacios iniciales y finales se eliminan
## Encontrar nombres de la API
Para los campos Select, Multi-Select y Array con opciones predefinidas, debes usar los **nombres de la API**, no las etiquetas visibles.
### Cómo encontrar los nombres de la API
1. Ve a **Configuración → Modelo de datos**
2. Selecciona el objeto y el campo
3. Activa el **modo avanzado** (interruptor en la parte inferior derecha de la página de configuración)
4. Consulta el nombre de la API de cada opción
<VimeoEmbed videoId="1144910809" title="Demostración en video" />