Build Log
May 5, 202612 min read

How I Built an AI Chatbot That Sells for Me

I replaced my 'Contact Us' form with an AI version of myself. It answers questions, qualifies leads, and books calls — all built in Base44 in three hours.

Most websites have a "Contact Us" form that nobody fills out. I had one too. It worked about as well as you'd expect.

So I built something better — an AI version of me. Lives on my site. Answers questions about how I work, what I build, what it costs. Books calls when someone's a fit. Tells people honestly when I'm not the right fit.

I built the whole thing in Base44 in about three hours. And I built it as a template, so I can deploy the same setup for any business in a week.

This post is the full walkthrough — every phase, every prompt, every decision.

What I Actually Built

A custom AI chat assistant on willbickel.ai. Three things make it different from a generic chatbot:

**It's trained on my business.** Not a generic FAQ — actual knowledge about what I do, how I price, what kinds of projects I take. When someone asks "what would it cost to build me a CRM," it knows the answer.

**It sounds like me.** The voice is configured separately from the knowledge. Tone, cadence, things I'd never say. When the bot doesn't know something, it doesn't make stuff up — it says "I'd want Will to answer that directly. Want me to set up a call?"

**It's a template, not a one-off.** Every brand-specific thing — colors, logo, voice, services, pricing, booking link — lives in a single Config record. To deploy it for a client, I clone the app, swap the config, upload their knowledge base, and ship.

That last part matters more than the bot itself. The product isn't the bot. The product is the system that lets me build a bot for any business in a week.

Why I Built It Instead of Using Intercom or Chatbase

Three reasons.

First, I'm an AI consultant. The chatbot lives on my site as a working demo. Every visitor to willbickel.ai is now an interactive proof of what I build. That's harder to fake than a portfolio.

Second, I own all the data. Conversations, leads, intent scores — everything lives in my database. No platform deciding to change pricing on me, no vendor lock-in.

Third, this is a service I sell. If I build chatbots for businesses, I should build my own first. Otherwise the offer is hollow.

The Build, in Six Phases

I broke it into six phases on purpose. One big prompt to Base44 fails 80% of the time — too many moving parts, too many things to debug at once. Six small prompts, with verification between each, takes the same total time and never goes sideways.

Phase 1 — Scaffold and Data Model

The foundation. Database entities, page structure, admin login. No AI yet — just the skeleton, built as a clonable template from day one.

The single most important decision I made was this: nothing about willbickel.ai gets hardcoded. Not my name, not my colors, not my services. Everything lives in a Config record in the database. That's what turns this from "an app I built" into "a productized service."

The schema:

  • Config — single record for brand, voice, and goal settings
  • KnowledgeItem — categorized content the bot learns from
  • Conversation — transcript storage with intent scoring
  • Message — individual user/assistant messages

Total time on this phase: about 20 minutes.

Phase 2 — Brand Customization with Live Preview

This was the first real "wow" moment. Two-column Brand tab in the admin: form on the left, live preview of the chat page on the right. Change a color, watch the chat update in real time.

Why I built it this way: when a client wants to see what their bot will look like, I don't want to deploy and reload. I want them to watch their brand come to life as they fill in the fields. That's a sales tool as much as a build tool.

The trick: the public chat page reads everything from the Config record. Zero hardcoded values. Change the primary color from terracotta to navy, save, refresh /chat — done. Same code, different brand.

Total time on this phase: about 30 minutes.

Phase 3 — Voice and Goal Configuration

Voice is what makes the bot feel like a real person, not a generic AI. I separated it into two tabs:

Voice tab: tone selector (direct, warm, playful, professional, witty), a long voice-description field for personality notes, and three "example exchange" rows where I can write question→answer pairs that teach the bot how to sound.

Goal tab: what is this bot trying to do? Book a call, capture an email, qualify a lead, answer support questions. The CTA label, the destination URL, the welcome message.

The example exchanges turned out to be the secret sauce. Generic voice instructions ("be friendly, be helpful") produce generic AI. But three concrete examples of "if someone asks X, you'd say something like Y" — that's how you get a bot that sounds like you, not GPT.

Total time on this phase: about 20 minutes.

Phase 4 — Knowledge Base

Where the bot learns about the business. Knowledge items grouped by category: services, pricing, about, FAQ, work.

I added a feature here that paid off immediately: bulk paste with auto-split. Paste a long doc into a textarea, hit "Auto-split," and the AI breaks it into separate categorized knowledge items. Saves an hour of manual entry every time I onboard a new client.

For my own bot, I seeded five items: services, pricing, about, how I work, and the AI assistant service itself (so the bot can sell its own service to visitors — meta, but it works).

Total time on this phase: about 25 minutes.

Phase 5 — Wire Up the AI

The big one. Make the bot actually talk.

The system prompt is dynamically assembled from the Config record and all knowledge items. Every time a visitor sends a message, the bot gets:

  • The business name, tagline, and goal
  • The voice tone and description
  • The three example exchanges (few-shot teaching)
  • All knowledge items grouped by category
  • The last 10 messages of the conversation as context
  • A short ruleset (stay in character, don't make things up, surface the CTA when intent is clear)

After every AI response, a second quick AI call estimates how qualified the lead is on a scale of 0-10. That score determines when the CTA card surfaces in the chat.

The first conversation I had with my own bot felt unsettling. It sounded too much like me. I asked it about pricing and it answered exactly the way I would. I asked it about a project type I don't take, and it politely declined and offered alternatives. I asked it a hard question about my background, and it said "I'd want Will to answer that directly — want me to set up a call?" That's the answer I would have given.

Total time on this phase: about 45 minutes.

Phase 6 — Lead Capture, Polish, Share

The last phase turned a working chatbot into an actual business tool.

When the intent score crosses 6, the chat surfaces a CTA card styled in the brand's accent color. Visitors can either click through to book a call or drop their email for a follow-up.

The admin dashboard shows weekly conversations, captured leads, average intent score, and the most common questions visitors ask. That last metric alone is worth the build — within a week of going live, I knew exactly what my prospects actually wanted to know.

Mobile polish, share options (public URL, copy link, iframe embed, QR code), and a tasteful "Powered by willbickel.ai" footer on the public chat page — built-in marketing on every client deployment.

Total time on this phase: about 40 minutes.

What I'd Do Differently

Two honest reflections.

First — I underestimated how much the example exchanges in Phase 3 would matter. I almost skipped them. Don't. They're the single biggest lever on whether the bot sounds human or AI.

Second — I'd add voice as a configurable add-on from the start, even if I'm not building the voice features yet. I baked the schema in (voice_mode, voice_id, voice_speed) so I can ship voice without a database migration later. If you're building this yourself, do the same. Adding fields later is painful.

The Template Angle (Why This Matters More Than the Bot)

Here's the part most builders miss.

If I just built a chatbot for myself, that's a project. Useful for me, not much else. But because I built every business-specific value into a Config record, this is now a deployable system.

When a client hires me to build them an AI assistant, the workflow is:

  1. Discovery call — I learn their voice, goals, knowledge
  2. Clone the app — same codebase, fresh database
  3. Fill in the Config — colors, voice, CTA, goal
  4. Bulk-paste their knowledge base — auto-split into categories
  5. Test, deploy, hand off

Total time per client: about a week, mostly waiting on them to send me their content. The actual build is a few hours.

That's the difference between a portfolio piece and a productized service. The portfolio piece is the bot. The productized service is the system that builds bots.

What It Costs to Build One for Your Business

I offer this as a productized service. Three tiers:

**Starter** — Branded AI assistant page on your domain, trained on your business, live in one week.

**Pro** — Everything in Starter, plus lead capture with CRM integration, Cal.com booking, and monthly retraining as your business changes.

**Custom Voice** — Pro tier plus full voice mode, with the option to clone your actual voice using ElevenLabs. Your AI doesn't just sound like a person — it sounds like you.

If you want one, book a call and we'll talk through what fits.

The Honest Takeaway

Base44 is the most underrated AI builder right now. It handles the data, the auth, the UI, and the AI integration in one place. For a build like this — admin app + public app + AI conversation + database — it's faster than rolling it yourself with Cursor and a stack of services, and the result is more flexible than anything you'd get out of Chatbase or Voiceflow.

The thing it doesn't do well: floating chat widgets. If a client absolutely needs the corner-bubble experience, that's a different build (Claude API + a small custom widget). I do those too, but most businesses are better served by what I built here — a real, branded AI experience that does the work, not a tiny dismissible bubble.

If you got value out of this, feel free to reach out. And if you want one of these built for your business, the booking link is right here.