Duck
Tutorials8 min read

A Practical Guide to Building Human in the Loop AI Systems

Samet Turan— Editor··8 min read

Learn how to build a reliable human in the loop AI workflow for tasks like content moderation or lead qualification. Stop babysitting your automations.

The Core Problem with ‘Fire and Forget’ AI Automation

AI agents are brittle. You’ve probably felt this yourself. You build a slick little automation, it works great on your five test cases, and then you deploy it. For a week, it’s magic. Then a weirdly formatted email comes in, or a customer uses sarcasm, and the whole thing either breaks silently or starts pumping garbage into your CRM. This is the fundamental flaw in most simple AI workflows: they have no plan for ambiguity. They are built for the happy path. But business is all edge cases.

This is where a human in the loop ai system comes in. It’s not about micromanaging the AI. It’s about building a system that knows when it’s out of its depth and needs to ask for help. After reading this, you’ll be able to build a workflow that automates 95% of a task while intelligently routing the tricky 5% to you for a quick, final decision. You get the efficiency of automation without the risk of unmonitored failure.

What Most Guides Get Wrong

If you search for this topic, you’ll find tutorials pointing you toward enterprise-grade MLOps platforms like Amazon SageMaker Ground Truth or complex data labeling tools like Labelbox. These are incredible pieces of technology for training foundational models on millions of data points. They are also complete overkill for an operator trying to qualify leads or moderate comments.

🤖
Recommended Reading

AI Side Hustles

12 Ways to Earn with AI

Practical setups for building real income streams with AI tools. No coding needed. 12 tested models with real numbers.


Get the Guide → $14

★★★★★ (89)

You do not need a dedicated labeling platform. You do not need to build a custom React front-end for your review queue. Honestly, that’s a six-week distraction from your actual business.

The operator’s approach is scrappier and more effective. You combine tools you already know: a workflow automator, an LLM API, and a simple task board or spreadsheet. The goal isn’t to build a perfect, infinitely scalable system from day one. The goal is to build a reliable process that saves you ten hours a week, right now.

A Concrete Example: Qualifying Inbound Leads

Let’s make this real. Imagine you get 30-50 inbound leads a day from a form on your website. Some are hot prospects, some are support questions, and some are spam. You want an AI to read the message, categorize it, and summarize it for your CRM. Here’s a simple, effective stack.

  • Workflow Tool: Make (formerly Integromat). I prefer it over Zapier automations for logic that involves branching and filtering. Its visual interface makes complex paths easier to debug. The free plan is a joke, but the Core plan at $9/month is perfectly fine for this kind of volume.
  • AI Model: OpenAI‘s API, specifically GPT-4o. It’s fast, cheap, and excellent at following structured instructions.
  • Human Queue: A Trello board. That’s it. Create two lists: “Needs Review” and “Processed.”

The magic isn’t in the tools; it’s in the prompt and the workflow logic. You need to give the AI an explicit “out.” You instruct it to flag items it’s unsure about. Here’s a prompt that does just that:

You are an expert lead qualification assistant. Your task is to analyze an inbound message from a website contact form. Categorize the message into one of the following: 'Sales-Ready', 'Support', 'Spam'. Then, provide a one-sentence summary of the user's request. However, if you are less than 95% confident in the categorization, if the message is highly ambiguous, contains multiple distinct questions, or expresses extreme urgency or frustration, you MUST categorize it as 'NEEDS_REVIEW' and provide no summary. Respond ONLY with a valid JSON object with the keys "category" and "summary".

That `NEEDS_REVIEW` category is your escape hatch. It’s the signal that triggers the human-in-the-loop part of the workflow.

Here’s how you build it in Make.com:

  1. Webhook Trigger: Your website form sends its data to a Make.com webhook.
  2. OpenAI Module: The webhook data (specifically the message field) is passed to the GPT-4o API with the prompt above.
  3. Router (The Important Part): This is a conditional split. You add a filter that checks the AI’s output.
    • Path 1 (Filter: `category` equals `NEEDS_REVIEW`): If the AI flags the lead, the module creates a new card on your “Needs Review” Trello board. The card contains the original message, sender info, and a link back to your CRM.
    • Path 2 (Default): If the category is anything else (‘Sales-Ready’, etc.), the module proceeds to update your CRM with the category and summary from the AI.

My one concrete gripe with this setup is that the Router in Make.com can be finicky. Getting the JSON path from the OpenAI module mapped correctly into the filter condition sometimes fails without a clear error message. You have to check the run history logs to see exactly what data was passed and why your filter didn’t catch it. It’s a minor annoyance, but it can cost you an hour the first time you set it up.

Why Doesn’t the AI Just Know When to Ask for Help?

This is the question I see most often. Why do we have to be so explicit about the `NEEDS_REVIEW` flag?

Because large language models are instruction-following engines, not sentient beings. They don’t possess an internal state of “confusion.” Faced with an ambiguous input, their default behavior is to make their best guess—to hallucinate an answer that fits the statistical pattern. They will always try to give you *an* answer, even if it’s wrong, unless you provide a specific instruction for what to do when they lack certainty.

Your prompt is the AI’s operating system. You have to program the escape hatch yourself. Forgetting this is the single biggest reason AI automations fail in production. The system works perfectly on the 80% of clean, predictable inputs and then quietly makes a mess of the 20% of weird ones.

How to Debug When This Breaks

Your HITL system will eventually break or behave unexpectedly. It’s inevitable. Here are the three most common failure modes and how to fix them.

1. Too Many Items Are Being Flagged for Review.

Your Trello board is overflowing. The automation is barely automating anything. This is usually a prompt problem. Your confidence threshold is too high, or your definition of “ambiguous” is too broad. Look for patterns in the flagged items. Are they all about pricing? Add a specific instruction to your prompt on how to handle pricing questions. The fix is iterative refinement of the prompt’s rules.

2. Bad Outputs Are Getting Through Without Being Flagged.

This one is more dangerous. The AI is “confidently wrong.” For example, a lead writes, “I’m furious, your last invoice was wrong and I want to cancel my account,” and the AI categorizes it as ‘Sales-Ready’ because it saw the word “account.” This happens when your flagging rules are too narrow. The fix is to use few-shot prompting. Modify your prompt to include 2-3 examples of inputs and their correct outputs, making sure to include an example of something that *should* be flagged. Show, don’t just tell.

3. The Workflow Itself Is Erroring.

This is almost always a data format issue. The OpenAI module outputs a string that the CRM or Trello module can’t parse. The best fix for this is something I absolutely love about modern LLMs: JSON mode. Most top models (including OpenAI’s) can be forced to output a perfectly structured JSON object. By adding `Respond ONLY with a valid JSON object…` to your prompt, you make the output predictable and machine-readable. This eliminates 90% of the data-parsing errors between steps in an automation.

Scaling the Queue Beyond Trello

Trello is perfect when you’re starting out. It’s visual, simple, and free. It works great for up to, say, 50 reviews a day.

It does not work for 500 reviews a day.

When you hit that volume, you need a more structured queue. The next logical step isn’t some expensive enterprise platform. It’s a better database tool. I’d recommend moving the queue to something like Baserow or Airtable. You can create a simple grid view with columns for the input data, the AI’s suggestion, a status field (‘Pending’, ‘Approved’, ‘Rejected’), and a notes field for the human reviewer. You can then create filtered views for each member of your team. This is a much more organized way to handle hundreds of items per day without spending a fortune.

If you’re a solo operator and you have thousands of items a day that need human review, you’ve either built an incredible business or a very broken automation. For 99% of us, a shared database is the right ceiling for this kind of AI agent framework.

The principle remains the same: automate the probable, queue the possible. By building an explicit escape hatch for your AI, you create a system that is both efficient and trustworthy. You get the speed of the machine and the judgment of a human, applied exactly where they’re needed most.

We cover this in more depth elsewhere — deeper coverage of AI agent platforms.

If you’d rather skip the build and deploy a working version in an afternoon, we’ve packaged this entire workflow as a deployable AI automation blueprint. You can find it at deepusecase.com/vault.

— The Colophon

One AI tool. Tested. Reviewed.
In your inbox every Sunday.

~3 minute read. Real outcomes from operators, not marketers.

Free. One email per Sunday. Unsubscribe in one click.