Import & Export
Voodflow workflows are fully portable. You can export any workflow to a self-contained JSON file and import it into another Voodflow installation.
Exporting a Workflow
You can export workflows in two ways:
Single workflow (from the editor)
- Navigate to Voodflow → Workflows
- Open the workflow editor
- Use Export to download a JSON file
Bulk export (ZIP)
- Navigate to Voodflow → Workflows
- Select one or more workflows
- Use Export ZIP to download a
.zipcontaining one JSON file per workflow
The exported file contains:
- Workflow metadata (title, description, author)
- A stable workflow fingerprint (for duplicate detection across systems)
- All node definitions (type, position, configuration)
- All edge connections (source handle → target handle)
- Viewport information (canvas zoom / position)
Note: Credentials are not exported. Credential references are preserved as IDs, but the actual secrets remain in the source installation's encrypted store.
Export File Structure
{
"title": "Daily Report",
"author": "Jane Doe",
"description": "Send daily sales report via email",
"fingerprint": "4f0f0ed3-2c83-4e31-a47a-6a3c3f6fd3c1",
"nodes": [
{
"id": "node_uuid_1",
"type": "schedule_node",
"position": { "x": 100, "y": 200 },
"data": { "type": "daily", "time": "08:00" },
"style": null
}
],
"edges": [
{
"id": "edge_uuid_1",
"source": "node_uuid_1",
"target": "node_uuid_2",
"sourceHandle": "output",
"targetHandle": "input"
}
],
"viewport": { "x": 0, "y": 0, "zoom": 1 },
"exportedAt": "2026-04-15T16:12:00+00:00",
"voodflowVersion": "0.0.10"
}Filenames
- Single exports use a filename based on the workflow title (slugified), prefixed with the app name (slug), e.g.
my-app-daily-report.json. - ZIP exports include one file per workflow following the same convention.
Importing a Workflow
- Navigate to Voodflow → Workflows
- Click Import Workflow (top-right button)
- Select the JSON file from your filesystem
- Voodflow will prefill the title and description from the JSON (if present)
- If the JSON contains a fingerprint that already exists in this installation, you will see a warning and you can choose how to proceed
- Click Import
After import:
- The workflow is created in Draft status
- Nodes that referenced credentials will show a warning; you must re-link them to credentials in the new installation
- Model references (e.g.
App\Models\Order) must exist in the target application
Fingerprints and duplicate detection
The fingerprint field is a stable identifier stored in the workflow metadata. It is designed to detect duplicates when you import the same workflow JSON multiple times or move workflows across environments.
When importing a JSON:
- If the fingerprint does not exist in the current installation, import proceeds normally.
- If the fingerprint already exists, Voodflow warns you and you can either:
- Overwrite the existing workflow (replace nodes/edges with the imported definition), or
- Create a new workflow by changing the title while keeping overwrite disabled (a new fingerprint is generated for the imported workflow).
Version Compatibility
The voodflowVersion field indicates the Voodflow version that produced the export. Voodflow maintains backward compatibility within the same major version.
Importing a v1.x workflow into a v2.x installation may require a migration step — check the Changelog before upgrading.
Use Cases
Git-Based Workflow Management
Commit exported workflows to your repository:
mkdir workflows/
# Export from UI, then:
git add workflows/daily-report.json
git commit -m "feat: add daily sales report workflow"Environment Promotion
Local → Staging → ProductionExport from local, import into staging, test, then import into production.
Workflow Marketplace
Share workflows with the community or between internal teams as JSON files.
Backup Strategy
Schedule a periodic export of all workflows:
// In a scheduled Artisan command
\Voodflow\Voodflow\Models\Workflow::all()->each(function ($workflow) {
$export = app(\Voodflow\Voodflow\Services\WorkflowExporter::class)->export($workflow);
Storage::put("backups/workflows/{$workflow->id}.json", json_encode($export));
});