> For the complete documentation index, see [llms.txt](https://docs.flosum.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flosum.com/data-migrator/data-migrator-es/plantillas/migracion/como-funciona-el-mapeo-de-registros.md).

# Cómo funciona el mapeo de registros

## ![](https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FcfMTqg4Brbm9baWutclZ%2FSummary2-Small-Icon.svg?alt=media\&token=d1cf162d-c02d-4184-988e-7f7350e450fc) Resumen

Data Migrator usa el mapeo de registros para mantener la precisión de los registros a lo largo de varias ejecuciones de migración. Cuando habilita el mapeo de registros para un objeto, Data Migrator asigna registros individuales entre las organizaciones de origen y de destino para que las migraciones posteriores agreguen solo los nuevos registros y actualicen los existentes. Usted controla el mapeo de registros individualmente para cada objeto en una plantilla. Data Migrator proporciona dos métodos para mapear registros entre las organizaciones de origen y de destino: **Automático** y **Manual**. Las siguientes secciones describen cómo funciona cada método e incluyen escenarios de ejemplo que ilustran un mapeo de registros exitoso y fallido.

* [#automatic-record-mapping](#automatic-record-mapping "mention")
* [#manual-record-mapping](#manual-record-mapping "mention")
* [#record-mapping-scenarios](#record-mapping-scenarios "mention")

{% hint style="info" %}

#### Habilitación del mapeo de registros

De forma predeterminada, el mapeo de registros está deshabilitado para todos los objetos de una plantilla. Sin el mapeo de registros habilitado, todos los registros de origen se insertan siempre en la organización de destino durante la migración. Esto puede provocar duplicados si el mismo registro existe en ambas ubicaciones.

El mapeo de registros para un objeto se habilita desde su pestaña Configuración. El siguiente artículo describe cómo habilitar el mapeo de registros para un objeto.

* [Configurar el mapeo de registros de objetos](/data-migrator/data-migrator-es/plantillas/disenador-de-plantillas/configurar-el-mapeo-de-registros-de-objetos.md)
  {% endhint %}

## Mapeo automático de registros

El mapeo automático de registros es una estrategia con estado y basada en mapeo que usa una tabla de mapeo interna para vincular registros de origen y de destino. Se basa en mapeos históricos de implementaciones anteriores en lugar de datos de destino en tiempo real. Una vez que existe un mapeo de origen a destino, la relación queda fija, por lo que no hay ambigüedad para los registros ya migrados con Automático.

Automático está diseñado para migraciones repetidas cuando:

* Data Migrator es la única herramienta de migración en uso
* La org de destino está vacía durante la primera migración
* Se requiere coherencia a largo plazo entre ejecuciones

Automático garantiza que:

* El mismo registro de origen siempre actualiza el mismo registro de destino mapeado
* Los cambios en los campos empresariales no afectan la coincidencia de registros
* Las actualizaciones de registros son deterministas una vez que existe un mapeo

Sin embargo, Automático no evalúa datos de destino en tiempo real.

### Cómo funciona Automático

Automático sigue un proceso determinista, impulsado por el mapeo. El diagrama siguiente ilustra el flujo completo.

<figure><img src="https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FHQ3R5paTJEYcCDt5ZNZi%2FFlosum%20Data%20Migrator%20VEID%20Flow.png?alt=media&amp;token=e9ff49d1-056a-490d-940a-b979f06cfd64" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}

#### Leer registro de origen

Cada registro de origen se procesa individualmente durante la ejecución de la migración.
{% endstep %}

{% step %}

#### Buscar mapeo en la base de datos

El sistema comprueba si ya existe un mapeo para el ID del registro de origen.
{% endstep %}

{% step %}

#### Evaluar el resultado del mapeo

<table><thead><tr><th width="180.33331298828125">Se encontró mapeo</th><th>Acción</th></tr></thead><tbody><tr><td>No</td><td>INSERTAR un nuevo registro en la org de destino.</td></tr><tr><td>Sí</td><td>ACTUALIZAR el registro de destino mapeado existente.</td></tr></tbody></table>
{% endstep %}

{% step %}

#### Guardar el mapeo

Cuando no existe ningún mapeo, el sistema inserta el registro en la org de destino y crea un nuevo mapeo. En migraciones posteriores, este registro se actualiza en lugar de insertarse de nuevo. Este proceso se repite con cada ejecución, por lo que los nuevos registros de origen agregados se registran en la base de datos.
{% endstep %}
{% endstepper %}

### Limitaciones

{% hint style="warning" %}

#### Limitaciones importantes del mapeo automático de registros

* Automático no puede mapear registros que ya existen en la organización de destino.
* Si otra herramienta o un proceso manual crea o modifica registros en la organización de destino, los mapeos automáticos pueden quedar obsoletos, lo que provoca registros duplicados.
* Automático solo puede rastrear registros migrados a través de Data Migrator.
  {% endhint %}

#### Mapeo obsoleto

Automático solo es tan fiable como su base de datos. Los mapeos se vuelven obsoletos cuando se crean registros en la org de destino, ya sea manualmente o mediante otra herramienta. El ejemplo siguiente muestra cómo esto da lugar a registros duplicados.

**Ejemplo:**

1. Un usuario ejecuta una migración de todos los registros de Contacto a una org vacía.
   1. Todos los registros de Contacto se copian de la org de origen a la org de destino.
   2. Se crean mapeos automáticos para cada registro.
2. El usuario crea manualmente registros de Contacto para **Charlie** y **Alice** tanto en la org de origen como en la de destino.
3. El usuario ejecuta otra migración de todos los registros de Contacto desde la org de origen a la org de destino.
   1. **Charlie** y **Alice** no tienen mapeo automático porque no se migraron antes.
   2. Se crean nuevos registros para **Charlie** y **Alice** en la org de destino.
   3. La org de destino ahora tiene registros duplicados para **Charlie** y **Alice**: uno de la creación manual y otro de la migración.

## Mapeo manual de registros

El mapeo manual de registros combina uno o más campos de registro en un ID compuesto que vincula los registros de origen y de destino. A diferencia de los ID externos estándar de Salesforce, se puede usar cualquier campo en el ID compuesto. Cuando Manual busca en la org de destino y encuentra exactamente un registro coincidente, actualiza ese registro en lugar de insertar uno nuevo.

Está diseñado para migrar registros a org de destino que ya contienen registros no mapeados previamente con el mapeo automático de registros, o para registros en la org de destino creados por otras herramientas. Elija cuidadosamente los campos del mapeo manual de registros: si cambia el valor de cualquiera de los campos seleccionados, el mapeo ya no coincidirá con el registro migrado previamente.

### Cómo funciona Manual

Antes de usar el mapeo manual de registros para migrar registros, debe seleccionar uno o más campos del objeto para usar en el mapeo de registros. Los campos seleccionados se combinan para crear una clave que sea única y estable a la vez. Esto significa que la clave no cambia cuando cambian los campos del registro que normalmente se actualizan, y es única para cada registro de la org. Puede elegir uno o más campos para usar en la clave manual. Cuantos más campos seleccione, más probable será que la clave sea única. Sin embargo, seleccionar más campos también aumenta la probabilidad de que la clave sea inestable.

Durante el mapeo manual de registros, el proceso busca coincidencias en la org de destino con la clave generada. El diagrama y la explicación siguientes ilustran cómo funciona.

<figure><img src="https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FSS7vNmCOIbsfbeAEDUTo%2FFlosum%20Data%20Migrator%20CEID%20Flow.png?alt=media&amp;token=2b82cea9-8699-4038-a8ad-e88ed6380754" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}

### Leer registro de origen

Cada registro de origen se procesa individualmente durante la ejecución de la migración.
{% endstep %}

{% step %}

### Generar clave

Una **CLAVE** se genera a partir de los campos del registro seleccionados para el mapeo manual.
{% endstep %}

{% step %}

### Consultar la org de destino

Ejecute una consulta SOQL en la org de destino para la **CLAVE**.
{% endstep %}

{% step %}

### Evaluar el resultado de la consulta

<table><thead><tr><th width="219.6666259765625">Número de registros coincidentes</th><th>Acción</th></tr></thead><tbody><tr><td>0</td><td>INSERTAR un nuevo registro en la org de destino.</td></tr><tr><td>1</td><td>ACTUALIZAR el registro de destino coincidente existente.</td></tr><tr><td>2 o más</td><td>ERROR: se omite el registro. Más de un registro coincide con la <strong>CLAVE</strong>, por lo que la clave manual de este registro no es única y el registro no puede migrarse.</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

### Limitaciones

{% hint style="warning" %}

#### Limitaciones importantes del mapeo manual de registros

Seleccionar una combinación de campos estables que creen un ID único para cada registro es fundamental.

* **Estable**: Si cambia un valor en uno de los campos seleccionados para la clave, el mapeo manual ya no coincidirá con el registro migrado previamente y se insertará un nuevo registro, lo que dará como resultado un duplicado.
* **Único**: Si dos o más registros comparten la misma clave en la organización de origen, la migración no puede asignarlos correctamente a los registros de destino porque la clave no es única.
  {% endhint %}

#### Campos manuales incorrectos

El mapeo manual de registros solo es fiable si los campos elegidos para el mapeo manual crean una clave que sea a la vez estable y única. A continuación se muestran ejemplos de malas elecciones de campos.

Los siguientes ejemplos usan el objeto Contacto.

<table><thead><tr><th width="220">Campos seleccionados para la clave</th><th>Por qué estos campos son una mala elección</th></tr></thead><tbody><tr><td><code>Nombre</code> y <code>Ciudad</code></td><td>Aunque <code>Nombre</code> rara vez cambia, al combinarlo con <code>Ciudad</code> hace que la clave sea inestable, porque la ciudad de un contacto puede cambiar.</td></tr><tr><td><code>Cargo</code> y <code>Departamento</code></td><td>Esta combinación no es única: varios contactos pueden compartir el mismo cargo y departamento.</td></tr><tr><td><code>Nombre</code> y <code>Cumpleaños</code></td><td>Esta combinación parece única y estable, pero <code>Cumpleaños</code> a menudo está vacía al principio y se completa más tarde, lo que hace que la clave sea inestable.</td></tr></tbody></table>

## Escenarios de mapeo de registros

{% hint style="success" %}

#### Diseño de la plantilla

Objeto: **Contacto**

* Campo: **Nombre**
* Campo: **Correo electrónico**
* Campo: **Ciudad**
  {% endhint %}

Las tablas siguientes muestran los registros de origen y de destino, con las diferencias en negrita.

**Registros de Contacto de la org de origen**

<table><thead><tr><th width="200.3333740234375">ID</th><th>Nombre</th><th width="210">Correo electrónico</th><th>Ciudad</th></tr></thead><tbody><tr><td>001D000000kL4p1</td><td>Alice</td><td>alice@company.com</td><td><strong>Berlín</strong></td></tr><tr><td>001D000000kL4p2</td><td>Bob</td><td><strong>bobNew@company.com</strong></td><td>Londres</td></tr><tr><td>001D000000kL4p3</td><td>Charlie</td><td>charlie@company.com</td><td>París</td></tr><tr><td>001D000000kL4p4</td><td><strong>Dave</strong></td><td><strong>dave@company.com</strong></td><td><strong>Seattle</strong></td></tr></tbody></table>

**Registros de Contacto de la org de destino**

<table><thead><tr><th width="200.33331298828125">ID</th><th>Nombre</th><th width="210">Correo electrónico</th><th>Ciudad</th></tr></thead><tbody><tr><td>002D000000kL5p1</td><td>Alice</td><td>alice@company.com</td><td>Nueva York</td></tr><tr><td>002D000000kL5p2</td><td>Bob</td><td>bob@company.com</td><td>Londres</td></tr><tr><td>002D000000kL5p3</td><td>Charlie</td><td>charlie@company.com</td><td>París</td></tr></tbody></table>

### Migración de datos con mapeo automático de registros

#### Escenario exitoso

En este escenario, una migración anterior ya creó un mapeo automático entre las org de origen y de destino. La tabla siguiente muestra ese mapeo.

| Nombre de origen | ID de origen    | ID de destino   |
| ---------------- | --------------- | --------------- |
| Alice            | 001D000000kL4p1 | 002D000000kL5p1 |
| Bob              | 001D000000kL4p2 | 002D000000kL5p2 |
| Charlie          | 001D000000kL4p3 | 002D000000kL5p3 |

Cuando se ejecuta la migración, el mapeo automático de registros busca el ID de cada registro de origen en el mapeo existente. Los registros con un mapeo almacenado se actualizan en la org de destino, y los registros sin mapeo se insertan como nuevos registros. El diagrama y la tabla siguientes ilustran este proceso y las acciones resultantes en la org de destino.

<figure><img src="https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FaIMfSu7i6GDBlAQuOiXT%2F3_VEID%20Record%20Mapping%20Example.png?alt=media&amp;token=0db00575-fe39-412d-972b-ad5857d23307" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="179.66668701171875">ID</th><th>Nombre</th><th width="210">Correo electrónico</th><th>Ciudad</th><th>Operación</th></tr></thead><tbody><tr><td>002D000000kL5p1</td><td>Alice</td><td>alice@company.com</td><td><strong>Berlín</strong></td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p2</td><td>Bob</td><td><strong>bobNew@company.com</strong></td><td>Londres</td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p3</td><td>Charlie</td><td>charlie@company.com</td><td>París</td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p4</td><td><strong>Dave</strong></td><td><strong>dave@company.com</strong></td><td><strong>Seattle</strong></td><td>INSERTAR</td></tr></tbody></table>

Luego se agrega un nuevo mapeo automático para el registro recién insertado:

| Nombre de origen | ID de origen    | ID de destino   |
| ---------------- | --------------- | --------------- |
| Dave             | 001D000000kL4p4 | 002D000000kL5p4 |

#### Escenario fallido

En este escenario, una migración anterior ya había creado un mapeo automático entre las org de origen y de destino; sin embargo, en ese momento solo se habían mapeado dos registros. La tabla siguiente muestra ese mapeo.

| Nombre de origen | ID de origen    | ID de destino   |
| ---------------- | --------------- | --------------- |
| Alice            | 001D000000kL4p1 | 002D000000kL5p1 |
| Bob              | 001D000000kL4p2 | 002D000000kL5p2 |

Antes de la siguiente migración, una herramienta externa agrega un registro de Charlie tanto a la org de origen como a la de destino. Cuando se ejecuta la migración, Automático busca el ID de cada registro de origen en el mapeo existente, actualizando los registros de destino que ya tienen un mapeo e insertando nuevos registros para los que no lo tienen.

El diagrama y la tabla siguientes ilustran este proceso y las acciones resultantes en la org de destino. Como no existe un mapeo automático para Charlie, la migración inserta un registro duplicado, mostrado en la fila adicional insertada.

<figure><img src="https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FyGETlsSHDtegUt29M7Lp%2F4_VEID%20Record%20Mapping%20Example%20-%20Failed.png?alt=media&amp;token=b651fbc8-e7d2-4747-be3c-0b9670ce2624" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="180.33331298828125">ID</th><th>Nombre</th><th width="209.666748046875">Correo electrónico</th><th>Ciudad</th><th>Operación</th></tr></thead><tbody><tr><td>002D000000kL5p1</td><td>Alice</td><td>alice@company.com</td><td><strong>Berlín</strong></td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p2</td><td>Bob</td><td><strong>bobNew@company.com</strong></td><td>Londres</td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p3</td><td>Charlie</td><td>charlie@company.com</td><td>París</td><td></td></tr><tr><td><mark style="color:$danger;"><strong>002D000000kL5p4</strong></mark></td><td><mark style="color:$danger;"><strong>Charlie</strong></mark></td><td><mark style="color:$danger;"><strong>charlie@company.com</strong></mark></td><td><mark style="color:$danger;"><strong>París</strong></mark></td><td><mark style="color:$danger;"><strong>INSERTAR</strong></mark></td></tr><tr><td>002D000000kL5p5</td><td><strong>Dave</strong></td><td><strong>dave@company.com</strong></td><td><strong>Seattle</strong></td><td>INSERTAR</td></tr></tbody></table>

Luego se agregan dos nuevos mapeos automáticos para los registros recién insertados:

| Nombre de origen | ID de origen    | ID de destino   |
| ---------------- | --------------- | --------------- |
| Charlie          | 001D000000kL4p3 | 002D000000kL5p4 |
| Dave             | 001D000000kL4p4 | 002D000000kL5p5 |

{% hint style="warning" %}
La migración falló porque una herramienta externa agregó a Charlie tanto a la org de origen como a la de destino sin crear un mapeo automático entre ambas. Al no existir un mapeo para Charlie, Automático insertó un nuevo registro en la org de destino en lugar de actualizar el existente, lo que provocó un duplicado.
{% endhint %}

### Migración de datos con mapeo manual de registros

#### Escenario exitoso

Clave de campo manual: `Nombre`

En este escenario, el mapeo manual de registros compara registros usando la clave configurada. Con `Nombre` como clave manual, el sistema genera una clave para cada registro de origen y consulta la org de destino para buscar una coincidencia. Los registros que devuelven exactamente una coincidencia se actualizan, y los que no devuelven ninguna se insertan. El diagrama y la tabla siguientes ilustran el proceso de mapeo manual de registros y las acciones resultantes en la org de destino.

<figure><img src="https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FeN0MzVUkDxLyb4oaEEok%2F1_CEID%20Record%20Mapping%20Example.png?alt=media&amp;token=6a6b92f2-6cde-457c-90cf-bca80edd8701" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="180.3333740234375">ID</th><th>Nombre</th><th width="209.6666259765625">Correo electrónico</th><th>Ciudad</th><th>Operación</th></tr></thead><tbody><tr><td>002D000000kL5p1</td><td>Alice</td><td>alice@company.com</td><td><strong>Berlín</strong></td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p2</td><td>Bob</td><td><strong>bobNew@company.com</strong></td><td>Londres</td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p3</td><td>Charlie</td><td>charlie@company.com</td><td>París</td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p4</td><td><strong>Dave</strong></td><td><strong>dave@company.com</strong></td><td><strong>Seattle</strong></td><td>INSERTAR</td></tr></tbody></table>

#### Escenario fallido

Clave de campo manual: `Nombre` + `Correo electrónico`

En este escenario, el mapeo manual de registros usa `Nombre` + `Correo electrónico` como la clave configurada. Para cada registro de origen, el sistema genera esta clave y consulta la org de destino para buscar una coincidencia. Como el registro de origen de Bob tiene un nuevo valor en uno de los campos clave, ya no coincide con su registro en la org de destino.

Los registros que devuelven exactamente una coincidencia se actualizan, y los registros sin coincidencia se insertan. El diagrama y la explicación siguientes muestran el proceso de mapeo manual de registros y las acciones resultantes en la org de destino. Como la clave de origen de Bob ya no coincide con su registro de destino existente, la migración inserta un duplicado, mostrado en la fila adicional insertada.

<figure><img src="https://626430605-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvaxzColPOlNbsq4imqpd%2Fuploads%2FOSRDO54tfxS7GfSUJKvq%2F2_CEID%20Record%20Mapping%20Example%20-%20Failed.png?alt=media&amp;token=f1fdb64e-0820-4337-94c4-cdea43f3633b" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="180.33331298828125">ID</th><th>Nombre</th><th width="210.3333740234375">Correo electrónico</th><th>Ciudad</th><th>Operación</th></tr></thead><tbody><tr><td>002D000000kL5p1</td><td>Alice</td><td>alice@company.com</td><td><strong>Berlín</strong></td><td>ACTUALIZAR</td></tr><tr><td>002D000000kL5p2</td><td>Bob</td><td>bob@company.com</td><td>Londres</td><td></td></tr><tr><td>002D000000kL5p3</td><td>Charlie</td><td>charlie@company.com</td><td>París</td><td>ACTUALIZAR</td></tr><tr><td><mark style="color:$danger;"><strong>002D000000kL5p4</strong></mark></td><td><mark style="color:$danger;"><strong>Bob</strong></mark></td><td><mark style="color:$danger;"><strong>bobNew@company.com</strong></mark></td><td><mark style="color:$danger;"><strong>Londres</strong></mark></td><td><mark style="color:$danger;"><strong>INSERTAR</strong></mark></td></tr><tr><td>002D000000kL5p5</td><td><strong>Dave</strong></td><td><strong>dave@company.com</strong></td><td><strong>Seattle</strong></td><td>INSERTAR</td></tr></tbody></table>

{% hint style="warning" %}
La migración falló porque el valor de Bob `Correo electrónico` cambió en la org de origen después de que se creara el registro de destino. Como `Correo electrónico` forma parte de la clave manual, la nueva clave generada a partir del registro de origen (`Bob` + `bobNew@company.com`) ya no coincidía con la clave del registro de destino existente (`Bob` + `bob@company.com`). Al no encontrar coincidencia, Manual insertó un nuevo registro en la org de destino en lugar de actualizar el existente, lo que dio lugar a un duplicado.
{% endhint %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.flosum.com/data-migrator/data-migrator-es/plantillas/migracion/como-funciona-el-mapeo-de-registros.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
