Cuando trabajamos con varias bases de datos SQL, suele surgir una necesidad común:
construir un solo flujo en Power Automate que sea capaz de consultar dinámicamente cualquiera de esas bases de datos cuando tienen esquemas idénticos. Imaginemos una red de farmacias, donde cada una tiene su base de datos con un mismo ERP y un servidor on premises.
La forma estándar de hacerlo (y la más común al principio) es utilizar un switch, con una acción por cada posible origen de datos, creando una referencia conexión por cada uno de los servidores.
Pero esto no escala bien…

Si tienes 10, 20 o más bases de datos, el flujo se vuelve inmanejable y cada nuevo origen adicional implica editar el flujo manualmente.
Así que… ¿Sabías que es posible actualizar una referencia de conexión dinámicamente desde Power Automate?
En esta guía te muestro cómo construir una solución parametrizable y escalable usando referencias de conexión y una tabla auxiliar. ¡Vamos paso a paso!
Antes de comenzar, me gustaría aclarar algunos conceptos clave, la diferencia entre Conexión y Referencia de Conexión:
- Conexión: es el vínculo real hacia un servicio o fuente de datos (como SQL Server, SharePoint, etc.) con sus credenciales y configuración. Se crea desde “Conexiones” en PowerApps.
- Referencia de conexión: es un componente dentro de una solución que actúa como “puente” hacia una conexión concreta. Permite desacoplar el flujo de la conexión específica, haciendo posible que sea reutilizable, exportable y parametrizable.

Ahora sí, comencemos:
PASO 1: Crear la referencia de conexión
Ve a tu solución de PowerApps y pulsa en New → More → Connection Reference.

Podrás elegir entre cientos de conectores, en mi caso he escogido SQL Server, he seleccionado la puerta de enlace y he escrito mis credenciales. Ahora ya tenemos nuestra referencia de conexión y conexión creadas. Esta será la única Referencia de Conexión que necesitaremos de aquí en adelante.
PASO 2: Crear una tabla auxiliar de configuración
En Dataverse o SharePoint (donde prefieras), crea una tabla llamada, por ejemplo, “Conexiones SQL” con las siguientes columnas:
| Connection Id | Pharmacy Id |
| (guid de la conexión) | (id de la farmacia u origen de datos que consultaremos) |
Esta será la tabla que tendremos que mantener en el futuro, cada vez que queramos añadir un nuevo origen de datos, tendremos que crear una nueva conexión (sí conexión, no referencia de conexión) en el entorno y asociarla con alguna farmacia como un nuevo registro en esta tabla. En mi caso incluso me he creado una aplicación en PowerApps: Pharmacy Connections Manager.

PASO 3: Obtener las conexiones del entorno
Ahora bien, ¿cómo obtengo las conexiones del entorno? Para ello, existe un conector de Power Automate llamado Power Apps for Admins que nos va a permitir acceder a las conexiones presentes en el entorno y su status:

Con este flujo, accedemos a las conexiones presentes en el entorno, filtrando por “ConnectionType” = “sqlAuthentication”.
Los parámetros que se han incluido en el flujo de Power Automate son los siguientes:
Acción: Get Connections As Admin
Parámetro: Environment Name
workflow()?['tags']?['environmentName']
Acción: Seleccionar
Parámetro: Map
{
"ConnectionId": @{item()?['name']},
"Status": @{item()?['properties']?['statuses']?[0]?['status']},
"ConnectionName": @{item()?['properties']?['displayName']},
"ConnectionType": @{item()?['properties']?['connectionParametersSet']?['name']}
}
Ahora que ya tenemos las conexiones, seremos capaces de incluirlas en nuestra tabla “Conexiones SQL”, para poder consultarla desde el flujo de consultas.
PASO 4: Configurar el flujo con referencia dinámica
1. Crear el flujo de Power Automate dentro de la solución con el desencadenador que prefieras, en mi caso utilizaré el desencadenador HTTP. A través del cuerpo de la llamada HTTP le pasaremos el identificador de la farmacia (origen de datos) que queramos consultar.
2. Añade una acción “Compose” para recoger el identificador de la farmacia que utilizaremos posteriormente para obtener el “Connection id”.

triggerBody()?['pharmacy_id']
3. Añade una acción “List Rows” con el conector de Dataverse para consultar la tabla auxiliar de configuración y obtener el connection id:

outputs('GetPharmacyConnectionId')?['body/value']?[0]?['eu_connectionid']
4. Ahora que ya tenemos el identificador de la conexión en el entorno, seremos capaces de actualizar la referencia de conexión con dicho identificador. Para ello, existe en Dataverse una tabla llamada “connectionreference”. En dicha tabla se listan todas las referencias de conexión presentes en el entorno y contiene una columna llamada “Connection Id” que recoge la conexión asociada con la referencia de conexión:

Tan solo tendremos que actualizar este campo para actualizar la conexión de la referencia de conexión. Para ello, utilizaremos la acción del conector de Dataverse “Update a row”:

En nuestro caso, guardamos el id de la referencia de conexión en una variable de entorno:
parameters('SQLFarmaticConnectionReferenceId (eu_SQLFarmaticConnectionReferenceId)')
Y pasamos el resultado de la acción “Compose” para actualizar el campo “ConnectionId”:
outputs('ConnectionId')
5. Ahora que ya hemos actualizado la referencia de conexión, tan solo tenemos que lanzar la consulta que necesitemos a la base de datos SQL, pudiendo parametrizar la llamada según el origen de datos necesitemos. Simplemente configura la acción utilizando la referencia de conexión que hemos creado anteriormente:




Leave a comment