Design a Use Case once — reuse it everywhere. Overcut lets you export any existing Use Case as a portable JSON artifact and import that artifact into another project or workspace.

Export

Save the current Use Case as a .json file on your computer.

Import

Bring a Use Case .json file into Overcut, map its agents, and start iterating.
The feature is available on all plans. You need the workflow.view permission to export and workflow.create to import.

Export a Use Case

1

Open the Use Case in the Builder

Navigate to Use Cases and select a Use Case.
2

Click the Export Button

In the builder top-bar, click the Export icon. Overcut immediately downloads a file named {{use-case-name}}.json.

Import a Use Case

1

Start the Import

In an empty or existing project, open any Use Case in the Builder (or create a new one). Click the Import icon in the top-bar and select the .json file you exported earlier.
2

Review Details & Rename (optional)

Overcut parses the file and opens the Import Use Case dialog. The Use Case Name field is pre-filled from the file; change it if you’d like.
3

Map Agents

Every agent referenced in the file must be mapped to an existing agent in the current project. Use the dropdown for each row to select the correct agent role.
4

Import & Open

Click Import. After the server validates the mapping, a success toast appears with Open Use Case. Click it to jump straight into your new Use Case.
• The artifact only contains the Use Case definition—not run history or execution metrics.
• All agents must exist in the target project before import.
• Other external text references (e.g., repositories, labels) may need to be manually updated after the import.

JSON File Structure

Here’s a shortened example of the exported file. You generally won’t edit this by hand, but it can be useful for version control or advanced CI flows.
my-use-case.json
{
  "_formatVersion": "1.0.0",
  "workflow": {
    "name": "Mention",
    "definition": {
      "flow": [
        {
          "to": "git-clone",
          "from": "",
          "condition": null
        },
        {
          "to": "agent-session",
          "from": "git-clone",
          "condition": null
        }
      ],
      "name": "Mention",
      "steps": [
        {
          "id": "git-clone",
          "name": "Clone Repo",
          "action": "git.clone",
          "params": {
            "branch": "main",
            "cloneOptions": {},
            "repoFullName": "{{trigger.repository.fullName}}"
          },
          "instruction": null
        },
        {
          "id": "agent-session",
          "name": "Agent Session",
          "action": "agent.session",
          "params": {
            "goal": "Help the user with their questions",
            "agentIds": ["my-agent-id-1", "my-agent-id-2"],
            "exitCriteria": {
              "timeLimit": {
                "maxDuration": "2h"
              },
              "userSignals": {
                "explicit": ["/done", "thanks"]
              },
              "maxExchanges": 10,
              "maxUserSilence": "4h"
            },
            "resurrection": {
              "enabled": true,
              "preserveDays": 7,
              "restartCommands": ["bot /restart", "/continue"]
            },
            "interruptible": true
          },
          "instruction": "You are helping the user with their issue. Be helpful and concise."
        }
      ],
      "trigger": {
        "event": "mention",
        "conditions": {
          "field": null,
          "rules": [
            {
              "field": "context.repository.fullName",
              "rules": null,
              "value": "my-org/my-repo",
              "operator": "equals",
              "combinator": null
            }
          ],
          "value": null,
          "operator": null,
          "combinator": "and"
        }
      },
      "version": "1.0.0",
      "priority": 5,
      "timeoutMs": null
    }
  },
  "refs": {
    "agents": [
      {
        "id": "my-agent-id-2",
        "name": "Senior Developer"
      },
      {
        "id": "my-agent-id-1",
        "name": "Product manager"
      }
    ]
  }
}



Error Handling

If the file is invalid or an agent mapping is missing, Overcut shows a detailed error message. No changes are made until the import succeeds.

Next Steps

  • After you import a Use Case, it will be available in the Use Cases page.
  • You may want to look at the imported Use Case to add specific conditions or update references to repositories or labels.