# Jobber collections desk for chasing unpaid invoices

> An accounts receivable board that sorts every overdue Jobber invoice by age, then helps you draft, approve, and log every collection email you send.

- Workflow type: app
- Services: Jobber, Gmail, Slack Bot
- Categories: Finance, Operations
- Published: 2026-08-24

## What it does

- Puts every unpaid and partially paid Jobber invoice on one board, sorted into 0 to 30, 31 to 60, 61 to 90, and 90 plus day buckets with a running total owed in each, so you can see exactly where the money is stuck.
- Shows the client, the amount still owed, how many days it is overdue, and the job the invoice came from on every row, and opens a full customer history panel when you click one so you can tell a loyal repeat customer apart from a one time caller who has gone quiet.
- Drafts the chase email for you with a background assistant that reads the invoice, the job and its notes, the customer's payment history, and every reminder you have already sent, then writes a message whose tone gets firmer as the debt gets older.
- Keeps a person in control of every send: you edit and approve the draft before it goes out through Gmail, and each reminder is logged back onto the invoice in Jobber so the whole team sees the same history.
- Posts a one click collections summary to Slack with the total outstanding and your five worst accounts, so the owner gets the picture without asking.

## What you'll need

- A Jobber account that you invoice out of, with permission to read clients, jobs, and invoices and to add notes to invoices
- A Gmail account to send the reminder emails from, ideally the shared billing or office address
- A Slack workspace and a channel where the daily collections summary should be posted
- A few minutes to agree on your aging buckets and how firm the tone should get at 60 and 90 days

## Prompt

Build me a collections desk app that my office manager opens every morning to chase the money customers already owe us in Jobber. The audience is a non-technical office manager or bookkeeper at a home service company, so the app should read like a worklist they can go down, not a reporting tool they have to interpret.

The main screen is an accounts receivable aging board. Load every unpaid or partially paid invoice with Jobber List Invoices, and use Get Invoice where you need the full detail such as the remaining balance, issue and due dates, and payment status. Sort each invoice into an aging bucket by days overdue: 0 to 30, 31 to 60, 61 to 90, and 90 plus. Show each bucket as its own section with a running total of the amount owed in that bucket, and show the grand total outstanding at the top of the page. Every row shows the client name, the balance still owed rather than the original invoice total so partial payments are reflected correctly, the number of days overdue, and the job the invoice came from using Jobber Get Job. Let the office manager sort within a bucket by amount or by days overdue, and let them hide invoices under a small balance threshold so tiny amounts do not clutter the board.

Clicking a row opens a customer panel beside the board with that customer's full picture, because you chase a loyal customer with three jobs booked very differently from a one time caller who has ghosted you for 90 days. Pull the client record with Jobber Get Client, their job history with List Jobs, and their invoice history with List Invoices. In the panel show lifetime spend across all paid invoices, how long they have been a customer, whether they have any open or upcoming scheduled work, their other outstanding invoices, and how many times we have already chased this specific invoice based on the reminders the app has logged. Make the signal obvious at a glance, for example a clear marker when the customer has upcoming booked work, since that changes how hard you push.

Each row has three actions. First, send a reminder email to the customer through Gmail Send a Message. Second, log every touch back onto the invoice in Jobber with Create Invoice Note, so the record lives where the crew and the rest of the office can see it rather than in a separate tool, and the app should write that note automatically whenever a reminder goes out rather than making the office manager remember. Third, mark an invoice as promised to pay with a follow up date; the app stores that date and the note of what the customer said, visibly flags the invoice as promised on the board so it is not chased again by accident, and surfaces it back at the top of the board when the follow up date arrives so the office manager can check whether they actually paid.

Add a Draft the chase button on every row that kicks off a background agent. The agent reads the invoice line items with Jobber List Line Items so it can reference the actual work performed, the underlying job and its notes with Get Job, the customer's payment history and lifetime value with Get Client and List Invoices, and any previous reminders we have already logged on this invoice. It then writes a tailored reminder email: specific about what the work was and what is owed, and with a tone that escalates with the age of the debt. Early buckets should read as a friendly nudge that assumes it was an oversight, the middle buckets should be direct and ask for a payment date, and 90 plus should be firm and businesslike about next steps. The agent should also take customer value into account, softening for a long standing customer with upcoming booked work and being more direct with a one time caller who has gone silent.

The draft never sends itself. The agent writes it back into the app, where it appears in the row and in the customer panel as a pending draft with an editable subject and body. The office manager reads it, edits anything they want, and can regenerate it if the tone is off. Show the customer value context right next to the draft, meaning lifetime spend, upcoming booked work, days overdue, and prior chase count, so the person can decide to soften or harden it before it goes. Only when they hit approve and send does the app send it through Gmail Send a Message and write the reminder back to the invoice with Jobber Create Invoice Note. If they discard the draft, nothing is sent and nothing is logged.

Finish with a button at the top of the board that posts today's collections summary to a Slack channel for the owner using Slack Bot Send a Message. The summary includes the total outstanding, the amount sitting in each aging bucket, and the five worst accounts by amount owed with client name, amount, and days overdue. Keep it short and readable in Slack.

The app needs to store a few things of its own across sessions: the log of every reminder sent from the app including which invoice, when, and what was said, so the chase count and the agent's awareness of prior reminders stay accurate; promised to pay dates and the accompanying note; and pending agent drafts with their status so an unapproved draft is still waiting the next morning. Invoice and customer data itself always comes live from Jobber so the board reflects payments that have already landed.

## How to customize

- Change the aging buckets, for example splitting 90 plus into 90 to 120 and 120 plus, or hiding invoices below a small balance so tiny amounts stop cluttering the board
- Adjust the tone ladder the drafting assistant follows, such as staying friendly through 60 days and only getting formal past 90, or always softening for customers with upcoming booked work
- Pick which Slack channel gets the summary and how many worst accounts it lists, and change the signature and reply to address on the reminder emails

## FAQ

### Will it email my customers automatically?

No. Nothing leaves without a person approving it. The assistant writes a draft and holds it in the app, and you read it, edit anything you want, and hit approve. Only then does the email send and the note get written back to Jobber.

### Where do the reminders get recorded?

Every reminder is logged as a note on the invoice in Jobber, so the record lives where your crew and office already look instead of in a separate tool. The app also counts those touches so you can see how many times an invoice has been chased.

### Does it handle invoices that are partly paid?

Yes. Partially paid invoices show up on the board with the balance still owed rather than the original total, so the buckets reflect real money outstanding.

### Do I need to be technical to use this?

No. It is built for an office manager or bookkeeper. You open it in the morning, work down the board, click rows, and approve drafts. There is nothing to configure day to day.

### What is the promised to pay feature for?

When a customer tells you a date they will pay, you mark the invoice as promised to pay with that date. The app stores it, keeps the invoice from feeling forgotten, and surfaces it back to you when the date arrives so you know whether they followed through.

Use this prompt in General Input: https://www.generalinput.com/prompts/jobber-collections-desk-for-chasing-unpaid-invoices