bookee.tech

The submission form, upgraded

A voice agent that calls and schedules meetings for me? Yes.

LinkedIn was working a little too well. Posts drove hundreds of DMs and calendar requests, but four calls would turn into three hours of conversation and exactly one real client. Designers wanted mentorship. Founders were “just exploring.” The content was doing its job for the wrong audience. I didn't need more reach. I needed an AI receptionist.

Bookee V1 — built on n8n with Vapi. It demoed. It didn't hold up. Watch on YouTube

The broken version got me found

The first version of Bookee didn't work. I built it on n8n and wired in Vapi for the voice. On paper it was a pipeline; in practice it was a stack of platforms that each found new ways to break, and the voice agent couldn't hold a real call.

The published Bookee lead-qualification workflow on n8n's Creator Hub — Free, with 1,372 views.
V1 in n8n: research the lead, call with Vapi, log it back to Notion.
Rejected by devs, so I built 50 workflows. Watch on YouTube

A download turned into a DM

So I tore it down and rebuilt it around three things I could actually own: Vercel for the backend, Dograh for the voice, and Google Calendar for booking. No visual automation builder hiding the logic. Every integration is a serverless function I wrote, so when something fails the error shows up in my logs instead of someone else's dashboard.

A direct message from the Dograh team after they found the published n8n template.
The DM that kicked it off — the Dograh team reached out after the template took off.
Setting up the voice agent in Dograh.

One form, six steps, sixty seconds

When a lead hits submit, the whole thing runs itself. Verification and research happen in parallel, so the phone rings within a minute.

Running the Twilio check and the Claude research together with Promise.all, instead of one after the other, shaved three to five seconds off the pipeline. Small change, big difference when someone is waiting for a call.

  1. Capture

    Lead submits name, email, phone,
    and website URL.

    • One form, four fields — no friction
    • Consent captured with the exact caller ID
    • Submission rejected if consent is false
    Bookee intake form — name, email, phone, and website fields
  2. Verify

    Twilio Lookup confirms the phone and checks the carrier type.

    • Real-time number validation via Twilio Lookup
    • Carrier and line-type check filters bad numbers
    • E.164 formatting guards against dialing errors
    Twilio Lookup verifying the lead phone number
  3. Research

    Claude reads the website and writes a short business summary.

    • Fetches and strips the site to ~2k clean characters
    • Claude drafts a concise business summary
    • Runs in parallel with Verify via Promise.all
    Claude researching the lead website and drafting a business summary
  4. Call

    Dograh triggers an outbound AI call
    within 60 seconds.

    • Personalized intro built from the research
    • Outbound voice call placed in under a minute
    • Four prompt nodes drive a natural conversation
    Dograh placing an outbound AI call to the lead
  5. Book

    The agent checks real calendar availability and offers slots.

    • Live Google Calendar free/busy lookup
    • Only genuinely open slots are offered
    • OAuth2 refresh token writes to the right calendar
    Agent checking Google Calendar availability and offering meeting slots
  6. Confirm

    Meeting created with a Meet link, invite sent, Notion updated.

    • Calendar event created with a Meet link
    • Invite emailed to the lead automatically
    • Outcome and transcript logged back to Notion
    Calendar invite sent and meeting outcome logged to Notion

Verification step one: form design

The form prevents the most common failures before any code runs. In testing, most people typed their phone number without +1, so Twilio silently failed to dial. The fields and checkboxes are designed so a number that can't be dialed — or a call without consent — can't be submitted.

Bookee intake form before fix — phone number entered without a country code
Bookee intake form after fix — phone field prefixed with +1

Four nodes, one conversation

The Dograh agent runs on four prompt nodes: Global rules that apply to every turn, a Start Call greeting, the Main Agenda where scheduling happens, and an End Call wrap-up. The first version repeated itself — the greeting named the business, Start Call named it again, and the Global node echoed it into every turn. The fix: say the business name once at the top of the call, then never again.

API Trigger

Form → Notion → Claude research → Dograh. The API trigger receives the lead with the research attached and starts the call.

Dograh API trigger — n8n form submission handing off to start the outbound call

Global

Tone, boundaries, and guardrails that apply to every turn — without repeating the business name.

Dograh Global prompt node — tone, boundaries, and guardrails for every turn
Dograh Start Call prompt node — opening greeting for the outbound call
Dograh Main Agenda prompt node — scheduling and booking the demo
Dograh End Call prompt node — meeting confirmation and wrap-up

API Trigger, Global, Start Call, Main Agenda, End Call.

Verification step two: the deposit

Making it something someone could buy was the other half of the job. I cut pricing to two tiers: a free Self-Deploy template and a Done-For-You tier at $3,497 with a refundable 25% deposit of $874.25. Stripe went from test mode to live, and a real deposit landed. On the paid path, that deposit does the same job the consent checkbox does on the free demo: it confirms intent before anything runs, so Bookee only calls people who are ready to proceed.

The consent checkbox names the caller ID, logged with a timestamp in Notion.

The background is generated

Every visitor lands on a different scene. A small prompt pipeline paints the hero background on the fly, so the site is never the same twice. No stock photos, no fixed art direction — the background is a living output of the same system that runs the calls.

Try it live at case-halo-09679044.figma.site

What's next

Bookee works end to end. The next phase is improvement, in three steps:

Define success

Set a per-call protocol — every call ends as booked, declined, or dropped — so success rate is a number, not a feeling.

Test and tune

Review call recordings against that protocol and tune the prompts until the conversation sounds natural, not scripted.

Reach the vertical

Take Bookee to the people it's built for: coaches, solo entrepreneurs, and design agencies that already run on their website's contact form.

Bookee is open source

The whole build is public: workflows, prompts, and the site.
Fork it or make it the start of your own AI receptionist.

built with twilio · claude · dograh

The Bookee style guide