<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.korba.co.uk/blogs/Uncategorized/feed" rel="self" type="application/rss+xml"/><title>Korba - Blog , Uncategorized</title><description>Korba - Blog , Uncategorized</description><link>https://www.korba.co.uk/blogs/Uncategorized</link><lastBuildDate>Wed, 10 Jun 2026 17:06:37 +0200</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Automation + Integration of AI ]]></title><link>https://www.korba.co.uk/blogs/post/automation-integration-of-ai</link><description><![CDATA[<img align="left" hspace="5" src="https://www.korba.co.uk/google-deepmind-9Y4ronQmPjk-unsplash.jpg"/>Running a small business means wearing every hat — including the finance one. For years, processing supplier invoices was a tedious weekly chore: down ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_lJfXpMcDTQizgI5iaqeYMg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_0lv3DJkqQDGfiTefiSea3A" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_nIzSL4nHTzulfKpXadQphA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_R2CV5bULREGvipr1X0pY5w" data-element-type="heading" class="zpelement zpelem-heading "><style></style><h2
 class="zpheading zpheading-align-center zpheading-align-mobile-center zpheading-align-tablet-center " data-editor="true"><span><span>How we Automated our Vendor Bill Processing with OpenClaw + Zoho Books — and the AI Even Handled a Credit Note Without Training</span></span></h2></div>
<div data-element-id="elm_7wCF320HQNCsNR0SOUQ2dw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span>Running a small business means wearing every hat — including the finance one. For years, processing supplier invoices was a tedious weekly chore: download PDFs from email, open Zoho Books, create a new bill, pick the right nominal code, attach the PDF, repeat. With 10+ suppliers sending invoices every month, this easily consumed an hour or more each week. And we were getting it wrong — wrong nominal codes, missed attachments, manual data entry errors.</span></p><p style="text-align:left;"><span><br/></span></p><p style="text-align:left;"><span>Today, our invoices are processed automatically. An AI agent monitors our email, reads the PDFs, creates draft bills in Zoho Books with the correct accounts and tax codes, attaches the original PDFs, and moves the emails to a “Processed” folder. We just review and approve.</span></p><p style="text-align:left;"><span><br/></span></p><p style="text-align:left;"><span></span></p><div><p><span>Here’s how we built it — and the subtle edge-cases we had to solve along the way.</span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm_cBbZhV_NUFBkzontfwCJvg" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"></style><style> [data-element-id="elm_cBbZhV_NUFBkzontfwCJvg"] .zpdivider-container .zpdivider-common:after, [data-element-id="elm_cBbZhV_NUFBkzontfwCJvg"] .zpdivider-container .zpdivider-common:before{ border-color:#8C52FF } </style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_lm2aVmWDQnoOrqe4Xsr1tA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span></span></p><div><h2 style="text-align:left;"><span>The Architecture: OpenClaw + Zoho Books</span></h2><p style="text-align:left;"><span>The setup uses <b>OpenClaw</b> as the orchestration layer — an open-source AI agent framework that can run scheduled tasks, manage state, and execute multi-step workflows using natural language instructions. It connects to:</span></p><p style="text-align:left;margin-left:36pt;"><span>•</span><b><span>Microsoft Outlook</span></b><span> — to monitor the “Finance to Process” email folder</span></p><p style="text-align:left;margin-left:36pt;"><span>•</span><b><span>Zoho Books</span></b><span> — via OAuth2 API to create bills, vendor credits, and attach documents</span></p><p style="text-align:left;margin-left:36pt;"><span>•</span><b><span>PDF extraction tools</span></b><span> — to read invoice data (text-based, AI vision for encrypted/scanned files)</span></p><p style="text-align:left;"><span>A cron job runs every hour, triggering the agent to scan for new emails, process any invoices found, and report back.</span></p></div><div><p><span></span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm_HFcEKS1iKsFs4n0dvOMj2g" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_HFcEKS1iKsFs4n0dvOMj2g"].zpelem-divider{ margin-block-start:9px; } </style><style> [data-element-id="elm_HFcEKS1iKsFs4n0dvOMj2g"] .zpdivider-container .zpdivider-common:after, [data-element-id="elm_HFcEKS1iKsFs4n0dvOMj2g"] .zpdivider-container .zpdivider-common:before{ border-color:#8C52FF } </style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_D6ybyLbqjEVfG0fp7k6YcA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span></span></p><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span>The Workflow</span></h2><h3 style="text-align:left;"><span>1. Email Scanning</span></h3><p style="text-align:left;"><span>The agent connects to our Outlook inbox and looks specifically at a folder called <b>“Finance to Process.”</b>&nbsp;We just drag invoice emails in there — from any supplier, in any format — and the agent picks them up on the next run.</span></p><h3 style="text-align:left;"><span>2. Vendor Matching (No Pre-Configuration Needed)</span></h3><p style="text-align:left;"><span>The agent matches the sender’s email domain to a vendor in a local file. If it’s a new supplier, the agent flags it for review. Over time, We've built up a mapping that covers all our regular vendors — managed service providers, software licensors, telecoms suppliers, hosting providers, vehicle leasing, and overseas SaaS platforms.</span></p><p style="text-align:left;"><span>The system learns incrementally. No vendor list was pre-loaded — it was built over time as new suppliers appeared.</span></p><h3 style="text-align:left;"><span>3. Data Extraction from PDFs</span></h3><p style="text-align:left;"><span>The agent downloads the PDF attachment and extracts: - Invoice number, date, due date - Line items with descriptions, quantities, unit prices - Subtotal, VAT amount, total - Customer reference or PO number</span></p><p style="text-align:left;"><span>The extraction uses a tiered approach: - <b>Level 1</b>: for searchable PDFs (fast, reliable) - <b>Level 2</b>: PDF layout analysis for complex invoices with tables - <b>Level 3</b>: AI vision ( tool) for encrypted or scanned PDFs that can’t be read as text (like ALD Automotive’s password-protected invoices)</span></p><h3 style="text-align:left;"><span>4. Smart Account &amp; Tax Allocation</span></h3><p style="text-align:left;"><span>This is where the real intelligence lives. Instead of hard-coding nominal codes, the agent <b>looks up the vendor’s most recent bill in Zoho Books</b> and clones the account codes and tax rates from there. This means:</span></p><p style="text-align:left;margin-left:36pt;"><span>•If we've already told Zoho that a managed service provider’s bills go to “Managed Service Purchases” (COGS), every new bill from that vendor follows automatically.</span></p><p style="text-align:left;margin-left:36pt;"><span>•If a supplier uses standard 20% VAT, the next bill gets standard VAT.</span></p><p style="text-align:left;margin-left:36pt;"><span>•If a supplier is new, the agent asks rather than guessing.</span></p><p style="text-align:left;"><span>This “clone from the last bill” approach is the secret sauce. It means the system gets smarter over time without us having to maintain a massive mapping table.</span></p></div><p style="text-align:left;"><span></span></p></div><div><p><span></span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm_263Pj5V5COiVPeChcB9PPg" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_263Pj5V5COiVPeChcB9PPg"].zpelem-divider{ margin-block-start:9px; } </style><style> [data-element-id="elm_263Pj5V5COiVPeChcB9PPg"] .zpdivider-container .zpdivider-common:after, [data-element-id="elm_263Pj5V5COiVPeChcB9PPg"] .zpdivider-container .zpdivider-common:before{ border-color:#8C52FF } </style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_MurXw06vZC5AA7SmnB3e6Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_MurXw06vZC5AA7SmnB3e6Q"].zpelem-text { margin-block-start:12px; } </style><div class="zptext zptext-align-left zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span></span></p><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2><span>The Subtle Edge-Cases (Where It Gets Interesting)</span></h2><h3><span>Reverse Charge VAT — UK Telecoms</span></h3><p><span>Some UK telecoms suppliers issue invoices with a mix of UK service charges (with VAT) and call charges (reverse charge). Under UK VAT rules, call charges for business telecoms fall under the domestic reverse charge mechanism.</span></p><p><span>The agent splits these into <b>two separate Zoho bills</b>:</span></p><p style="margin-left:36pt;"><span>1.</span><b><span>Main bill</span></b><span> — service charges with standard 20% VAT</span></p><p style="margin-left:36pt;"><span>2.</span><b><span>“R” suffix bill</span></b><span> — call charges only, with set to “Standard Rate” and <b>no </b><b><span>tax_id</span></b> on line items</span></p><p><span>Zoho then auto-calculates the 20% reverse charge VAT on the total, which correctly appears in Box 1 and Box 4 of the VAT return with no cash impact.</span></p><h3><span>Overseas Reverse Charge — Non-UK Suppliers</span></h3><p><span>Some overseas suppliers — based in the US, Australia, and elsewhere — charge no UK VAT. For these, the agent creates a <b>single bill</b> with all line items using but no . Zoho calculates the 20% self-accounted VAT automatically.</span></p><p><span>Unlike the domestic telecom split, there’s no “R” suffix bill — everything goes on one bill because there’s no mix of VAT treatments.</span></p><h3><span>Inclusive Tax — Vehicle Leasing</span></h3><p><span>Vehicle leasing invoices show VAT-inclusive pricing. The agent sets and uses the special “Vehicle Leasing Rate” tax ID (9.0909%), which correctly handles the 50% VAT-reclaimable nature of commercial vehicle leasing.</span></p><h3><span>VAT Rounding Adjustments — The “5p/-5p” Method</span></h3><p><span>Here’s a subtle one. Zoho Books calculates VAT on the <b>total</b> of a bill. Most suppliers calculate VAT <b>per line item</b> and round each line individually. These two methods can produce results that differ by 1p, 2p, or sometimes more.</span></p><p><span>The agent solves this with a neat trick:</span></p><p style="margin-left:36pt;"><span>•After creating a bill, it compares Zoho’s calculated subtotal, VAT, and total against the PDF’s figures.</span></p><p style="margin-left:36pt;"><span>•If Zoho’s VAT is 1p too low, the agent adds two offsetting lines:</span></p><p style="margin-left:72pt;"><span>–</span><b><span>+5p with VAT</span></b><span> (adds 1p VAT, 5p subtotal)</span></p><p style="margin-left:72pt;"><span>–</span><b><span>-5p with no VAT</span></b><span> (subtracts 5p subtotal, no VAT impact)</span></p><p style="margin-left:36pt;"><span>•Net result: subtotal unchanged, VAT +1p, total +1p. All three figures now match the PDF exactly.</span></p><p><span>The scale factor is 5p per 1p of VAT adjustment at 20%. So 2p short = ±10p, 3p short = ±15p. It’s a zero-net-impact adjustment that keeps the books perfectly aligned with the supplier’s invoice.</span></p><h3><span>Dual Attachments — PDF + CSV</span></h3><p><span>One cloud licensing supplier sends both a PDF summary and a CSV with detailed line items. The agent attaches <b>both files</b> to the Zoho bill, so we have the full breakdown available without having to log into the supplier portal.</span></p><h3><span>Skip Rules</span></h3><p><span>Some suppliers are handled manually as expenses rather than bills — for example, a time-tracking tool we use for project billing. The agent skips these automatically — it moves the email to “Processed Mail” and notes it as skipped, without creating any Zoho entry.</span></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><div><p><span></span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm_RPW2kR9wJmSs6sDS0HqZrA" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_RPW2kR9wJmSs6sDS0HqZrA"].zpelem-divider{ margin-block-start:9px; } </style><style> [data-element-id="elm_RPW2kR9wJmSs6sDS0HqZrA"] .zpdivider-container .zpdivider-common:after, [data-element-id="elm_RPW2kR9wJmSs6sDS0HqZrA"] .zpdivider-container .zpdivider-common:before{ border-color:#8C52FF } </style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_N0bRz40liPZU_O1EuiPU-Q" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span></span></p><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span>The Credit Note Test — Passed Without Training</span></h2><p style="text-align:left;"><span>Recently, we tested the system with something it had never seen before: a <b>credit note</b>.</span></p><p style="text-align:left;">We received a credit note from one of our managed service providers for £52.80, cancelling a server protection line item from a recent invoice. We then dropped it in the “Finance to Process” folder and waited.</p><p style="text-align:left;"><span>The agent:</span></p><p style="text-align:left;margin-left:36pt;"><span>1.</span><b><span>Identified the existing bill</span></b><span> — found the matching bill in Zoho Books (£480.96 total)</span></p><p style="text-align:left;margin-left:36pt;"><span>2.</span><b><span>Created a vendor credit</span></b><span> with the correct account code (Managed Service Purchases) and tax rate (Standard 20%)</span></p><p style="text-align:left;margin-left:36pt;"><span>3.</span><b><span>Applied the credit to the original bill</span></b><span> — reducing the balance from £480.96 to £428.16</span></p><p style="text-align:left;margin-left:36pt;"><span>4.</span><b><span>Attached the credit note PDF</span></b><span> to the vendor credit record</span></p><p style="text-align:left;margin-left:36pt;"><span>5.</span><b><span>Moved the email</span></b><span> to “Processed Mail”</span></p><p style="text-align:left;margin-left:36pt;"><span>6.</span><b><span>Updated the state file</span></b><span> to mark it as processed</span></p><p style="text-align:left;"><span>It did all of this <b>without any prior training on credit notes</b>. The agent recognised the negative value, understood it was a credit, matched it to the right invoice by number, and used the Zoho Books vendor credit API correctly.</span></p><p style="text-align:left;"><span>This was the moment we knew the system was truly robust. Not because it handles the 95% of normal invoices — but because it gracefully handled the edge case it had never been explicitly taught.</span></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><div><p><span></span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm_MVtwaJpc7DtRMErOeq9_VA" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_MVtwaJpc7DtRMErOeq9_VA"].zpelem-divider{ margin-block-start:9px; } </style><style> [data-element-id="elm_MVtwaJpc7DtRMErOeq9_VA"] .zpdivider-container .zpdivider-common:after, [data-element-id="elm_MVtwaJpc7DtRMErOeq9_VA"] .zpdivider-container .zpdivider-common:before{ border-color:#8C52FF } </style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_rP42VwgEdL5BDwP1Atgntw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span></span></p><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span>What’s Next</span></h2><p style="text-align:left;"><span>The backlog is cleared. All 50+ invoices from recent months have been processed and reconciled. The system now runs hourly, silently processing new invoices as they arrive.</span></p><p style="text-align:left;"><span>Planned enhancements: - <b>Multi-currency handling</b> for USD invoices from overseas suppliers - <b>Automatic reconciliation</b> against bank feeds when bills are paid - <b>Supplier statement matching</b> to catch missing invoices</span></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><div><p><span></span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm_2YNJ-Kt7PnwS91JqSroeSg" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_2YNJ-Kt7PnwS91JqSroeSg"].zpelem-divider{ margin-block-start:9px; } </style><style> [data-element-id="elm_2YNJ-Kt7PnwS91JqSroeSg"] .zpdivider-container .zpdivider-common:after, [data-element-id="elm_2YNJ-Kt7PnwS91JqSroeSg"] .zpdivider-container .zpdivider-common:before{ border-color:#8C52FF } </style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-align-mobile-center zpdivider-align-tablet-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_M8ic4lbd0OeJHcq4e4N1vA" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center zptext-align-mobile-center zptext-align-tablet-center " data-editor="true"><p></p><div><p style="text-align:left;"><span></span></p><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span></span></h2><div><h2 style="text-align:left;"><span>The Bottom Line</span></h2><p style="text-align:left;"><span>If you’re a small business owner or MSP drowning in supplier invoices, you don’t need expensive AP automation software. You need an agent that understands your chart of accounts, learns your suppliers, and handles the weird edge-cases that make real-world accounting messy.</span></p><p style="text-align:left;"><span><br/></span></p><p style="text-align:left;"><span>OpenClaw + Zoho Books has saved us hours every week. More importantly, it’s eliminated the human errors that creep in when you’re manually entering data at 6pm on a Friday.</span></p><p></p><div style="text-align:left;"><b>Total invoices processed to date:</b> 100+</div><span><div style="text-align:left;"><b>Average time saved per week:</b> 1–2 hours</div>
<b><div style="text-align:left;"><b>Wrong nominal codes:</b><span style="font-weight:normal;"> Zero since the lookup system was implemented</span></div></b><div style="text-align:left;"><b>Credit notes processed without training:</b> One (and counting)</div>
</span><p></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><p style="text-align:left;"><span></span></p></div><div><p><span></span></p></div><p></p></div><p></p></div>
</div><div data-element-id="elm__39uJkJwRIi_mP5Rhhb_Pg" data-element-type="button" class="zpelement zpelem-button "><style></style><div class="zpbutton-container zpbutton-align-center zpbutton-align-mobile-center zpbutton-align-tablet-center"><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="mailto:hello@korba.co.uk?subject=We%20would%20like%20AI%20help!%20"><span class="zpbutton-content">Get AI help here</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 05 Jun 2026 12:06:32 +0100</pubDate></item></channel></rss>