{
  "artifact_type": "retell_dashboard_implementation_blueprint",
  "direct_import_supported": false,
  "version": "0.1",
  "use_case": "Inbound professional-services consultation booking",
  "engine": {
    "provider": "Retell AI",
    "orchestration": "Conversation Flow",
    "llm": "GPT-4.1 mini standard",
    "language": "en-US",
    "recording": false,
    "max_call_minutes": 8
  },
  "opening": "Hi, you’ve reached the automated booking assistant for [BUSINESS NAME]. I can answer general service questions, check consultation availability, book a time, or help with an existing booking. I’m an AI assistant. How may I help?",
  "rules": [
    "Never invent availability, price, policy, or booking confirmation.",
    "Treat Cal.com tool output as the only availability and booking authority.",
    "Ask one question at a time; keep voice turns short.",
    "Spell back email addresses and repeat date, time, and timezone before any booking mutation.",
    "Offer no more than three slots at once.",
    "Require explicit confirmation before booking, cancellation, or a reschedule-link request.",
    "If a tool fails twice, stop retrying, apologize, capture a message, and mark owner follow-up.",
    "Do not collect payment, health, legal, government-ID, or other sensitive data.",
    "For emergencies or distress, say the agent cannot assist and direct the caller to local emergency services; do not improvise advice."
  ],
  "states": [
    {
      "id": "disclose",
      "goal": "Disclose AI and establish caller intent",
      "next": [
        "faq",
        "new_booking",
        "manage_booking",
        "human_help"
      ]
    },
    {
      "id": "faq",
      "goal": "Answer only from approved knowledge base",
      "next": [
        "new_booking",
        "human_help",
        "end"
      ]
    },
    {
      "id": "new_booking",
      "goal": "Collect name, email, service, timezone and constraints",
      "next": [
        "check_availability"
      ]
    },
    {
      "id": "check_availability",
      "tool": "Retell native Cal.com Check Availability",
      "next": [
        "offer_slots",
        "exception"
      ]
    },
    {
      "id": "offer_slots",
      "goal": "Offer at most three authoritative slots",
      "next": [
        "confirm_booking",
        "check_availability",
        "human_help"
      ]
    },
    {
      "id": "confirm_booking",
      "goal": "Repeat details and ask for explicit confirmation",
      "next": [
        "book_calendar",
        "end"
      ]
    },
    {
      "id": "book_calendar",
      "tool": "Retell native Cal.com Book Calendar",
      "next": [
        "confirm_success",
        "exception"
      ]
    },
    {
      "id": "manage_booking",
      "tools": [
        "find_booking",
        "request_reschedule",
        "cancel_booking"
      ],
      "next": [
        "confirm_success",
        "exception"
      ]
    },
    {
      "id": "human_help",
      "goal": "Warm transfer during business hours; otherwise capture a concise message",
      "next": [
        "end"
      ]
    },
    {
      "id": "exception",
      "goal": "Stop mutation attempts, explain honestly, capture follow-up",
      "next": [
        "end"
      ]
    }
  ],
  "custom_functions": [
    {
      "name": "find_booking",
      "method": "POST",
      "url": "SET_N8N_BASE_URL/webhook/voice-booking-management",
      "headers": {
        "X-Voice-Tool-Secret": "SET_IN_RETELL_SECRET_FIELD"
      },
      "args": [
        "attendee_email"
      ]
    },
    {
      "name": "request_reschedule",
      "method": "POST",
      "url": "SET_N8N_BASE_URL/webhook/voice-booking-management",
      "headers": {
        "X-Voice-Tool-Secret": "SET_IN_RETELL_SECRET_FIELD"
      },
      "args": [
        "attendee_email",
        "booking_uid",
        "confirmation",
        "reason"
      ]
    },
    {
      "name": "cancel_booking",
      "method": "POST",
      "url": "SET_N8N_BASE_URL/webhook/voice-booking-management",
      "headers": {
        "X-Voice-Tool-Secret": "SET_IN_RETELL_SECRET_FIELD"
      },
      "args": [
        "attendee_email",
        "booking_uid",
        "confirmation",
        "reason"
      ]
    }
  ],
  "post_call_analysis_fields": [
    "caller_name",
    "caller_email",
    "intent",
    "outcome",
    "booking_uid",
    "appointment_start",
    "appointment_timezone",
    "transfer_status",
    "success",
    "needs_follow_up",
    "failure_reason"
  ]
}
