Sales pipeline

Quotes and invoicing

Build a line-item quote on any deal — products or services, quantities, discounts, and tax — then create and send a Stripe invoice straight from it. When the invoice is paid, Reach marks the deal won.

Every deal carries a quote you build on its Quote tab at /deals/[id]?tab=quote. Add line items for the products or services you are selling, set quantities, discounts, and tax, and the deal amount updates to match. When the quote is ready you create an invoice that goes out to the customer through Stripe.

Adding line items

Use the Add line item form at the bottom of the tab. The form has these fields:

  • Product — pick a saved product from the catalog, or leave it on Custom line item… to type a one-off line. Selecting a product prefills the name, unit price, and its default tax rate, and every prefilled value stays editable.
  • Name — required. A blank name is rejected with "Name is required".
  • Quantity — a whole number, at least 1 (defaults to 1).
  • Unit price — the per-unit price in the deal's currency. Cannot be negative.
  • Discount — an optional amount taken off the line. It is an absolute amount, not a percentage, and it may not exceed the line's gross (quantity × unit price). A discount larger than the line is rejected.
  • Tax rate — optional. Choose No tax or one of the named rates you defined under Settings → Tax rates. The picker shows each rate's name and percentage.

Click Add line item to save the line. The deal's amount recomputes from the sum of every line's subtotal and tax, and a change to the total is recorded on the deal's Activity tab. With no lines yet, the table reads "No line items yet. Add the first one below."

Editing and removing lines

Each row has Edit and a trash icon. Edit opens the row inline so you can change the name, quantity, unit price, discount, and tax rate, then Save or Cancel. The trash icon removes the line. Any edit or removal recomputes the deal total the same way an add does.

Tax is computed and frozen on the line at the moment you add or edit it — the rate is applied to the line subtotal and rounded, and the resulting amount is stored alongside the line. The row shows the rate name, its percentage, and the calculated tax. Changing a tax rate in settings afterwards does not recalculate lines that already used it — re-edit a line if you need its tax to follow a new rate.

How the total is calculated

Below the table a summary shows Subtotal, Tax, and Total. A line's subtotal is quantity × unit price, less its discount; its tax is the frozen amount above. The deal's amount on the Overview tab is kept in sync with this total automatically.

Creating and sending an invoice

Click Create invoice to bill the quote. A confirmation prompt asks "Create and send an invoice for this deal?" On confirm, Reach creates the invoice, finalizes it on Stripe, and emails it to the customer. The button is disabled while the deal has no line items.

On success you see "Invoice created and sent." with a View invoice link to the hosted Stripe invoice. Invoices default to net-30 payment terms, and the customer is emailed the hosted invoice at creation time.

Before an invoice can go out, the deal needs a recipient and a connected Stripe account. If a check fails, the action returns one of these messages and no invoice is created:

  • "This deal has no line items to invoice." — add at least one line first.
  • "This deal's invoice total is zero — nothing to invoice." — the quote total must be greater than zero.
  • "Add a contact or organization to this deal before invoicing — there's no recipient to bill." — link a contact or company on the deal's Contacts or Organizations tab.
  • "The deal's contact or organization needs a billing email before you can send an invoice." — the recipient must have an email on file.
  • "Connect Stripe to invoice this deal." — your workspace's Stripe account must be connected. The invoice is created on your connected account, not on Mercleo's.

Reach bills the deal's first linked organization, using its name, billing email, billing address, and tax ID. When there is no organization — or the organization has no billing email — it falls back to the first linked contact for the name and email. If a line item's product tracks inventory, that quantity is committed when the invoice is created; if there is not enough stock the invoice is not created and you are told to adjust the quantity or restock.

Tracking invoices on the deal

The Invoices section lists every invoice raised from the deal with its number, status, total, created date, and a View link to the hosted invoice. With none yet it reads "No invoices yet. Create one from the quote above."

Status comes from Stripe and shows as a badge: Draft, Sent, Paid, Void, or Uncollectible. An invoice shows as Sent right after creation and moves to Paid, Void, or Uncollectible as Stripe reports back through the payment webhook.

What happens when an invoice is paid

When Stripe reports the invoice paid, Reach marks it Paid and, if the deal is still open, advances it to won — closing the quote-to-cash loop without a manual step. Deals you already marked won or lost by hand are left untouched, and a repeated webhook delivery on an already-paid invoice does nothing.

If an invoice is voided or marked uncollectible in Stripe, Reach updates its status to match and releases any inventory that was committed for the deal's tracked line items.

Updated