Sales Runbook
12 routines to copy.
1Track what people have promised me, and what I owe them
Every promise from email, texts and meetings, listed in one place with days waiting.
Details
It keeps the same list on me, and closes an item when the promised thing arrives.
Ask first
- Which sources may it read? (default your inbox, your texts, and notes from meetings if you keep them; ignore newsletters and automated mail)
- Who counts as someone you owe or who owes you? (default anyone who wrote to you personally in the last 60 days)
- When is a promise stale? (default 30 days, or 60 days if it has no date)
- Where should the list live? (default one page you open each morning)
Needs
- Read access to the sources
- One saved list with these fields for every item: title, who, direction (mine or theirs), source and link, date captured, due date if any, confidence (high or low), status (open, done or dropped) and why it closed
- A scheduler that can run every 15 minutes
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- Every 15 minutes, read messages and notes added since the last run. Pick out sentences where someone commits to do something: "I will", "I'll send", "we'll have it by", "can you send me".
- Save each as one item with every field above. Mark confidence low if the commitment is vague or the date is a guess.
- When a later message in the same thread contains the promised thing (an attachment, a link, the words "here it is"), close the item and write why. Never close an item on silence.
- Mark an item stale after the stale limit and move it to a dropped list, never delete it.
- Show the list with days waiting, oldest first, amber after seven days. This one list is the source for every other run that needs promises: the morning brief reads its Due from you section from it, and the follow-up run adds each commitment it drafts to it.
Check
- Seed three promises in a test thread; confirm all three appear with the right direction and date
- Send the promised thing; confirm the item closes and says why
- Confirm a vague promise is marked low confidence and a stale one moves to the list of dropped items
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a 15-minute schedule, one list I open each morning; my morning brief and my follow-up run both read and write it
Built it? Tell Sally.
I owe
Send the revised pricing sheet to Dana Whitlock (email, asked 6d ago)
Others owe me
Intro to the finance lead, from Ravi Sandhu (email, asked 9d ago, amber)
Done this week
Reference notes from Mei Tanaka, closed because her email arrived
2Draft a first proposal from a discovery call
A first draft proposal in my past proposals' style: what they told me they need, what we would do, what it costs, and the open questions I still have to ask.
Details
Ask first
- Where are your past proposals?
- Where is the price list, and are there discounts you may offer? (default none)
- Who may see a draft? (default only you)
Needs
- Read access to notes, past proposals and the price list
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- Every hour on weekdays, find discovery calls that ended in the last two hours. Keep a list of the items already handled (by their address or id) and skip any that are on it, so the same item never produces a second brief, comment or draft.
- Pull the needs in their words.
- Write the proposal in the style of your past ones using only listed prices.
- List every question you could not answer. Never send it.
Check
- Run it on a call you remember; every price is on your list
- Confirm a draft was saved and nothing was sent
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on an hourly weekday schedule, a draft in my documents
Built it? Tell Sally.
Proposal draftHarbor & Vale
What you told usa single view of three regional teams; a rollout before Q1.
What we would doset up in two weeks, train leads in week three.
Cost40 seats, $18 each a month.
Openwho signs? Does single sign-on need to be included?
3Tell me when an account goes quiet or a champion moves
A short list of the accounts that have gone silent and the contacts who changed jobs or posted something that matters, each with a suggested next step.
Details
Nothing when nothing changed.
Ask first
- Which accounts and contacts should it watch? (default anyone you emailed in the last 90 days with an open deal)
- How long is quiet? (default 10 working days)
- Where should it reach you? (default a message from your assistant)
Needs
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
- Read access to your inbox, calendar and an account list
- Permission to read public profiles; never to contact anyone
- If your assistant cannot read one of these, paste it into the chat when it asks. A thinner version still works
Build
- Each morning, check each watched contact for a reply, a meeting, a job change and a public post.
- List those quiet longer than the limit, and any job change or relevant post. Count a clear rise or fall in activity as a change of 25% or more against the 60-day average.
- Add one suggested next step to each line, and leave it as a draft on that contact's existing thread. Never send it.
- Send nothing on a day with no change. Save each flagged contact with the date, and do not flag the same contact for the same reason again within 14 days.
Check
- Run it against a contact you know changed jobs; confirm it is caught with a source link
- Confirm a quiet contact is listed once, not every day
- Say whether the writing step ran for real or on sample text. Check that every quote and link on the page matches its source, and drop any that does not
In my version
- Claude Code on a daily 8am schedule, a message only when something changed
Built it? Tell Sally.
Account watch, Thu
MovedPriya Nair is now VP Ops at Marlow Freight (was Director). Deal: Marlow renewal. Suggest a congratulations and a call.
QuietSam Okafor, two emails unanswered, 11 working days. Deal: Okafor pilot. Suggest a short nudge.
PostedTom Reyes wrote about cutting onboarding time in half.
4Draft my email replies in my voice
A draft reply waits in Gmail, written the way I'd write to that person.
Details
Nothing sends without me, which my contacts should find reassuring.
Ask first
- Senders or kinds of mail never to draft for? (default newsletters and automated mail)
- Writing habits, and do you have a year of sent mail for the voice? (default learned from sent mail; if under a year, write ten sample replies)
- How many drafts per run, and how often? (default 6, about 9 times a day)
- May it read your calendar to propose times? (default yes, free and busy only)
- Where do questions go? (default a card in your assistant; a message if none)
Needs
- A mailbox where it can create and delete drafts but never send. Connecting: "It writes drafts and removes them once you reply; it cannot send."
- Attachment text when a reply depends on it.
- Calendar free and busy.
- A store for one verdict per message and the voice profile.
- If your assistant can only chat: paste the thread and say "draft my reply"; steps 4 to 6 apply and you paste the draft into mail yourself.
Build
- Read: about nine times a day, inbound mail since the last run. Per message, in order: blocklist; mass mail (list headers, tracking links from a sender never replied to); calendar invites; thread already answered; from self; senders who never get replies; then one model judgement. Stop at the draft cap.
- Decide (sender history): 10 or more messages with no reply ever means broadcast, skip; two or more replies means trusted, and the tracking-link rule is waived.
- Memory: one stored verdict per message. A model failure retries next run rather than counting as no reply.
- Decide (reply): from the email, the thread, earlier mail to that sender and attachment text, the model returns a draft or a question. Personal choices, commitments and decisions not in the thread become a question. Draft: "yes, Tuesday works" when Tuesday is free. Question: "will you speak at our event?"
- Decide (second pass): check the draft against the same material; a draft with an unsupported claim is held and not saved.
- Style: advance the thread, never bounce it back; mirror the incoming length; match the register; no manufactured closers or signature. Scheduling: two real free windows plus one fallback weekday.
- Deliver: a draft on the thread, or a question card. Fallback: the draft as a message. Delete the draft once the person has replied in that thread.
- Weekly, retrain the voice from 24 months of sent mail, sampled evenly per month. About 270 runs a month.
Check
- Send yourself a test thread with a factual question and run: a draft appears, nothing is sent.
- A test asking for a personal choice: a question card, no draft.
- Quiet run: a run with only newsletters creates nothing and logs its verdicts; the first real run shows in that log. Reply by hand and the draft is gone next run.
In my version
- Gmail drafts by Q, my assistant, 9 times a day, up to 6 a run; question cards on Q's home screen; voice retrained weekly from 24 months of sent mail; Google Calendar for times.
Built it? Tell Sally.
Reply draft
Re: Q4 scope
Dana, thanks. Happy with it as written, with one change: move pricing ahead of the interviews so they can test it. Send the revised version and I'll sign off this week.
James
[Draft saved. Nothing sent.]
5Review my pipeline before the forecast call
A one-page review of every deal I own: stage, last contact, what is stuck, and which three to talk about, so I walk into the forecast call knowing my number.
Details
Ask first
- Where is your deals list? (a customer tool, a spreadsheet)
- What stages count as committed? (default the last two)
- When is the forecast call?
Needs
- Read access to deals, mail and calendar, or a pasted export
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- The morning of the call, list every open deal with stage, value, close date and last contact.
- Mark anything with no contact in nine days or a moved close date.
- Add up committed and best case.
- Pick three to discuss with one line each on why.
Check
- Run it on last week's list; totals match your tool
- Confirm a stuck deal is marked with its days of silence
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a schedule, a page in my notes before each call
Built it? Tell Sally.
Pipeline, before Mon call
Committed$84k across 5 deals. Best case: $131k.
StuckMarlow ($40k), no reply in 9 days, legal not started.
SlippingOkafor pilot, close date moved twice.
Talk aboutMarlow, Okafor, Brightwell renewal.
6Flag renewal and expansion signals
A short daily list of accounts that look ready to expand or at risk before renewal, each with the sign that made it appear.
Details
Ask first
- Where can it see usage or activity?
- How soon before renewal should it look? (default 90 days)
Needs
- Read access to usage and mail, or a weekly export you paste in
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- Each morning, compare each account's recent activity to its last 60 days.
- Flag a rise or fall of 25% or more against the 60-day average, with the number and the date.
- Match to the renewal date.
- Send nothing on a day with no change. Save each flagged account with the date, and do not flag it for the same reason again within 14 days.
Check
- Run it on an account that did expand; it is caught with the number
- Confirm a flag appears once, not every day
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a daily 8am schedule, a message only when something changed
Built it? Tell Sally.
Signals, Thu
ExpandBrightwell added 9 users in two weeks; their renewal is in 60 days.
RiskLumen logins down 40% since September; no reply to two emails.
7List every promise we made to an account before a renewal call
Before a renewal call, every promise our side made to that account in the last twelve months, whether it was kept, and what is still open, so I never walk in surprised by something we said we would do.
Details
Ask first
- Which calls count? (default any calendar event with 'renewal' or the account name)
- Which mailboxes and notes hold the history?
- How far back? (default twelve months)
Needs
- Read access to email, notes and the calendar, or paste the thread history
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- The morning of the call, collect every email and note with that account's people for twelve months.
- Pull out each sentence where someone on our side commits to do something, with the date and who said it.
- Check each against later messages. Mark kept, open or broken, with the evidence.
- Show open and broken first. Never contact anyone.
Check
- Run it on a renewal you remember; every promise you recall is on it
- Confirm each open item links to the message where it was promised
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a schedule, a page in my notes before each renewal call
Built it? Tell Sally.
Promise historyMarlow Freight, call Thu
Kept (7): onboarding in two weeks, a custom export, a named contact.
Open (2): single sign-on "by Q4" (said by you, 3 March); a depot-three pilot (said by Dan, 21 July).
Broken (1): a fix date promised for 12 June, shipped 29 June.
Open both on the call.
8Tie the day's news to what I should say to a customer
Each weekday morning, the few headlines and competitor claims that matter to my accounts, each with what it means for a customer conversation and one line I could say.
Details
Nothing on a quiet day.
Ask first
- Which accounts should it watch for, and what does each care about? (default your ten biggest, with one line each)
- Which competitors and news sources? (default five competitors and the trade press for your accounts' industry)
- What counts as relevant? (default a change an account would ask you about within a month)
Needs
- Read access to the account list, or a short list you paste in
- An assistant that can read news and competitor pages each morning and keep what it has already shown you
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- Each weekday morning, read new headlines and the competitors' pages and compare to the saved copy.
- Match each item to the accounts it could matter to, from what each account cares about.
- For each match, write what it means for a conversation and one line you could say. Link the source.
- Skip anything already shown. If nothing matches, send nothing.
Check
- Run it on last week's news; each item names an account it matters to and links its source
- Confirm an item that matches no account is dropped
- Confirm a quiet day sends nothing
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a weekday 7am schedule, a message before my first call
Built it? Tell Sally.
Field brief, Tue
1Northwind added a free tier (their pricing page, today). Matters for: Marlow and Okafor, both small teams. Say: "Free is fine for three people; it starts to cost you when a team shares reports."
2A freight trade body published new reporting rules effective 1 Jan. Matters for: Marlow Freight. Say: "Do you know yet who will own the new filing?"
Nothing else relevant.
9Show what moved in my numbers this week, and why
A one-page read of the metrics I own: what moved more than usual, the most likely reason from what else changed that week, and the one thing worth checking.
Details
Quiet weeks say so.
Ask first
- Which metrics do you own? (default the five you look at most)
- What counts as unusual? (default beyond 15% of the four-week average)
- Where do the numbers live and what changed log should it read? (a sheet, an analytics tool; a launch or campaign calendar)
Needs
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
- Read access to the numbers, and a record of what shipped or ran each day
- If your assistant cannot read one of these, paste it into the chat when it asks. A thinner version still works
Build
- Each Monday, pull the last week and the four-week average for each metric.
- Flag any beyond the limit. For each, look at what else changed that week and name the most likely cause, marking it a guess.
- For each likely cause you guessed, write one line saying what would show the guess was wrong, and by when, so the guess can be checked later. Do this only for a metric beyond the limit, never on a quiet week.
- End with one thing to check. If nothing moved, say so in one line.
Check
- Run it on a past week where you know why a number moved; the likely cause matches
- Confirm a guess is labelled as a guess
- Say whether the writing step ran for real or on sample text. Check that every quote and link on the page matches its source, and drop any that does not
In my version
- Claude Code on a Monday schedule, a note in my docs and a message
Built it? Tell Sally.
Week of 12 Oct
Signups 412, up 18% on the four-week average. Likely cause: the webinar on Wednesday (118 came from its link).
Trial to paid 9.1%, down from 11%. Check: the pricing page changed Tuesday.
Everything else within the usual range.
10Refresh each account plan
For each of my main accounts, a refreshed plan: who matters, what they care about, what we have done, what is open, and one move for the quarter.
Details
Ask first
- Which accounts? (default your five biggest)
- Where do notes live?
Needs
- Read access to notes, email and deals, or paste them in
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- List the contacts and their roles from the last 90 days of mail and notes.
- Write what they care about in their own words.
- Summarise what we have done and what is open.
- Propose one move with a date.
Check
- Run it on an account you know; nothing is wrong or invented
- Confirm a person who left is not listed as current
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a quarterly schedule, a page per account
Built it? Tell Sally.
Account planMarlow Freight
WhoPriya Nair (VP Ops, new), Sam Okafor (IT).
Care aboutfewer manual handovers.
Donepilot in two depots, 14 users.
Openlegal review.
Moveask Priya to sponsor a third depot by 30 Nov.
11Brief me before every external meeting
A one-page brief for each meeting with someone outside my company: who is in the room, where we left it last time, what each side owes, and what they have posted lately.
Details
Ask first
- Which meetings count? (default any event with an attendee whose email domain is not yours)
- How long before should it arrive? (default 30 minutes)
- Where should it land? (default a page in your notes, linked from the event)
- Which sources may it read about the attendees? (default your own mail and notes, plus their public profiles)
Needs
- Read access to your calendar, inbox and notes
- A way to write a page and attach its link to the event
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- Every 15 minutes, look at the next 45 minutes of your calendar for events with an outside attendee that have no brief yet. Outside means an email domain that is not yours.
- For each, find the last three threads and notes involving those people.
- Write a page: who is in the room, where you left it, what each side owes (read from your promises list if you keep one), anything new about them, one open question.
- Keep it under 150 words. If you have no history, say so and give one fact about the company.
- Never contact the attendees.
Check
- Run it on a past meeting you remember; it names the thing you promised and did not do
- Confirm no sentence states something it could not find in your mail or notes
- Confirm an internal-only meeting gets no brief
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on a 15-minute schedule, a page written into my notes thirty minutes before each external meeting
Built it? Tell Sally.
Tue 10:30, Harbor & Vale, second call
In the roomDana Ortiz, Head of Ops; Luis Chen, IT.
Last timeDana asked about single sign-on. You said you would bring an engineer. You did not.
Since thenthey posted a job for a revenue ops lead.
Openpricing for 40 seats was never sent.
12Draft the follow-up after every call
A draft follow-up waits in my drafts within two hours: what we agreed, who does what by when, and the one question I still need answered.
Details
Nothing is sent without me.
Ask first
- Which calls count? (default any call you have notes for)
- Whose voice should the draft use? (default yours, learned from your last 20 sent emails)
- How soon after the call? (default within two hours, checked hourly on weekdays)
Needs
- Your notes from each call, or a written-up recording, and a way to find the email thread for the person
- Permission to create a draft only, never to send
- If your assistant cannot read one of these, paste it when it asks. A thinner version still works
- Any password or token is entered by you into your device's secure store, never pasted into a chat or saved in a plain file
Build
- Every hour on weekdays, find calendar events that ended in the last two hours and have notes. A call has ended when its calendar event has ended.
- Find the email thread with the attendees. If there is none, start a new draft addressed to them.
- From the notes, list what was agreed, who owns each item and by when, and one open question. If the notes say nothing was agreed, say so on the first line of the draft and do not invent next steps.
- Write a short reply in your voice as a draft on that thread. Never send it.
- Add each commitment you made in the draft to the promises list, so it is tracked from the moment you hang up.
Check
- Run it on yesterday's call; every commitment in the draft appears in your notes
- Confirm the draft is in drafts and nothing was sent
- Confirm each commitment also appears on the promises list
- Say whether the writing step ran for real or on sample text. Check that every figure, quote and link matches its source, and drop any that does not
In my version
- Claude Code on an hourly weekday schedule, a draft left on the existing thread and each commitment added to my promises list
Built it? Tell Sally.
Thanks for today, next steps
Hi Priya, thanks for the time. As agreed: I will send the revised terms by Friday; you will confirm the start date with your team. One question: is the 12 June start fixed, or can it move a week?
Best, Rita