Documentation

Personal assistant

Recipe for a voice assistant that manages the calendar, mail and prepaid appointment booking.

The Personal assistant is a recipe for a voice agent reachable by phone, to assemble yourself (it is not a shipped template — see Typical business agents). It books appointments, checks your calendar, sorts your mail, and can collect a deposit before confirming.

What it does

  • Answer the phone — a caller can request an appointment by voice.
  • Book a prepaid appointment — the assistant proposes a time slot, generates a payment link, and only confirms after payment is received.
  • Daily report — a morning recap (today's calendar, messages to handle).
  • Reminder — a nudge before an upcoming appointment.
  • Mail triage — sorts incoming emails and surfaces what matters.
  • Targeted transfer — routes a priority caller to a direct line.

How it is assembled

  1. Channel — real-time Telephony (inbound voice).
  2. Calendar — Google Calendar to check availability (google.calendar_list_events) and create the appointment (google.calendar_create_event).
  3. Payment — a Stripe payment link (stripe.create_payment_link), then payment verification (stripe.check_payment) before confirming. To ensure a slot is booked only once, materialize the slots in a no-code database and reserve them with database_manage.claim_row.
  4. Mail — a triage agent on the Email channel (email_inbound receiver).
  5. Transfer — phone_gateway.transfer_call tool (SIP REFER) to a direct number, usable only during a call.

Booking is reliable by construction if the slots are rows of a no-code database: even if two calls target the same slot, the atomic claim_row operation (compare-and-set) guarantees that only one gets it. It does not apply directly to a Google Calendar event.

Adapting it to your context

  • Define your appointment types, their duration and their price.
  • Choose the transfer rules (who is a priority).
  • Adjust the tone and the voice of the assistant.