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 18, 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.
  • Know how your customers pay. Under SettingsBilling. When customers can pay online (Online Card / ACH on and Stripe connected), every email carries Pay This Invoice. When they cannot, every email has View Invoice and your Pay by Check instructions instead; see Choose How Customers Pay You.
  • 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 (when customers cannot pay online, no card is charged). 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. A draft on a contract that shows Check this contract's billing is left out until the office confirms the totals on the contract. 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. When customers cannot pay online, a line says why: Stripe is not connected, or Online Card / ACH is off and the emails show View Invoice and your Pay by Check instructions instead of a Pay button.

  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.

Choose Customers at the top of this step switches between Use Filters and Pick Customers. Use Filters reaches everyone who matches the filters. Pick Customers reaches exactly the customers you pick: search by name, email, or address (it starts at two letters), click a result to add it or Add All for the whole result list, and remove one with its x or everyone with Clear All. You can pick up to 500, and the Customers filters are hidden while you pick. Only the picked customers' unpaid invoices (reminders) or draft invoices are included, and the Invoices filters below still apply to them.

Under Use Filters, 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 (only the first when your customers cannot pay online):

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 on. Not shown when your customers cannot pay online, because autopay is paused and they pay like everyone elseTheir 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.

A reminder never goes to an invoice whose customer already started a bank (ACH) payment that has not cleared. Those rows are skipped as Bank payment processing — the customer already paid; it is clearing, are checked again at the moment the campaign sends, and cannot be included 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). When your customers cannot pay online, the templates and the suggested message say "view it" instead of "pay online", and the preview ends with the View Invoice button and your Pay by Check instructions instead of Pay This Invoice. 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 invoice's pay link (the page that shows the invoice, and how to pay by check when you take checks only). 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 connected (only while Online Card / ACH is on)Show 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
InformsInvoices With A Bank Payment Clearing (reminders)The customer already started a bank (ACH) payment, so they get no reminder. If it fails, the next campaign includes the invoice
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
InformsInvoices On A Contract Waiting For A Billing Check Are Left Out (draft sends)Their contracts show Check this contract's billing, so the amounts may not be what the customers signed. Open each contract, check the totals and click Totals checked — resume billing, or send each invoice yourself from the invoice page

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
A draft shows "Contract waiting for a billing check — check its totals on the contract, or send it from the invoice"Its contract shows Check this contract's billing, which holds its drafts from every automatic and campaign sendOpen the contract, check the totals, and click Totals checked — resume billing; or open the invoice 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. When your customers cannot pay online (Online Card / ACH off under Settings → Billing, or Stripe not connected), autopay is paused and no card is charged, so these customers get reminders like everyone else and the guardrail is not shown.

Does a reminder go to a customer whose bank payment is still clearing?

No. When the customer has already started a bank (ACH) payment on the invoice and it has not cleared yet, a payment reminder campaign leaves the invoice out, the same as your automatic past-due reminders. It stays on the roster as Skipped with the reason Bank payment processing, it cannot be brought back with Include Anyway, and it is checked again at the moment the campaign sends. If the bank payment fails, the next campaign includes the invoice again.

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. The exception is a company whose customers cannot pay online (Online Card / ACH off under Settings → Billing, or Stripe not connected) — then no card is charged and autopay customers get the invoice like everyone else.

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.

A contract shows Check this contract's billing. Will a Send Draft Invoices campaign send its drafts?

No. While that check is open the contract's drafts are left out, because the amount may not be what the customer signed. Each stays on the roster as Skipped with the reason Contract waiting for a billing check, it cannot be brought back with Include Anyway, and the pre-send checks count them under Invoices On A Contract Waiting For A Billing Check Are Left Out. Open the contract, check the totals and click Totals checked — resume billing, then rebuild the roster. You can still send one yourself from the invoice page.

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.

We take checks only. What do the campaign emails say?

Each email has a View Invoice button and your Pay by Check instructions instead of Pay This Invoice. The builder's suggested message and the Invoice ready and Friendly reminder templates say "view it" instead of "pay online", so you are not offered copy that promises online payment.

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