Small business AI mostly breaks between the tools you already pay for
AI consulting for small business is mostly connecting tools you already pay for: where ours failed quietly, and what to ask a consultant first.
Published: 2026-10-22 · Author: Ahmed Heshmat · 6 min read
From September 14 to October 16, every LinkedIn post with a blog link that we scheduled through Buffer's API went out without the preview card that sends readers to our blog. Buffer's app adds the card when you paste a link. Its API does not unless the request builds one, and nothing warned us: the posts went out on time, with the link as plain text. We noticed on October 17 and fixed it that day. Most small business AI projects break the same way, in a handoff between tools the business already pays for, with no error to say so.
We build AI systems for small businesses, and we are one. In AI consulting for small business, most of the hours go into joins like that one, between the phone, the CRM, the scheduler, the job or accounting software and the inbox. When we scope a build for an owner, that is where the work sits, and it is where both of our own misses this fall happened.
A join can fail without an error
In September a clean-up step in our own code deleted 35 image files our blog covers depended on. The step runs only inside our website host's build, which our tests never run, so every test passed while every cover on the live site showed as a broken image. We fixed it on the night of September 16, and a test now fails if the step would delete a file a post needs.
Neither the missing cards nor the broken covers raised an error, and we found both by looking at what was live.
Slow joins hide the same way. At a property management operation we build for, work orders usually crossed from its property software to its task system inside the five minutes the vendor's help centre promises. Between 11pm and 2am they did not: nothing created in that window arrived before 2am. Look for the equivalent in your own business: a web form that reaches the CRM on a schedule, a booking tool that pushes to a calendar every so often, an accounting sync that runs once a night.
After any change, look at the live result yourself, and put a daily check on anything that could stop without saying so. When you read a proposal, look for the line that pays for those checks. If there is no such line, nobody has costed them.
Trace one request before you hire anyone
Pick the request that costs you most when it goes wrong: a new lead, a repair, a quote, a booking. Then write six lines.
- Where it arrives. Phone, web form, email, text, a portal, a social message. List every one, including the owner's mobile.
- Where it is first written down, and by whom or what. If the answer is a sticky note or someone's memory, that is the first thing to build. At a GTA plumbing company we work with, work orders arrived by email and stayed there, and the schedule lived in the owner's head, so the first phase we scoped was an app that takes a work order in and an invoice out.
- Every tool it passes through after that, in order, and how each hop happens. Typed by a person, a sync on a schedule, or an integration that fires at once. Write the schedule beside every sync, and if nobody knows it, time one.
- Who is told, through what, and during which hours. Then write what happens to the same request at 11pm on a Friday.
- Where the answer to the customer's next question lives. "When will someone call me back?" "Where is my quote?" If that answer sits in a tool your phone line or website cannot read, you need either a join or a written answer, with a time in it, that whoever picks up can give.
- How you would notice if it stopped. A sync that stalls, a form that stops sending, a post that goes out without its link. If nobody would notice for a week, a daily check goes on the list.
Bring that page to the first call with every firm on your list, us included.
What to ask an AI consultant about the joins
Send these with the page. We have published four questions for any firm and six for reading a Toronto quote; these four are only about the joins.
- Which of our tools will you connect, and how will you test each connection against our own accounts rather than the vendor's documentation? A good answer names the tools and describes the test.
- What happens to a request that arrives at 11pm on a Friday? A good answer has a time in it and a person's role.
- If a sync runs late or a step fails without an error, who finds out, and how soon? A good answer is a check that runs whether or not anyone is looking.
- How will we know where each new customer came from, before and after? A good answer tags every source before the build goes live.
The first budget goes on one request path
If we were spending a small business's first AI budget this year, we would put it into a single request path, traced end to end and checked every day, before a chatbot on the website or a strategy document. A chatbot that cannot see the job will answer "when will someone call me back" with a polite line and no time.
How we measured
The Buffer gap covers every LinkedIn post with a blog link we filed through its API from September 14 to October 16, 2026, found and fixed on October 17. The deleted images were found and fixed on September 16, 2026, by comparing the live site with the code. The sync timing is from work orders created August 27 to September 23, 2026 at the operation described above, read through both tools' APIs; the full method is in our LeadSimple API notes. Nothing here identifies a client, a customer or a staff member.