Run an Invoice Campaign

Send a month's draft invoices in one batch, or remind every customer with a balance, with the full list staged for review and a pre-send checklist before anything goes out.

Updated October 2, 2026

An invoice campaign sends one email (and, if you turn it on, one text) per invoice to a batch of customers. Companies run it two ways: to send a month's worth of draft invoices at once, and to remind everyone who still owes money. At the end of this playbook you will have a batch staged, checked, approved, and sent, and a page that shows how many of those invoices got paid.

Before you start

  • Invoices to send. Draft invoices need line items; reminder invoices need to be sent and still owe money. The builder's first step counts both.
  • Invoice delivery switched on. Under SettingsCustomer Notifications, Invoice delivery must have email or SMS enabled, or the pre-send checks will stop you.
  • Stripe connected, if you want online payment. Under SettingsBilling. Without it every email still carries a pay link, but the page only shows the balance.
  • Know whether automatic past-due reminders are on. Under Automations, OpsVara can email customers on its own at set days past due (3, 14, and 30 by default). The campaign shows this and skips recently reminded invoices by default, so nobody hears from you twice in a week.

1. What & When

Open Sales and BillingCampaigns, choose the Invoices tab, and click New Invoice Campaign.

  1. Pick the campaign type

    Send Draft Invoices sends every draft with line items, exactly like clicking Send on each one: PDF, email, and autopay for customers who are enrolled. A draft that is already prepaid in full (a payment recorded on it, or contract credit covering it) is left out, so nobody is emailed a bill they already paid. A draft you made with Revert To Draft is left out too; you send it from the invoice when it is ready. So is a draft that includes work from the previous term, a final invoice for an ended contract, and a draft that replaced another one when its visit was completed: you review it and send it from the invoice. Remind Customers With A Balance sends a reminder for invoices that are sent and still owe money, without changing the invoice or your automatic past-due reminders.

  2. Read what is waiting

    What Is Waiting shows how many draft invoices are ready and worth how much, how many invoices are unpaid and how many of those are past due, and whether automatic past-due reminders are on. If invoice delivery is switched off, a red note says so here rather than after you build.

  3. Name it

    The name auto-fills as Draft invoices · Sep 2026 or Payment reminders · Sep 2026 and stops changing once you type. Customers never see it.

2. Which Invoices

The banner at the top shows how many invoices will send, for how much, to how many customers, and updates as you change anything.

Customers narrows by list, customer type, work type contract, tags, exclude-tags, and years. Invoices narrows by status (reminders only: Sent, Not Yet Due and Past Due), a due-date window, a balance range, and Max Invoices Per Customer. With a cap, the oldest invoices go first and the rest are skipped on the roster so you can see them.

Reminders have two Guardrails, both on by default:

GuardrailWhat it doesWhy
Skip Invoices Already RemindedLeaves out any invoice reminded inside the window (3 to 30 days)Counts your automatic past-due reminders, earlier campaigns, and manual resends, so a campaign the same week does not reach anyone twice
Skip Customers On AutopayLeaves out customers with a saved card and autopay onTheir card is charged automatically; a reminder reads as a mistake unless the charge failed

Skipped invoices still appear on the roster with the reason, and rule-based skips can be overruled row by row with Include Anyway.

3. Email & Text

Pick Email, Text Message, or both. Both respect Customer Notifications, texting quiet hours, and opt-outs. Texts use your Customer Notifications template.

For email, write a Subject and Message or leave them blank for your standard invoice email. Start from a template… fills both with editable starter copy (Invoice ready or Friendly reminder). Your company name is filled in; tokens such as {{invoiceNumber}} stay for send-time. If the boxes already have text, you confirm before they are replaced. The chips insert tokens for the customer's first name, your company name, the invoice number, the amount, the due date, days past due (reminders), and the public pay link. The preview renders them with sample values. Send Me A Test delivers it to your inbox with a [TEST] banner.

4. Review & Build

Four cards summarize the campaign with Edit links back to each step. Choose Send Emails To (primary email or every email on file) and whether the batch sends As Soon As I Approve The Roster or On A Date And Time I Choose. Click Build Invoice Roster.

5. Review the roster

Every invoice the campaign would touch is listed, one row each, with the customer, the invoice number and due date, the amount, and any reasons to look:

  • $0 Invoice, Disputed By Customer (rejected from the portal), On Autopay, Reminded Recently, Over 60 Days Past Due, Large Balance, and More Than One Invoice for the same customer. The Needs Attention tile filters to the ones that warrant a decision.
  • Exclude a row, or select several and Exclude them together. Include Anyway brings back an invoice a guardrail skipped.
  • Export CSV if you would rather review in a spreadsheet.

6. Approve

Review & Approve runs the pre-send checks:

SeverityCheckWhat to do
BlocksNothing to send · no channel can deliverInclude some rows, or turn on invoice delivery under Settings → Customer Notifications
WarnsUnreachable customers · $0 invoices · disputed invoices · autopay customers on a reminder · reminded in the last 7 days · Stripe not connectedShow These Rows, then exclude or accept
InformsAutopay customers who will be charged on a draft send · customers getting more than one invoice · your exclusions and rule-based skipsOptional
InformsPrepaid Invoices Are Left Out (draft sends)Nothing is owed on them, so the customer is not emailed. Open each one and click Close as Paid (no email)
InformsReverted Invoices Are Left Out (draft sends)They were reverted to draft, so they may be half-edited or missing the contract credit that went back to the contract. Open each one and send it from the invoice when it is ready
InformsInvoices With Work From The Previous Term Are Left Out (draft sends)They include add-ons or chemicals from the previous term. Open each one, review it, then send it from the invoice
InformsInvoices That Replaced A Draft Are Left Out (draft sends)They replaced drafts when their visits were completed and may differ from them. Open each one, review it, then send it from the invoice

The dialog also shows the exact subject and message the first customer will read. Approve locks the roster and books the send. Each invoice is checked again at the moment it sends, so one that was paid by check or sent by hand in between is left alone and marked on the roster.

7. Verify it worked

  • The campaign page shows a timeline (Created, Roster Built, Approved, Sent) and How The Invoices Are Doing: sent, paid, partly paid, still open, and disputed, with values. It reads live, so it keeps updating as customers pay.
  • On the roster, each sent row carries Paid, Partly Paid, Still Open, or Disputed, and the current balance when it differs from what was sent.
  • If any rows failed, the campaign page offers Retry N Failed, which re-sends only those.

Troubleshooting

ProblemCauseFix
The roster is much smaller than the unpaid countGuardrails skipped recently reminded or autopay customersSet Status to Skipped to see who, or loosen the guardrails and Save & Rebuild
Approve is disabledA blocking checkRead the red item in the dialog; each names its fix
Customers got the generic invoice emailSubject and Message were blankFill them on Email & Text; the campaign email beats the tenant template for that send
A customer was charged when I only meant to send the invoiceThey are enrolled in autopayThat is what Send does for autopay customers; the roster's On Autopay flag and the pre-send info line show who will be charged
An invoice shows "Invoice no longer sendable"It was paid, voided, or sent by hand after the roster builtNothing to do; it was correctly left alone
A draft shows "Prepaid — close it with Close as Paid"Its balance is already covered by a recorded payment or contract credit, so the campaign did not email itOpen the invoice and click Close as Paid (no email)
A draft shows "Reverted to draft — send it from the invoice when it is ready"Someone used Revert To Draft on it, which holds it from every automatic and campaign sendOpen the invoice, finish the edit, apply the contract credit again if the notice says it went back, and click Send To Customer
A draft shows "Includes work from the previous term — review it, then send it from the invoice"It is a renewed plan's invoice carrying the previous term's add-ons or chemicals, or a final invoice, which is held from every automatic and campaign sendOpen the invoice, review it, and click Send To Customer
A draft shows "Replaced a draft when its visit was completed — review it, then send it from the invoice"The visit's earlier draft no longer matched what the visit bills, so it was voided and this one was built in its place; it is held from every automatic and campaign sendOpen the invoice, compare it with the draft its notice names, and click Send To Customer

Frequently asked questions

Does building a campaign send anything?

No. Build Invoice Roster lists every invoice the campaign would touch and stages it for you. Nothing reaches a customer until you click Approve on the roster and pass the pre-send checks.

Will a reminder campaign double up with my automatic past-due reminders?

Not if you leave Skip Invoices Already Reminded on. It counts your automatic past-due reminders, earlier campaigns, and manual resends, and skips any invoice reminded inside the window you pick. The pre-send checks also warn when recently reminded invoices are still in the batch.

Why are customers on autopay skipped from reminders?

Their saved card is charged automatically, so a reminder reads as a mistake unless the charge failed. Skip Customers On Autopay is on by default for reminders; turn it off to include them, or use Include Anyway on individual rows.

Does sending a draft invoice charge the customer's card?

Yes, for customers enrolled in autopay, the same as clicking Send on the invoice. The roster marks those rows On Autopay and the pre-send checks say how many will be charged. When the charge goes through, that customer gets the "Your invoice was paid automatically" message (amount, card fee, card) instead of the campaign's email; when it does not, they get the campaign's invoice email with the pay link.

An invoice was paid by check after I built the roster. Will it still send?

No. Every invoice is checked again at the moment it sends. One that is no longer a draft, or a reminder that no longer owes anything, is marked "Invoice no longer sendable" on the roster and left alone. A draft that was prepaid in the meantime is marked "Prepaid — close it with Close as Paid" and is not emailed.

A customer prepaid their season. Will a Send Draft Invoices campaign email their draft?

No. A draft whose balance is already covered by a recorded payment or contract credit is left out. It stays on the roster as Skipped with the reason Prepaid — close it with Close as Paid, it cannot be brought back with Include Anyway, and the pre-send checks count them under Prepaid Invoices Are Left Out. Open each one and click Close as Paid (no email) to finish it without emailing the customer.

I reverted a sent invoice to draft. Will a Send Draft Invoices campaign send it again?

No. A draft made with Revert To Draft is left out. It stays on the roster as Skipped with the reason Reverted to draft — send it from the invoice when it is ready, it cannot be brought back with Include Anyway, and the pre-send checks count it under Reverted Invoices Are Left Out. It may be half-edited, and the contract credit it carried went back to the contract. Open the invoice, apply the credit again if it should have it, and click Send To Customer.

A draft replaced another one when its visit was completed. Will a Send Draft Invoices campaign send it?

No. It is left out, because it can differ from the draft the office had. It stays on the roster as Skipped with the reason Replaced a draft when its visit was completed — review it, then send it from the invoice, it cannot be brought back with Include Anyway, and the pre-send checks count it under Invoices That Replaced A Draft Are Left Out. Open the invoice, compare it with the draft it names, and click Send To Customer.

A renewed plan's invoice includes work from the previous term. Will a Send Draft Invoices campaign send it?

No. A draft that carries add-ons or chemicals from the previous term, and a final invoice made with Create Final Invoice, is left out. It stays on the roster as Skipped with the reason Includes work from the previous term — review it, then send it from the invoice, it cannot be brought back with Include Anyway, and the pre-send checks count it under Invoices With Work From The Previous Term Are Left Out. Open the invoice, review it, and click Send To Customer.

Does Start from a template replace what I already wrote?

Yes, after you confirm Replace what you have written with this template? If Subject and Message are blank, it fills them with no prompt. Your company name is filled in; other tokens stay until send.

Some invoices failed to send. Do I rebuild?

No. Open the campaign and click Retry N Failed. Only the failed rows are re-sent.

Related guides