How we built our own AI audit system for Viacala, using n8n and Claude
Most people asking about an AI audit tool want the same thing: something that looks at a business and says, specifically, where it is losing money. We built one for ourselves before we sold one to anybody. This is what it does, how it is wired, and the part that broke first.
The problem it was built to solve
A prospect who has never met you does not want a sales call. They want evidence that you understand their business. The traditional answer is a discovery call, which costs an hour of your time and an hour of theirs before anyone knows whether there is anything worth talking about. That is a bad trade for both sides, and it is the reason most enquiries never convert into anything.
So the job was narrow: take a public website, produce a short, specific, honest read on where that business is likely leaking revenue, and get it into the prospect's inbox without a human touching it. If it could not be honest, it was not worth building, because a generic report that flatters the reader is worse than no report at all.
The architecture
The whole thing runs on two pieces: n8n for orchestration, Claude for the judgement. n8n is self-hosted on our own European server rather than the cloud version, which matters for the reasons we set out in data privacy and AI for European business owners. Prospect data never leaves infrastructure we control until it reaches the model.
Five steps, and only one of them is AI. That ratio is deliberate. The parts that need to be reliable are ordinary software: read a page, write a record, send an email. The part that needs judgement is the part that gets the model. Mixing those two up is the most common way these systems fail, and it is worth understanding the distinction properly before you build anything, which is what AI versus automation versus AI agents covers.
What Claude does, and what it deliberately does not
Claude does two jobs here. It reads the prospect's public site and drafts the findings, and then, in a separate step, it reviews its own draft against a checklist: is every claim in this report something that was actually observed on their site, or is it a generic statement that would be true of any business. Anything that fails that check gets cut.
What Claude does not do is decide whether to send. It does not have access to the CRM write step directly, it does not choose recipients, and it cannot skip the review. Those are ordinary workflow nodes with no model involved. If you take one idea from this, take that one: give the model the judgement, and keep the irreversible actions in plain code where you can reason about them.
The part that broke first
The drafting step. Not dramatically, and not often, but it would occasionally error out on a page that would not parse cleanly, and in the first version that meant the prospect received nothing at all. Worse, nobody found out. The workflow reported a failure into a log that nobody was reading, which is functionally the same as not reporting it.
The fix was two changes, neither of them clever. First, a fallback branch: if the AI drafting step fails, a plain report built from what was actually observed goes out anyway. Second, the failure announces itself into a channel a human reads, rather than a log a human does not. The system is allowed to fail. It is not allowed to fail silently.
That is the same principle that turns out to matter for every unattended system, and it is the one most often missing from what gets sold as automation. A monitoring layer is not a nice-to-have you add later, as we argue in what AI implementation actually means. It is part of the thing.
A system that fails loudly is a working system. A system that fails quietly is an outage you have not noticed yet.
What it changed
The audit now goes out on its own, which means a prospect gets something specific about their business before anyone has spent an hour on a call. The conversations that follow start from a shared document rather than from scratch. That is the whole return: not the automation itself, but the fact that the first conversation is now a second conversation.
We are deliberately not putting a conversion percentage on this yet. We have not run it long enough on enough businesses for a number to mean anything, and a made-up number would undercut the entire point of a tool built to be honest.
What we would tell you to copy
- Build it for yourself first. Everything we know about where this design breaks, we learned from running it on our own pipeline rather than a client's.
- Keep the AI to the judgement step. Orchestration, storage and delivery should be boring, testable software.
- Design the failure path before the happy path. Ask what the customer receives when the clever part breaks. If the answer is nothing, you are not finished.
- Route failures to a human channel. A log nobody reads is not monitoring.
None of this is specific to an audit tool. It is roughly what we set up for any client system, and it is the shape of the work described in how we run AI automation on Mallorca.