BUILD BLUEPRINT · Implementation instructions, not a tested turnkey integration.
Your Workflow Lab
Workflow 001 / Build blueprint

From website enquiry
to AI follow-up.

Capture a request, check the CRM, ask three questions, and offer a meeting—without losing the context between systems.

Entry pointWebsite landing-page form
Voice / calendarVapi · Twilio · Cal.diy
FormatGuide + AI build prompts
See the workflow

Illustrative demo using fictional data; not a recording of a live integration.

Build along / Claude + Codex

Give your AI a proper brief.

Get the starting brief, six ordered build prompts, bridge adaptation checklist, configuration examples, and acceptance checks in one pack.

Version 0.4 · Build instructions, not tested software · Enter your name and email to access the complete ZIP.

Is this workflow for you?

For teams handling website enquiries who want a consistent callback and booking process.

Build levelTechnical setup with a coding assistant. You’ll need account and API access.

Tools and prerequisites.

This blueprint uses the combination below. You can adapt the approach to other tools with suitable integrations; the setup steps and required plans will differ.

Website capture formName, email, phone number, request, and an explicit AI callback choice.
CRM · TwentyContact lookup, enquiry context, and activity updates.
Voice · Vapi + TwilioAn assistant, a configured phone connection, and calendar tools.
Calendar · Cal.diyAn event type, availability, timezone, and booking confirmation.

You’ll also need a server to connect the tools, access to each account’s API, your own test number, and a call budget. Check required plans and usage pricing before starting.

Budget / USD

What does it cost to run?

Budget for the tools you need, then add usage. Existing subscriptions may cover part of the setup; self-hosted tools still need hosting and maintenance.

ComponentWhat you pay forBudget basis
Vapi + AI providersVoice processing, transcription and model usageOur editor displayed approximately $0.09/min. Configuration estimate only; confirm included components before adding provider charges. Vapi pricing
TwilioPhone number rental and call transportUse the rate for the destination and number type. Not included in our example subtotal. Taiwan rates
Website + integration serverCompute, database, storage and trafficRailway lists $5 Hobby / $20 Pro monthly minimum usage, with that amount in usage credits. These are plan minimums, not a quote for this stack. Hosting pricing
Twenty CRMCloud plan or self-hosted infrastructureRequired plan and deployment cost not verified. Include API access, storage and backups. Check plans
Cal.diySelf-hosted calendar infrastructure and maintenanceNo measured allocation yet. Count shared hosting once, rather than once per application.
Optional servicesEmails, recordings, monitoring and coding assistantAdd only what you enable. Build-time AI subscriptions are separate from workflow runtime usage.
A recorded example from the original demo

A 20 October 2026 evaluation call lasted 224.635 seconds (about 3 minutes 45 seconds). Its CRM cost entries are marked Reported: $0.389 Vapi + $0.794 Twilio = $1.183 USD.

Observed in Twenty on 10 November 2026; not independently reconciled against provider invoices. This is one historical call, not a guaranteed rate or cost per booked meeting. Hosting and fixed subscriptions are excluded. Other calls have pending phone charges; pending does not mean free.

Controlled website test: four attempts

Across 10–11 November 2026, three unanswered calls and one connected call reported $0.2679 USD in Vapi usage. All Twilio prices remain pending, so the combined cost is unknown. No meeting was booked; this is not a cost per successful consultation. Failed attempts also consume budget.

Example: 100 calls × 5 minutes

500 minutes × $0.09 = $45 estimated AI-call subtotal.

At the same estimated rate: 15 billable minutes ≈ $1.35; 30 billable minutes ≈ $2.70 across calls.

These are arithmetic examples, not measured bills or predictions of call length. Add telephony, fixed plans, hosting and any extras. Retries and unsuccessful billable attempts also consume budget.

Monthly budget = fixed plans + hosting usage + billable call usage + enabled extras. Apply included credits once. Check each provider’s billing units and avoid counting pass-through AI charges twice.

Pricing references checked 11 November 2026. The $0.09/min editor estimate was observed on 9 November; it is not a current all-in quote. Currency: USD; taxes and currency conversion excluded. Complete website-workflow cost: not yet verified; historical call example shown separately.

01

Capture a request on your website.

Use a focused landing page with one clear offer and a short form. Explain that an AI assistant can call about the request, ask three questions, and help arrange a meeting.

The local form completes the full simulated journey. Four separately approved live attempts included one connected call; a confirmed live booking and full qualification writeback remain unverified.

Form fields

  1. First name, last name and email address.
  2. Phone number with country code.
  3. A short description of what the visitor needs.
  4. An unchecked choice: “I would like an AI assistant to call me about this request.”
  5. A separate optional recording choice, left unchecked.

Form action: Request a callback. After the server saves the request, show a confirmation and explain what happens next. Keep newsletter signup separate.

Acceptance checkConfirm the person requested the callback, the number is valid, and each submission maps to one enquiry. A repeated click must not trigger a second call.
Actual Your Workflow Lab local enquiry form with blank contact fields and unchecked callback and recording choices.
Actual local application, 10 November 2026. Enquiries are saved to a private local store; provider actions are simulated. This screenshot demonstrates the form, not a live call or booking.
02

Validate the request.

Check the contact details and callback choice before any automated call can start.

  1. Validate the fields on your server and normalize the phone number.
  2. Save the callback choice with the enquiry.
  3. Use a session-bound submission key. Identical retries reuse the saved enquiry; changed content under that key is rejected.
  4. Check the server-side session, origin, request size and rate limits. Qualify anti-bot controls before public deployment.
  5. Send requests without callback permission to manual follow-up.
Acceptance checkOne saved enquiry with a clear callback choice. Submitting it again should not create a second call.
03

Check the CRM and prepare the call.

Look for an existing contact before creating another record. Attach the new enquiry so the assistant has the relevant context.

The original presentation demo rejects existing email addresses and creates temporary contacts. The website edition created one approved test contact and reused it on later live attempts. Exact note, person, call and cost links were read back. Website records remain outside demo cleanup.

  1. Inspect the existing integration’s matching fields and CRM API mapping before adapting them. Do not assume phone or email is its actual matching key.
  2. Reuse a clear match. Send uncertain matches for human review.
  3. Save the enquiry and a record of the planned call.
  4. Check callback permission, opt-out status, calling window, and budget before starting the call.
Acceptance checkSubmitting the same request twice must not create two calls. If the provider times out, check whether a call was created before trying again.
04

Configure the conversation.

Give the assistant one job: understand the request and help the caller choose a next step. Our demo first checks it has reached the intended person, then introduces itself as AI and asks whether now is a good time.

Three questions from our demo.

The original demo assistant uses:

01What would you most like to improve about your sales or operations process?
02When would you ideally like to have this working?
03What day and time usually work best for a short consultation?

Read from the Voice Demo draft in Vapi on 9 November 2026. Adapt these questions to your business. The saved assistant API reports v28 and waits for the user to speak. The prepared website test pins v28 and starts the assistant through a per-call override; it does not edit the saved assistant. Controlled call readback confirmed the per-call version and opening mode. Live qualification and booking remain unverified.

Ask one question at a time. Give the agent the enquiry context and access to the calendar tools. Record your chosen conversational model, transcription provider, voice, and assistant version so you can repeat your tests.

Keep the caller in controlStop automated calls after an opt-out. Hand off when a person is requested. Only offer a meeting when the caller wants one.
Acceptance checkRecorded answers and an explicit next action.

Controlled tests confirmed per-call v28, speaks-first, a five-minute cap and recording off. Four controlled attempts produced three unanswered calls and one connected call. Its booking tool rejected a harmless name-format difference; that check is corrected locally, with email/call/slot/confirmation checks retained. Complete live qualification and booking remain acceptance checks.

Actual Vapi draft showing Deepgram Nova 3, GPT-4.1 Mini, Elliot voice, and the three-question system prompt.
Actual Vapi configuration, captured 9 November 2026: Deepgram Nova 3, GPT-4.1 Mini and Elliot. This is the editor draft, not confirmation of the deployed version. Figures shown are Vapi estimates, not measured workflow costs.
05

Offer availability. Confirm a booking.

Connect the assistant to your calendar through tools that check available times and create a booking.

  1. Retrieve current availability for the correct event type.
  2. Confirm the caller’s chosen time and timezone.
  3. Recheck the slot before booking it.
  4. Read back the provider booking and verify the attendee, event, start time, timezone and operation before confirming it.
Acceptance checkA repeated booking request should produce one calendar event. If the slot is unavailable, offer another time or hand off without claiming success. If the booking response times out, reconcile its status before retrying.

Treat cosmetic display-name formatting separately from identity. Keep exact saved email and call/slot binding, require explicit confirmation, and read back the provider booking. A failed tool without a confirmed booking must remain visible for review even if generated intent says no meeting.

Cal.diy Voice Demo event setup with a 15-minute duration and Google Meet location.
Actual Cal.diy event configuration, 10 November 2026. The Voice Demo event lasts 15 minutes and uses Google Meet. Its availability schedule is weekdays, 9 a.m.–5 p.m., Asia/Taipei. Settings are not evidence of a completed booking.
06

Save the outcome and confirm.

Update the CRM with the call outcome, relevant answers, next action, and confirmed booking details. Keep a request for human follow-up visible to your team.

Live tests verified summary/next-action, contact-linked call and cost writes, plus staff API acceptance. The connected test returned unknown qualification values and its calendar confirmation failed, so actual three-answer and booking-linked writeback/confirmation remain unverified.

Use your calendar’s confirmation email if it is configured. Check whether it already sends one before adding another notification.

Acceptance checkReplay a test event and confirm it does not duplicate the booking, CRM activity, or confirmation. If an update fails, retry that update—not the call.
Historical Twenty Voice Call record showing API creator, disposition, duration and linked cost entries.
Actual Twenty record captured 10 November 2026. This historical evaluation call has a duration, disposition and linked costs. Contact and Company are empty in this record; it does not demonstrate a complete website enquiry or booking journey.

Test your workflow.

Reference checked 11 November 2026: the website form and saved rehearsal complete the simulated journey and retain results after restart. Four controlled real calls verified contact reuse and CRM outcome logging; live qualification, booking and confirmation remain unverified.

Start with simulated provider responses. When those pass, use your own approved number for one controlled end-to-end test, with a clear budget and recording choice.

Complete the full journey

Submit the form. Confirm the contact is found, the call asks the intended questions, the calendar contains the correct event, and the CRM and confirmation match.

Submit the same request twice

Check that only one call attempt and one booking are created—even if the requests arrive together.

Try an opt-out and a human handoff

Confirm that an opt-out prevents retries and later automated calls. A request for a person should create a clear next action for your team.

Check failed calls and bookings

Test no answer, provider timeout, an unavailable slot, and a delayed CRM update. Uncertain outcomes should be reconciled rather than blindly retried.

Troubleshooting.

The form saves, but no call starts

Check callback permission, destination format, opt-out status, calling window, budget, and the saved attempt state. Keep those checks enabled while investigating.

The assistant says “booked,” but there is no event

Inspect the calendar tool response and booking ID. Change the agent’s confirmation rule so it relies on provider success, not its own generated text.

The CRM or confirmation updates twice

Check that each incoming event is processed once and that repeat requests reuse the same saved action. Fix the repeated effect without replaying the call.

Was this guide useful?

Preview only · Feedback is not collected yet.

Workflow 001 / Build pack

Build it with your AI.

Enter your name and email to access the starting brief, six step prompts, configuration example, and test checklist.

We use your name and email to provide the pack and an emailed copy. Lab Notes is optional. Privacy and retention.