Skip to content
Crons

Template

Automated invoice reconciliation with approval before reminders

Automated invoice reconciliation matches incoming payments to open invoices without manual checking. This Crons template reads payment notifications in Gmail every month on the 1st at 09:00, matches them to invoices in your Google Sheets ledger, marks paid invoices, flags mismatches and drafts reminders for overdue customers that are sent only after a person approves them.

See pricing
Finance manager approving a reconciliation on a laptop

Instruction

Every month on the 1st at 9 AM match last month's payment emails in Gmail to open invoices in our ledger sheet, mark paid invoices and draft reminders for overdue ones that wait for my approval.

Every month on the 1st at 09:00 America/New_York 0 9 1 * * GmailGoogle SheetsSlack

Steps in each run

  1. 1 Read new payment notification emails
  2. 2 Extract amount, payer, date and reference
  3. 3 Load open invoices from the ledger
  4. 4 Match payments to invoices
  5. 5 Mark paid invoices and list exceptions Waits for approval
  6. 6 Finance approves overdue reminders in Slack Waits for approval
  7. 7 Send approved reminders Waits for approval

Memory. Remembers every processed payment email and every reminder sent, so no payment is matched twice and no customer gets a repeat reminder within seven days.

Reconciliation results for last month

Sample output
  • INV 1042

    Customer
    Saltmarsh Coffee Roasters
    Amount
    $1,250.00
    Result
    Exact match
    Next action
    Marked as paid
  • INV 1047

    Customer
    Pinegate Architecture
    Amount
    $3,400.00
    Result
    Exact match
    Next action
    Marked as paid
  • INV 1039

    Customer
    Redwillow Fitness
    Amount
    $800.00
    Result
    Partial, $600.00 received
    Next action
    Review tab
  • None

    Customer
    Unknown payer, ref 77812
    Amount
    $450.00
    Result
    No matching invoice
    Next action
    Review tab
  • INV 1021

    Customer
    Ashbourne Tutoring
    Amount
    $975.00
    Result
    14 days overdue
    Next action
    Reminder drafted for approval
  • INV 1030

    Customer
    Glenmoor Print Co
    Amount
    $2,100.00
    Result
    9 days overdue
    Next action
    Reminder drafted for approval

Starts as a paused draft in your workspace. You review every step before the first run.

What the reconciliation agent does

Most small finance teams keep an invoice ledger in a spreadsheet and receive payment notifications by email from their bank or payment operator. Matching the two is slow, repetitive work. This agent reads the payment emails from the past month, extracts the amount, payer name, date and any reference, and looks for the matching open invoice in your Google Sheets ledger.

Exact matches are marked as paid with the payment date. Partial payments, overpayments and payments with no clear invoice are listed separately for a person to review. For invoices that are past due, the agent drafts a polite reminder in Gmail. Nothing is sent to a customer until someone on your team approves the batch. See more ideas on the finance use cases page.

The monthly schedule

The default schedule is every month on the 1st at 09:00 in America/New_York, written as 0 9 1 * *. Running on the first day of the month lines up with the month close, so last month's payments are matched and reminders are drafted as the books are closed. If you invoice in another region, change the timezone in the sentence, for example "every month on the 1st at 9 AM Berlin time".

Each step in order

  1. 1Read new payment emails. The Gmail integration step collects payment notifications that arrived since the last run.
  2. 2Extract payment details. An AI step reads amount, currency, payer, date and reference from each email.
  3. 3Load open invoices. The Google Sheets step reads unpaid rows from your ledger.
  4. 4Match payments to invoices. An AI step matches by reference, amount and payer and labels each result as exact, partial or unmatched.
  5. 5Update the ledger. The Google Sheets step marks exact matches as paid and adds partial and unmatched items to a review tab.
  6. 6Approve reminders. An approval gate in Slack shows drafted reminders for overdue invoices.
  7. 7Send approved reminders. The Gmail step sends only the reminders that were approved.

The agent never moves money. Payments are never executed by any Crons agent, on any plan.

How memory prevents double counting

Every processed email is stored in memory by its message identifier, and every reminder is stored with the invoice number and date. On the next run the agent skips emails it already processed, so a payment is never matched twice. It also will not draft a second reminder for the same invoice within the waiting period you set, which defaults to seven days.

You can read more about combining memory and human sign off in human approval in AI workflows.

How to adapt it to your ledger

  • Tell the agent which columns hold invoice number, customer, amount, due date and status.
  • Set the matching tolerance, for example allow a small difference for bank fees.
  • Change the reminder tone and the number of days before the first reminder.
  • Post a summary of matched and unmatched payments to the finance channel in Slack.
  • Restrict the Gmail step to a label or sender so personal mail is never read.

Who this is for

It suits founders who handle their own invoicing, small finance teams and bookkeepers who manage several clients. If someone spends hours at the end of each month matching payments, the agent can do the matching and leave only the exceptions for a person. Accountants who close the books each month benefit most, because the ledger is up to date on the first morning of the new month, and the review tab shows exactly which items still need a decision before the close.

Frequently asked questions

Can the agent pay or refund anything?

No. Crons agents never execute payments. This template only reads emails, updates your ledger and drafts reminders that wait for approval.

Which emails does it read?

Only the emails that match the filter you set in the Gmail step, such as a label or a list of senders. We recommend a dedicated label for payment notifications.

What happens with a payment that matches no invoice?

It is added to a review tab in your sheet with the extracted details, so a person can decide what it belongs to.

Can I use it with more than one currency?

Yes. The agent reads the currency from each payment and only matches invoices in the same currency.

Is my financial data kept safe?

Credentials for Gmail and Google Sheets are stored encrypted and used only by your crons. Read more on the security page.

Related pages

Stop matching payments by hand

Connect Gmail and your ledger and review only the exceptions at month close.

See pricing