Duck
Tutorials8 min read

The Operator's Guide to Prebuilt AI Workflows for Solopreneurs

Samet Turan— Editor··8 min read

Stop manually qualifying leads. This guide shows you how to build an AI workflow that reads, classifies, and drafts replies to your inbound emails automatically.

The Operator’s Guide to Prebuilt AI Workflows for Solopreneurs

Your website contact form is a double-edged sword. It’s a source of new business, but it’s also a firehose of spam, sales pitches, and support requests you have to manually filter every day. I got tired of losing an hour every morning to this. This is the exact problem where prebuilt AI workflows for solopreneurs stop being a buzzword and become a real, production-ready tool. After reading this, you’ll be able to build an automated system that reads, qualifies, and drafts personalized replies to your inbound leads, freeing you up to do actual work.

The Core Stack: What You Actually Need

Forget the complex enterprise diagrams. For a solo operator, you need three things to make this work: a trigger, a brain, and an orchestrator. That’s it.

🤖
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)

  • Trigger: A web form. I use Tally because its free tier is absurdly generous and it has native webhooks. Any form tool with webhooks will do (Typeform, Jotform, etc.), but Tally is my default.
  • Orchestrator: An automation platform. I run this on Make.com. Zapier works too, but I find Make’s visual interface more intuitive for multi-step logic. Honestly, Make.com’s Core plan at $9/mo is a steal for what it allows. You can probably build this entire workflow on their free tier if your volume is low.
  • Brain: An LLM API. Not ChatGPT Plus. You need API access. I use the Anthropic API, specifically the Claude 3 Haiku model. It’s fast, incredibly cheap (we’re talking fractions of a cent per lead), and follows structured output instructions better than anything else in its price class.

That’s the entire stack. A form, an automation tool, and an API key. Total cost to get started is effectively zero, and at a scale of a few hundred leads per month, you’re looking at maybe $10-$15 total, including the Make.com subscription.

What Most Guides Get Wrong About AI Email Automation

Most tutorials you’ll find on this topic are dangerously simple. They tell you to pipe the form submission into a single prompt like: “Summarize this lead inquiry and write a friendly reply.”

This is a terrible idea.

A single, generic prompt produces a single, generic output. It doesn’t know if the inquiry is a hot lead, a support ticket, or a vendor trying to sell you SEO services. The result is an email that sounds like a slightly confused robot, and it completely fails to separate the signal from the noise. The core job of automation isn’t just to *do* the work, it’s to *decide* which work is worth doing. A single prompt can’t make that decision reliably.

The correct approach is a two-step process. First, you classify and structure the data. Second, you use that structured data to perform an action. We’re building a simple AI agent framework, not just a fancy email template.

Building the ‘Is This a Real Lead?’ Agent

This is the heart of the workflow. The first call to the LLM isn’t to write anything. It’s to function as a classification and extraction engine. You send it the raw text from the contact form and you ask for structured JSON back. This forces the model to think and commit to a decision.

Here’s a prompt that actually works. In your Make.com scenario, this is the content you’d send to the Anthropic API module.

<system>
You are an expert lead qualification assistant for a solo operator who runs a small AI automation agency. Your job is to analyze inbound contact form submissions and classify them with perfect accuracy. You must output your analysis in a valid JSON format, with no other text before or after the JSON block.
</system>

<user>
A new message has been submitted through the website contact form. Here is the content:

<message_data>
Name: Dave Bowman
Email: dave@discovery.one
Message: Hey, saw your work on AI-powered content pipelines. We're a B2B SaaS company and need to scale our blog production. Our current process is too slow. Can we book a 15-minute call to discuss if you can help? Thanks.
</message_data>

Please analyze the message and provide your output as a JSON object with the following keys:
- "lead_category": (string) One of the following exact values: "POTENTIAL_CLIENT", "SALES_PITCH", "SUPPORT_REQUEST", "SPAM", "OTHER".
- "is_qualified": (boolean) True if the category is "POTENTIAL_CLIENT" and the message contains a specific request for services, false otherwise.
- "summary": (string) A one-sentence summary of the user's request.
- "suggested_next_action": (string) A brief, imperative command for the next step, like "Draft a warm reply and suggest booking times" or "Mark as spam and delete".
- "extracted_name": (string) The contact's first name, extracted from the form data or message body.
</user>

Look at what this prompt does. It uses XML tags (`<system>`, `<user>`) to clearly separate instructions from data, which improves model accuracy. It defines a strict set of `lead_category` options, preventing the model from inventing its own. It asks for a boolean `is_qualified` flag, which is dead simple for your automation’s router to act upon. It even asks the model to suggest the next step, which we can use to guide the *next* agent.

This is how you turn a chaotic stream of text into clean, predictable data.

Why Does This Break With Generic ChatGPT Prompts?

So, why not just use the basic OpenAI API for this? You can, but I’ve found it to be less reliable for this specific task, especially with the cheaper, faster models. My main gripe with using models like GPT-3.5-Turbo for structured data extraction is their tendency to get chatty. You ask for pure JSON, and you get a response like: `”Of course! Here is the JSON object you requested:”` followed by the code block.

That conversational wrapper will break your Make.com or Zapier JSON parser every single time.

You can try to fix it with more aggressive prompting (“DO NOT INCLUDE ANY TEXT BEFORE OR AFTER THE JSON”), but it still happens occasionally. It’s an annoying and intermittent failure point. This is where I have to give credit to Anthropic’s Claude 3 Haiku. The thing I love about this model is its almost fanatical adherence to formatting instructions. When you ask for JSON, you get JSON. That’s it. For a production workflow where reliability matters, that single trait is worth everything. The fact that it’s faster and cheaper is just a bonus.

Predictability is the most important feature of any automation component.

How to Debug When Your Workflow Fails

It will fail. Sooner or later, a weirdly formatted email or an unexpected API hiccup will cause your workflow to error out. Ninety percent of the time, the problem is the step right after the LLM call—the part that tries to parse the JSON.

Here’s the debugging playbook:

  1. Check the Run History. In Make.com, you can inspect the history of every execution. Find the one that failed and click on it. You can see the inputs and outputs of every single module.
  2. Look at the Raw LLM Output. Click on the little bubble above your Anthropic/OpenAI module. This shows you the exact text it sent back. Is it valid JSON? Did the model hallucinate a weird key or forget a comma? Did it add a chatty intro sentence?
  3. Test in the Playground. Copy the exact input and prompt that caused the error and paste it into your API provider’s playground (like the Anthropic Console or OpenAI Playground). See if you can replicate the error.
  4. Tweak the Prompt. If the model is consistently making a mistake, your prompt isn’t clear enough. Maybe you need to add an example of the desired output (few-shot prompting) or simplify the JSON structure you’re asking for.

The fix is almost always in the prompt. Don’t start rebuilding the entire workflow until you’ve confirmed the LLM is giving you exactly what you asked for (which, yes, can be an infuriating process).

The Final Step: From JSON to Drafted Email

Once you have a reliable JSON output, the rest is easy. You use your orchestrator’s router or filter to check the `is_qualified` field. If it’s `false`, the workflow can stop, or maybe it adds the email to a “review later” pile. But if it’s `true`, it proceeds to the second agent.

This is a second, separate LLM call. It takes the clean JSON from the first agent as its input. Its prompt is much simpler:

"You are a helpful assistant. Use the following structured data to write a warm, personalized, and concise email to the potential client. The goal is to get them to book a meeting. Here is the data: [Insert the JSON output from the first agent here]."

This separation of concerns is critical. The first agent is purely analytical and structured. The second agent is purely creative and generative. By feeding the second agent clean data, you ensure its creative output is grounded, relevant, and consistent. It’s not guessing anymore; it’s working from a clear brief. The result is a drafted email in your Gmail or Outlook that’s 95% of the way there, waiting for your final review and send.

For more on this exact angle, deeper coverage of AI agent platforms.

If you’d rather skip the build and deploy a working version of this in an afternoon, we’ve packaged this entire operator playbook as a 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.