Paying contractors with no finance system behind it.
The founder was paying several contractors every month with no finance system behind it. Invoices arrived through Slack, email and direct messages. Amounts were checked by hand. Contractors could see things they should not. Expense tracking meant digging through spreadsheets. Every month closed with manual work and open questions.
The solution
I built the whole workflow in ClickUp with one rule at its centre: if it is not submitted in ClickUp, it did not happen. The system has four parts:
The chain runs end to end without anyone touching a spreadsheet.
Two problems pulling in opposite directions.
The founder called it a tracking problem. Underneath it were two problems that pull in opposite directions, which is why it had stayed unsolved.
The first is privacy. Contractors are not employees. They work alongside each other without being colleagues, and what one of them charges is not the business of the next one. Any system where invoices sit in a shared place solves the tracking and creates a different problem the day somebody scrolls.
The second is that finance only works if the data arrives complete. An invoice missing its month, its department or its currency is not a small problem to fix later. It is the reason month end takes a week.
A shared spreadsheet fails the first. A chat thread fails the second. The structure that solves both is a form:
Before
- Invoices arriving by Slack, email and message
- Amounts checked by hand against the attachment
- Chasing a missing detail meant another round of messages
- Spend per department meant a spreadsheet exercise
- Month end closed with open questions
After
- One form per invoice, and only the form
- The task exists the moment submit is pressed
- Required fields mean nothing arrives incomplete
- Department tagged on entry, spend is a filter
- The monthly summary refreshes itself
Why the golden rule had to be absolute
If an invoice sent by message is ever accepted, every contractor learns that the form is optional, and within a month the system holds some of the invoices instead of all of them. A finance system that is nearly complete is worse than no system, because people trust the numbers anyway.
Every number here is readable in the screenshots.
What the form asks for, and why each one earns its place
None of these are unusual. The point is that all nine are mandatory at the moment of entry, which is the only moment when the person who knows the answer is actually present.
The field nobody thinks to add until it is too late
Currency. An agency paying people in different countries and not capturing it at entry ends up with a column of numbers that cannot be totalled. It is a dropdown that takes one second to answer and saves an argument at the end of the year.
Contractor invoice submission form.
The workflow starts here. One form per invoice, PDF only, every field the finance side needs required before it will submit.
The form does two jobs at once. It creates a tracked task in the finance system the moment a contractor presses submit, and it keeps contractors out of the workspace, so nobody sees anyone else's rates or invoices. Privacy holds without anyone managing it.
The quiet benefit
Because the form is the only way in, the founder never has to decide whether a particular message counts as an invoice. There is no judgement call, no inbox to triage, and no contractor wondering whether their invoice was seen.
Centralised invoice tracking.
Every submitted invoice lands in one list, grouped by month, carrying its status, file, submission date, amount, due date, assignee and department.
Separate views by month and by contractor mean the founder answers a finance question in seconds rather than assembling it: what is paid, what is pending, and what each department costs.
Department tagging is what turns a list of invoices into an expense report. Email marketing, management, recruiting, software and web. Each invoice is categorised on entry, so spend per department at month end is a filter instead of an afternoon.
Two views, one list, nothing duplicated
Grouped by month it answers what this month cost. Grouped by contractor it answers what somebody has been paid across the year. Same records underneath, so there is no second place that has to be kept up to date and no chance of the two disagreeing.
The accounting agent.
On top of the tracking sits a configured agent that works as the founder's accounting assistant.
Why the fallback matters more than it sounds
An agent that only reads fields breaks the first time somebody leaves one empty, and then nobody trusts it again. Reading the attached invoice when a field is missing is what keeps the numbers right on the imperfect month, which is every month.
Why three triggers and not one
Because the founder asks in three different situations. Looking at one invoice, wanting a quick total, and closing the month. A tool that only answers one of those gets used once and then forgotten, so each way of asking had to reach the same agent.
The written procedure.
A system only scales if people follow it the same way every time, so the whole workflow is documented inside ClickUp where the work happens.
It covers the submission process step by step, the approval flow, the reporting logic, and the rule that holds the rest together. Invoices sent by Slack, email or message are not valid.
If it is not submitted in ClickUp, it did not happen.
This is what makes onboarding a new contractor a five minute job rather than a conversation.
Who a written procedure is actually for
Not the people who already know. It is for the person who joins in eight months, when everyone who built this has stopped thinking about it and nobody remembers why invoices are refused if they arrive any other way.
Month end in minutes, not a week.
The founder went from chasing invoices across Slack and email to one system with contractor privacy, a single invoice pipeline, structured tracking by month and department, and reporting that happens on its own.
Month end reviews take minutes, the numbers are current, and the system absorbs new contractors without adding manual work.
What the founder can answer without asking anyone
- What has been paid this month and what is still pending.
- What each department has cost, this month or any earlier one.
- Whether a particular invoice arrived, and when.
- What a new contractor needs to do, without explaining it again.
- Which invoices are due this week, before anyone chases.
What I am not claiming
There is no before number here. The old process produced nothing to measure, which was most of the problem. What I can show is the system, and every screenshot on this page is the live workspace rather than a demo built for a portfolio.