Businesses
A Business is your AI agent’s “knowledge base + behavior config”. The system prompt, business context (services, FAQs, hours, policies), voice settings, and prompt-level tuning all live here. All AI behavior is configured at the Business level, not the Agent level.
Get a business
GET /api/v1/businesses/:idResponse:
{
"success": true,
"data": {
"id": "biz_xxx",
"name": "Sunset Dental",
"industry": "healthcare",
"description": "Family dental practice in San Francisco",
"timezone": "America/Los_Angeles",
"address": "123 Main St, San Francisco, CA 94110",
"phone": "+14155551234",
"email": "hello@sunset-dental.example",
"hours": [
{ "day": "monday", "open": "08:00", "close": "17:00" },
{ "day": "tuesday", "open": "08:00", "close": "17:00" },
{ "day": "saturday", "open": "09:00", "close": "13:00" }
],
"services": [
{ "name": "Cleaning", "duration": 60, "price": 150 },
{ "name": "Whitening", "duration": 90, "price": 400 }
],
"faqs": [
{ "question": "Do you take insurance?", "answer": "Yes — most major plans." }
],
"policies": [...],
"systemPrompt": "You are a friendly receptionist for Sunset Dental...",
"greetingTemplate": "Thanks for calling Sunset Dental, how can I help?",
"fallbackMessage": "I'm sorry, I didn't catch that — could you say it again?",
"transferNumber": "+14155559999",
"voiceSettings": { "speed": 1.0 },
"interruptionSensitivity": 0.7,
"maxCallDurationMinutes": 15,
"silenceThresholdMs": 800,
"createdAt": "2026-02-01T00:00:00.000Z"
}
}Create a business
POST /api/v1/businesses
Content-Type: application/json
{
"name": "Sunset Dental",
"industry": "healthcare",
"timezone": "America/Los_Angeles"
}Most fields are optional at creation time. Update them as you go via PATCH.
Update business behavior
The single most important PATCH for tuning your AI:
PATCH /api/v1/businesses/:id
Content-Type: application/json
{
"systemPrompt": "You are a friendly receptionist...",
"greetingTemplate": "Thanks for calling, how can I help?",
"voiceSettings": { "speed": 1.05 },
"interruptionSensitivity": 0.6,
"maxCallDurationMinutes": 20
}All of these flow into the live voice engine on the next call — no restart needed. Changes are versioned in the audit log.
Update services
Services live as a JSON array on the business itself — there’s no separate endpoint. Send the full array via the main PATCH:
PATCH /api/v1/businesses/:id
Content-Type: application/json
{
"services": [
{ "name": "Cleaning", "duration": 60, "price": 150 },
{ "name": "Whitening", "duration": 90, "price": 400 },
{ "name": "Implant Consult", "duration": 30, "price": 0 }
]
}PATCH replaces the entire services array. To add/remove individual entries,
GET first, modify in your code, then PATCH the full array. The same pattern
applies to faqs, policies, and hours.
Business context for the LLM
businessContext is a free-form JSON object injected into the LLM’s system
prompt at call time. Update it via the main PATCH:
PATCH /api/v1/businesses/:id
Content-Type: application/json
{
"businessContext": {
"specialties": "Family dentistry, cosmetic, sleep apnea",
"insuranceAccepted": ["Delta Dental", "Cigna", "Aetna"],
"newPatientForms": "https://example.com/new-patient-pdf"
}
}Keep it concise (~500 tokens) — bloated context slows first-token latency.
Akol also exposes higher-level helpers (/businesses/:id/generate-services,
/businesses/:id/extract-from-url, /businesses/:id/generate-faqs) that
populate these fields automatically; check those before hand-rolling JSON.
Soft delete
DELETE /api/v1/businesses/:idSets deletedAt. Active campaigns under this business are paused. Hard
deletion happens after 90 days unless restored.