Skip to content

Playbook · Interactive

Building an in-product copilot for a B2B app

The six steps from a request to a saved change with a receipt, a value model for one customer workspace, and templates to start from.

What the copilot does#

An in-product copilot turns a request into a change inside the product’s own objects. The person reviews the exact change where the objects live, and the product keeps a receipt and a way back.

Release 2.4 · BoardIllustration
Move the QA tasks for 2.4 to next sprint
Copilot1 · Ask
RequestFrom the release page14 tasks match
ContextRelease 2.4 · 14 QA tasks · sprint 31
Draft14 tasks · sprint 32 · new due datesNothing saved yet
Review12 kept · 2 dropped by the PMIn the board view
Commit12 changed · 0 failedAs the PM
ReceiptBefore and after for 12 tasksUndo ready
A made-up example, filled in up to step 1.

Step 1 of 6

A person asks, or the copilot notices

A person asks in the side panel, or the copilot spots something worth a change, like QA tasks stuck in an old sprint. The request starts from the page the person is on.

Levers

  • Entry pointsSide panel, inline command, a nudge on the page
  • Who can askEvery seat, or only roles with edit access
  • NoticingOff by default; on for one written rule

Patterns

In the cost model: Tasks per active person

Step 2 of 6

Gather context within the person’s access

The copilot reads the objects the request names, with the person’s own permissions. What the copilot read stays visible, so the reviewer knows what the draft rests on.

Levers

  • ReadsThe current page, linked objects, search
  • PermissionsThe person’s own access, never a wider account
  • FreshnessRead again right before the commit

Patterns

In the cost model: Share of tasks in scope

Step 3 of 6

Propose the change as a draft in the real object

The copilot writes the change into the product’s own objects as a draft: the tasks, fields and dates, not a paragraph about them. Nothing is saved yet.

Levers

  • Draft formPending edits on the real tasks
  • SizeAt most 50 objects in one change
  • Filled-in choicesMarked, like dates the person didn’t name

Patterns

In the cost model: Cost per task

Step 4 of 6

Review in the product’s own screen

The person reviews the exact change where the objects live, with before and after values. The person can drop items, edit a field, or reject the whole draft.

Levers

  • WhereThe board or record view, not the chat
  • What showsEvery item, before and after, what can’t be undone
  • ChoicesAccept all, accept some, edit, reject

Patterns

In the cost model: Acceptance rate

Step 5 of 6

Commit exactly what was approved

The product saves the approved items as the person, after checking access and that nothing changed since the review. Items that changed go back for review.

Levers

  • Acting accountThe person who approved
  • Staleness checkCompare with the reviewed version
  • Partial failureReport each item; never fail silently

Patterns

In the cost model: Review minutes per change

Step 6 of 6

Leave a receipt and an honest undo

The product records what changed, who approved, and what can be undone. Undo skips items someone edited since, and names them.

Levers

  • Receipt fieldsRequest, approver, items, before and after
  • Undo windowUntil someone edits the item
  • Undo limitsNamed: notifications already sent stay sent

Patterns

In the cost model: Error and undo rate

1 / 6 Ask

The value model#

One customer workspace, one month. Change any lever: the waterfall shows the time accepted changes save, and what review, fixes and running the copilot take back.

Example inputs, not benchmarks. Every default is made up, except the published prices under “Running the copilot”, which link to the vendor’s page. Replace each number with the team’s own.

A Usage
Example
Example

80 of 200 seats use the copilot in a month.

Example

Changes a person makes by hand today that the copilot could draft: rescheduling, reassigning, bulk edits.

Example
Example

The copilot drafts 1,440 changes a month.

B Results and review
Example

Drafts a person approves, whole or trimmed. A draft rewritten from scratch counts as rejected.

Example
Accepted55%
Undone or fixed3%

People accept 792 drafts and reject 648. About 40 accepted changes need fixing later (5.0% of accepted).

Minutes

Example

The time an accepted change saves. Review time is counted separately.

Example

Spent on every draft, accepted or not.

Example

Net of its review, one accepted change saves 10 min; each rejected draft costs 2 min.

C Running the copilot
How the copilot is paid for
Example

The request, the context read and the tool definitions, across every model call the task makes.

Example
List price
List price

Running the copilot costs $0.055 per draft, $79 a month.

Anthropic: Claude Sonnet 5.5 at $2 per million input tokens and $10 per million output tokens. Cache hits cost a tenth of the input price, and batch requests half. Tokens per task are an example: measure them on real tasks.

Claude API pricingList price, checked September 29, 2026. Contracts can differ.

Example

Keeping prompts, tools and saved test cases current.

Time saved$9,504792 accepted changes
Costs$5,551four cost lines
Net value+$3,953per month

Where the monthly value goes

  • Total
  • Adds value
  • Costs
  1. Time saved by accepted changes+$9,504
  2. Reviewing every draft−$2,880
  3. Fixing and undoing wrong changes−$792
  4. Running the copilot−$79
  5. Upkeep: prompts, tools, tests−$1,800
  6. Net value per month$3,953

The axis starts at $0.

Point at a bar to see how the step is calculated.

How each bar is calculated
StepCalculationMonthly
Time saved by accepted changes792 accepted changes × 12 min × $60/h+$9,504
Reviewing every draft1,440 drafts × 2 min × $60/h−$2,880
Fixing and undoing wrong changes40 wrong changes × 20 min × $60/h−$792
Running the copilot1,440 drafts × (20,000 in × $2 + 1,500 out × $10) per million tokens−$79
Upkeep: prompts, tools, tests30 h × $60/h−$1,800
Net value per monthTime saved minus every cost above$3,953

Cost per result

Review, fixes, the copilot’s price and upkeep come to $5,551 a month. Divided by drafts, then by accepted changes, next to a person doing the change by hand.

  • Per draftLooks cheap: rejected drafts are spread thin.$3.86
  • Per accepted changeThe number to manage.$7.01
  • By handMinutes by hand × hourly cost.$12.00

The copilot’s price alone is $0.100 per accepted change. With these inputs, the largest cost is reviewing every draft.

People’s time

67 h returned a month, across 80 people.

  • Accepted changes+158 h
  • Reviewing every draft−48 h
  • Fixing wrong changes−13 h
  • Upkeep−30 h
  • A rejected draft saves nothing: the person does the change by hand after spending the review time.
  • Saved minutes are worth money only when people spend them on other work.

What counts as an accepted change

In this model, an accepted change is a draft a person approved and nobody had to undo or fix. A draft the person rewrote from scratch counts as rejected, and still costs its review time.

  • When Sidekick fills in a form, Shopify highlights each field Sidekick generated, so the merchant sees what the agent added before saving.Getting help and guidance from Sidekick
  • Before a Custom Agent writes to an outside tool, Notion shows the exact action and asks for confirmation. Confirmation is the default for writes.MCP connections for Custom Agents
  • Linear bills failed runs, retries and partial completions, so cost per accepted change has to count every attempt.AI credits

Templates#

Copy or download. The spreadsheet carries the numbers from the value model above, with live formulas.

Copilot spec: product name

Highlighted text is a blank to fill in. The words inside are an example.

1. The jobs

Jobs
Reschedule tasks, reassign owners, draft status updates
Users
Anyone with edit access to the project
Where the copilot appears
Side panel on project, board and issue pages
Out of scope
Billing, permissions, deleting objects

2. Objects the copilot may touch

ObjectReadsMay changeLimit
TasksYesDates, sprint, assignee, statusUp to 50 in one change
ProjectsYesStatus update draftsNever publishes
CommentsYesAdds new ones onlyMarked as drafted by the copilot
Members and permissionsNames onlyNothingNone

3. Approval rules

  • Every change is a draft until a person approves it in the object’s own screen.
  • The approve button names the outcome, like “Move 12 tasks”.
  • Notifications to people outside the team, and anything that can’t be undone, show before the button.
  • An approval covers this draft version and these items. An edit since the review asks again.

4. Undo guarantees

  • Undo works for 30 days or until someone edits the item, whichever comes first.
  • Undo restores the fields the copilot changed, skips items edited since, and names them.
  • Undo can’t unsend notifications or emails; the receipt lists them.
  • Stop, cancel and undo are separate controls with separate results.

5. Receipt fields

FieldExample
Request“Move the QA tasks for 2.4 to next sprint”
Context readRelease 2.4, 14 tasks
Approved byName, date and time
Acting accountThe approver
Items12 changed, 2 dropped, 0 failed
Before and afterPer item: sprint, due date
Side effects3 watchers notified
UndoAvailable until an item is edited

6. Owner and success metric

Owner
Name, team. Reviews the spec every quarter.
Success metric
Cost per accepted change under $X, acceptance above X%.
Guardrails
Undo rate under X%. Zero writes without an approval.
Review
20 accepted and 20 rejected drafts a week.

What the real products do#

Three copilots from the teardowns, and one finding from each.

  • Shopify SidekickShopify

    “15% off this weekend” becomes a discount that ends Monday

    In Shopify’s tutorial, Sidekick fills in the real discount form, and the end date runs to Monday night. The form puts the extra day on screen; a chat reply would hide it.

  • Notion AgentNotion

    Removing someone from a page doesn’t remove their access through the agent

    In Notion’s BudgetBot example, a lead removed from a private page may still get information from the page by asking the Custom Agent. Closing the route means removing the page from the agent, or the person from the agent.

  • Linear AgentLinear

    A human assignee plus an agent delegate

    A Linear issue can have a teammate as assignee and an agent as delegate. The agent does the work; the teammate keeps ownership, and the Activity feed records each change.

How the numbers were sourced

The published prices in the calculator come from the vendors’ own pages, read on September 29, 2026: Anthropic, Claude Sonnet 5.5 at $2 per million input tokens and $10 per million output tokens, Linear, $0.07–$0.20 for a typical run without a coding session and Atlassian Rovo, $0.01 per credit above the monthly allowance, with 70 credits per user per month on Jira Premium. Every other calculator number is an example input. The product findings come from the teardowns, whose sources were checked September 28, 2026.

The pattern behind the review stepShow the exact change before it happens

The person approves the exact change; the agent runs only that.