Workflow automation for finance teams: controls are the constraint
Segregation of duties, approval thresholds and an audit trail decide what finance can automate. What to build inside those limits, and why automating an approval removes a control rather than work.
On this page
- What we'll cover
- Process and control look the same
- Segregation of duties in an automated system
- The audit trail is a deliverable
- Building it with CodeWords
- What is safe to automate
- Exceptions are the actual work
- The month-end close
- Payments, which need the most care
- Getting the rest of the business to comply
- Making it survive
- Limits worth knowing about
- What to build first
- Frequently asked questions
- Related reading
Finance is full of repetitive work and is the function where automating the wrong step causes the most trouble. The reason is that a lot of what looks like process is actually control: a second pair of eyes, a threshold, a separation between the person who requests and the person who approves.
Automating the preparation is straightforwardly valuable. Automating the approval removes the control and keeps the work, which is the outcome nobody wants and which is easy to arrive at without noticing.
What we'll cover
- Process and control look the same
- Segregation of duties in an automated system
- The audit trail is a deliverable
- Building it with CodeWords
- What is safe to automate
- Exceptions are the actual work
- The month-end close
- Payments, which need the most care
- Getting the rest of the business to comply
- Making it survive
- Limits worth knowing about
- What to build first
- Frequently asked questions
Process and control look the same
A manual step may exist because somebody has to look, which is a control, or because nobody automated it, which is process.
The two are indistinguishable from the outside, and the person who introduced the step has frequently left.
Ask what would go undetected if this step disappeared. If the answer is nothing, it is process.
Controls can be redesigned, not just preserved — an automated exception report may be a stronger control than a manual review that nobody performs carefully.
Document which is which before building anything, since your auditors will ask and the answer should not be reconstructed.
Involve whoever owns the control framework early, which is faster than discovering an objection after the work is done.
Segregation of duties in an automated system
The principle survives automation, and the implementation changes.
Who can change the automation becomes a segregation question, because somebody who can edit a payment workflow can effectively authorise payments.
Separate build from run. The person who writes the automation should not be the person who approves what it does.
Log configuration changes as carefully as transactions, since a change to a threshold is equivalent to an approval.
Standing access is the risk. An automation with permanent broad permissions concentrates authority that used to be distributed.
Review who can do what periodically, which accumulates drift faster in automated systems than in manual ones.
The audit trail is a deliverable
Every automated action needs a record: what ran, on what, triggered by what, with what result.
Store it outside the system being audited, since a trail held only by the thing it audits is weak evidence.
Include the inputs, not just the outputs, so a figure can be traced to what produced it.
Version the logic. Knowing which rules produced a result last March requires recording which version ran.
Make it exportable, because it will be requested in a format that suits somebody else.
Retain it as long as the underlying records, which is usually longer than any default log retention.
Building it with CodeWords
CodeWords connects to more than 3,000 integrations, and the connection is made once and reused.
- Open CodeWords and start a new automation.
- Describe what should happen in plain language to Cody, the automation builder: the preparation steps, where a person approves, and what is recorded.
- Authorize the connections — the accounting system, the banking or payment provider, and the approval channel.
- Describe the exceptions: an amount above a threshold, a new supplier, a mismatch, a duplicate.
- Run it in parallel with the existing process for a full cycle and compare the outputs before switching.
You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.
What is safe to automate
Data collection and entry, which is the largest time cost and carries no judgement.
Matching and reconciliation, with differences surfaced rather than resolved.
Preparation of everything an approver needs — the invoice, the purchase order, the receipt, the history — assembled so the decision takes seconds.
Reminders and chasing, both internal and to customers.
Reporting and distribution, on a schedule, in the same shape each time.
Validation: duplicates, missing fields, amounts outside expected ranges, bank details that changed.
Exceptions are the actual work
Automation handles the matching cases and the value is in what it surfaces.
Present the exception with its context, so the resolution is a decision rather than an investigation.
Categorise them, since the distribution tells you what to fix upstream rather than handle repeatedly.
Set an ageing alert. An unresolved exception that sits for weeks is how a small discrepancy becomes an audit finding.
Do not auto-resolve small differences silently. A tolerance may be appropriate, and it should be explicit, logged, and reviewed rather than invisible.
Report the exception rate by category and by counterparty, which is usually the most actionable report finance produces about its own operations.
The month-end close
Most of a close is waiting and chasing, both of which automate well.
Track the checklist, with owners and status visible, rather than in somebody's spreadsheet.
Prepare the recurring entries for review rather than posting them unreviewed.
Flag what looks unusual against prior periods, which is the analytical review a person would do if there were time.
Lock periods properly so late adjustments post forward with a reference.
Measure the close: how long each step takes and where it waits, which is what shortens it rather than working faster.
Payments, which need the most care
Preparation, not execution, is the rule worth holding by default.
Bank detail changes are the fraud vector, and a change should require verification through a separate channel rather than a reply to the email that requested it.
New suppliers need checking, and an automation should route rather than proceed.
Duplicate detection across invoice numbers, amounts and suppliers, since duplicate payment is a common and recoverable loss.
Approval limits must be enforced by the system, not by convention, and an automation must never aggregate to route around one.
Out-of-band confirmation for anything large, which is inconvenient and considerably cheaper than the alternative.
Getting the rest of the business to comply
Most of finance's repetitive work is created elsewhere — a late expense claim, a purchase made without an order, an invoice sent to the wrong mailbox. Automation inside finance treats the symptom.
Make the compliant route the easiest one. People submit through whatever takes least effort, and the answer to non-compliance is almost always friction rather than unwillingness.
Remind before the deadline, not after, since most lateness is inattention rather than resistance.
Show people their own position — outstanding claims, unapproved orders, pending approvals — rather than reporting them to their manager.
Escalate on ageing, not on the first miss, which keeps the relationship intact and still works.
Report volume back to the originating team, since a department generating most of the exceptions usually does not know.
Fix the top cause quarterly. One upstream change generally removes more finance work than any automation inside finance does.
Making it survive
Make everything idempotent — a duplicated journal or a duplicated payment is a serious error rather than a nuisance.
Never modify a closed period, and post corrections forward with a reference.
Alert on any unmatched amount rather than forcing a balance, because a silent plug is the worst possible failure here.
Handle system outages by queuing, since a missed payment run has consequences.
Report the outcome: items processed, exceptions raised, approvals pending, and anything ageing.
Limits worth knowing about
Accounting system APIs are restrictive about editing posted entries, deliberately.
Approval workflows in finance tools may not expose what an integration needs.
Regulatory requirements vary by jurisdiction and by entity type, and they govern rather than your process design.
Audit expectations differ between auditors, so agreeing the approach with yours in advance saves rework.
This is not financial advice. The treatments described are common practice and your accountant, auditor and control owner govern.
What to build first
The approval package: everything an approver needs — the invoice, the matching purchase order, the receipt, the supplier history, any exception — assembled and presented so the decision takes seconds. It removes the preparation, which is the real time cost, and it leaves the control exactly where it was.
Two habits make the difference. Ask what would go undetected if a manual step disappeared, since that single question separates control from process and prevents the expensive mistake. And treat who can change the automation as a segregation-of-duties question, because somebody able to edit a payment workflow can effectively authorise payments regardless of what the approval matrix says.
Frequently asked questions
How do I tell a control from a process step?
Ask what would go undetected if the step disappeared. If the answer is nothing, it is process and can be automated. If something would, it is a control and automating it removes the control rather than the work.
Does segregation of duties still apply to automated workflows?
Yes, and it extends: whoever can change an automation can effectively authorise whatever it does. Separate build from run, and log configuration changes as carefully as transactions.
What does an audit trail need to contain?
What ran, on what, triggered by what, with what result and which inputs — stored outside the system being audited, versioned so you know which rules applied, exportable, and retained as long as the underlying records.
What is safe for finance to automate?
Data collection and entry, matching and reconciliation with differences surfaced rather than resolved, preparation of approval packages, chasing, scheduled reporting, and validation checks.
Should payments be executed automatically?
Prepare rather than execute, by default. Bank detail changes should require verification through a separate channel, new suppliers should route to a person, and approval limits must be enforced by the system rather than by convention.
What should happen to small discrepancies?
Not silent auto-resolution. A tolerance may be appropriate and it should be explicit, logged and periodically reviewed, because an invisible tolerance is where a real problem hides.
How does automation shorten the month-end close?
Mostly by removing waiting and chasing rather than by calculating faster. Tracking the checklist with visible owners, preparing recurring entries for review, and measuring where the close waits are what actually compress it.
Will auditors accept automated controls?
Generally, where the audit trail supports them — and expectations differ between auditors, so agreeing the approach in advance saves rework. An automated exception report can be a stronger control than a manual review nobody performs carefully.
Why does finance keep chasing the same things?
Because the work is created elsewhere and automation inside finance treats the symptom. Making the compliant route the easiest one removes more work than any process improvement within the team.
Should late submitters be reported to their managers?
Show people their own position first and escalate on ageing rather than on a first miss. It keeps the relationship intact and works at least as well.