Skip to content

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)

  1. Navigate to Voodflow → Workflows
  2. Open the workflow editor
  3. Use Export to download a JSON file

Bulk export (ZIP)

  1. Navigate to Voodflow → Workflows
  2. Select one or more workflows
  3. Use Export ZIP to download a .zip containing 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

json
{
  "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

  1. Navigate to Voodflow → Workflows
  2. Click Import Workflow (top-right button)
  3. Select the JSON file from your filesystem
  4. Voodflow will prefill the title and description from the JSON (if present)
  5. If the JSON contains a fingerprint that already exists in this installation, you will see a warning and you can choose how to proceed
  6. 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:

bash
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 → Production

Export 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:

php
// 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));
});

Voodflow Documentation.