Nella API

Connect your phone system to Nella. She'll answer calls, extract intent with AI, and book appointments automatically.

POST /api/calls/webhook Process an incoming call

Request Body (Twilio-compatible)

{
  "CallSid": "CA1234567890",
  "From": "+15551234567",
  "To": "+15559876543",
  "CallerName": "Sarah Johnson",
  "TranscriptionText": "I need a plumber tomorrow morning",
  "RecordingDuration": 45,
  "business_id": 1
}

Response

{
  "success": true,
  "call_id": 42,
  "intent": "book_appointment",
  "extracted": {
    "caller_name": "Sarah Johnson",
    "service_needed": "Plumbing",
    "preferred_date": "2026-04-10",
    "preferred_time": "morning",
    "urgency": "normal"
  },
  "appointment": {
    "id": 7,
    "start_time": "2026-04-10T08:00:00.000Z",
    "service": "Plumbing",
    "status": "confirmed"
  },
  "confirmation": "Hi Sarah! Your appointment is confirmed..."
}
Twilio Integration: Point your Twilio webhook URL to this endpoint. Nella accepts standard Twilio voice/transcription payloads.
GET /api/calls List recent calls

Query Parameters

?business_id=1&limit=20
GET /api/appointments List upcoming appointments

Query Parameters

?business_id=1&status=confirmed&limit=20
GET /api/appointments/available Check available time slots

Query Parameters

?business_id=1&date=2026-04-10

Response

{
  "slots": [
    { "start": "2026-04-10T08:00:00Z", "start_display": "8:00 AM" },
    { "start": "2026-04-10T09:00:00Z", "start_display": "9:00 AM" }
  ],
  "total_available": 8
}
POST /api/appointments Manually book an appointment

Request Body

{
  "customer_name": "John Smith",
  "customer_phone": "+15551234567",
  "service": "Plumbing repair",
  "start_time": "2026-04-10T09:00:00Z",
  "notes": "Kitchen sink leak"
}
PATCH /api/appointments/:id/cancel Cancel an appointment
GET /api/appointments/stats Dashboard statistics
GET /api/settings Get business settings
PUT /api/settings Update business settings

Request Body

{
  "business_name": "Martinez Plumbing Co.",
  "opening_time": "08:00",
  "closing_time": "18:00",
  "slot_duration_minutes": 60,
  "services": ["Plumbing", "Drain Cleaning", "Water Heater"],
  "greeting_message": "Thanks for calling Martinez Plumbing!"
}