Home › Guide

CRM — leads, pipeline & winning work

The CRM (Business plan and up) takes a prospect from first contact to paid invoice without leaving 360books.

Leads

CRM → Leads. Capture leads by hand, ⬆ import a CSV (a header row with Name — Email, Phone, Company and Source are picked up automatically, duplicates skipped), or share your public lead form link (📋 Copy lead form link) on your website or WhatsApp status — submissions land here automatically, spam-protected. Each lead has contact details, a phone with tel: and 💬 WhatsApp one-tap actions, a source, and tags ("VIP", "retail"…) you can filter by.

Open a lead and it carries its three verbs, right where you're reading it:

  • Log a note or call — capture what happened onto the lead's timeline ("Called, wants a quote for payroll"). A logged touch also resets the go-cold clock below.
  • 💼 Create deal → — the moment "might buy" becomes "asked us for a price", promote it. The deal lands in the pipeline's New column, linked to the lead — so anything attached to the lead stays visible from the deal.
  • ✔ Convert to customer — when they're real enough to quote or invoice. This creates the customer record, points the lead's deals at it, and stops any drip sequences (a customer must never keep getting "still keen to chat?" emails). Customers take tags too.

Leads that go cold

A lead nobody follows up sits in New for ever, indistinguishable from one that arrived this morning, and the count stops meaning anything. So you can choose when a lead is written off.

Settings → Leads → "Close a lead after this many days with no activity." Leave it blank and nothing ever expires — that is the default. Set 30 or 60 and a lead nobody has touched for that long is marked expired overnight.

Three things worth knowing about how it decides:

  • Any contact resets the clock. A logged call, email, meeting or note counts, and so does editing the lead. A lead you phoned yesterday never expires just because nobody edited the row.
  • Only New and Working leads are closed. A qualified lead is a decision you made, so a timer does not overrule it. Converted and unqualified are already closed.
  • expired is its own status, not "unqualified". "Nobody followed up" and "we looked at them and said no" are different facts, and the first is the one that tells you the follow-up process needs attention. Keeping them apart is the point.

Open any lead and set "Close this lead after" to give that one its own period: blank follows the company setting, 0 means never close this one — for the key account you always want in the pipeline — and a bigger number buys time on a prospect whose budget cycle is months away.

Reopening an expired lead (set it back to New or Working) starts its clock again, so it will not be closed the same night.

Working more than one brand

If you have set up trading divisions (Accounting → Divisions & projects), leads and deals each get a Division field, and the pipeline gets a filter in its header. Pick a division to work one brand's board at a time; a deal you add while filtered defaults to that brand, so you are not re-picking it every time.

The field only appears once you have created at least one class — a single-brand business never sees it.

Pipeline

CRM → Pipeline. Deals move through new → qualified → proposal → won/lost. Each column is a promise about what you'll do next:

  • New — someone's interested; you know almost nothing. Job: have one conversation — real need? budget? who decides? Can't answer those, it stays (or honestly dies) here.
  • Qualified — it's real, they can pay, you want the work. Job: price it.
  • Proposal — you've formally asked for the business; the ball is in their court. Job: chase it — this is the column where the expected-close date matters most.
  • Won — they said yes. A quote accepted online moves the deal here by itself, and the card grows Create invoice →, because winning is only interesting once it becomes billing.
  • Lost — they said no, or nobody answered for long enough (the sweep below). Record the reason; "price — R210k above lowest" is next year's bid strategy.

Stage and probability are different dials. The stage says where the conversation is; the probability says how likely a yes — and they move separately. A tender can reach Proposal and still deserve 25% (most bids lose); a warm repeat customer can sit in Qualified at 70%. The header's weighted pipeline multiplies value × probability across open deals — the number to plan cash around, which is exactly why flattering probabilities and zombie deals lie directly to your own forecast. Click a deal title to open its panel: the activity timeline, notes, a 💬 WhatsApp follow-up button, and ✨ Next action — AI that reads the deal, its history and the customer's payment record, then suggests the next move with a draft email. You can ✉ send that email right from the panel (one click on "Use draft", or write your own) — it goes out as your business, replies come to you, and it's logged on the deal's timeline. Follow-up tasks can be assigned to teammates, and everyone sees who owns what.

The panel is also where the deal itself stays honest as the conversation moves: the Value field is editable right next to Probability (a R425,000 quote renegotiated to R399,000 takes five seconds to record, and the pipeline totals update immediately), the ✎ next to the title renames the deal, and Probability and Expected close were always editable there.

↩ Withdraw is for the tender world: you are pulling the bid — a strategic retreat, not a defeat. The deal moves to the Lost column marked with a "↩ withdrawn" badge and counts under its own "Withdrawn" reason in Insights, so your genuine win/loss rate against competitors isn't polluted by bids you chose to abandon. It only shows on open deals.

Deals that go quiet get a 🥀 “quiet” badge after 14 days without activity, and the daily CRM digest email lists your due follow-ups and stale deals each morning — nothing slips.

When you move a deal to lost, record the reason — it feeds the Insights report. (A withdrawal records its own reason automatically.)

Deals past their close date

Every deal takes an expected close date — set it when you add the deal, or change it any time from the deal's panel. It drives the Forecast below, and optionally the pipeline's own tidy-up.

Settings → Leads → "Move a deal to Lost this many days after its expected close date." Blank means never, which is the default. 0 moves a deal the day after its date passes; a few days allows for the usual slippage.

This is a different rule from lead expiry, on purpose:

LeadsDeals
CountsDays of silenceDays past the close date
Reset byAny call, email or editMoving the date

A deal you spoke to yesterday whose close date was last month is overdue — the conversation did not move the date. That is deliberate: it is how a forecast stops filling up with deals that were never going to land this quarter.

If a deal has genuinely slipped, change its expected close date — that is the intended fix, and it takes the deal back out of scope immediately. For a deal being renegotiated whose timing is genuinely unknown, clear the date altogether or mark it never-auto-lose. A lost reason you typed yourself is never overwritten; only an empty one gets 360books' explanation.

Deals about to be closed this way are listed before it happens, so nothing disappears without warning.

Forecast — what you'll actually close

CRM → Forecast. Every open deal is counted at its own probability and grouped by the month it's expected to close. Three numbers per month:

  • Forecast — each deal's value times its probability. What you'd bet on.
  • Best case — every open deal landing in full. The ceiling, not the plan.
  • Won — what already landed in that month, for real.

You choose how many months ahead to look. Both fields were already on your deals; this is what happens when you read them together.

It won't hide the deals it can't place. Underneath the months is a short list of open pipeline the monthly view can't put anywhere, because each of these makes a forecast wrong in a way you'd never notice:

  • Past their expected close date and still open — the date has slipped and nobody moved it.
  • No expected close date at all — real pipeline that fits in no month.
  • Still at 0% — probability starts at zero, so these count for nothing in the weighted total. If they're real deals, your forecast is too low by exactly that much.

Fix the deal and it walks back into the forecast by itself. A forecast that quietly drops what it can't handle is worse than no forecast, so these are listed instead.

Drip sequences

CRM → Leads → ⚙ Sequences. Build a series of timed follow-up emails — day 0, day 3, day 7 — with {{firstName}} personalisation, then ▶ Drip on any lead to enroll them. Each morning the due step goes out as your business (replies come to you), gets logged on the lead's timeline, and the moment a lead converts to a customer the sequence stops automatically. Most deals are won on the fifth follow-up nobody sends — this sends it.

Meeting bookings

CRM → Leads → 📅 Bookings. Set your available days, hours and slot length, then share your public booking link — anyone picks an open slot, and both sides get a calendar invite automatically. Every booking creates a lead (source: Booking), logs a meeting on their timeline, and shows under Follow-ups → Upcoming meetings. Double-bookings are impossible — a taken slot disappears from the page.

Attachments — the paper stays with the work

Leads and deals both take attachments (PDF or images, up to 10 MB each): the RFQ on the lead, the signed quote or drawings on the deal. Download or remove any file from the same card.

Files never move or get copied when work is promoted. A lead keeps its files through conversion, and every deal born from that lead shows them under "From the original lead" — because one lead can feed several deals, and a copy in two places is a lie waiting to happen. Deal files stay on the deal, one click from its quote and invoice; the invoice carries its own attachments for its own paper (delivery note, proof of delivery).

Worked example — bidding a tender:

1. The advert becomes a lead (source: tender) with the tender document attached. Set the lead's own expiry to the closing date. 2. The site briefing goes on the timeline; site photos attach to the lead. 3. Your bid becomes a deal — value, probability you believe, expected close = the award date (the validity period). Attach the submitted bid and pricing schedule to the deal. Formal tenders go in on the issuer's forms, so skip the online quote for these. 4. The wait is where the guardrails work: if the validity lapses with no award, the deal moves itself to Lost. An extension letter? Push the expected close out and attach the letter. 5. Won: convert the lead to a customer and open a project (job costing) for progress claims and retention. Lost: record the reason — when the tender re-advertises next year, last time's pricing is one click away.

Quotes customers accept online

From a deal, Create quote →. When you email it, the customer gets a Review & accept online button — a public page where they accept with their name as signature. The moment they do, the deal is won automatically, you get an email, and one click converts the quote to an invoice (which carries its own pay link). Lead → chat → quote → accepted → invoiced → paid, end to end.

Insights

CRM → Insights. Your funnel by stage, win rate, average won deal and days-to-close, why deals are lost (from the reasons you record), and which lead sources actually make money — leads, conversions and won value per source. Spend your marketing where the won-value column says to.

Next: Leave & expense claims →