Hola a todos,
Hace unos días posteé: "estaba trabajando en uno de mis flujos en Power Automate Desktop Free, al intentar guardarlo recibí un error de Onedrive ("Acceso Denegado"). Intenté guardarlo varias veces y al no conseguirlo decidí salir de Onedrive y volver a loguearme, al hacerlo todos mis flujos habían desaparecido.
He estado buscando por la comunidad pero no encuentro ninguna solución"
Proceso para Recuperar Flujos en Power Automate desde OneDrive
Este es mi método (si quieres ver un video de como hacerlo puedes hacerlo en https://youtu.be/8UZdClDsQcs
- Ubicación inicial de los archivos
- En el Explorador de archivos o el navegador, ve a la carpeta de tu OneDrive donde se guardan en local los archivos de los flujos. En mi caso la ruta es OneDrive\apps\Graphicos pero puede variar según la configuración: OneDrive\apps\graph o OneDrive\aplicaciones\graph o OneDrive\aplications\power automate…)
- Esta carpeta debería contener tus flujos perdidos los cuales se componen de 2 archivos cada uno, uno de ellos sin extensión y el otro con extensión .meta.
- Crear un flujo nuevo
- Abre Power Automate Desktop, crea un flujo nuevo (puede estar vacío) y guárdalo. Esto generará dos nuevos archivos (uno sin extensión y otro con la extensión .meta.
- Localiza estos 2 archivos.

3. Preparar el archivo .meta
- Edita el archivo .meta recién creado usando el Bloc de notas.
- Este archivo está en formato Base64, así que deberás decodificarlo.
- Copia el contenido y decodifícalo en base64decode.org. (en mi caso y por comodidad, tengo abiertas dos pestañas de esta página, una para decodificador y otra para codificar)
- Decodifica y copia es resultado descodificado (si quieres puedes ir a la pestaña donde se codificará al final y pegarlo para tenerlo preparado y modificarlo cuando obtengamos el cTag correcto)
- También pega el resultado decodificado en Excel, Word, o cualquier lugar donde puedas verlo fácilmente; luego lo compararemos con uno de los flujos que quieres recuperar.
- En mi caso, el archivo una vez decodificado tiene este valor: {"id":"fb30b571-9f62-40de-a575-e7d299c4d547","name":"RESTORE","description":null,"projectCTag":"\"c:{ADAAE994-77A7-4A34-9454-E10394D6539E},1\""}
4. Comparar el archivo .meta del flujo nuevo y del flujo a recuperar
- Ahora edita el archivo .meta de uno del flujo a recuperar con Notepad (no lo cierres porque lo necesitaremos después!) y también decodifícalo en la misma forma que hicimos el anterior.
- Copia el resultado decodificado y pégalo dónde habías pegado la decodificación del flujo anterior (el nuevo) para poder compararlos.
- En mi caso el valor de este archivo era: {"id":"9e92e9ce-37bd-4201-ad4b-a826b05ac474","name":"EXTAE DATOS Informa.es","description":"El flujo pide que se introduzca una URL de la página https://www.informa.es/directorio-empresas (p.e.: https://www.informa.es/directorio-empresas/Localidad_ALCAZAR-SAN-JUAN-CIUDAD-REAL.html), recorre todas las páginas del listado y extrae los datos en una hoja de excel","projectCTag":"aYzpGQjZDQ0E3NTQwN0EyNUFCITgwMzYuMjYw"}
- Colocados ambos resultados decodificados uno junto al otro se observan las diferencias (en este caso he marcado en el nuevo las diferencias en rojo, obviamente la cadena intermedia cambiará por cada archivo, también habrá que cambiarla pero primero hay que identificarla).
-
NUEVO ARCHIVO .met |
ARCHIVO .meta DEL FLUJO A RECUPERAR |
{"id":"fb30b571-9f62-40de-a575-e7d299c4d547","name":"RESTORE","description":null,"projectCTag":"\"c:{ADAAE994-77A7-4A34-9454-E10394D6539E},1\""} |
{"id":"9e92e9ce-37bd-4201-ad4b-a826b05ac474","name":"EXTAE DATOS Informa.es","description":"El flujo pide que se introduzca una URL de la página https://www.informa.es/directorio-empresas (p.e.: https://www.informa.es/directorio-empresas/Localidad_ALCAZAR-SAN-JUAN-CIUDAD-REAL.html), recorre todas las páginas del listado y extrae los datos en una hoja de excel","projectCTag":"aYzpGQjZDQ0E3NTQwN0EyNUFCITgwMzYuMjYw"} |
- Nota importante: La parte que te interesa es la de projectCTag. Observa las diferencias en el formato, ya que tendrás que adaptar el flujo antiguo para que coincida con el formato del nuevo.
5. Copiar los archivos de flujo a la carpeta de OneDrive
- En el supuesto que los archivos del flujo a recuperar no lo tuvieras en la carpeta de OneDrive por cualquier motivo, cópialo en ella, de tenerlos ya en la esa carpeta puedes saltar este paso.
6. Preparar Fiddler para capturar el cTag correcto
- Abre Fiddler Classic y aplica un filtro para que solo muestre URLs que contengan v1.0. Esto te facilitará encontrar la URL de actualización.
- Vuelve a Power Automate Desktop y selecciona la opción ACTUALIZAR FLUJOS
7. Capturar el cTag del flujo desde Fiddler
- En Fiddler, en la ventana de la izquierda, busca la última actualización de graph.microsoft.com//v1.0/me/drive/approot/children y haz doble clic en ella
Nota: Si Fiddler no captura los paquetes recomiendo hacer check en “Capture HTTPS traffic” que está en opciones.
- Ajusta la vista del panel inferior derecho para mostrar el JSON de los valores.
- Si tienes muchos archivos, por comodidad te aconsejo que contraigas el árbol (en la parte de abajo tienes la opción)
- Ve navegando por los valores {} hasta encontrar el flujo cuyo name coincide con el flujo que quieres recuperar (ejemplo: 9e92e9ce-37bd-4201-ad4b-a826b05ac474). Cada valor {} se corresponde con un archivo, uno para el archivo sin extensión y otro para el archivo con extensión .meta, el que nos interesa es el que corresponde al archivo sin extensión.
- Una vez localizado el archivo podemos ver el valor cTag que será algo así: cTag="c:{56357189-14BC-4FEA-B82C-66E003CD3DF2},1" (si te fijas casi tiene el formato que nos interesa, pero no totalmente, por lo que realmente lo que nos interesa es la cadena central que marco en negrita)
8. Formatear el cTag para el archivo de recuperación
- Ajusta el cTag con el formato que obtuvimos el archivo nuevo pero con el código/cadena obtenida en Fiddler (ejemplo: "projectCTag":"\"c:{56357189-14BC-4FEA-B82C-66E003CD3DF2},1\""} en lugar del formato del flujo antiguo.
9. Codificar el archivo .meta del flujo a recuperar
- Copia el resultado de la descodificación del archivo .meta en la ventana que tengas preparada para la Codificación (Si en el paso 3 ya lo habías copiado ya tendrás esta parte lista)
- En el código a codificar sustituye la parte completa de projectCTag con la cadena que habíamos formateado en el punto 8
Importante: cuidado con espacios, saltos de línea, comillas o cualquier otra cosa que nos pudiese generar un código erróneo
- Vuelve a codificar el archivo en Base64
- Copia el resultado codificado.
10. Actualizar el archivo .meta del flujo
- Si no lo tenías abierto ya abre el archivo .meta del flujo a recuperar y reemplaza el contenido por el nuevo texto que acabamos de codificar en Base64.
11. Actualizar flujos en Power Automate
- Vuelve a Power Automate Desktop y selecciona la opción para actualizar los flujos.
- Si no hubo errores, el flujo debería aparecer y estar listo para ser usado.
Espero que este método pueda ayudar a toda la gente que haya perdido sus flujos por el error de Ondrive y si necesitáis ayuda no dudéis en pedirla
Saludos
How to restore all of the desktop flows in PAD? Please help
Process to Retrieve Flows in Power Automate from OneDrive
- Initial File Location
- In File Explorer or your browser, go to the folder on your OneDrive where the files for your flows are stored locally. In my case the route is OneDrive\apps\Graphics but it can vary depending on the configuration: OneDrive\apps\graph or OneDrive\applications\graph or OneDrive\applications\power automate...)
- This folder should contain your lost streams which are made up of 2 files each, one of them with no extension and the other with a .meta extension.
- Create a new flow
- Open Power Automate Desktop, create a new flow (it may be empty), and save it. This will generate two new files (one without an extension and one with the .meta extension.
- Locate these 2 files.
- Prepare the .meta file
- Edit the newly created .meta file using Notepad.
- This file is in Base64 format, so you'll need to decode it.
- Copy the content and code it into base64decode.org. (In my case and for convenience, I have two tabs open on this page, one with the decoder and the other with the encoder)
- Copy the decoded result into the tab where we will encode it later.
- Save the decoded result in Excel, Word, or anywhere you can easily see it; Then we'll compare it to one of the flows you want to recover.
- In my case, the file once decoded has this value: {"id":"fb30b571-9f62-40de-a575-e7d299c4d547","name":"RESTORE","description":null,"projectCTag":"\"c:{ADAAE994-77A7-4A34-9454-E10394D6539E},1\""}
- Compare the .meta file of the new stream and the stream to be recovered
- Edit the .meta file of one of the old flows you want to recover and decode it in the same way you did with the new flow.
- In my case the value of this file was: {"id":"9e92e9ce-37bd-4201-ad4b-a826b05ac474","name":"EXTAE DATA Informa.es","description":"The flow asks you to enter a URL of the https://www.informa.es/directorio-empresas page (e.g.: https://www.informa.es/directorio-empresas/Localidad_ALCAZAR-SAN-JUAN-CIUDAD-REAL.html), goes through all the pages of the list and extracts the data in an excel sheet","projectCTag":"aYzpGQjZDQ0E3NTQwN0EyNUFCITgwMzYuMjYw"}
- Place both decoded results next to each other and observe the differences (in this case I have marked the differences in red in the new file, obviously the intermediate string will change for each file, it will also have to be changed but first it must be identified).
NEW .met FILE |
.meta FILE OF THE FLOW TO BE RETRIEVED |
{"id":"fb30b571-9f62-40de-a575-e7d299c4d547","name":"RESTORE","description":null,"projectCTag":"\"c:{ADAAE994-77A7-4A34-9454-E10394D6539E},1\""} |
{"id":"9e92e9ce-37bd-4201-ad4b-a826b05ac474","name":"EXTAE DATA Informa.es","description":"The flow asks for a URL of the https://www.informa.es/directorio-empresas page (e.g.: https://www.informa.es/directorio-empresas/Localidad_ALCAZAR-SAN-JUAN-CIUDAD-REAL.html), goes through all the pages of the list and extracts the data in an excel sheet","projectCTag":"aYzpGQjZDQ0E3NTQwN0EyNUFCITgwMzYuMjYw"} |
Important note: The part you're interested in is the projectCTag part. Note the differences in formatting, as you'll need to adapt the old flow to match the new format.
- Copy the flow files to your OneDrive folder
- In the event that the files of the flow to be recovered were not in the OneDrive folder for any reason, copy it to it, if it is already in the folder, you can skip this step.
- Preparing Fiddler to capture the correct cTag
- Open Fiddler Classic and apply a filter to show only URLs containing v1.0. This will make it easier for you to find the update URL.
- Go back to Power Automate Desktop and select the option to refresh your flows.
- Capture the cTag of the flow from Fiddler
- In Fiddler, find the latest graph.microsoft.com//v1.0/me/drive/approot/children update and double-click it
- Adjust the view in the bottom right pane to show the JSON of the values.
- If there are many files in the folder, you can collapse the tree at the bottom, this will make it easier for you to find the necessary file
- Navigate through the {} values until you find the flow whose name matches the flow you want to recover (example: 9e92e9ce-37bd-4201-ad4b-a826b05ac474). Each value {} corresponds to a file, one for the file without extension and another for the file with .meta extension, the one we are interested in is the one that corresponds to the file without extension
- Once the file is located we can see the cTag value which will be something like this: cTag="c:{56357189-14BC-4FEA-B82C-66E003CD3DF2},1" (if you look closely it almost has the format we are interested in, although not exactly, so what we really need is the central string marked in bold)
- Note: If Fiddler does not capture the packets I recommend checking on "Capture HTTPS traffic" which is in options.
- Formatting the cTag for the Recovery File
- Adjust the cTag with the format we got the new file but with the code/string obtained in Fiddler (example: "projectCTag":"\"c:{56357189-14BC-4FEA-B82C-66E003CD3DF2},1\""} instead of the old flow format.
- Encode the .meta file of the stream to be retrieved
- Copy the result of the decoding of the .meta file into the window you have prepared for the Encoding (If you had already copied it in step 3 you will already have this part ready)
- In the code to be encoded, replace the entire projectCTag part with the string that we formatted in point 8
Important: beware of spaces, line breaks, quotation marks or anything else that could generate an erroneous code
- Re-encode the file in Base64
- Copy the encoded result.
- Update the flow's .meta file
- If you didn't have it open, open the. The goal of the flow to be retrieved and replaces the content with the new text that we have just encoded in Base64.
- Update flows in Power Automate
- Go back to Power Automate Desktop and select the option to refresh your flows.
- If there were no errors, the flow should appear and be ready to use.
Hope this solution is useful for everyone facing this problem!
Cheers!