---
title: "One deal, every side"
url: https://services.dev/docs/examples/sales/walk
captured: [sales-walk.txt]
---
# One deal, every side

URL: https://services.dev/docs/examples/sales/walk

> Northwind Freight's deal, from the order on 2 November to the closer's payout on 12 March, as the seller, the setter, the closer and the owner each read it. AI works it, two people step up at their roles, the gate refuses one close, and nothing is charged until Northwind pays the seller's own invoice.

*sales's words: deal is a job, account is a subject, gig is a task, closer is a member, seller is a client, seller is a buyer (examples/sales/brand.ts).*

One deal, one recording, four seats. Harbor Labs sells a route planner. Its agent orders a deal on Northwind Freight, listed at $80,000, with a scoped payment token. Each call below was made by the participant it names, with their own credential.

## Its 130 days

Every line the deal fired. A reply to AI's third touch raised `warm`, and a setter booked the meeting. The deal is over `humans_from`, so a closer held it and kept the proposal, the negotiation and the close. The gate refused her first close, under the floor. Her second committed on 4 December with Harbor's own invoice, net 30, and Northwind's payment on 4 January proved it:

```bash
npx services.dev tick 130d   # from the order on 2 Nov to Friday's payout on 12 Mar
```

```txt title="captured/sales-walk.txt · magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid", metadata.sandbox.members = {"close":[{"closed_value":50000},{"closed_value":74000,"term":36,"contract":"msa-northwind.pdf"}]}"
   2 Nov 10:04  job_7Hq5  deal.ordered · Harbor Labs, by its agent dlg_7Hq5 · B2B · floor 0.8 · humans_from $50,000 · setter on_warm · stall_days 14
   2 Nov 10:04  job_7Hq5  charge.mandated · up to $12,000.00 · nothing held
   2 Nov 10:05  job_7Hq5  policy.set · stall_days 21 · by the agent · the floor stays the seller's
   2 Nov 10:05  job_7Hq5  source · ai · committed · 3 contacts at Northwind Freight
   2 Nov 10:07  job_7Hq5  qualify · ai · committed · fit: 140 trucks, a route planner up for renewal in Q1 · not yet Harbor's customer
   2 Nov 10:07  job_7Hq5  book · ai · touch 1 of 5 sent from harbor.example
   4 Nov 15:12  job_7Hq5  signal.raised · warm · a reply to touch 3
   4 Nov 15:12  tsk_7Hs5  gig.posted · setter · book · $250 at meet.held · on closers.deals
   4 Nov 15:40  tsk_7Hs5  gig.claimed · mbr_7Hs1, Sam Ortiz
   5 Nov 10:20  job_7Hq5  book · person · setter · committed · the meeting set for 10 Nov 11:00 with ops@northwind.example
   5 Nov 10:20  job_7Hq5  meet · escalated · closer · $80,000 at or over humans_from
   5 Nov 10:20  tsk_7Hq5  gig.posted · closer · meet, propose, negotiate, close · 10% of closed_value at won · on closers.deals
   9 Nov 09:12  tsk_7Hq5  gig.claimed · mbr_7Hq4, Dana Reyes · terms frozen: 10% · floor $64,000 · 48h to a first touch
   9 Nov 11:30  tsk_7Hq5  touch 4 · mail confirming the meeting, from dana@harbor.example · each touch renews the claim
  10 Nov 11:34  job_7Hq5  meet · person · closer · committed · held: evt_…7Hs5, ops@northwind.example attended 34 minutes
  10 Nov 11:34  tsk_7Hs5  gig.completed · meet.held · pay.accrued $250.00 · py_…Hq5s debited from api.forsale's balance
  11 Nov 16:00  job_7Hq5  propose · person · closer · committed · proposal-northwind.pdf, sent from dana@harbor.example
  18 Nov 14:10  job_7Hq5  negotiate · person · closer · committed · redlines on the MSA, a three-year term
  20 Nov 16:02  tsk_7Hs5  pay.paid · $250.00 · pyo_7Hq9 · Friday's run, after the 7-day hold on a new closer's first 5 gigs
  25 Nov 16:30  job_7Hq5  close · person · closer · refused · guard_refused · closed_value: below the floor you set ($50,000 < $64,000)
   4 Dec 14:02  job_7Hq5  close · person · closer · committed · closed_value $74,000 · 36 months · msa-northwind.pdf · pay_link in_…8841, net 30
   4 Dec 14:02  job_7Hq5  deal.ended · won · awaiting payment · nothing charged
   4 Jan 09:20  job_7Hq5  outcome.verified · in_…8841 paid $74,000.00 · customer Northwind Freight · metadata.deal job_7Hq5
   4 Jan 09:21  job_7Hq5  charge.pending · chg_7Hq5 $11,100.00 · a bank debit on Harbor's mandate, mandate_…Hq5
   8 Jan 09:00  job_7Hq5  charge.collected · chg_7Hq5 $11,100.00 · held to 9 Mar 2027
   9 Mar 09:00  job_7Hq5  outcome.final · charge.earned $11,100.00 · pay.accrued $7,400.00
  12 Mar 16:02  tsk_7Hq5  pay.paid · $7,400.00 · Friday's run
```

## The seller

On 4 December the deal is won, and nothing is charged:

```txt
→ GET /deals/job_7Hq5
```

```txt title="magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid", metadata.sandbox.members = {"close":[{"closed_value":50000},{"closed_value":74000,"term":36,"contract":"msa-northwind.pdf"}]}"
← job_7Hq5 · won · awaiting payment · nothing charged
  closed    $74,000.00 on 4 Dec · 36 months, the first year at list less 7.5% · by a closer · over your floor of $64,000
  pay link  in_…8841 · your own invoice, on your Stripe account · net 30 · metadata.deal job_7Hq5
  due       Northwind's payment by 4 Mar 2027 · unpaid by then, nothing is charged
  charge    $11,100.00 when it lands, debited from your bank account: api.forsale's 5% $3,700.00 · the closer's 10% $7,400.00
```

On 4 January Northwind pays. The one charge is a debit from Harbor's bank account, pending until it collects on 8 January, then held 60 days:

```txt
→ GET /deals/job_7Hq5
```

```txt title="magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid", metadata.sandbox.members = {"close":[{"closed_value":50000},{"closed_value":74000,"term":36,"contract":"msa-northwind.pdf"}]}"
← job_7Hq5 · won · msa-northwind.pdf · $11,100.00 charged, held to 2027-03-09
  account   Northwind Freight · logistics · $80,000 list
  closed    $74,000.00 on 4 Dec · by a closer · over your floor of $64,000
  proof     payment · in_…8841 on your Stripe account · $74,000.00 paid 4 Jan · matched on the customer and metadata.deal
  charged   $11,100.00 by bank debit on your mandate, pending 4 Jan, collected 8 Jan · api.forsale's 5% $3,700.00 · the closer's 10% $7,400.00
  window    final 9 Mar 2027, 60 days from the collection · a refund or chargeback before then reverses both
  meetings  1 held · nothing to you: api.forsale pays its setters
```

## The setter

Sam booked the meeting and Dana held it. His pay waited on `meet.held`, then was his whatever the deal did next. He joined two weeks ago, so his first five gigs wait seven days:

```txt
→ GET /gigs/tsk_7Hs5
```

```txt title="magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid", metadata.sandbox.members = {"close":[{"closed_value":50000},{"closed_value":74000,"term":36,"contract":"msa-northwind.pdf"}]}"
← tsk_7Hs5 · done · setter · book · $250.00 · completed 10 Nov
  brief     Northwind Freight · logistics · $50k–$100k · sourced · warm: a reply to touch 3 · the thread so far
  booked    5 Nov · calendar evt_…7Hs5, 10 Nov 11:00 · ops@northwind.example, the head of operations
  held      10 Nov · by the closer, mbr_7Hq4 · attended 34 minutes, so meet.held pays you
  pay       $250.00 · accrued 10 Nov · paid Fri 20 Nov, pyo_7Hq9 · whatever the deal does next
```

## The closer

Dana's terms froze at her claim on 9 November. Her 10% was held from 8 January, final on 9 March, and paid on Friday 12 March. Her whole path is [Closing on closers.deals](https://services.dev/docs/examples/sales/delivery-portal.md).

## The owner

The setter's $250 and the placement are api.forsale's costs, so the seller paid nothing on effort:

```txt
→ GET /owner/deals/job_7Hq5   # the owner console
```

```txt title="magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid", metadata.sandbox.members = {"close":[{"closed_value":50000},{"closed_value":74000,"term":36,"contract":"msa-northwind.pdf"}]}"
← job_7Hq5 · won · msa-northwind.pdf · $11,100.00 charged, held to 2027-03-09
  record  ordered · agent · dlg_7Hq5 for Harbor Labs | charge.mandated · up to $12,000.00 | policy.set · stall_days 21 · agent | source · ai | qualify · ai · fit | book · ai · touches 1 to 3 | warm · raised | book · setter · mbr_7Hs1 · committed | meet · escalated · closer · humans_from | meet · closer · mbr_7Hq4 · held, 34 minutes | propose · closer · committed | negotiate · closer · committed | close · closer · refused · guard_refused · $50,000 < $64,000 | close · closer · committed · $74,000 · pay_link | won · awaiting payment | outcome · payment · in_…8841 · verified | charge.pending · bank debit | charge.collected · held 60d
  ledger  +$11,100.00 · closer $7,400.00 (share, from the seller) · setter $250.00 · placement $50.00 · AI $11.34 of $40.00 · you $3,388.66 before the take
```

[The money](https://services.dev/docs/examples/sales/money.md) follows each dollar. [The customer portal](https://services.dev/docs/examples/sales/customer-portal.md) shows the same deal as screens.

---

- Up: [The sales example](https://services.dev/docs/examples/sales.md)
- Previous: [Build it](https://services.dev/docs/examples/sales/build.md)
- Next: [The agent's order](https://services.dev/docs/examples/sales/agent.md)
