Skip to content
Water LLM
Help Center

Invoices, Clients & Deals

Three tabs built around your active work: ๐Ÿ’ฐ Invoices for billing, ๐Ÿ“… Client Tracker for engagement hours, and ๐Ÿ“ˆ Biz Dev for your sales pipeline.

Invoices

How Invoicing Works
Invoices Overview (4 min)
LOOM_INVOICES
Walkthrough video coming soon

Water LLM generates professional PDF invoices from a Google Doc template, saves them to your Drive, and creates a Gmail draft with the PDF attached — ready for you to review and send. Nothing is sent automatically.

  1. 1
    Enter invoice details in the ๐Ÿ’ฐ Invoices sheet (or use the Invoice Composer)
  2. 2
    Water LLM copies your Google Doc template from Water LLM/Templates/
  3. 3
    Replaces every {{placeholder}} tag with your actual invoice data
  4. 4
    Converts the filled document to a PDF and saves it to Water LLM/Invoices/ in your Drive
  5. 5
    Creates a Gmail draft to the client with the PDF attached
  6. 6
    Writes a clickable link back to the Invoice Record column in your sheet
Creating an Invoice
Using the Invoice Composer (recommended)
  1. 1
    Go to Water LLM โ€บ Create โ€บ Invoice
  2. 2
    Select a contact from the dropdown — autocomplete searches by name, email, or company
  3. 3
    Fill in line items — product names autocomplete from your โš™๏ธSettings product list
  4. 4
    Click Create Invoice — PDF generated, Gmail draft created, link written back to sheet
From an existing Invoices sheet row
  1. 1
    Fill in invoice details directly in the ๐Ÿ’ฐ Invoices sheet
  2. 2
    Go to Water LLM โ€บ Create โ€บ Invoice from Selected Row
  3. 3
    Enter the Invoice Number when prompted
From a won deal in Biz Dev

Drop a card into your winning stage on the Kanban board and you are offered two next steps: Create Invoice, which opens the invoice composer pre-filled from the deal, or Create Client, which opens the client composer pre-filled and set to Onboarding. The commercial fields — start date, work type, hours contracted — are left blank on purpose: hours feed invoice totals, and a guessed number would land in front of someone about to bill.

Invoice versioning

If you regenerate an invoice after correcting an error, Water LLM creates a new versioned PDF rather than overwriting:

  • First generation: Invoice 1001.pdf
  • Second: Invoice 1001 v2.pdf
  • Third: Invoice 1001 v3.pdf

Up to 99 versions per invoice number are supported.

The Invoice Template — Placeholders
Customizing Your Invoice Template (3 min)
LOOM_INVOICE_TEMPLATE
Walkthrough video coming soon

Your invoice template is a Google Doc at Water LLM/Templates/Template Invoice. Any text wrapped in double curly braces {{like this}} is replaced with the real value from your invoice data when a PDF is generated.

To customize: open the Google Doc in Drive, edit the layout and formatting, and keep the double curly braces around each placeholder. Capitals and spacing don't matter — {{first name}} fills the same as {{First Name}} — but the words must match a column or one of the placeholders below.

Standard placeholders
PlaceholderWhat It Becomes
{{Invoice Number}}The invoice number
{{First Name}} / {{Last Name}}Client’s name
{{Nickname}}Informal name, if you keep one in the CRM
{{Company}} / {{Email}} / {{Phone 1}}Client’s company and contact details
{{Title}}The contact’s job title, from the CRM
{{Date Sent}} / {{Date Paid}}The dates from those columns
{{Item 1 Name}}Line item 1 name (same pattern for Items 2–4)
{{Item 1 Cost Per Unit}}Price per unit
{{Item 1 Number of Units}}Quantity
{{Item 1 Discount %}}Discount percentage — the % is part of the token
{{Total for Item 1}}Line item total
{{Notes}}The Notes column for that invoice row
Totals, tax and reimbursables
PlaceholderWhat It Becomes
{{Line Item Totals}}Subtotal of the four line items
{{Costs Reimbursed By Client}}Reimbursable expenses.
{{Non-Reimbursable Costs}}Costs you absorb. Not shown to the client unless you put it in the template.
{{Tax Label}} / {{Tax Rate}} / {{Taxes}}Your tax label (VAT, GST, Sales Tax…), the rate, and the calculated amount. Blank when tax is off for that invoice.
{{Total Invoiced}}Grand total — line items + reimbursables + tax. What the client owes.
{{Total Payable}} / {{Amount Due}}Aliases for {{Total Invoiced}}, for templates that phrase it differently
{{Net Profit}}Line item totals minus non-reimbursable costs. Excludes tax — you collect it, you don’t earn it.
{{Vendor Costs}}Vendor costs recorded against the invoice
{{Currency}}Your currency symbol
Address

These come from the CRM row, not the Invoices row, so they work even though the Invoices sheet has no address columns.

PlaceholderWhat It Becomes
{{Address}}The whole address as a formatted block. Empty lines drop out, so a contact with no Region doesn’t leave a gap.
{{Street}}, {{Extended Address}}, {{City}}, {{Region}}, {{Postal Code}}, {{Country}}The individual fields, if you would rather lay them out yourself
{{Address Formatted}}The single-line version Google Contacts stores. A fallback when the individual fields are empty.
Date placeholders
PlaceholderWhat It Produces
{{Today}}Today’s date, at the moment the PDF is generated
{{Today+30}}30 days from today. Only +30, +60 and +90 exist.
{{Invoice Date}}The invoice date — the Date Sent column. Note the space in Invoice Date.
{{Invoice Date+30}}A fixed offset from the invoice date. +15, +30, +45, +60, +90 and +120.
{{Due Date}}The due date worked out from your payment terms — usually what you want instead of a fixed offset
{{Payment Terms}}Your terms in words, e.g. “Net 30”
A misspelt placeholder disappears โ€” it does not show up as an error

Capitals, spaces, underscores and hyphens don't matter: {{costs reimbursed by client}} and {{InvoiceDate+30}} fill the same as {{Costs Reimbursed By Client}} and {{Invoice Date+30}}. A misspelt word does matter — {{Totl Payable}} is not {{Total Payable}}.

When Water LLM finds a placeholder it does not recognise in the invoice template, it removes it rather than printing it. That is deliberate — nobody wants {{Total Invoiced}} printed on a client’s invoice — but it means a typo shows up as a blank where a number should be, not as something obviously broken. An invoice with no due date, or no reimbursables line, is easy to send without noticing.

Water LLM does collect the unrecognised tokens and surfaces them when you generate an invoice from the composer. If it tells you a placeholder was not recognised, check it against the tables above before you send. Generating a test invoice against a dummy contact after any template edit takes a minute and catches this.

Blank line items are removed automatically

If an item's Name is blank, that entire line item is stripped from the PDF. Your invoice only shows items with values — no need to add dummy text for unused line item slots.

Restore the default template

If your template is missing or corrupted: Water LLM โ€บ Configure Hub โ€บ Drive & Templates โ€บ Re-create Templates

Invoice Reminders

Water LLM can automatically draft payment reminder emails at milestones relative to the invoice due date.

Default MilestoneWhat Gets Drafted
7 days before dueFriendly "coming up" notice
Due date"Payment due today" reminder
14 days overdueFirst follow-up
30 days overdueEscalation reminder

Every Monday you also receive an Aged Receivables digest listing all unpaid overdue invoices.

Configure reminders at Water LLM โ€บ Configure Hub โ€บ Invoices & Reminders — set payment terms, customize milestone days, toggle PDF attachment, and turn the feature on. The reminder job itself runs daily by default; its hour is in Configure Hub โ€บ Automation Scheduling.

Common Invoice Issues
ProblemFix
"Invoice Template not found" The template must be named Template Invoice in Water LLM/Templates/. Go to Configure Hub โ€บ Drive & Templates โ€บ Re-create Templates to restore it.
A value is blank in the PDF where you expected text The placeholder's words don't match a column or a standard placeholder, so it was removed. Capitals and spacing don't matter; spelling does. The invoice composer lists any placeholder it didn't recognise — compare it with the tables above.
Line item missing from PDF Each line item needs at minimum an Item Name. Blank names are stripped automatically.
Can't find the Gmail draft Check Gmail Drafts. If it's missing, the Email column in the invoice row may be blank or contain an invalid address.
Unresolved placeholder warning A {{placeholder}} in your template doesn't match any column header. Check for typos in the template.

Invoicing in Another Currency

Bill a client in a currency that isn’t your own and Water LLM keeps two sets of books, deliberately:

  • ๐Ÿ’ฐ Invoices stays entirely in your home currency, so every total, every dashboard figure and every report adds up without you converting anything in your head.
  • ๐Ÿ’ฐ FX Ledger — created the first time you invoice abroad — holds the real amounts in the real currency, along with the exchange rate on the day the invoice went out.

The PDF your client receives is rendered in their currency, from the FX Ledger. What you see in your own reporting is the home-currency equivalent.

What happens when the rate moves

Revenue is recorded at the rate on the invoice date and stays there. When the money actually arrives at a different rate, the difference is written to the FX Ledger as a gain or a loss — it does not quietly change a revenue figure you have already reported or, worse, already filed. That reconciliation runs as a background job you can switch on in Configure Hub โ€บ Automation Scheduling (it ships off, because it is only relevant once you invoice abroad), or run on demand from Water LLM โ€บ Run Manually โ€บ Calculate Foreign Currencies.

Where the rates come from

Published daily reference rates, fetched when an invoice is created and again when it is paid. They are reference rates, not your bank’s rates — your actual receipt may differ by the spread your bank charges. Treat the ledger as a good record, not a bank statement.

Client Tracker

What the Client Tracker Does
Client Tracker Overview (4 min)
LOOM_CLIENT_TRACKER
Walkthrough video coming soon

The ๐Ÿ“… Client Tracker tab is for coaches and consultants who sell packages of hours or run ongoing engagements. It connects to your Google Calendar and automatically calculates how much time you've spent with each client.

For each engagement it calculates:

  • Total meeting hours (from Google Calendar, filtered to your date range)
  • Hours remaining against contracted hours
  • 30-day velocity — how many hours per month you're averaging
  • Risk flags: ghosting, renewal due, overuse
  • Lifetime value based on rate and hours
Setting Up a Client

Each row is one engagement. Use the Client Tracker Composer (Water LLM โ€บ Create โ€บ Client) for a guided form, or enter directly into the sheet. Picking someone from the search fills in their name, email and company from the CRM. If their CRM row has no company, the composer suggests one — the company other contacts at the same email domain use, or failing that the domain’s name — and says where it came from so you can check it. Gmail-style personal addresses are left blank.

ColumnWhat to EnterRequired?
Client Name Display name for this engagement Yes
Email Their email — must match the address on Google Calendar invites exactly Yes
Start Date When the engagement began — only meetings on or after this date are counted Yes
End Date When it ends. Leave blank for ongoing engagements. No
Hours Contracted Total hours in the package. Leave blank for retainers with no cap. No
Rate Or Project Value Session rate or total project value — used for Lifetime Value calculation No
Client Status Onboarding, Active, Paused or Finished. Set to Finished or Paused when done — clears risk flags. Finished also stamps Finished On, which Client Wrap-up uses. Yes
The Email must exactly match the address on their calendar invites

Water LLM finds meetings by scanning your Google Calendar for events where the client's email appears in the guest list. If they RSVP from a different email address than what you entered here — for example, their personal Gmail instead of their work address — those meetings won't be counted.

If meeting time shows 0 hours: check whether their calendar invites come from a different address, and update the Email column to match — or, in Client Tracker settings, count all of their emails from the CRM.

Client Goals

Write down what a client is working toward and how you’ll both know it worked. Add or edit goals in the Goals & success measures box when you create a client (Water LLM โ€บ Create โ€บ Client) or edit one.

  • They live at the top of the client’s notes doc, dated, and are rewritten in place when you change them. Your dated notes below are never touched.
  • They show where you need them — on the client card in the sidebar, and on that client’s meeting card in your Daily Briefing.
  • An optional reminder — turn on Set Goals in Configure Hub โ€บ Task Manager and new clients without goals show up in your task list. It’s off by default.
Auto-Calculated Columns

These are computed by Water LLM. Do not edit them manually.

ColumnHow It Works
Total Meeting Time Sum of the meetings that count as sessions (see Client Tracker settings), from Start Date to End Date (or today). Excludes declined events and "Free" events.
Hours Left Hours Contracted minus Total Meeting Time. Shows "N/A" if no contracted hours.
Time Spent / 30 Days Rolling 30-day meeting hours. Shows your current pace with this client.
Lifetime Value Rate ร— total hours, or the project value if set.
Prep Work For company rows only — your solo time blocked for that company. See Client Tracker settings.
Flags Everything that needs attention on the client, in one cell — for example:
Ghosting — you haven’t heard from them (email, message or meeting) since you last reached out, past the Quiet client threshold (default 90 days), and nothing is booked
No Future Meeting — no session is booked
No Recent Activity — no sessions logged in the last 30 days
Follow-Up Due — they wrote and it’s still unanswered
Renewal Required / Hours At Risk — contracted hours nearly or fully used
Every flag and its threshold is in the Glossary. The same flags drive the Dashboard counts and the Daily Briefing’s task cards.
Set status to Finished or Paused when an engagement ends

Risk flags (Ghosting, Renewal Required, Hours At Risk) are cleared automatically when a client is set to Finished or Paused. Time Spent is still calculated within the date range, but the alerts stop firing. When you mark them Active again, all metrics recalculate.

How Meeting Time Is Counted

Water LLM scans your Google Calendar for events where the client's email address is in the guest list.

An event IS counted ifโ€ฆAn event is NOT counted ifโ€ฆ
The client is an attendee and did not decline The client declined the invitation
The client organised it The event is marked "Free" (transparent) in Google Calendar
The event falls within the Start Date to End Date window The event is outside the date range
It passes your session rules, if you’ve set any Your session rules leave it out — by title or length
All-day events

All-day events are skipped by default (counted as 0 hours). How many hours an all-day event is worth is a calendar-wide setting: Water LLM โ€บ Configure Hub โ€บ Your Account & Preferences โ€บ Region & Currency (e.g., 8 to count each as a full day). Client hours follow it unless you give them their own number in Client Tracker settings — useful when a full-day workshop with a client should count differently.

Event duration is in decimal hours

A 45-minute meeting = 0.75 hours. A 90-minute session = 1.5 hours. All totals are rounded to two decimal places.

Client Tracker Settings

Everything about how clients are counted and flagged is in one dialog: Water LLM โ€บ Configure Hub โ€บ Client Tracker. Save & Full Scan saves and recalculates every client straight away; Save & Scan Client does the same for one.

SettingWhat it does
What counts as a session Leave out meetings by title (“Invoice review”, “Discovery”), or count only titles with certain words (“Session”), and set the shortest meeting that counts. Separate words with commas; capitals don’t matter; a title with words from both boxes is left out. Leave both empty to count every meeting. These rules set Total Meeting Time, Number of Meetings, Meeting Dates and Time Spent / 30 Days — and so Hours Left and the hours flags.
All-day events with a client Same as calendar follows your calendar-wide setting in Region & Currency. Or give client hours their own number — don’t count them, or 1, 2, 4 or 8 hours.
Company clients & prep time Working with a company rather than one person? Put the company’s domain in the Email column on ๐Ÿ“… Clients, starting with @ — e.g. @acme.com. Every meeting with anyone from that domain counts as a session, once per meeting however many of them join. Time you block for them with no one from the company invited, titled with the company name or domain (“Acme deck prep”), adds up in the Prep Work column — your admin and preparation time next to delivery hours. The session rules don’t touch Prep Work. Use a company’s own domain, not gmail.com.
Which emails count as the client Only the email on the Clients tab (the default), or all of their emails in the CRM (Email 1–4 on their CRM row). The second counts sessions booked from a client’s other addresses — a personal email for one session and a work email for the rest.
When to flag a client The client thresholds behind the Flags column. They are the same numbers as Configure Hub โ€บ When to Flag Things — change them in either place.
Client Tracker Troubleshooting
ProblemWhat to Check
Meeting time shows 0 hours
  • Does the Email column contain the exact address the client uses for calendar invites?
  • Is Start Date set to a date before the meetings occurred?
  • Were the meetings marked "Free" or did the client decline?
  • Run Run Manually โ€บ Refresh Client Tracker after entering client info
"Ghosting" flag but you spoke recently The flag reads the CRM’s last-contact dates, which Comms & Meeting Sync updates overnight, and is recalculated on the next Client Tracker run. Run Run Manually โ€บ Refresh Client Tracker after the sync to update it now.
Hours flags on a flexible engagement Leave Hours Contracted blank for retainers or flexible work. This shows "N/A" for Hours Left and the hours flags don’t fire.

Biz Dev & Sales Pipeline

How the Pipeline Works
Biz Dev & Kanban Board (4 min)
LOOM_BIZ_DEV
Walkthrough video coming soon

The ๐Ÿ“ˆ Biz Dev tab tracks prospects and deals before they become active clients. Each row is one deal. The pipeline stages are fully customizable — define the stages that match your sales process.

ColumnWhat It Is
Deal IDAuto-generated (D-001, D-002โ€ฆ)
Contact IDLinks to a CRM contact
First Name / Last Name / Company / EmailSynced from the linked CRM contact
StageCurrent pipeline stage (from your defined stages)
Est. ValueEstimated deal value — used in revenue forecasting on the Dashboard
Expected CloseWhen you expect the deal to close
Deal NotesYour notes about this deal
Next Step / Next Step DueThe one thing this deal needs next. See Next Step below.
Lead SourceHow this person first found you — read from their CRM row. See Lead Source.
Lost ReasonWhy a Closed Lost deal was lost. The deal composer asks “Why was it lost?” when you move a deal to your losing stage, and clears it if the deal moves anywhere else. Dragging a card on the board or editing the sheet doesn’t ask. Choices: Price, Timing, Went with someone else, No response, Not a fit, Budget, Other.
Stage Date columnsTimestamps recording when the deal entered each stage
The Kanban Board
Kanban Board Walkthrough (3 min)
LOOM_KANBAN
Walkthrough video coming soon

Open the visual view of your pipeline via Water LLM โ€บ Biz Dev Board.

  • Drag and drop — move deal cards between stage columns
  • Stage timestamps — when you move a deal to a new stage, the date is automatically recorded. Move a deal backward and future stage dates are cleared.
  • Deal aging — cards show how long since the last stage update
  • Quick actions — edit deal details, delete, or auto-invoice from a closed deal
  • Closing a deal — drop a card into your winning stage and you are offered two next steps: Create Client, which opens the client composer pre-filled and set to Onboarding, or Create Invoice, which opens the invoice composer pre-filled from the deal. Losing a deal offers neither, because neither applies.
  • When the deal contact isn’t the client — creating a client from a won deal asks whether the deal contact is the client, their sponsor (someone at the company paying for it) or the person who referred them, and fills in the ๐Ÿ“… Clients row accordingly.
Next Step on Every Deal

Each deal on ๐Ÿ“ˆ Biz Dev can have one next step with a due date — send a proposal, follow up by email, wait for a reply, book a call, send an invoice, decide or close out. Set or change it from the deal composer, the Next Step button in the sidebar, or with one tap in your Daily Briefing, which works on your phone.

Water LLM notices when it’s done, from data it already collects: you emailed them, they replied, a meeting got booked, the deal reached Proposal, an invoice went out, or the deal closed. It then clears the step, notes “โœ“ …” in their notes doc, and suggests the next one in your briefing.

It never sets one for you

Suggestions are suggestions. A next step only appears on a deal when you choose it — in the composer, a suggested step is one Use it click away.

Customizing Pipeline Stages

Your stage names live in โš™๏ธSettings, column K, rows 4 to 14 — eleven slots. The default set uses six of them:

SlotCellDefault
1K4Lead
2K5Discovery
3K6Proposal
4K7Negotiation
5–9K8–K12empty — yours to fill
10K13Closed Won close-out
11K14Closed Lost close-out

The last two slots are the close-out pair — K13 is the positive one, K14 the negative. Call them whatever you like (“Signed” and “Passed”, say); what matters is that they stay in those two cells. Everything else counts as open pipeline, and the board offers to create a client or an invoice the moment you drop a deal into K13.

Rename freely. Reorder carefully.

Each slot keeps its own dates, so renaming a stage changes only the label and nothing else moves. Adding a new stage is safe too — put it in the first empty slot, K8. What to avoid is inserting a stage above slots that already have deals in them: the dates belong to the slot rather than the name, so everything below shifts meaning. If you need to restructure a pipeline you already have history in, email support first.

Deals follow the person, not a copy of them

A deal is joined to a CRM row by its Contact ID, so the contact and communication columns on the Biz Dev tab read straight through from the CRM. Update someone’s details once, in the CRM, and the pipeline follows. The overnight Run Manually โ€บ Refresh Communication Activity is what keeps the dates current on both.

Still stuck? Email support@waterllm.com and we’ll get back to you within one business day — or use the contact form.