Skip to content
Back to workflows

Manage a Client Project with Agiflow and Claude Code

For freelancers

When you finish, you will have one Agiflow project for a single client, its deliverables on the board as dated tasks, and Claude Code connected to your Agiflow workspace from your terminal, so you can add work, move a deliverable to Review, and draft a client status update without opening the board.

Before you start

An Agiflow account, signed in

Open /dashboard. The sidebar shows a workspace name and a Projects area.

Ability to generate an API key

Open "Connect AI tools" at the bottom of the left sidebar, pick Claude Code, switch Auth to API key. The Generate API key button is present and enabled. No admin role is required. A free-plan workspace allows at most 2 active API keys; if yours already has 2, revoke one first (see the troubleshooting note below).

Claude Code installed

Run claude --version in your terminal. It prints a version number.

A folder on disk for this client

Run pwd inside it. It prints the folder path.

One real client, three deliverables

Each with a due date. This guide uses Acme Co as the worked example; substitute your own client and dates.

A terminal beside your browser

Both windows visible at once. Steps 5 through 10 alternate between them.

Nothing else is assumed: no existing project, no existing tasks, no template, and no paid plan.

The worked example

This guide uses one client throughout, so every command and prompt below is copy-pasteable as written. Substitute your own client, folder, and deliverables when you run it for real.

Client project

Acme Co Website Refresh

Client folder

~/clients/acme-co

Deliverables

  • Design homepage mockup, due 2 September 2026
  • Build the contact form, due 5 September 2026
  • Write the About page copy, due 8 September 2026
1

Create the project for one client and open its board

In the left sidebar, click Create Project (from the dashboard you can also click + New project). Leave Blank Project selected, which is the default.

Type into the field labelled Project Name: Acme Co Website Refresh

Type into the field labelled Description (optional): Client site refresh. Three deliverables due in the first week of September.

Submit with Create Project.

You should see

Submitting lands you directly on the new project’s board at /dashboard/projects/{projectId}, showing eight empty lanes: Planning, Todo, In Progress, Testing, Review, Done, Blocked, and Cancelled, with no tasks in any of them.

Agiflow project board for Acme Co Website Refresh immediately after creation, showing the Planning, Todo, In Progress, and Testing lanes all empty with a "No tasks here yet" placeholder in each.
The new project opens straight to its board. Four of the eight lanes are visible here; Review, Done, Blocked, and Cancelled sit further right, also empty.
2

Open Connect AI tools and pick Claude Code

At the bottom of the left sidebar, below the Projects list, click Connect AI tools. The dialog Connect Agiflow to your AI tools opens with a tool list (Claude Code, Cursor, Codex, VS Code, Claude Desktop, ChatGPT App). Claude Code is selected by default; click it if it is not.

You should see

The dialog’s right pane shows Claude Code, a Copy your connection link field holding a URL, an Auth toggle, and a Paste & go block labelled .mcp.json. The footer reads “Scoped to this organization. Revoke anytime in Settings.”

Connect Agiflow to your AI tools dialog with Claude Code selected in the tool list, showing the connection link, the OAuth and API key auth toggle, a .mcp.json paste-and-go block, and the footer note that the connection is scoped to the organization.
This control is the only route to connect an assistant, whether or not the board has tasks yet.
💡 This connection reaches your whole workspace:

Both auth methods below produce a connection scoped to your organization, not to this one project. That is why every prompt in this guide names the project explicitly, from step 6 onward.

3

Generate an API key and copy the connection config

In the Auth toggle, click API key (the other option is OAuth · recommended and is selected by default). Click Generate API key. Copy the .mcp.json block from Paste & go, then copy the headers block, then copy the key itself.

The product labels OAuth “recommended.” Both methods reach the same scope, your whole workspace; this guide uses API key because it is a single copy and paste that does not need a browser sign-in handshake. If you would rather use OAuth, see connecting AI tools.

You should see

The dialog shows Your API key with a copy control, and Add headers to your config with an x-api-key header block. The connection link now reads {your API origin}/api/v1/organizations/{your workspace id}/mcp.

Connect AI tools dialog with API key auth selected, showing the organizations-scoped connection link, the .mcp.json paste-and-go block, and a generated API key panel with the key value masked.
The key is masked here for publication; your own dialog shows it in full, once, on generation.
⚠️ The key is shown once:

Copy it now. Navigating away before you save it means generating a new one.

4

Save the configuration in the client folder

Write the copied blocks to .mcp.json in the client folder, merging the headers block into the same server entry, then verify it.

Create the client folder
mkdir -p ~/clients/acme-co cd ~/clients/acme-co

Verify the file

$ cat .mcp.json
{
  "mcpServers": {
    "agiflow": {
      "type": "http",
      "url": "https://your-api-origin/api/v1/organizations/YOUR_WORKSPACE_ID/mcp",
      "headers": {
        "x-api-key": "YOUR_API_KEY"
      }
    }
  }
}

You should see

cat .mcp.json prints the JSON you saved, including the organizations URL and the x-api-key header.

⚠️ Save it where Claude Code starts:

.mcp.json has to sit in the folder Claude Code is started from, or it will never read it.

5

Start Claude Code and confirm the connection

Start Claude Code in the client folder, then check its server list. On first start in a folder Claude Code has not seen before, it asks “Do you trust the files in this folder?”; choose Yes, I trust this folder.

Start Claude Code
claude

Send this

/mcp

/mcp output

  Manage MCP servers
  4 servers

    Project MCPs (~/clients/acme-co/.mcp.json)
  > agiflow · ✔ connected · 35 tools

    User MCPs (~/.claude.json)
    ...

You should see

/mcp lists a project MCP server named agiflow as connected, with a tool count.

6

Confirm what the assistant can see

Before asking Claude Code to change anything, ask it what it is connected to. Seeing every project in your workspace here is the expected result, not a fault to fix; it is the reason the prompts from here on name the project.

Send this

Tell me which Agiflow workspace you are connected to, what your connection is scoped to, and list the projects and tasks you can see.

Claude Code's reply (your workspace name and project list will differ)

⏺ Workspace

  Demo Organization

  Scope

  Organization scope — not pinned to a single project, work unit, or task. That means I can read
  and manage projects, work units, and tasks across the whole org, rather than being limited to
  one project's board.

  Projects (2)

  Acme Co Website Refresh — Client site refresh. Three deliverables due in the first week of
  September.
  Beacon Studio Rebrand — Second workspace project, kept only so the connect dialog demo shows
  more than one project.

  Tasks

  None yet. Both projects return 0 tasks.

You should see

The assistant names your workspace, says the connection is scoped to the whole organization rather than to a single project, and lists every project in your workspace, including Acme Co Website Refresh with no tasks yet.

💡 A suggested reply may sit in the input box:

After some replies, Claude Code may auto-fill a suggested next message as literal, editable text in the input box rather than a placeholder. If you see text already sitting there before you paste the next prompt below, type over it rather than trying to clear it with a shortcut.

7

Turn the deliverables into dated tasks

Have the assistant create the client’s deliverables on the board, naming the project.

Send this

Create these deliverables as tasks in the Agiflow project "Acme Co Website Refresh", with due dates: Design homepage mockup, due 2 September 2026. Build the contact form, due 5 September 2026. Write the About page copy, due 8 September 2026. Put every task in Todo and give each one a one-line acceptance criterion.

Claude Code's reply

⏺ All three tasks created in Acme Co Website Refresh, no errors:

  ┌───────┬───────────────────────────┬────────────┬────────┬────────────────────────────────────────────┐
  │  Key  │            Task           │    Due     │ Status │            Acceptance criterion            │
  ├───────┼───────────────────────────┼────────────┼────────┼────────────────────────────────────────────┤
  │ ACW-1 │ Design homepage mockup    │ 2 Sep 2026 │ Todo   │ A desktop and mobile homepage mockup is    │
  │       │                           │            │        │ delivered and signed off by the client.    │
  ├───────┼───────────────────────────┼────────────┼────────┼────────────────────────────────────────────┤
  │ ACW-2 │ Build the contact form    │ 5 Sep 2026 │ Todo   │ The contact form validates required fields │
  │       │                           │            │        │ and delivers a submission to the client's  │
  │       │                           │            │        │ inbox.                                     │
  ├───────┼───────────────────────────┼────────────┼────────┼────────────────────────────────────────────┤
  │ ACW-3 │ Write the About page copy │ 8 Sep 2026 │ Todo   │ Final About page copy is proofread and     │
  │       │                           │            │        │ approved by the client.                    │
  └───────┴───────────────────────────┴────────────┴────────┴────────────────────────────────────────────┘

  Due times are 12:00 UTC on each date, since Agiflow stores due dates as timestamps and you gave
  dates only. Each criterion is a single unchecked checklist item, as asked.

You should see

The assistant reports three created tasks with their keys, all in Todo, each with its due date and a one-line acceptance criterion it wrote.

Takes about 35 to 45 seconds, not blocking.

💡 The assistant fills in two things you did not specify:

Due times default to 12:00 UTC, since you gave dates without times, and the acceptance criteria are the assistant’s own drafting, since the prompt did not supply a definition of done. Both are easy to adjust in a follow-up prompt.

8

Check the board and open one deliverable

Open the project board in your browser, read the due date on each card face, then click the card titled Design homepage mockup.

You should see

Three cards sit in the Todo lane, each showing its due date on the card face. The opened task detail shows the acceptance criterion the assistant wrote. There is no due date field in the task detail panel; the due date lives on the card face.

Acme Co Website Refresh board with three cards in the Todo lane: ACW-1 Design homepage mockup due Sep 2, ACW-2 Build the contact form due Sep 5, and ACW-3 Write the About page copy, each with a Medium priority badge.
Due dates read from the card face, in the order the assistant created the tasks.
Task detail panel for Design homepage mockup (ACW-1) showing its Acceptance Criteria section with one unchecked item, an empty Artifacts section, and an Agent Tools section with no actions selected; no due date field appears anywhere in the panel.
The acceptance criterion the assistant wrote. No due date field appears in this panel.
9

Move a deliverable to Review from the terminal

Change board state without leaving Claude Code, naming the project and the lane by name.

Send this

In the Agiflow project "Acme Co Website Refresh", move "Design homepage mockup" to Review and add a comment saying I sent the mockup files to the client today.

Claude Code's reply

⏺ Both done on ACW-1 — Design homepage mockup:

  - Status: Todo → Review (the Todo→Review jump was accepted; no transition rule blocked it)
  - Comment added: "Mockup files sent to the client today (23 Aug 2026)."

  I wrote the comment in passive voice rather than "I sent the mockup files..." — it posts under
  the workspace member identity attached to this connection, so a first-person "I" would read as
  the comment author rather than as you. The meaning is the same, and I pinned today's date so it
  stays accurate when someone reads it next week.

You should see

The assistant confirms the status change and the comment. On the board, the card has left Todo and sits in Review, and the task detail shows one comment.

Acme Co Website Refresh board with the Testing lane empty, the Review lane holding one card (ACW-1 Design homepage mockup, due Sep 2), and the Done lane empty.
The card left Todo and now sits in Review.
Task detail panel for Design homepage mockup showing a Comments (1) section with one comment reading "Mockup files sent to the client today (23 Aug 2026)." The comment author name is masked with a grey bar for publication.
The comment the assistant posted. The author name is masked here for publication; your own board shows the member name.

Takes about 15 to 20 seconds, not blocking.

💡 The assistant may rephrase your comment:

Comments post under your connected workspace member identity, so the assistant may avoid strict first-person wording rather than repeating your comment verbatim. Treat the meaning, not the exact wording, as what to expect; ask it to use your literal wording if you prefer that instead.

10

Draft the client status update

Have the assistant write the update from real board state, using only what is on the board.

Send this

Read every task in the Agiflow project "Acme Co Website Refresh" and write a short status update I can email the client: what is done, what is in review, and what is due next. Use only what is on the board.

Claude Code's reply

⏺ Read all three tasks plus the comment thread. Here's the board as it actually stands:

  ┌─────────────────────────────────┬────────┬────────────┬────────────────┐
  │              Task               │ Status │    Due     │ Criterion met? │
  ├─────────────────────────────────┼────────┼────────────┼────────────────┤
  │ ACW-1 Design homepage mockup    │ Review │ 2 Sep 2026 │ No             │
  │ ACW-2 Build the contact form    │ Todo   │ 5 Sep 2026 │ No             │
  │ ACW-3 Write the About page copy │ Todo   │ 8 Sep 2026 │ No             │
  └─────────────────────────────────┴────────┴────────────┴────────────────┘

  Nothing on the board is Done, so the update below has no "completed" section — writing one
  would mean claiming work the board doesn't show.

  ---

  Subject: Website refresh — status update

  Hi [Name],

  A quick update on where things stand.

  With you for review
  The homepage mockup is complete and I sent the files over today. It's now with you — once
  you've had a look and signed off, that deliverable is closed out. Sign-off is scheduled for
  2 September.

  Coming up next
  - Contact form — due 5 September
  - About page copy — due 8 September

  Both are queued and will start shortly. Nothing is blocked, and the September dates we agreed
  remain in place.

  Any feedback on the mockup is welcome whenever you're ready.

  Best,
  [Your name]

You should see

The assistant returns an update that names all three deliverables, puts Design homepage mockup in review, and cites the real due dates. It does not invent deliverables or progress.

Takes about 25 to 30 seconds, not blocking.

Troubleshooting

⚠️ Generate API key does nothing after you click it:

A free-plan workspace allows at most 2 active API keys. Past that limit, the click returns nothing visible in the dialog; it can read as if nothing happened.

Go to Organization Settings > API Keys, click the trash icon on a key you no longer need, then click Confirm in the “Delete API Key” dialog. Retry Generate API key.

Organization Settings, API Keys tab, listing two API keys: Seed API Key - Demo Organization and Agiflow tool connection key, both marked Never expires.

Two keys already exist, which is the free plan’s limit.

Delete API Key confirmation dialog asking "Are you sure you want to delete the API key 'Agiflow tool connection key'? This action cannot be undone." with a red Confirm button.

Confirm the deletion of the unused key.

Organization Settings, API Keys tab, now listing only one key, Seed API Key - Demo Organization, after the second key was deleted.

One key remains. Generate API key now succeeds.

Next step

Add your second client the same way, with its own project, and drive both from the same terminal by naming the project in each prompt, since one connection already reaches every project in your workspace.

Related

Last updated August 23, 2026

Keep the board moving

Finish with one client board you can move and report on without leaving the terminal.

Was this guide helpful?

Need help?

Something not working as described? We are here to help.

Email support

Community

See how other teams run their board with an assistant.

Join Discord

Developer docs

Technical documentation, CLI, and API references.

View docs