Manage Eddy core workflow templates in the eddy-templates repository. Covers adding, editing, and validating template JSON files, running the build script, and understanding the manifest structure. Use when working with template files, the manifest, or the build script in the eddy-templates repo.
This repo contains curated workflow templates available to all Eddy users from the "New Workflow" form. The Eddy API fetches from this repo at runtime to serve templates.
eddy-templates/
manifest.json # Auto-generated — do NOT edit by hand
scripts/
build-manifest.js # Generates manifest.json from template files
templates/
simple-onboarding.json # One file per template
Each template file is a standard EddyWorkflowExportT — the same JSON format produced by Eddy's workflow export feature. Key top-level fields:
version — export format version (currently 1)workflow — workflow definition including name, description, stylepages — stages in the workflow (with title, node.position, is_starting, is_end)sections — page sectionsblocks — input blocks, content blocks, etc.blockOptions — options for select/checklist blockspageTransitions — edges between pages (source_id, target_id, optional rule)workflowRoles — role definitionsstageRoleAssignments — which roles can access which stagessheets — associated sheet definitionscolumns — sheet column definitionsTemplates are created by exporting a real workflow from the Eddy app — do not hand-author template JSON files.
templates/ — the filename becomes the slug (e.g. content-approval.json → slug content-approval)workflow.name and workflow.description are set in the JSONnode scripts/build-manifest.jsmanifest.jsonTo update a template's name, description, or other metadata, edit the relevant field in the template JSON file directly, then rebuild the manifest:
node scripts/build-manifest.js
For structural changes (adding pages, blocks, transitions), re-export the workflow from Eddy and replace the file.
scripts/build-manifest.js auto-generates manifest.json by scanning templates/ for JSON files. For each template it:
workflow.name and description from workflow.description1WorkflowMiniGraph rendering:
pages: id, name, position, is_start_stage, is_end_stagepageTransitions: source_id, target_idorientation: from workflow.style.orientation (defaults to "vertical")templates/<filename>.jsonAlways run the build script after any template change. The manifest must stay in sync with the template files.
employee-onboarding.json)The Eddy API (in the main app/ codebase) fetches from this repo at runtime:
GET /api/workflows/templates — fetches manifest.json, returns template list with preview data (no full JSON)GET /api/workflows/templates/:slug — fetches the full template JSON by slugPOST /api/workflows/import to hydrate it into the user's workspaceBoth fetches are cached server-side with a TTL and stale-on-failure fallback. See app/plans/core-templates-system.md for the full architecture.
manifest.json by hand — it is always generated by the build scriptmain are served to users after the API cache TTL expiresschemaVersion: 1; only increment when the payload contract changes