🟢 Introducción

Las columnas Lookup en Dataverse permiten crear relaciones entre tablas, como “Cuenta → Contacto principal”, “Orden → Cliente”, “Empleado → Departamento”, etc.

Cuando automatizamos procesos con Power Automate, una de las tareas más comunes es actualizar un registro y asignarle un valor para un lookup. Aunque parece sencillo, los lookups tienen su estructura particular y requieren un formato correctamente construido o conector adecuado.

Hoy aprenderás cómo actualizar cualquier columna Lookup en Dataverse desde Power Automate, con ejemplos reales y mejores prácticas.

🧠 Qué es / para qué sirve

Un lookup es una columna que apunta a un registro en otra tabla.
Ejemplos típicos:

  • Account (lookup) en la tabla Contact
  • Primary Contact en la tabla Account
  • Regarding en Activities
  • Owner (aunque es especial)

Actualizar un lookup desde Power Automate sirve para:

  • Asignar un cliente a una orden.
  • Relacionar un contacto a una cuenta.
  • Conectar un ticket de soporte con un caso padre.
  • Cambiar el dueño de un registro.

El truco está en entender que Dataverse espera una referencia al GUID del registro, no texto.

🧩 Sintaxis (conceptual)

La estructura básica que Dataverse necesita para un lookup es:

/<pluralName>(<GUID>)

Ejemplo:

"customerid_account@odata.bind":"/accounts(kj12b3-1ppj-001d-1poi3-okj31oj)"

Pero Power Automate lo hace más sencillo con el conector “Update row”.

💻 Ejemplos con código

🔹 Ejemplo 1 — Actualizar un lookup usando el conector «Update a row»

Supongamos:

Tabla: Orders
Lookup: Customer → apunta a tabla Accounts

En Power Automate:

  1. Agrega acción: Dataverse → Update a row
  2. Selecciona:
    • Table: Orders
    • Row ID: [OrderID]
  3. En el campo Customer, selecciona:
    → dynamic content → Account (GUID)

El campo espera el GUID del registro, no el nombre.

🔹 Ejemplo 2 — Asignar un contacto como Cliente en una orden

Lookup de tipo «Customer», puede aceptar Account o Contact.

Si vas a asignar un Contact:

customerid_contact@odata.bind

En Power Automate NO necesitas escribir esto manualmente.

Solo debes mandar:

Campo: Customer
Valor: Contact GUID
→ Power Automate detecta automáticamente el tipo.

🔹 Ejemplo 3 — Usando el conector «Perform a bound action» (casos avanzados)

Si necesitas actualizar un lookup especial como Owner, puedes usar:

ownerid@odata.bind: "/systemusers(GUID)"

🔹 Ejemplo 4 — Usando HTTP (cuando necesitas control total)

PATCH https://yourorg.api.crm.dynamics.com/api/data/v9.2/orders(ORDER_GUID)
Content-Type: application/json

{
  "customerid_account@odata.bind": "/accounts(ACCOUNT_GUID)"
}

Esto es útil cuando:

  • Necesitas actualizar múltiples lookups de forma masiva.
  • Quieres optimizar llamadas API.
  • Necesitas manejar columnas lookup que no aparecen en el diseñador del conector.

🧱 Buenas prácticas

✅ Usa Update a row siempre que sea posible (menos errores).
✅ Si el lookup tiene opciones múltiples (Customer lookup), asegúrate de enviar el tipo correcto.
✅ Usa el GUID directamente, nunca el nombre del registro.
✅ Verifica el Schema name del lookup antes de usarlo en la versión HTTP.
✅ Asegúrate de que el registro relacionado existe antes de asignarlo.
✅ Usa “List rows” con filtro para obtener el GUID del registro si no lo tienes.

⚠️ Errores comunes

🚫 Enviar texto (“Contoso Ltd.”) en lugar del GUID.
🚫 Usar el nombre singular en @odata.bind en vez del plural → rompe la llamada.
🚫 No activar el campo en el formulario del conector, por lo que no se muestra.
🚫 Olvidar que algunos lookups son Customer-type, no simples.
🚫 Enviar un GUID de tabla equivocada (ej. enviar un Contact donde espera un Account).

🔄 Variantes o alternativas

  • Relaciones N:N: en vez de lookup, se deben usar la tabla intermedia (Associate/Dissociate).
  • Owner (Especial): requiere usar /systemusers() o /teams().
  • Rollup columns: no pueden ser actualizadas manualmente.
  • Flujos automáticos: a veces es mejor actualizar el lookup directamente en Dataverse con reglas de negocio o plugins.

Deja un comentario

¡Gracias por tu mensaje!

Me pondré en contacto tan rápido como pueda.

Descubre más desde Power Platform En Español

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo