Systems that keep running when nobody is watching.
I build the systems that answer every lead, reply and quote: quote follow-up, outbound that reaches the inbox, instant lead response and booking reminders. Every system I ship tells you the moment something breaks.
After-hours call answered. Marked urgent, on-call staff texted with the caller's details.
New lead already in the CRM. Existing record updated, no duplicate created.
Nightly deliverability report posted to the team channel.
Email check couldn't run. Alert sent:
Email check couldn't run
Step
Verify the lead's email address
Reason
The lookup service's monthly quota is used up
Affected
3 new leads, marked "Check failed". Nothing lost.
To fix
Top up the plan, then re-run those 3 rows.
What a failure looks like in a system I build: plain English, and what to do next.
Top Rated on Upwork
100% Job Success Score
HubSpot certified
English and French
UK based · clients in the US, UK and Europe
Who I help
Businesses where a missed call, a lost lead or a spam folder costs real money.
My clients don't share an industry. They share a problem: work that depends on someone remembering, copying or checking by hand. These are the situations I'm called in for most.
Clinics and practices
Calls after hours, emergencies that can't wait until morning, and a front desk that can't answer everything. I build phone agents that triage, book into the practice system and reach the right person.
Quotes that go out and never get chased, a shared inbox, customers asking where their order is. I run this work myself at a small B2B equipment importer.
Agencies that sell through cold email
Finding the businesses, finding the person, sending, and handling the replies, run as one system and watched around the clock.
Most of my client work is private, so clients are described rather than named unless they've been public about working with me. Every detail below is from the real build.
Veterinary AI startup, USLead systems architectDec 2025 to 2026
Phone intake and triage for veterinary clinics
Pilot stage
A phone agent that answers a clinic's calls, works out how urgent the problem is, and books the visit or gets a vet involved. I built it and rebuilt it as the company's own platform.
Online reputation firm, USOutbound systemsSince Aug 2026
A cold email engine that finds, sends and answers on its own
Live
The firm wins its clients by email. I built the whole chain, from finding the businesses to answering the replies, so the team's time goes on booked calls.
What I built
Scraping and ranking of target businesses, with a quote picked for each email and a linter that rejects bad ones
Decision-maker lookup across two data providers, with a check that the domain actually receives mail before a lookup credit is spent
Campaign building and upload, a watchdog that runs every 15 minutes and a nightly deliverability report
A reply worker that sorts replies, answers a plain "yes" with the booking link, confirms the booking in the same thread and sends a reminder two hours before the call
The hard part
Replies don't wait for office hours, and a wrong automatic answer to a prospect can't be taken back. So the worker answers only the clear cases itself, and the sorter is held to a fixed test set.
Python · Cloudflare Workers · Instantly · Apollo · Hunter · Supabase · Google Sheets · Slack
From target to booked call
Find and rank businessesquote picked and linted per email
does the domain take mail?
Look up the decision-makertwo providers, credit spent only if yes
Build the campaign and send
a reply arrives
Reply workersorts every reply
Plain yesbooking link sent
Bookedconfirmed, reminder 2h before
Anything elsedrafted for the team
watchdog every 15 minnightly deliverability report
47reply cases in the sorter's test set, zero mismatches
Follow-ups that check the deal is still open before they fire
Delivered
When a deal goes into nurturing, the advisor should hear about it again at the right time, and never about a deal that has already moved on.
What I built
A workflow that starts when a deal enters the Nurturing stage, with a guard against enrolling the same deal twice
Five follow-up horizons, from 7 days to 12 months, carried in tags, so adding a horizon means adding one tag and one branch
After each wait, a re-check that the deal is still in Nurturing, then a dated task for the assigned advisor and every nurturing tag cleared
The hard part
The re-check after the wait. Without it, an advisor gets a task about a deal that closed three months ago, and the team learns to ignore the task list.
Coaching business, UKCRM automationJan to Mar 2026 · fix Sep 2026
A two-way CRM sync that doesn't bounce changes back and forth
Handed over
Contacts lived in GoHighLevel and in Kit, and someone was copying them between the two by hand. I replaced that with a sync in both directions.
What I built
New contacts, tags and unsubscribes carried across in both directions
Moved onto the client's own automation account in April 2026, so they own it outright
Came back in September 2026 when the unsubscribe path was failing every run, fixed it, and closed the loop between the two systems
The hard part
Two systems that are both allowed to write the same record will keep copying each other's changes. The sync has to tell its own writes apart from real ones.
n8n · GoHighLevel API · Kit API · Python
Both directions, one rule
GoHighLevel
↑↓
Syncmy own echo? drop it · real change? write it
↑↓
Kit
0 errorsin 54 runs the week after the fix. Before it, the unsubscribe path failed 18 runs out of 18.
The same pattern, rebuilt in public with 29 tests: sync-ledger
US coaching business · a solo author's newsletterEmail deliverabilityAug to Oct 2026
Email that lands in the inbox, diagnosed from real headers
Delivered · second in progress
In both cases the authentication records were already clean. The fixes were in which systems were sending, and who the mail was going to.
What I did
Found four systems sending as the domain where the brief named two, and moved marketing mail onto its own sending subdomain
Turned on DMARC reporting across three domains, verified Postmaster, built an engaged-contacts segment and proved at send time that it held
Fixed a broken unsubscribe link, and rebuilt six DNS records the registrar dropped in the middle of the project
For the newsletter: tested placement across five mailbox providers, showed Gmail was placing mail reader by reader, and moved sends to people who actually read it
Google Workspace · GoHighLevel · DNS · SPF, DKIM, DMARC · Postmaster Tools
What the headers said
Authentication-Results:
spf=pass
dkim=pass
dmarc=passRecords clean. Look elsewhere:
sending systems, sending identity,
and who is on the list.
Nonprofit foundation, USAirtableOct 2026
A grant pipeline the board runs from one screen
Delivered
Applications arrived through a form and lived in a spreadsheet. Six days from kickoff to walkthrough, the board had a database instead.
What I built
Applications, organisations and funding rounds as linked tables, with the board's spreadsheet imported and reconciled against the original to the cent
Each application matched to its charity by tax ID, then website, then name
Form submissions arriving by webhook, stage history recorded, and a status email to the directors every Thursday
A dashboard with stage counts and an action-required view, plus a three-page guide for the people using it
The hard part
The same charity turns up under slightly different names from one year to the next. Matching on tax ID first, then website, then name keeps one charity as one record.
Airtable interfaces and automations · form webhook · Python import scripts
How an application finds its charity
New application arrives by webhook
match on
Tax ID
no match
Website
no match
Name
then
Linked to its charity and funding year, stage history starts
Loughborough United Reformed ChurchOperations and systems managerJan 2024 to Sep 2026
Running the systems for a multi-room community venue
Handed over
A church building with rooms hired out through the week. For almost three years I designed and ran the systems behind it.
What I built
Centralised bookings and invoicing, standard templates for every message to hirers, and automated workflows around them
Reporting in the shape funders ask for
A new website with room pages, a 50-post blog and a safeguarding page, built to WCAG AA
A funding system: grants tracker, a reusable bid pack and drafted applications
HTML, CSS and JS · GitHub Pages · Python
Live
The venue's new website
Room pages, blog and safeguarding, rebuilt from scratch and handed over.
Sustainability assessment portalsClient and assessor portals with enforced separation, dashboards and evidence libraries on Airtable and Softr. The database is written by a script that can resume and re-check the live base.
Dental practice systems, USBuilt for a dental practice handling patient health information under a signed business associate agreement. The details stay with the client.
Automations for a paid courseBuilt the automations taught inside another operator's course, and coached its students to apply them to their own businesses. Under NDA.
GoHighLevel funnelA three-page funnel with an upsell and the automations behind it, live on the client's domain.
Try it yourself
Live demo
WhatsApp-style sales agent
It interviews you about your business, then switches into selling your offer to you. A browser preview of the agent logic, built to run on WhatsApp Business.
Trades, dental, real estate, legal and hospitality, each with its own way of sorting urgent from routine. Tell me your business and I'll send the number for yours.
Tenant isolation in Postgres and the four ways it silently fails, tested against a real Postgres 16 in Docker. Audit logging in a trigger, and migrations that don't take the app down.
Reference implementations, rebuilt clean. No client code and no client data.
What clients said
In their words.
What sets Louis apart is his ability to understand complex systems quickly and translate ideas into clean, functional implementations without unnecessary friction. … I never felt like I had to micromanage him. Louis takes ownership and executes.
Founder, US veterinary AI startupVerified Upwork review · Jan 2026
“Louis communicated great, very nice and kind, and he went above and beyond when I asked him. He didn't have to but he did. Would def hire again.”
I'd rather tell you not to automate something than build the wrong thing well.
Find the bottleneck
One call about the part of the business that costs the most. If automation isn't the fix, or the task takes an hour a week, I'll say so.
Prove it by hand
Before anything runs on its own, I run it once on your real data and we check the output together.
Build it with alarms
Every step that can fail gets its own alert: what broke, why, and what to do, sent where you already look.
Hand it over
It runs in your accounts, with written documentation. You own it, and you can call me when you want more.
Fixed price when the scope is clear, with the hours and the arithmetic shown.Available 9am to 9pm UK time, Monday to Saturday.
Field notes
Things I check that most builds skip.
Each of these comes from a system that broke, nearly broke, or would have broken quietly.
Silent failure costs more than downtime.
Wrong output running for three weeks costs more than a clean stop. So every step that can fail sends an alert.
Duplicates before sequences.
Leads arrive from several places, so the same person enters twice. Two reps calling one lead is worse than a slow follow-up.
The AI never does the maths.
Prices, capacities and emergencies are decided by plain code. The model handles the conversation.
Re-check after every wait.
A reminder about a deal that closed three months ago teaches the team to ignore the system.
Two leads in the same second can share a row.
Some spreadsheet appends count the rows, then write. Leads that arrive together collide and one disappears without an error. I test with simultaneous submissions.
Clean DNS is where deliverability starts.
Gmail places mail reader by reader, from each reader's history with you. Who you send to matters as much as your records.
A phone agent never quotes a price.
It collects, triages and books. Prices and promised times come from a person, which keeps a real deployment out of trouble.
A human says yes to anything irreversible.
Money, legal documents, messages to customers and ad spend wait for an approval step.
About
I'm Louis Kowal.
I'm French, I live in the UK, and I work in English and French. I started LKAUTOMATE in 2023.
Most of what I build has to keep working after handover, with nobody watching it. That's why every system I ship comes with alerts and written documentation, and why I test against real data before anything goes live.
Alongside client work, I spent almost three years running the operational systems for a community venue in Loughborough. I've been classically trained on harpsichord and organ since I was five, and I'm an Ironman finisher. The discipline transfers more than people expect.
I work alone or with a small circle of people I trust. Clear scope, fast iteration, no surprises, no upselling. I'd rather be the second AI builder you hire, and the last.
Based
United Kingdom
Languages
English, French
Hours
9am to 9pm UK, Monday to Saturday
Upwork
Top Rated, 100% Job Success Score
Certified
HubSpot
Works in
GoHighLevel, n8n, Make, Airtable, Supabase and Postgres, Python, Next.js, Vapi, Twilio, the Claude and OpenAI APIs
Work with me
Tell me which part of the business costs you the most.
A 30-minute call, no prep needed. If there's a fit, you'll get a clear scope and a price. If there isn't, you'll leave with at least one useful suggestion.