Skip to content
Back to workflows

For sales teams

Track Sales Deals

By the end you will have a Sales pipeline project holding your real deals as tasks across the Lead through Closed Won stages, connected to Claude Code, so you can ask your assistant what needs following up this week and get an answer read straight off the board.

01 : Before you start

A verified Agiflow account

Signing in lands you on /dashboard, not on a verification screen.

An existing organization

The sidebar top left shows a WORKSPACE module with your workspace name already in it.

Permission to create projects

The dashboard shows a + New project button at top right.

Permission to generate an API key

The connect modal shows a Generate API key button rather than a permission error.

macOS or Linux with zsh or bash

Run echo $SHELL. It should print a path ending in zsh or bash. Windows is not covered here.

Claude Code installed

Run claude --version. This tutorial was run against v2.1.240.

You will also need a folder to hold a config file (mkdir -p ~/agiflow-sales should succeed) and two real deals to enter: a company name, a contact name, a deal value, and the next action for each. This tutorial supplies two worked examples so you can follow along without your own data.

💡 Starting from zero, or a brand new organization:

A brand-new account cannot sign in until its email is verified: finish signup first, then come back here. A brand-new organization also runs a short setup wizard before /dashboard is reachable. Both are out of scope for this tutorial, which starts once you already have a verified account and an existing organization.

02 : Create your pipeline project

Step 1 : Confirm your starting point

Open /dashboard and sign in. You should see the page heading “Your board” under an “OPERATIONS ROOM · SETUP” eyebrow, and the sidebar top left should show a WORKSPACE module with your workspace name in it. The organization name is not in the top header bar.

Agiflow dashboard for the Demo Organization workspace, showing the Your board heading and no projects yet, with a New project button at top right.
A fresh dashboard before any project exists. If you land on a verification or onboarding screen instead, a prerequisite above is unmet.

Step 2 : Create the pipeline from the Sales template

Click + New project at the top right, select the tile named Sales, type Q3 Sales Pipeline into Project Name, then click Create Project. The board opens with exactly six columns in this order: Lead, Qualified, Proposal, Negotiation, Closed Won, Closed Lost, and Lead holds four starter tasks seeded by the template.

Q3 Sales Pipeline board showing the Lead column with four seeded starter tasks and the empty Qualified and Proposal columns beside it.
Lead, Qualified, and Proposal after the project is created. Lead starts with four template tasks that are not deals.
The right side of the Q3 Sales Pipeline board, showing the empty Negotiation, Closed Won, and Closed Lost columns.
The board scrolls horizontally. Negotiation, Closed Won, and Closed Lost complete the six stages.

Step 3 : Clear the four starter tasks

The Sales template seeds four checklist tasks that are not deals. Clearing them means every check later in this tutorial, two cards, named stages, exact placement, is unambiguous. It also teaches the card menu, which you will use again. For each of Define ideal customer profile, Create pitch deck template, Map out objection-handling playbook, and Set up follow-up cadence: click the card’s kebab (...) button, choose Delete from the menu, then click Delete on the confirmation dialog.

Kebab menu open on the Define ideal customer profile task card, offering Edit, View Details, and Delete.
The card menu offers Edit, View Details, and Delete.
Delete Task confirmation dialog asking Are you sure you want to delete Define ideal customer profile, with Cancel and Delete buttons.
Confirm each deletion. This action cannot be undone.

Once all four are gone, all six columns read “No tasks here yet. Move work here when it is ready.”, even after a full page reload.

Q3 Sales Pipeline board with all six columns empty, each showing the text No tasks here yet, move work here when it is ready.
An empty board looks like this. Nothing else appears, so do not wait for a different panel.

03 : Connect Claude Code

Step 4 : Copy the Claude Code connection details

In the left sidebar footer, click Connect AI tools. In the modal that opens, Claude Code is already selected. Under AUTH, click the API key pill (the default is OAuth). Under PASTE & GO, click the copy icon on the .mcp.json block, then click Generate API key.

Connect Agiflow to your AI tools modal with Claude Code selected and the API key auth pill chosen, showing the connection link and the .mcp.json snippet before a key has been generated.
Copy the .mcp.json block. Your URL and organization id will be different from this example.

After you click Generate API key, a Your API key block appears with its own copy icon, and below it a second block captioned “Add headers to your config”. You need both of these in the next step.

Connect Agiflow to your AI tools modal in API key mode after generation, showing the generated API key block and a separate headers block, with the key and organization id redacted.
Your API key and organization id are redacted here. Copy both blocks from your own screen; never share them.

Copy everything from your own screen. Never write your API key or connection URL into a file you did not create yourself in the next step. When you are done experimenting, the modal footer tells you where to revoke it: “Scoped to this organization. Revoke anytime in Settings.”

Step 5 : Build .mcp.json and confirm the tools are live

Create and enter a folder:

mkdir -p ~/agiflow-sales && cd ~/agiflow-sales

Start the file, then paste the .mcp.json fragment you copied in Step 4, press Return, then press Ctrl+D:

cat > .mcp.json

The product hands you two separate fragments and offers no single copy-the-finished-config action, so merge the second one by hand. Open .mcp.json in your editor, add a comma to the end of the "url" line, then paste the "headers" block from the modal inside the "agiflow" object. The finished file has exactly this shape, with your own two values in place of the angle-bracket text:

{
  "mcpServers": {
    "agiflow": {
      "type": "http",
      "url": "<your connection link from COPY YOUR CONNECTION LINK>",
      "headers": {
        "x-api-key": "<your API key>"
      }
    }
  }
}
⚠️ An incomplete merge is the most likely mistake here:

Either a missing comma after the "url" line, or pasting only the URL and skipping the "headers" block entirely, produces the same symptom: the server appears in /mcp but shows a failed or absent connection instead of connected. Re-open the file and confirm it has both url and headers before you relaunch.

Launch the assistant:

claude

On first launch in this folder, Claude Code asks to approve the server:

New MCP server found in this project: agiflow

MCP servers may execute code or access system resources. All tool calls
require approval. Learn more in the MCP documentation.

❯ 1. Use this MCP server
  2. Use this and all future MCP servers in this project
  3. Continue without using this MCP server

Enter to confirm · Esc to cancel

Choose option 1 and press Return. Inside Claude Code, run:

/mcp

Find the agiflow row. It should show a connected status and a tool count greater than zero. The run behind this tutorial read:

agiflow · ✔ connected · 35 tools
⚠️ If you previously chose option 3:

Choosing “Continue without using this MCP server” on an earlier launch persists a rejection in .claude/settings.local.json inside the project folder. Clear that file before relaunching, or the server will not connect.

04 : Work the pipeline through your assistant

Step 6 : Ask the assistant to create your deals

Type this prompt into Claude Code, rather than creating the cards on the board yourself:

In my Q3 Sales Pipeline project, create two tasks in the Lead stage. First: title "Acme Corp - 25 seat rollout", priority high, description: Contact: Dana Whitfield, Head of Operations Deal value: 18,000 USD Next step: send the pilot proposal Second: title "Brightline Media - annual renewal", priority medium, description: Contact: Marcus Reed, Finance Director Deal value: 9,600 USD Next step: confirm renewal terms Set the due date on both to this Friday.

The assistant calls Agiflow MCP tools to find the project and its Lead status, then creates both tasks and confirms them in its reply. Reloading the board shows two cards in Lead with those exact titles. The board renders each due date in your browser’s local timezone, so a card can read one calendar day later than the date the assistant reports. In the run behind this tutorial the assistant set Friday Aug 28 (UTC) and the board rendered Aug 29.

Q3 Sales Pipeline board with two cards in the Lead column: Acme Corp - 25 seat rollout with a high priority badge, and Brightline Media - annual renewal with a medium priority badge, both due Aug 29.
Both deals created by the assistant, sitting in Lead with the due date it resolved for this Friday.

Step 7 : Move a deal by hand

Drag the Brightline Media - annual renewal card from Lead to Qualified. The card renders under Qualified and stays there after a full page reload.

Q3 Sales Pipeline board after a full reload, showing Brightline Media - annual renewal card now in the Qualified column and Acme Corp still in Lead.
The hand-dragged move persists after reload.

Step 8 : Ask the assistant to read the pipeline back

Confirm the assistant sees the same board you do, including the move you just made by hand:

List every task in the Q3 Sales Pipeline project with its current stage.

The assistant calls an Agiflow MCP tool to list tasks and replies with exactly two deals: Acme Corp - 25 seat rollout in Lead, and Brightline Media - annual renewal in Qualified, matching the board exactly.

Step 9 : Ask the assistant to move a deal

Advance a deal from the assistant side, and confirm the board agrees:

Move the Acme Corp - 25 seat rollout deal to Proposal.

The assistant calls an Agiflow MCP tool to update the task status and confirms the change. Reloading the board shows the card under Proposal.

Q3 Sales Pipeline board showing Acme Corp - 25 seat rollout in the Proposal column and Brightline Media - annual renewal in the Qualified column.
Acme Corp moved to Proposal by the assistant. Nothing enforces moving through stages in order.

Step 10 : Ask what needs following up

This is the question the whole setup exists to answer:

Which deals in Q3 Sales Pipeline have a due date this week, and what is the next step recorded on each?

The assistant calls an Agiflow MCP tool to list the tasks sorted by due date, then answers naming both deals, both due dates, and the “Next step” line quoted from each description: sending the pilot proposal for Acme Corp, and confirming renewal terms for Brightline Media. If you ever get a prose answer with no tool call behind it, that is not grounded in your board and should not be trusted.

05 : Confirm the end state

Navigate directly to the project board URL, forcing a full reload rather than clicking an in-app link. Acme Corp - 25 seat rollout sits in Proposal, Brightline Media - annual renewal sits in Qualified, and both cards show the same due date the assistant set in Step 6.

Q3 Sales Pipeline board on a full page reload, showing Acme Corp - 25 seat rollout in Proposal and Brightline Media - annual renewal in Qualified, both due Aug 29.
The finished pipeline: two real deals, moved through stages by hand and by the assistant, both grounded in what the assistant reports.

06 : When it goes wrong

⚠️ The agiflow server shows failed, not connected, in /mcp:

The hand merge in Step 5 is incomplete: either the comma after the "url" line is missing, or the entire "headers" block was never pasted in. Open .mcp.json, confirm it has both url and headers with valid JSON, then relaunch claude and run /mcp again.

⚠️ The server never even offers to connect:

You likely chose “Continue without using this MCP server” on an earlier launch. That rejection is stored in .claude/settings.local.json inside the project folder. Delete or clear that file, then relaunch claude and approve the server when asked.

07 : Next step

Add your own deals the same way: ask your assistant to create them, or add them on the board directly. When you are done experimenting with the API key from Step 4, revoke it from Organization Settings > Developer > API Keys, the same place the connect modal footer points to.

Last updated August 23, 2026

Keep the board moving

Finish with a pipeline board where every deal has a stage, a next action, and an owner.

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