Integration projects and the agents that sit on top of them. No screenshots of websites — the interesting part was never the page.
We describe these the way we would in a first conversation: what was breaking, what we connected, and what the thing will and will not do. Both agents below draft; neither sends. Where we have not measured a result, we say so.
01
Security shutter installer Trades · Toronto & the GTA
Getting job history out of the inbox
A coordinator agent that keeps the mailbox, the CRM, and the project files telling the same story — and drafts the correspondence that used to be written from scratch.
Reads → drafts → a human decides
What was breaking
Every customer and supplier email was written from nothing, each time. Notes from phone calls and site visits were meant to be typed up afterwards, and frequently were not.
So the CRM drifted. The only dependable record of any job was whatever happened to still be sitting in the shared inbox — which is fine until the person who remembers the job is on site, on holiday, or gone.
What we built
A coordinator agent sitting across the systems the business already ran, with one job: keep them in agreement.
It tracks every lead and job, drafts the customer and supplier email, writes up the notes after calls and site visits, and keeps the CRM current — so the job history exists somewhere other than one person's memory.
Systems it touches
Shared mailbox — reads it, writes drafts back into it
Zoho CRM — reads and updates customer and job records
Project files in the company repository
Supplier paperwork and the internal reference library
The public website
What it deliberately does not do
This matters more than the feature list. The agent drafts; people decide.
It never sends an email. Every message waits for a human to read and send it.
It does not price work.
It does not approve orders or commit to dates.
Measurements, prices, and supplier confirmations come from people, not from the agent.
Status
Running in production.
Impact has not been measured yet. We would rather write that than put a number on the page we cannot stand behind.
Nothing sits unanswered, no number goes out unchecked
A sales-desk agent that reads the mailbox against the sales records, keeps them straight, and drafts the replies — while refusing to invent any figure it cannot source.
Reads → reconciles → drafts
What was breaking
The mailbox was reconciled against the sales records by hand, and every reply was written from scratch. It happened whenever somebody sat down to it, which meant it often did not happen at all.
One customer quote went out twenty-two days late. Not because anyone dropped it deliberately — because there was no system holding the thread between an email, a costing file, and a stock position.
What we built
An agent working across the sales records, the mailbox, and the costing side of the business: lead files, status documents, the stock ledger, vendor profiles, the activity log, and the leads dashboard.
It reads the Zoho mailbox, call recordings and transcripts, and container costing files, then drafts the replies and corrects the records behind them. Quoting is faster because the context is already assembled — not because the agent decides anything.
Systems it touches
Lead files, status documents, and the leads dashboard — read and written
Stock ledger, vendor profiles, and the activity log — read and written
Zoho mailbox — read, with drafts written back
Call recordings and transcripts
Container costing files
Both website repositories and the live pages — read only
What it deliberately does not do
For a business quoting real prices on real containers, the refusals matter more than the features.
It never sends email, places an order, or pays anyone.
It does not change the websites.
It does not set prices, deposits, or container dates — those stay with the people accountable for them.
When it cannot source a number, it flags the gap instead of filling it.
It can be wrong, and says so: every draft is written to be read before it is sent.
Status
Running in production.
Records that had drifted out of step are being corrected in bulk, and the mailbox no longer has to be reconciled against them by hand. We have not measured revenue impact, and we are not going to claim it.
03Our own agent
Nocktech — in-house Site & Server Agent · 14 sites hosted
Fourteen sites, one operator
The agent that builds and ships our client sites, and keeps hosting, forms, and email delivery working. We run our own delivery on it — which is the honest answer to whether we actually use this or only sell it.
Builds → ships → keeps it running
What was breaking
Standing up a new site meant hours of manual setup — repository, deployment pipeline, DNS, SSL, mail wiring — a few times a month. Content and page edits weekly on top of that. An optimisation and indexing pass on every single deploy. Routing and mail failures debugged whenever they surfaced.
All of it done by one person, by hand. It worked. It just had a hard ceiling: the number of sites we could carry was the number of hours available.
What we built
An agent that writes the code, ships it to the server, and keeps hosting, forms, and email delivery working across every site we host.
It takes the repetitive half of delivery — provisioning a new site, running the optimisation and indexing pass on each deploy, and diagnosing routing and mail failures when they appear — so the hours left go into the work that actually needs judgement.
This is also the offering: the same setup, stood up against a client's own hosting and domain and then handed over, so they can change their site whenever they like without booking a developer.
Systems it touches
Site repositories and the deployment pipeline
Managed hosting across 14 live sites
DNS, SSL, and domain routing
Transactional mail delivery behind site forms
Sitemaps and search-engine indexing on every deploy
What it deliberately does not do
It ships the work. It does not own the relationship or the money.
No domain purchases, registrar access, or billing.
No client communication — that stays with a person.
No design or business decisions.
Credentials and server changes remain under human control.
Nothing goes live without a person approving it first.
Status
Running in production across 14 hosted sites.
Impact has not been measured — no before-and-after was recorded. What we can state plainly is the scope of what it replaced: hours per new site a few times a month, weekly content edits, and an optimisation pass on every deploy.
04
Industrial packaging supplier Manufacturing & import · Canada · second agent in the same business
Which campaign to switch off, and why
A marketing agent doing the hands-on work — writing and fixing site content, shipping it live, and running the Google Ads account against the numbers rather than against a hunch.
Measures → writes → ships
What was breaking
Content updates, technical fixes, and campaign management were handled ad-hoc by an outside contractor, roughly weekly. Work happened when someone got to it.
Meanwhile ad spend ran without anyone reconciling what each campaign actually cost to produce a lead. Money moved; nobody could say which half was working.
What we built
An agent doing the hands-on marketing and site work: writing and correcting website content, pushing it live, and managing the Google Ads account — with analytics and Search Console as its evidence base rather than its decoration.
The point was never that it writes copy. It is that the copy, the campaign, and the numbers behind both are handled by the same thing, so a cost-per-lead gap gets noticed instead of averaging out quietly across the account.
Systems it touches
Website code and content files — read, written, and shipped live
Google Ads account — read and written
Analytics and Search Console — read
The production server — read
What it deliberately does not do
It spends nobody's money and speaks to nobody's customers.
It does not approve spending changes — pausing the expensive campaign was the owner's call, made on the agent's numbers.
It does not set prices.
It does not talk to customers.
It does not vouch for claims it cannot verify, including claims that predate it.
Status
Running in production. This one is measured.
Across the same three weeks, two campaigns were costing $58.77 and $195.13 per lead — the gap that justified pausing one. The sitemap grew from 94 URLs to 115, and the blog from 4 posts to 16. Work shipped more recently has not been measured yet.
Have a process that only works because someone remembers it?
That is usually the one worth automating first. Tell us what it is and we will tell you honestly whether an agent helps.