Hay un escenario muy habitual que es cuando se requiere actualizar una columna de SharePoint de un elemento con Power Automate, vamos a ver que con una petición HTTP es simple.

Dentro de Power Automate dispones de varios conectores entre ellos tenemos uno de los reyes que es SharePoint.
Hay varias acciones ya predefinidas como el actualizar elemento que no tiene porque estar mal esta acción pero nos puede pedir que tratemos las demás columnas.

Problema de actualizar elemento
Como ya te he comentado esta acción que es muy fácil de usar porque ya viene preconfigurado, pero nos podemos encontrar los siguientes problemas:
- Verificar que las columnas estén vacías (Algunas opción vienen rellenas por defecto).
- Los campos obligatorios pide tratarlos.
Para los campos obligatorios es cierto que con pasarle el parámetro nuevamente ya no debería de haber problema.

¿ Pero que pasa si el flujo estuvo en espera ? (Por ejemplo en una aprobación) y durante la espera cambio de valor.
Pues que estaría rescatando un valor antiguo de cuando se inicio el flujo.
Así que para evitarnos estos problemas y hacer las cosas bien te propongo lo siguiente.
Ahora para actualizar de verdad una columna no hay ninguna acción especifica, entonces tienes que usar una petición http de SharePoint (Peticiones a SharePoint personalizadas).
Para ello dispones de la siguiente acción ‘Send an HTTP request to SharePoint’ (Si lo tienes en inglés).

Esta petición te sirve para todos los casos.
Hay que rellenar el sitio de SharePoint, y el método es de tipo ‘POST’, ahora viene lo interesante:
En la Uri que es el tipo de petición seria lo siguiente:
_api/web/lists/GetByTitle('MiLista')/items(1)/validateUpdateListItem
Debes sustituir los valores en amarillo por el nombre de tu lista y el ID de tu elemento de SharePoint.
Nota: Recuerda que si el nombre de tu lista en un futuro cambia fallará la petición.
En el Curso de Peticiones HTTP SharePoint con Power Automate te enseño a hacerlo por el ID de la lista para que no tengas este problema y muchas mas cosas sobre estas peticiones.
Nota 2: El numero no es necesario que sea fijo, le puedes pasar cualquier valor numérico que hayas rescatado o el propio Trigger (Lanzador) si te lo da.
Para actualizar una columna de texto una de opción (de un valor) es lo mismo.
En el Body le especificas la/s columna/s a tratar:
{
"formValues":[
{
"FieldName":"MiColumna",
"FieldValue":"MiValorNuevo"
}
]
}
Nota: Recuerda que el valor de FieldName va el nombre interno de la columna de SharePoint.
Y te habrá quedado algo parecido a esto:

Actualizar columna de valor múltiple
Para actualizar este tipo de columna es bastante sencillo y seria seguir los mismos pasos, pero cambia los valores del body en FieldValue:
{
"formValues":[
{
"FieldName":"MiColumna",
"FieldValue":"Marketing;#Tecnología"
}
]
}
Arriba tienes la petición URI.
Actualizar columna de fecha en Power Automate
También debes prestar la atención en el atributo ‘FieldValue’ porque hay que seguir una serie de patrón y pasarle el formato indicado a la fecha.
{
"formValues":[
{
"FieldName":"MiColumna",
"FieldValue":"utcNow('dd/MM/yyyy')"
}
]
}
Nota: Recuerda que si dispone hora quedaría algo así:
{
"formValues":[
{
"FieldName":"MiColumna",
"FieldValue":"utcNow('dd/MM/yyyy HH:mm')"
}
]
}
Te muestro un ejemplo a continuación:

Actualizar columna de tipo persona en Power Automate
Como en los demás casos hay que seguir los mismos pasos y prestar atención al ‘FieldValue’ esta acción es mas especial.
{
"formValues":[
{
"FieldName":"MiColumna",
"FieldValue":"[{'Key':'i:0#.f|membership|hola@dominio.com'}]"
}
]
}
Como ves aquí ya encontramos algo mas especial, le estas pasando el id del usuario, lo que esta señalado en amarillo su dominio de usuario, ojo no tiene porque ser el e-mail es el dominio de usuario que lo puedes ver en office.com.
Normalmente coincide con el de e-mail pero pueden ser distintos su e-mail de Outlook y su dominio de usuario.
Te muestro un ejemplo a continuación

Recuerda que la petición URI la tienes arriba al principio del post
Para actualizar mas de una columna es muy sencillo, lo hare con 2 columnas de tipo texto.
{
"formValues":[
{
"FieldName":"MiColumna",
"FieldValue":"MiValorNuevo"
},
"FieldName":"MiColumna2",
"FieldValue":"MiValorNuevo"
}
]
}
Conclusiones
Este tipo de peticiones personalizadas es muy útil para realizar acciones especificas y no hacer otras de mas como la acción de ‘actualizar elemento’ que pide resolver todas las columnas.
Quiero saber más
Si quieres formarte y ser un crack en Power Automate empieza por las bases con el curso de Power Automate desde cero.
Te invito a pasearte por la escuela donde tendrás múltiples cursos de SharePoint, Power Automate y Power Apps para dominar estas herramientas.
Muchas gracias por la información, este post ha resultado muy útil. Lo he ido probando y solamente quería advertir de un pequeño error que me ha tomado un tiempo corregir: en el código para actualizar múltiples columnas faltaría el símbolo de apertura { para el segundo ítem. Un saludo.
Hola, muchas gracias por las explicaciones.
Tengo una lista de sharepoint con columnas con valores de búsqueda en otra lista.
¿Cómo puedo actualizar estas columnas con petición http de SharePoint?
Gracias de antemano.
Saludos