The Stack: Choosing Your Tools Without Overspending
Building a chatbot for a client isn’t a weekend project if you want it to actually work. You need three core components: a chatbot builder, a Large Language Model (LLM), and some ‘glue’ to connect to other systems. Forget the all-in-one platforms that promise the world; they’re usually inflexible and overpriced.
For the builder, your main contenders are Voiceflow and Botpress. They both offer visual, flow-based interfaces. I lean towards Voiceflow for client work because its collaboration features are better, and the UI is cleaner for explaining complex logic to non-technical stakeholders. Botpress is great, more open-source friendly, but can feel a bit more developer-centric. Honestly, you can’t go wrong with either for your first few projects. Voiceflow’s Pro plan is $185/month, which is steep for a solo operator. My take: their free tier is more than enough for your first 2-3 client builds. Start there.
Next, the brain. This is the LLM. You’ll be using an API from OpenAI or Anthropic. While GPT-4o from OpenAI is the most famous, I’ve found that Claude 3.5 Sonnet from Anthropic is often faster and significantly cheaper for most chatbot tasks. The latency is lower, which means the user isn’t staring at a ‘typing’ indicator for three seconds. For client-facing bots, that speed matters more than a tiny bump in reasoning capability.
Finally, the glue. Your bot will need to do things—book appointments, check order statuses, add leads to a CRM. This is where an automation platform like Make.com or Zapier comes in. You’ll use webhooks from your chatbot builder to trigger workflows in Make. This keeps your bot’s logic clean. The bot’s job is to understand intent, not to house complex business automation. A basic Make.com plan starts around $9/month, which is a no-brainer.
What Most Guides Get Wrong About Chatbot Prompts
Here’s the biggest mistake I see. People try to write one enormous, all-knowing system prompt. They stuff it with every possible instruction, every piece of company data, and every edge case. This is a recipe for disaster.
AI Side Hustles
Practical setups for building real income streams with AI tools. No coding needed. 12 tested models with real numbers.
Get the Guide → $14
A single mega-prompt is slow, expensive (you pay for every token on every turn), and incredibly brittle. Changing one instruction can have weird, unpredictable effects on other parts of the bot’s behavior.
The correct approach is to use a multi-prompt architecture. Think of it like a manager and a team of specialists.
- The Router Prompt: This is a short, simple prompt with one job: determine the user’s intent. Is the user asking a question? Trying to book a meeting? Complaining? The router’s only output should be a single category, like `INTENT_BOOKING` or `INTENT_FAQ`.
- Specialist Prompts: Once the intent is known, the bot calls a different, highly-specific prompt that is an expert at that one task. The booking prompt only knows how to collect booking details. The FAQ prompt only knows how to answer questions from the knowledge base.
This separation makes the system exponentially more reliable. It’s easier to debug because you know exactly which prompt is failing. It’s cheaper because you’re not sending a 2,000-token context with every simple user query. And it’s more effective because each prompt is small, focused, and optimized for a single outcome.
Stop trying to build one brain. Build a team of them.
A Real-World Example: Building a Lead Qualification Bot
Let’s make this concrete. Imagine you’re building a bot for a local plumbing company. The goal is to qualify leads by checking if they are in the service area before booking a call.
Here’s how you’d structure it in Voiceflow, using the multi-prompt method:
- Map the Flow: First, you map the conversation visually. It looks something like: Greeting -> Ask about the problem -> Ask for their address -> Check service area -> If yes, ask for contact info -> If no, politely decline.
- The Router: A user says, “My sink is clogged and I live at 123 Main St.” The router prompt ignores the address for a moment and identifies the core intent: `INTENT_SERVICE_REQUEST`.
- The Specialist – Address Extraction: The flow now calls a specialist prompt designed only to extract an address. This is a critical step. You don’t want a conversational model trying to parse addresses; you want a tool. The system prompt for this step would be something like this:
- The API Call: With the structured JSON data from the previous step, Voiceflow makes an API call to a simple service (maybe a Google Sheet or an internal API) to check if the `zip_code` is in the approved list.
- The Final Steps: Based on the API response (true/false), the bot follows the ‘yes’ or ‘no’ path you designed. If yes, it might trigger a Make.com webhook to add the lead to the client’s CRM.
System: You are a highly accurate address parsing tool. Your only function is to extract a full street address, city, state, and ZIP code from the user's text. Respond ONLY with a JSON object in the format:{"address": "123 Main St", "city": "Anytown", "state": "CA", "zip_code": "90210"}. If you cannot find a complete address, return {"address": null}.
My favorite part of this setup is the visual flow builder in Voiceflow. You can see exactly where a conversation might fail, which is impossible when you’re just staring at a wall of code or a giant prompt. It turns an abstract problem into a concrete diagram.
