Flow bundles: portable export/import of automation
A real Foldr workflow is rarely just one piece of configuration. A typical “invoice processing” setup might involve a dedicated SMB share, a clutch of custom fields (vendor, total, due date, status), a Captur template that extracts values from your supplier’s invoice layout, a saved search (“everything overdue”), and a mashlet that emails finance when a new invoice lands.
Migrating that across instances by hand (appliance-to-appliance, demo-to-prod, or one customer to another) is painful and error-prone. Flow bundles package the whole thing as a portable archive: build it once, export it, import it elsewhere, and Foldr re-creates every related object with the relationships intact.
What goes into a bundle
| Asset type | Carries |
|---|---|
| Shares | The share configuration (storage address, permissions, sharing flags, search/captur settings). The actual storage backend is not migrated; bundle imports point at a path on the destination and the admin supplies the credentials to access it. |
| Custom fields | Field name, type, allowed values, permissions, source script (if any). |
| Saved searches | The query, the column set, the per-tenant scope. |
| Captur templates | Zone definitions, anchor matching rules, target field mappings. |
| Mashlets (and event mashlets, schedules, hooks) | The script body, configuration, trigger bindings, file_source for scheduled mashlets. |
Cross-references between assets are preserved. A mashlet that targets a specific share, or a saved search that references a custom field, will still resolve correctly after import.
Where it lives
Foldr Settings > Flows. The page lists every asset that can be bundled, lets you select what to include, and shows you the cross-references between selected items so you don’t accidentally export a mashlet whose target share you didn’t pick.
Exporting a bundle
- Open Foldr Settings > Flows and click + New bundle.
- Pick the assets to include from the Inventory list. Each section (Shares, Mashlets, Captur Templates, Saved Searches, Custom Fields) is selectable independently.
- Foldr highlights cross-references. If you’ve picked a mashlet that targets a share you haven’t selected, you’ll see a warning. Either include the share too, or accept that the mashlet’s share binding will need to be resolved at import time.
- Click Export. Foldr writes a versioned bundle archive (a manifest plus per-entity JSON files) and downloads it.
The bundle is a plain archive. No encryption, no provider-specific binary blobs. You can inspect it, version-control it, or drop it into a deployment system.
Importing a bundle (plan and apply)
Imports go through a two-step plan-and-apply flow rather than blindly merging. The admin sees what would happen before anything writes.
-
Upload the bundle. Foldr Settings > Flows > Import → drop the archive in.
-
Plan. Foldr reads the bundle’s manifest, compares each entity against what already exists on the destination tenant, and produces a plan:
- Create for entities that don’t exist locally. Straightforward additive.
- Conflict for entities whose name or UUID matches an existing local entity. The admin resolves each conflict: skip (leave local intact), overwrite (replace local with bundle’s version), or rename (import as a new entity with a different name).
- Merge for shares, where you can attach bundle-defined permissions and settings to an existing share rather than create a new one.
-
Apply. Once you’ve worked through the conflicts, click Apply. Foldr executes the plan transactionally. Either every selected change lands, or none do.
The apply step returns an outcome summary: which entities were created, merged, skipped, or failed. Failures are atomic. A partial apply doesn’t leave half-imported state.
Use cases
- Demo-to-prod handoff. Configure a workflow on a sandbox tenant, prove it out, then bundle and import on the customer’s production tenancy.
- Replicating between environments. Keep dev / staging / prod aligned by versioning bundles in git and applying them through a CI step.
- Distributing reusable workflows. Build an “invoice intake” or “expense receipts” bundle once, share it across customers, each adapts the share path and credentials at import time.
- Backing up automation config. A periodic export captures the current automation state in a form that’s diffable, restoreable, and decoupled from database backups.
Tier and licence requirements
The Flows surface itself ships with the platform; what’s bundleable depends on what the destination tenancy is licensed for. A bundle that contains Captur templates can only be applied on a tenant with a Captur licence; a bundle with mashlets only applies on a tenant with a MaSH licence. The plan step surfaces missing-licence conflicts before apply.
Schema versioning
Each bundle carries a schema_version in its manifest. Import will refuse a bundle whose schema version is newer than the destination Foldr knows about (newer-source-than-destination). The schema is forward-compatible within a major Foldr version. Bundles produced on minor-version upgrades stay importable on the same major.
See also
- Custom Fields. What’s bundled when you include fields
- Captur. The templates that ride along
- MaSH introduction. Mashlets and their triggers, all bundleable
- Presenting Storage to Users. Share configuration that bundles export and import