Groundbase
← Back to the Pipeline
Features

Invoicing inside your CRM — bill the contacts you already have

Most solo operators run a CRM and a separate invoicing tool, and keep two customer lists in sync by hand. Groundbase invoices the contacts already in it, from your own email address.

Most one-person businesses run two systems that both contain their customers. A CRM with the relationship, and an invoicing tool with the money. The same people typed into both, drifting apart quietly — a changed address updated in one place, a company renamed in the other.

Groundbase invoices the contacts and companies already in it. That is the entire idea, and most of what follows is consequences of it.

The invoices list, with outstanding totals held separately per currency

No separate customer list

When you raise an invoice, you pick a contact or a company from your CRM. There is no customer record to create, because the customer already exists — you have been emailing them for six months.

Each contact or company can carry a billing profile: their billing email, billing address, tax ID, currency and payment terms. Pick them on an invoice and all of it fills in. Change their address once and every future invoice is right.

That is the part two-systems setups cannot do. Not because invoicing tools are bad, but because they have no idea who your contacts are.

Saved items, with a real price per currency

If you sell the same handful of things repeatedly, save them as items — name, description, unit price, tax rate — and add them to an invoice in a click instead of retyping.

The part that took the longest to get right is multi-currency. Most tools store one price and convert it, which means a $200 item becomes 271.43 in another currency and looks like exactly what it is: a conversion.

Editing a saved item: a base price in CAD and a real, separately set USD price

A saved item in Groundbase holds a real price in each currency you charge in. Charge 200 in one and 150 in another because those are the round numbers you actually quote, not whatever today's rate turns your base price into. Exchange rates are fetched for you where you want a conversion, and you can override any of them by hand — because if you have agreed a fixed rate with a client, the market's opinion is irrelevant.

Sending, and the page they open

Issuing an invoice does two things. It locks the numbering, and it lets you email it — from your own address, through your own email account, not from a Groundbase noreply.

The recipient gets a link to a hosted invoice page. It is deliberately a document rather than an account area: no login, no signup prompt, nothing about Groundbase beyond a quiet footer. Someone opening it wants to know what they owe and how to pay it, and anything else on that page is you spending their patience on your marketing.

The hosted invoice page a customer opens — no login, no signup prompt, just what is owed

The link uses its own token rather than the invoice ID, so a link forwarded to the wrong person can be revoked without touching the invoice.

For the accounts departments that insist on an attachment, there is also a PDF button — it lays the invoice out properly with your letterhead and opens your print dialog, where Save as PDF does the rest.

Numbering that does not skip

Invoice numbers come from a gapless sequence. INV-0001, INV-0002, and no jumps.

That sounds fussy until an accountant asks where invoice 0007 went. Systems that number optimistically — assigning as you start a draft — leave holes wherever someone abandoned one, and explaining a hole is a conversation nobody wants. Numbers here are assigned at issue, not at draft.

Receipts have their own separate gapless sequence, for the same reason.

Payments and receipts

Record a payment against an invoice — full or partial — and the balance updates. Partial payments are a real state rather than a note in a comment field, so an invoice can sit at partially paid with the remainder tracked.

A part-paid invoice: balance due, the payment already recorded against it, and a reversal control

When a payment is recorded, the receipt sends itself, again from your address. This is the bit that quietly saves the most time, because sending receipts is exactly the kind of admin that gets deferred and then done in an uncomfortable batch three weeks later.

It shows up where the customer does

Because invoices live in the CRM rather than beside it, they appear on the contact and the company. Open someone's record and you see what they owe alongside the deals, the notes and the messages.

"Have they paid?" stops being a different tab. It is the same question as "what have we been talking about", answered in the same place. Every issue, send and payment also lands in the activity history, so the record of what happened is one timeline rather than two.

What it does not do

Being straight about this, because a features post that oversells is worse than no features post:

No card payments yet. You record payments that happened — bank transfer, cash, cheque, a Stripe payment you took elsewhere. Letting a customer pay the invoice from the page itself is the obvious next step and it is not built.

No recurring invoices. Every invoice is raised deliberately. If you bill the same retainer monthly, that is twelve actions, not one setup.

Not accounting software. No ledger, no expenses, no tax filing, no reconciliation. It raises invoices, tracks what came in against them, and stops. If you need books, you still need books — this feeds them rather than replacing them.

Building invoices is a desk job. On mobile you can see what is outstanding and record a payment, which are the two things that genuinely happen away from a desk. Line-item editing on a phone is not something anyone wants.

Who this actually helps

If your invoicing tool and your CRM contain the same fifty people and you maintain both, the duplication is the cost — not the subscription.

If you invoice a few times a month, in more than one currency, to people you also email and text, this removes a whole system from your week.

If you invoice hundreds of times a month, or you need recurring billing, dunning and card payment, use something built for that. This is not that, and it will be a downgrade.

Related reading: what a spreadsheet stops being able to do covers the same shape of problem one layer earlier, and who Groundbase is and is not for is the honest version of the paragraph above. If you are wondering how sending from your own address works, setting up Resend and verifying your sending domain is the setup that makes invoices and receipts arrive rather than land in spam.


Invoicing something unusual and not sure it fits? Tell me the shape of it: blog-invoicing@groundbasecrm.com — I read every one.

Built by a solo dev. Try it.

Start your 14-day trial →

More from the Pipeline

Features

How to leave Groundbase

Every row you own, in one JSON file or per-entity CSVs, on demand and without asking. Written by the person…

Features

Calling from inside your CRM

A dialer, call history, voicemail with transcription, and voicemail drops — in the CRM itself, billed throu…

Guides

How to warm up a new email domain (a four-week schedule, and what actually gets you filtered)

You verified the domain, the DNS is green, and your first campaign still went to spam. Warming is the missi…

Notes

Why Groundbase is three apps, not one

Web, Windows desktop and Android, built and maintained by one person. Here is the reasoning, the tax it cha…