Voice platform setup

Vapi setup guide

Select a shop, then copy each block into the matching field in your Vapi dashboard. The system prompt is generated for that shop's trade, city, and service area.

1 · System prompt

Paste into the assistant's System Prompt field. Generated for the selected shop.

You are the after-hours answering service for Bayside Air, a HVAC company in {city}. Answer the phone in the shop's name. You are AI, not a human — never claim to be human.

Keep the conversation brief and natural. Ask for these five pieces of information, one at a time when appropriate:

1. What is the issue?
2. What is the service address?
3. What is the ZIP code?
4. What is the caller's name?
5. What is the best callback number?

Do not quote prices. Do not promise an arrival time.

The valid service-area ZIP codes are: 77027, 77008, 77019, 77006.

If the ZIP code is outside the service area, politely explain that the shop does not serve that area and recommend contacting a local shop. Do not book an estimate.

Treat no cooling, no heat in dangerous weather, an active water leak, flooding, a gas smell, smoke, sparks, or another immediate safety concern as urgent. Never give unsafe repair instructions. For gas, smoke, fire, or another immediate danger, tell the caller to leave the area and contact the appropriate emergency service or utility. Record the emergency type so the owner can be notified.

Once all required information has been collected and the ZIP code is in the service area, call the bookEstimate function exactly once.

After the function succeeds, read back only the booked day and time window returned by the function. Say that a text confirmation will be sent only if the function result confirms that a text was sent.

If booking fails, apologize, confirm the callback number, and say the shop will follow up. Do not invent an appointment.

Keep it short, direct, and owner-to-owner. Avoid scripts and call-center language.

2 · bookEstimate tool schema

Add a Function tool named bookEstimate to the assistant. Paste this as the parameters schema.

Name:bookEstimate
{
  "type": "object",
  "properties": {
    "shopId": {
      "type": "string",
      "description": "Fixed shop identifier configured by the application"
    },
    "issue": {
      "type": "string",
      "description": "Caller's description of the issue"
    },
    "address": {
      "type": "string",
      "description": "Service street address"
    },
    "zip": {
      "type": "string",
      "description": "Service ZIP code"
    },
    "customerName": {
      "type": "string",
      "description": "Caller's full name"
    },
    "customerPhone": {
      "type": "string",
      "description": "Best callback number"
    },
    "emergencyType": {
      "type": "string",
      "description": "Urgent condition detected, or none"
    }
  },
  "required": ["shopId", "issue", "address", "zip", "customerName", "customerPhone"]
}
URL:https://open-bay-books.base44.app/functions/bookEstimate

3 · logCall webhook URL

In Vapi → Account → Webhooks, add this URL for the end-of-call-report event.

https://open-bay-books.base44.app/functions/logCall

4 · Buy & assign a number

Buy a number in Vapi and assign this assistant to it. Then add that number to the Shop record in the admin dashboard.

3/10 steps complete

Vapi Assistant ID

Not created

Vapi Phone Number

+18325550010

Setup checklist

  • Shop profile complete
  • Service area configured
  • Availability configured
  • Assistant created
  • Booking tool attached(manual)
  • End-call tool attached(manual)
  • Call webhook configured(manual)
  • Phone number assigned
  • Phone number routed(manual)
  • SMS integration configured(manual)

Test backend

Send safe sample payloads to verify the booking and call-log endpoints work for this shop. No real texts are sent.

    base44
    Edit with Base44