SoFloC is a service to copy a Power Automate Flows from a Power Platform Solution.
Power Platform does not provide an easy way to create a copy of a Power Automate (Flow) when it is inside a Solution. You can create a copy inside the platform, but you will never be able to add this copied Flow back to the Solution.
The option you end up having is recreating the whole Flow again or doing it manually.
SoFloC provides an easy solution to read the files on a Solution and update the version and create copies of the specified Flows.
You can use this NPM package directly or, even better, use the SoFloC desktop app to copy your Flows.
import { readFileSync, writeFileSync } from 'fs'
import { join } from 'path'
import { SoFloC } from 'sofloc'
async function main () {
const name = 'TestSolution_2_0_0_0.zip'
const path = join(__dirname, '_jest', name)
const file = readFileSync(path)
const soFloC = new SoFloC(file, name)
await soFloC.load()
console.log(`Current Solution version is: ${soFloC.version}`)
console.log(`Please select what Flow you want to clone:
- ${soFloC.workflows.map(wf => wf.name).join('\n - ')}`)
await soFloC.updateVersion('2.0.0.1')
await soFloC.copyFlow('f4910f26-8210-ec11-b6e6-002248842287', 'First Copy Flow')
await soFloC.copyFlow('0f48cba9-ef0c-ed11-82e4-000d3a64f6f2', 'Second Copy Flow')
await soFloC.copyFlow('0f48cba9-ef0c-ed11-82e4-000d3a64f6f2', 'Third Copy Flow')
const newPath = join(__dirname, soFloC.name)
writeFileSync(newPath, soFloC.data, 'base64')
console.log('done')
}
main()