# API Keys Source: https://boltcall.mintlify.app/account/api-keys Create and manage API keys to authenticate your requests to the Boltcall REST API. API keys authenticate your requests to the Boltcall REST API. Each key carries a set of resource permissions so you can grant only the access a particular integration needs. Your full API key is shown **only once** — immediately after creation. Copy it to a secure location before closing the dialog. If you lose it, you must revoke the key and create a new one. ## Create an API key In your dashboard, go to **Settings → API Keys**. Click **Create API Key**. Enter a descriptive name that identifies how the key will be used — for example, `Production Backend` or `CRM Integration`. Choose an expiry date if you want the key to automatically deactivate after a set period. Leave blank for no expiry. Select the resources and permission levels this key needs. You must grant at least one permission. Click **Create Key**. Copy the full key from the confirmation dialog — it will not be shown again. ## Resource permissions Each API key is scoped to specific resources. You can grant `read`, `write`, or both permissions per resource. | Resource | Description | | ---------------- | ----------------------------------------- | | `calls` | Read/write access to call history | | `leads` | Read/write access to lead data | | `agents` | Read/write access to agent configuration | | `analytics` | Read access to analytics data | | `contacts` | Read/write access to contacts | | `knowledge_base` | Read/write access to the knowledge base | | `integrations` | Read/write access to integration settings | **`read`** — allows GET requests to list and retrieve records for that resource. **`write`** — allows POST, PATCH, and DELETE requests to create, modify, and remove records for that resource. Write access does not automatically include read; grant both if needed. The `analytics` resource supports `read` only. Write access is not available for analytics data. ## Use a key in API requests Include your API key as a Bearer token in the `Authorization` header of every request: ```http theme={null} Authorization: Bearer YOUR_API_KEY ``` For example, using curl: ```bash theme={null} curl https://api.boltcall.org/v1/leads \ -H "Authorization: Bearer YOUR_API_KEY" ``` See the [API authentication guide](/api/authentication) for full details on request formatting and error codes. ## Revoke a key To permanently deactivate a key: Go to **Settings → API Keys**. Find the key in the **Active Keys** list and click the trash icon on the right. Click **Revoke Key** in the confirmation dialog. Any application using this key loses access immediately. Revoked keys appear in the **Revoked / Expired** section for audit purposes and cannot be reactivated. ## Security best practices * **Never share keys publicly.** Do not commit API keys to source control or expose them in client-side JavaScript. * **Use minimal permissions.** Grant only the resources and permission levels each integration actually requires. * **Set an expiry date** for keys used in short-term integrations or shared environments. * **Rotate keys regularly.** Revoke and replace keys periodically, especially after team member changes. * **Monitor usage.** Each key displays usage counts for the last 24 hours, 7 days, and 30 days — review these if you suspect unauthorized access. ## Rate limits Each API key has a rate limit of **60 requests per minute** by default. If your integration requires a higher limit, contact [support@boltcall.ai](mailto:support@boltcall.ai). See [Rate limits](/api/rate-limits) for more detail. # Plans & Billing Source: https://boltcall.mintlify.app/account/plans Understand Boltcall's plans, token usage, and how to manage your subscription. Boltcall offers four plans — Starter, Pro, Ultimate, and Enterprise — each designed to match where your business is today. You can upgrade, downgrade, or cancel any time from your dashboard. ## Plans at a glance | | **Starter** | **Pro** | **Ultimate** | **Enterprise** | | ------------------------------- | ----------- | ---------- | ------------ | -------------- | | **Monthly price** | \$549/mo | \$897/mo | \$4,997/mo | Custom | | **Annual price** | \$4,941/yr | \$8,073/yr | \$44,973/yr | Custom | | **Tokens per month** | 1,000 | 3,000 | 10,000 | Custom | | AI receptionist | ✓ | ✓ | ✓ | ✓ | | Missed call text-back | ✓ | ✓ | ✓ | ✓ | | Instant lead reply | ✓ | ✓ | ✓ | ✓ | | Appointment reminders | ✓ | ✓ | ✓ | ✓ | | Reports dashboard | ✓ | ✓ | ✓ | ✓ | | Full lead follow-up system | — | ✓ | ✓ | ✓ | | SMS conversations | — | ✓ | ✓ | ✓ | | Automatic follow-ups after jobs | — | ✓ | ✓ | ✓ | | Website chat widget | — | ✓ | ✓ | ✓ | | Multiple locations | — | — | ✓ | ✓ | | AI audits | — | — | ✓ | ✓ | ## What are tokens? Tokens are the unit that measures your AI usage. Every time Boltcall's AI handles an interaction — answering a call, sending an SMS reply, following up with a lead, or processing a chat message — it consumes tokens. More complex or longer interactions consume more tokens. Your token balance resets at the start of each billing period. You can monitor your current usage at any time in **Settings → Usage**. If you approach your monthly token limit, Boltcall will notify you. Upgrading your plan immediately increases your token allocation. ## Plan details Everything you need to start capturing and responding to leads: AI receptionist, missed call text-back, instant lead reply, appointment reminders, and a reports dashboard. Includes 1,000 tokens/mo. All Starter features plus a full lead follow-up system, SMS conversations, automatic follow-ups after jobs, and the website chat widget. Includes 3,000 tokens/mo. All Pro features plus support for multiple locations and AI audits. Built for businesses managing several service areas. Includes 10,000 tokens/mo. Tailored solutions for larger organizations. Contact our sales team to discuss custom token limits, SLAs, and dedicated support. ## Annual discount Paying annually saves approximately 10% compared to monthly billing. The annual prices are: * **Starter**: $4,941/yr (vs. $6,588 billed monthly) * **Pro**: $8,073/yr (vs. $10,764 billed monthly) * **Ultimate**: $44,973/yr (vs. $59,964 billed monthly) Switch to annual billing when you sign up or from **Settings → Plan & Billing** to lock in the savings for the year. ## Upgrading or downgrading In your dashboard, go to **Settings → Plan & Billing**. Review the available plans and click **Select** on the one you want. You will be directed to the payment page to complete your subscription change. Upgrades take effect immediately. Downgrading takes effect at the end of your current billing period. Your token allocation and features remain at the current level until then. ## Cancellation To cancel your subscription, contact [support@boltcall.ai](mailto:support@boltcall.ai). Cancellations take effect at the end of your current billing period and your access continues until that date. ## Enterprise inquiries For volume pricing, custom contracts, or dedicated onboarding, contact the sales team at [sales@boltcall.ai](mailto:sales@boltcall.ai) or visit the [contact page](https://boltcall.ai/contact). # Team Members Source: https://boltcall.mintlify.app/account/team-members Invite team members to your Boltcall workspace and manage their roles and access. You can invite your team to your Boltcall workspace so they can access the dashboard, manage leads, configure agents, and more. Each member is assigned a role that controls what they can see and do. ## Roles overview Boltcall has five built-in roles. The **Owner** role is assigned automatically to the account creator and cannot be reassigned through the Members page. | Role | Description | | ----------- | ------------------------------------------------------------------------------------------------ | | **Owner** | Full access, including billing and workspace deletion. Assigned to the account creator. | | **Admin** | All features except billing management and workspace deletion. | | **Manager** | Manage agents, leads, integrations, knowledge base, and view analytics. | | **Agent** | View and handle assigned calls and chats. Read-only access to leads, agents, and knowledge base. | | **Viewer** | Read-only access to analytics and reports. | ### Permissions by role | Permission | Owner | Admin | Manager | Agent | Viewer | | --------------------- | :---: | :---: | :-----: | :---: | :----: | | View calls and chats | ✓ | ✓ | ✓ | ✓ | ✓ | | Make calls / send SMS | ✓ | ✓ | ✓ | ✓ | — | | View leads | ✓ | ✓ | ✓ | ✓ | ✓ | | Manage leads | ✓ | ✓ | ✓ | — | — | | Export leads | ✓ | ✓ | ✓ | — | — | | View analytics | ✓ | ✓ | ✓ | — | ✓ | | Export reports | ✓ | ✓ | ✓ | — | — | | Manage agents | ✓ | ✓ | ✓ | — | — | | Test agents | ✓ | ✓ | ✓ | — | — | | Manage knowledge base | ✓ | ✓ | ✓ | — | — | | Manage integrations | ✓ | ✓ | ✓ | — | — | | General settings | ✓ | ✓ | — | — | — | | Manage members | ✓ | ✓ | — | — | — | | Manage roles | ✓ | ✓ | — | — | — | | Manage API keys | ✓ | ✓ | — | — | — | | View billing | ✓ | ✓ | ✓ | — | — | | Manage billing | ✓ | — | — | — | — | Only the Owner can change plans, update payment methods, or delete the workspace. ## Invite a member In your dashboard, go to **Settings → Members**. Click **Invite Member**. Type the email address of the person you want to invite. Choose the role that matches the level of access they need. You can change this later. Click **Send Invite**. The member will receive an email with a link to accept the invitation and create their account. Invited members appear in the members list with an **Invited** status badge until they accept. ## Member statuses | Status | Meaning | | ------------- | --------------------------------------------------- | | **Active** | Member has accepted the invitation and can sign in. | | **Invited** | Invitation email sent, not yet accepted. | | **Pending** | Awaiting action (e.g. email verification). | | **Suspended** | Access temporarily revoked. | If a member has not accepted their invitation, you can resend it from the members list. ## Change a member's role Go to **Settings → Members** and click **Edit** next to the member's name. Choose a role from the dropdown. Click **Save**. The change takes effect immediately. ## Remove a member Go to **Settings → Members** and locate the member you want to remove. Click the trash icon next to their name and confirm the action. Removed members lose access to the workspace immediately. Their past activity is retained in the audit log. You cannot remove the workspace Owner. Transfer ownership to another admin before removing the original owner account. ## Related pages * [API Keys](/account/api-keys) — grant programmatic access with scoped permissions * [Plans & Billing](/account/plans) — manage your subscription and token allocation # Agents Source: https://boltcall.mintlify.app/api/agents Create, configure, and manage your AI voice agents via the Boltcall API. Agents are the AI voice personas that answer calls, engage leads, and book appointments on behalf of your business. Each agent has a voice, a greeting, and an optional system prompt that shapes its behavior. ## List agents Page number. Default: `1`. Number of results per page. Default: `20`, max: `100`. ```bash cURL theme={null} curl https://api.boltcall.org/v1/agents \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/agents?page=1&limit=20', { headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); const { data, meta } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.boltcall.org/v1/agents', params={'page': 1, 'limit': 20}, headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) result = response.json() ``` ```json Response theme={null} { "data": [ { "id": "agent_abc123", "name": "Front Desk Agent", "voice_id": "voice_sarah", "status": "active", "phone_number": "+1234567890", "created_at": "2025-01-15T08:30:00Z" } ], "meta": { "page": 1, "limit": 20, "total": 3 } } ``` *** ## Create an agent Display name for the agent. The voice to use. See the Voice Library in your dashboard for available IDs. Custom greeting the agent speaks when a call connects. System prompt or persona instructions that guide the agent's behavior. ID of a knowledge base to link to this agent. See [Knowledge base](/dashboard/knowledge-base). ```bash cURL theme={null} curl -X POST https://api.boltcall.org/v1/agents \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "After-Hours Agent", "voice_id": "voice_james", "greeting": "Thanks for calling! How can I help you today?", "prompt": "You are a friendly receptionist for a dental practice..." }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/agents', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'After-Hours Agent', voice_id: 'voice_james', greeting: 'Thanks for calling! How can I help you today?', prompt: 'You are a friendly receptionist for a dental practice...', }), }); const agent = await response.json(); ``` ```python Python theme={null} import requests agent = requests.post( 'https://api.boltcall.org/v1/agents', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'name': 'After-Hours Agent', 'voice_id': 'voice_james', 'greeting': 'Thanks for calling! How can I help you today?', 'prompt': 'You are a friendly receptionist for a dental practice...', }, ).json() ``` ```json Response theme={null} { "id": "agent_def456", "name": "After-Hours Agent", "voice_id": "voice_james", "status": "active", "created_at": "2025-03-20T14:00:00Z" } ``` *** ## Update an agent Updates one or more fields on an existing agent. Only the fields you include are changed. **Path parameter** The ID of the agent to update. **Body** Updated display name. Updated greeting message. Set to `"active"` or `"paused"`. A paused agent will not answer calls. ```bash cURL theme={null} curl -X PATCH https://api.boltcall.org/v1/agents/agent_def456 \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "After-Hours Agent v2", "status": "active" }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/agents/agent_def456', { method: 'PATCH', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'After-Hours Agent v2', status: 'active' }), }); const updated = await response.json(); ``` ```python Python theme={null} import requests updated = requests.patch( 'https://api.boltcall.org/v1/agents/agent_def456', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={'name': 'After-Hours Agent v2', 'status': 'active'}, ).json() ``` ```json Response theme={null} { "id": "agent_def456", "name": "After-Hours Agent v2", "status": "active", "updated_at": "2025-03-21T10:00:00Z" } ``` *** ## Delete an agent Permanently deletes an agent. This cannot be undone. **Path parameter** The ID of the agent to delete. Deleting an agent is irreversible. Any phone numbers assigned to the agent will be unlinked, and call history is retained but the agent can no longer be restored. ```bash cURL theme={null} curl -X DELETE https://api.boltcall.org/v1/agents/agent_def456 \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} await fetch('https://api.boltcall.org/v1/agents/agent_def456', { method: 'DELETE', headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); ``` ```python Python theme={null} import requests requests.delete( 'https://api.boltcall.org/v1/agents/agent_def456', headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) ``` ```json Response theme={null} { "deleted": true } ``` # Authentication Source: https://boltcall.mintlify.app/api/authentication Authenticate your requests to the Boltcall REST API using API keys. All requests to the Boltcall API must include a valid API key. The API uses Bearer token authentication — pass your key in the `Authorization` header on every request. **Base URL** ``` https://api.boltcall.org/v1 ``` ## Get an API key Generate API keys from your dashboard under **Settings → API Keys**. See [API keys](/account/api-keys) for instructions on creating and managing keys. ## Send authenticated requests Include your API key as a Bearer token in the `Authorization` header: ```bash cURL theme={null} curl https://api.boltcall.org/v1/agents \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/agents', { headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.boltcall.org/v1/agents', headers={ 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, ) data = response.json() ``` Never expose API keys in client-side code or public repositories. Store them in environment variables and make API calls from your server. ## Key permissions When creating an API key you choose which resources it can access and whether each resource allows `read` or `write` access. Available resources are: `calls`, `leads`, `agents`, `analytics`, `contacts`, `knowledge_base`, and `integrations`. ## Error responses ### 401 Unauthorized Returned when the `Authorization` header is missing or the key is invalid or expired. ```json theme={null} { "error": { "code": "invalid_api_key", "message": "The API key provided is invalid or expired.", "status": 401 } } ``` ### 403 Forbidden Returned when the key is valid but lacks the required permission for the requested resource. ```json theme={null} { "error": { "code": "forbidden", "message": "Your API key does not have permission to access this resource.", "status": 403 } } ``` If you receive a 403, check the key's permission settings in **Settings → API Keys** and ensure the resource and permission level (`read` or `write`) are enabled. # Calls Source: https://boltcall.mintlify.app/api/calls List call records, retrieve transcripts and recordings, and initiate outbound calls. The Calls API gives you access to your complete call history — including transcripts, recordings, sentiment analysis, and AI-generated summaries — and lets you programmatically place outbound calls from any agent. ## List calls Returns a paginated list of call records. Use query parameters to filter by agent, direction, or date range. Filter results to calls handled by a specific agent. Filter by call direction. Accepted values: `"inbound"` or `"outbound"`. Return calls on or after this date and time (ISO 8601, e.g. `"2025-03-01T00:00:00Z"`). Return calls on or before this date and time (ISO 8601). Number of results per page. Default: `20`. ```bash cURL theme={null} curl "https://api.boltcall.org/v1/calls?direction=inbound&limit=20" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} const params = new URLSearchParams({ direction: 'inbound', limit: '20' }); const response = await fetch(`https://api.boltcall.org/v1/calls?${params}`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); const { data, meta } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.boltcall.org/v1/calls', params={'direction': 'inbound', 'limit': 20}, headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) result = response.json() ``` ```json Response theme={null} { "data": [ { "id": "call_xyz789", "agent_id": "agent_abc123", "direction": "inbound", "caller": "+1987654321", "duration_seconds": 142, "status": "completed", "sentiment": "positive", "recording_url": "https://api.boltcall.org/v1/calls/call_xyz789/recording", "transcript_url": "https://api.boltcall.org/v1/calls/call_xyz789/transcript", "created_at": "2025-03-20T09:15:00Z" } ], "meta": { "page": 1, "limit": 20, "total": 156 } } ``` *** ## Get a call Returns full details for a single call, including the turn-by-turn transcript and AI summary. **Path parameter** The unique ID of the call to retrieve. ```bash cURL theme={null} curl https://api.boltcall.org/v1/calls/call_xyz789 \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/calls/call_xyz789', { headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); const call = await response.json(); ``` ```python Python theme={null} import requests call = requests.get( 'https://api.boltcall.org/v1/calls/call_xyz789', headers={'Authorization': 'Bearer YOUR_API_KEY'}, ).json() ``` ```json Response theme={null} { "id": "call_xyz789", "agent_id": "agent_abc123", "direction": "inbound", "caller": "+1987654321", "duration_seconds": 142, "status": "completed", "sentiment": "positive", "summary": "Caller requested appointment for Friday.", "tags": ["appointment", "new-customer"], "recording_url": "https://...", "transcript": [ { "role": "agent", "text": "Hello, thanks for calling..." }, { "role": "caller", "text": "Hi, I'd like to book..." } ], "created_at": "2025-03-20T09:15:00Z" } ``` Unique call identifier. ID of the agent that handled the call. `"inbound"` or `"outbound"`. Phone number of the caller in E.164 format. Total call duration in seconds. Call status: `"completed"`, `"missed"`, or `"failed"`. AI-detected caller sentiment: `"positive"`, `"neutral"`, or `"negative"`. AI-generated summary of the call. Auto-applied tags based on call content. URL to download the call recording (authenticated). Turn-by-turn conversation. Each item has `role` (`"agent"` or `"caller"`) and `text`. ISO 8601 timestamp when the call started. *** ## Initiate an outbound call Places an outbound call from an agent to a specified phone number. The agent uses the optional `context` to brief itself before the call. ID of the agent that will place the call. Destination phone number in E.164 format (e.g. `"+15550001111"`). Briefing context shown to the agent before it dials. Use this to provide lead details, appointment reminders, or campaign instructions. Outbound calls are placed immediately on receiving the request. Ensure the agent is in `"active"` status before calling this endpoint. ```bash cURL theme={null} curl -X POST https://api.boltcall.org/v1/calls/outbound \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_id": "agent_abc123", "to": "+15550001111", "context": "Follow up on dental cleaning inquiry" }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/calls/outbound', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ agent_id: 'agent_abc123', to: '+15550001111', context: 'Follow up on dental cleaning inquiry', }), }); const call = await response.json(); ``` ```python Python theme={null} import requests call = requests.post( 'https://api.boltcall.org/v1/calls/outbound', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'agent_id': 'agent_abc123', 'to': '+15550001111', 'context': 'Follow up on dental cleaning inquiry', }, ).json() ``` ```json Response theme={null} { "id": "call_out001", "status": "ringing", "agent_id": "agent_abc123", "to": "+15550001111", "created_at": "2025-03-20T14:30:00Z" } ``` Subscribe to the `call_completed` [webhook event](/api/webhooks) to receive the full call result when it ends. # Leads Source: https://boltcall.mintlify.app/api/leads List, create, and update leads captured from calls, SMS, forms, and ad platforms. Leads represent contacts that have engaged with your business through any channel — inbound calls, SMS, web forms, Facebook Lead Ads, or Google Ads. You can also create leads manually via the API to sync contacts from external systems. ## List leads Returns a paginated list of leads. Filter by status or source to segment your pipeline. Filter by lead status. Accepted values: `"new"`, `"contacted"`, `"qualified"`, `"converted"`. Filter by the channel that captured the lead. Accepted values: `"call"`, `"sms"`, `"form"`, `"facebook"`, `"google"`. Field to sort results by. Default: `"created_at"`. Number of results per page. Default: `20`. ```bash cURL theme={null} curl "https://api.boltcall.org/v1/leads?status=new&source=call&limit=20" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} const params = new URLSearchParams({ status: 'new', source: 'call', limit: '20' }); const response = await fetch(`https://api.boltcall.org/v1/leads?${params}`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); const { data, meta } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.boltcall.org/v1/leads', params={'status': 'new', 'source': 'call', 'limit': 20}, headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) result = response.json() ``` ```json Response theme={null} { "data": [ { "id": "lead_001", "name": "Jane Smith", "phone": "+15551234567", "email": "jane@example.com", "status": "new", "source": "call", "score": 85, "tags": ["high-intent", "dental-cleaning"], "created_at": "2025-03-20T10:00:00Z" } ], "meta": { "page": 1, "limit": 20, "total": 42 } } ``` Unique lead identifier. Lead's full name. Phone number in E.164 format. Email address. Current pipeline status: `"new"`, `"contacted"`, `"qualified"`, or `"converted"`. Channel that captured the lead. AI-generated lead score from 0–100 based on engagement signals. Tags applied to the lead for segmentation. ISO 8601 timestamp when the lead was created. *** ## Create a lead Creates a lead manually. Useful for syncing contacts from a CRM or external form. At least one of `phone` or `email` is recommended. A lead with neither cannot be contacted by an agent. Full name of the lead. Phone number in E.164 format (e.g. `"+15551234567"`). Email address of the lead. Label describing where the lead came from (e.g. `"crm-import"`, `"referral"`). Array of tags to apply for segmentation (e.g. `["high-intent", "hvac-repair"]`). ```bash cURL theme={null} curl -X POST https://api.boltcall.org/v1/leads \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "John Doe", "phone": "+15559876543", "email": "john@example.com", "source": "crm-import", "tags": ["hvac-repair"] }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/leads', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'John Doe', phone: '+15559876543', email: 'john@example.com', source: 'crm-import', tags: ['hvac-repair'], }), }); const lead = await response.json(); ``` ```python Python theme={null} import requests lead = requests.post( 'https://api.boltcall.org/v1/leads', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'name': 'John Doe', 'phone': '+15559876543', 'email': 'john@example.com', 'source': 'crm-import', 'tags': ['hvac-repair'], }, ).json() ``` ```json Response theme={null} { "id": "lead_002", "name": "John Doe", "status": "new", "created_at": "2025-03-20T11:30:00Z" } ``` *** ## Update a lead Updates one or more fields on an existing lead. Only the fields you include are changed. **Path parameter** The ID of the lead to update. **Body** — pass any subset of the fields below: Updated full name. Updated phone number (E.164). Updated email address. Updated pipeline status: `"new"`, `"contacted"`, `"qualified"`, or `"converted"`. Replaces the existing tag list entirely. ```bash cURL theme={null} curl -X PATCH https://api.boltcall.org/v1/leads/lead_001 \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "status": "qualified", "tags": ["high-intent", "dental-cleaning", "callback-requested"] }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/leads/lead_001', { method: 'PATCH', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ status: 'qualified', tags: ['high-intent', 'dental-cleaning', 'callback-requested'], }), }); const updated = await response.json(); ``` ```python Python theme={null} import requests updated = requests.patch( 'https://api.boltcall.org/v1/leads/lead_001', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'status': 'qualified', 'tags': ['high-intent', 'dental-cleaning', 'callback-requested'], }, ).json() ``` ```json Response theme={null} { "id": "lead_001", "name": "Jane Smith", "status": "qualified", "tags": ["high-intent", "dental-cleaning", "callback-requested"], "updated_at": "2025-03-21T09:00:00Z" } ``` Subscribe to the `new_lead` [webhook event](/api/webhooks) to receive instant notifications when Boltcall captures a lead from a call or form, so you can trigger follow-up automation without polling this endpoint. # Messages Source: https://boltcall.mintlify.app/api/messages Send SMS and WhatsApp messages, and retrieve message history across all channels. The Messages API lets you send outbound SMS and WhatsApp messages to leads, and retrieve the full message history across all channels (SMS, WhatsApp, and email) for your workspace. ## Send an SMS Sends an SMS message to a phone number. By default, the message is sent from your workspace's primary phone number. Recipient phone number in E.164 format (e.g. `"+15550001111"`). Message content. Maximum 1,600 characters. Messages longer than 160 characters are split into segments by the carrier. Sender phone number to use. Must be a number registered in your workspace. Defaults to your workspace's primary number. ```bash cURL theme={null} curl -X POST https://api.boltcall.org/v1/messages/sms \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "+15550001111", "body": "Thanks for calling! Your appointment is confirmed for Friday at 10am." }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/messages/sms', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ to: '+15550001111', body: 'Thanks for calling! Your appointment is confirmed for Friday at 10am.', }), }); const message = await response.json(); ``` ```python Python theme={null} import requests message = requests.post( 'https://api.boltcall.org/v1/messages/sms', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'to': '+15550001111', 'body': 'Thanks for calling! Your appointment is confirmed for Friday at 10am.', }, ).json() ``` ```json Response theme={null} { "id": "msg_sms001", "channel": "sms", "status": "sent", "to": "+15550001111", "created_at": "2025-03-20T15:00:00Z" } ``` *** ## Send a WhatsApp message Sends a WhatsApp message using an approved message template. Templates must be pre-approved through your WhatsApp Business Account before use. Recipient phone number in E.164 format. The approved WhatsApp template name (e.g. `"appointment_reminder"`). Key-value pairs used to fill template placeholders. Keys match the variable names defined in the template. WhatsApp only allows outbound messages using pre-approved templates. Contact your account manager to set up templates, or manage them in **Integrations → WhatsApp**. ```bash cURL theme={null} curl -X POST https://api.boltcall.org/v1/messages/whatsapp \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "to": "+15550001111", "template": "appointment_reminder", "variables": { "customer_name": "Jane Smith", "appointment_time": "Friday at 10am" } }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/messages/whatsapp', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ to: '+15550001111', template: 'appointment_reminder', variables: { customer_name: 'Jane Smith', appointment_time: 'Friday at 10am', }, }), }); const message = await response.json(); ``` ```python Python theme={null} import requests message = requests.post( 'https://api.boltcall.org/v1/messages/whatsapp', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'to': '+15550001111', 'template': 'appointment_reminder', 'variables': { 'customer_name': 'Jane Smith', 'appointment_time': 'Friday at 10am', }, }, ).json() ``` ```json Response theme={null} { "id": "msg_wa001", "channel": "whatsapp", "status": "sent", "to": "+15550001111", "created_at": "2025-03-20T15:05:00Z" } ``` *** ## List messages Returns paginated message history across all channels. Filter by channel or by a specific lead. Filter by messaging channel. Accepted values: `"sms"`, `"whatsapp"`, `"email"`. Return only messages associated with a specific lead. Number of results per page. Default: `20`. ```bash cURL theme={null} curl "https://api.boltcall.org/v1/messages?channel=sms&limit=20" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} const params = new URLSearchParams({ channel: 'sms', limit: '20' }); const response = await fetch(`https://api.boltcall.org/v1/messages?${params}`, { headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); const { data, meta } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.boltcall.org/v1/messages', params={'channel': 'sms', 'limit': 20}, headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) result = response.json() ``` ```json Response theme={null} { "data": [ { "id": "msg_sms001", "channel": "sms", "direction": "outbound", "to": "+15550001111", "body": "Thanks for calling! Your appointment is confirmed.", "status": "delivered", "created_at": "2025-03-20T15:00:00Z" } ], "meta": { "page": 1, "limit": 20, "total": 89 } } ``` Unique message identifier. Messaging channel: `"sms"`, `"whatsapp"`, or `"email"`. `"outbound"` (sent by Boltcall) or `"inbound"` (received from the contact). Recipient phone number or email address. Message text content. Delivery status: `"sent"`, `"delivered"`, or `"failed"`. ISO 8601 timestamp when the message was created. Subscribe to the `new_lead` [webhook event](/api/webhooks) to receive real-time notifications when a new lead is captured, which includes the channel they contacted you through. # Rate limits Source: https://boltcall.mintlify.app/api/rate-limits Understand Boltcall API rate limits and how to handle them gracefully. Boltcall enforces rate limits per API key to ensure fair usage across all customers. Limits vary by plan. ## Limits by plan | Plan | Rate limit | | -------- | ----------------------- | | Starter | 60 requests / minute | | Pro | 300 requests / minute | | Ultimate | 1,000 requests / minute | ## Rate limit headers Every API response includes the following headers so you can monitor your current usage: | Header | Description | | ----------------------- | ----------------------------------------------------- | | `X-RateLimit-Limit` | Maximum number of requests allowed per minute | | `X-RateLimit-Remaining` | Number of requests remaining in the current window | | `X-RateLimit-Reset` | Unix timestamp (seconds) when the limit window resets | ## 429 Too Many Requests When you exceed the rate limit, the API returns a `429` status with the following body: ```json theme={null} { "error": { "code": "rate_limited", "message": "Too many requests. Back off and retry with exponential delay.", "status": 429 } } ``` Check the `X-RateLimit-Reset` header to determine when you can resume sending requests. ## Best practices Implement exponential backoff when retrying after a 429. Start with a 1-second delay and double it on each subsequent retry, up to a maximum of 60 seconds. * **Cache responses** — for read-heavy operations like listing agents or leads, cache results locally for 30–60 seconds rather than polling the API. * **Use webhooks** — instead of polling for state changes (e.g., call completed, lead updated), subscribe to [webhook events](/api/webhooks) to receive push notifications. * **Batch operations** — use pagination parameters (`limit`, `page`) to retrieve larger datasets in fewer requests. * **Monitor headers** — track `X-RateLimit-Remaining` proactively and slow down before hitting zero. ### Exponential backoff example ```javascript Node.js theme={null} async function fetchWithBackoff(url, options, maxRetries = 5) { let delay = 1000; for (let attempt = 0; attempt <= maxRetries; attempt++) { const response = await fetch(url, options); if (response.status !== 429) { return response; } if (attempt === maxRetries) { throw new Error('Rate limit exceeded — max retries reached'); } await new Promise((resolve) => setTimeout(resolve, delay)); delay = Math.min(delay * 2, 60_000); } } ``` # Webhooks API Source: https://boltcall.mintlify.app/api/webhooks Register webhook endpoints to receive real-time event notifications from Boltcall. Webhooks let your application react to Boltcall events in real time — new leads, completed calls, booked appointments, and more — without polling the API. Boltcall sends an HTTP `POST` request to your endpoint each time a subscribed event occurs. For a UI-based setup guide, see [Integrations → Webhooks](/integrations/webhooks). ## Events Each webhook subscription listens to a single trigger event: | Event | Description | | -------------------- | ------------------------------------------------------------- | | `new_lead` | A new lead was captured from a call, SMS, or form | | `missed_call` | An inbound call was not answered by the agent | | `appointment_booked` | An appointment was scheduled by the agent | | `call_completed` | A call ended — payload includes transcript and recording URLs | | `review_received` | A new review was received | ## Payload structure Every webhook payload follows the same structure: ```json Example payload theme={null} { "event": "call_completed", "timestamp": "2025-03-20T09:17:22Z", "data": { "id": "call_xyz789", "agent_id": "agent_abc123", "direction": "inbound", "caller": "+19876543210", "duration_seconds": 142, "status": "completed", "sentiment": "positive", "summary": "Caller requested appointment for Friday.", "recording_url": "https://api.boltcall.org/v1/calls/call_xyz789/recording" } } ``` The `data` object contains the full resource that triggered the event (lead, call, appointment, etc.). ## Signature verification Boltcall signs every webhook request with an `X-Boltcall-Signature` header so you can verify the payload came from Boltcall and was not tampered with. The signature is an HMAC-SHA256 hex digest computed from the raw request body using the webhook's `secret` as the key. Always verify the signature before processing a webhook payload. Skipping verification exposes your endpoint to forged requests. ```javascript Node.js theme={null} import crypto from 'crypto'; function verifyBoltcallSignature(rawBody, secret, signature) { const expected = crypto .createHmac('sha256', secret) .update(rawBody, 'utf8') .digest('hex'); return crypto.timingSafeEqual( Buffer.from(expected, 'hex'), Buffer.from(signature, 'hex'), ); } // Express.js example app.post('/hooks/boltcall', express.raw({ type: 'application/json' }), (req, res) => { const signature = req.headers['x-boltcall-signature']; const secret = process.env.BOLTCALL_WEBHOOK_SECRET; if (!verifyBoltcallSignature(req.body, secret, signature)) { return res.status(401).json({ error: 'Invalid signature' }); } const payload = JSON.parse(req.body); console.log('Verified event:', payload.event); res.sendStatus(200); }); ``` Use `express.raw()` (not `express.json()`) to preserve the raw request body for signature verification. Parsing the body first changes the byte sequence and causes verification to fail. *** ## List webhooks Returns all webhook endpoints registered in your workspace. ```bash cURL theme={null} curl https://api.boltcall.org/v1/webhooks \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/webhooks', { headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); const { data } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.boltcall.org/v1/webhooks', headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) result = response.json() ``` ```json Response theme={null} { "data": [ { "id": "wh_001", "name": "Lead notification", "url": "https://yourapp.com/hooks/boltcall", "trigger_event": "new_lead", "is_active": true, "created_at": "2025-02-10T12:00:00Z" } ] } ``` *** ## Register a webhook Creates a new webhook subscription. Optional display name for the webhook (e.g. `"Zapier Lead Notification"`). For your reference only. The HTTPS endpoint URL that Boltcall will POST events to. Must use HTTPS. The event type to subscribe to. See the [events table](#events) for accepted values. The `secret` is returned in full only at creation time. Copy and store it immediately in a secure location (e.g. your environment variables). You cannot retrieve it again from the API. ```bash cURL theme={null} curl -X POST https://api.boltcall.org/v1/webhooks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "New lead alert", "url": "https://yourapp.com/hooks/boltcall", "trigger_event": "new_lead" }' ``` ```javascript Node.js theme={null} const response = await fetch('https://api.boltcall.org/v1/webhooks', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'New lead alert', url: 'https://yourapp.com/hooks/boltcall', trigger_event: 'new_lead', }), }); const webhook = await response.json(); // Save webhook.secret to your environment variables immediately ``` ```python Python theme={null} import requests webhook = requests.post( 'https://api.boltcall.org/v1/webhooks', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'name': 'New lead alert', 'url': 'https://yourapp.com/hooks/boltcall', 'trigger_event': 'new_lead', }, ).json() # Save webhook['secret'] to your environment variables immediately ``` ```json Response theme={null} { "id": "wh_002", "name": "New lead alert", "url": "https://yourapp.com/hooks/boltcall", "trigger_event": "new_lead", "is_active": true, "secret": "whsec_abc123...", "created_at": "2025-03-20T16:00:00Z" } ``` *** ## Delete a webhook Removes a webhook subscription. Boltcall will stop sending events to the registered URL immediately. **Path parameter** The ID of the webhook to delete. ```bash cURL theme={null} curl -X DELETE https://api.boltcall.org/v1/webhooks/wh_002 \ -H "Authorization: Bearer YOUR_API_KEY" ``` ```javascript Node.js theme={null} await fetch('https://api.boltcall.org/v1/webhooks/wh_002', { method: 'DELETE', headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, }); ``` ```python Python theme={null} import requests requests.delete( 'https://api.boltcall.org/v1/webhooks/wh_002', headers={'Authorization': 'Bearer YOUR_API_KEY'}, ) ``` ```json Response theme={null} { "deleted": true } ``` ## Retry behavior Boltcall does not automatically retry failed webhook deliveries. If your endpoint returns a non-2xx status code or times out, the delivery is logged as failed. You can view delivery history in **Dashboard → Integrations → Webhooks** and use the test/replay feature to manually re-send a payload after resolving the issue. Your endpoint should respond with `200 OK` as quickly as possible. Process the payload asynchronously (e.g. push to a queue) rather than doing heavy work synchronously during the HTTP request. # AI agents Source: https://boltcall.mintlify.app/dashboard/agents Create and manage AI voice agents that answer inbound calls and make outbound calls on your behalf. Agents are the AI voices that handle phone calls for your business. Each agent has its own voice, knowledge base, phone number, language, and call direction. You can have multiple agents for different purposes — for example, one that answers incoming calls and another that follows up with new leads. Agents require the **Starter plan** or higher. Upgrade at [account/plans](/account/plans). ## Agent types When creating an agent, choose the type that matches its purpose: | Type | Direction | What it does | | -------------------- | --------- | ------------------------------------------------- | | Inbound receptionist | Inbound | Answers incoming calls — booking, FAQs, transfers | | Speed to lead | Outbound | Calls new leads within minutes of form submission | | Reactivation | Outbound | Re-engages past leads or dormant customers | | Appointment reminder | Outbound | Confirms upcoming appointments by phone | | Review request | Outbound | Asks satisfied customers for a Google review | ## Create an agent You can start from scratch or use an industry template. Templates are available for HVAC, dental, real estate, legal, retail, healthcare, and beauty, with pre-built greetings and sample questions for each industry. Go to **Dashboard → Agents** and click **Add Agent**, or choose **Start from Scratch** / **Browse Templates** if you have no agents yet. Select the agent type that matches its purpose. Inbound agents answer calls; outbound agents make calls. Enter a name for the agent. Callers do not hear this name — it is for your reference only. Use the voice picker to browse available voices. Click the play button next to any voice to preview it before choosing. Select one or more knowledge base folders. The agent uses documents in these folders to answer questions. If you have not created any folders yet, go to [Knowledge Base](/dashboard/knowledge-base) first. Select a phone number from the dropdown. The agent will answer (or make) calls on this number. If you have no numbers yet, go to [Phone Numbers](/dashboard/phone-numbers) first. Enter a fallback phone number. If a caller asks to speak with a person, or if the agent cannot handle the request, the call transfers to this number. Select the language the agent speaks. Supported languages include English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, and Korean. Click **Create Agent**. Your agent is active immediately. You can change any agent setting after creation. Click the agent name in the list to open its detail page. ## Test your agent From the agent list, each row has action icons: * **Phone icon** — opens the Talk to Agent modal, which calls your phone so you can speak with the agent live * **Chat icon** — opens the test chat modal, where you enter your phone number and receive a callback to test the agent * **Refresh icon** — regenerates the agent's system prompt based on your current business profile ## Edit an agent Click any agent in the list to open its detail page. From there you can update the name, voice, greeting message, system prompt, transfer phone number, and assigned knowledge base folders. Click **Save changes** when done. ## Pause or delete an agent On the agent detail page, set the status to **inactive** to pause the agent without deleting it. To remove an agent permanently, use the options menu (three dots) in the agent list and select **Delete**. Deleting an agent cannot be undone. The agent's call history is preserved, but the agent itself is removed. ## Agent tests The **Agent Tests** tab on the Agents page lets you run automated test scenarios against your agents to verify they respond correctly before going live. # Analytics Source: https://boltcall.mintlify.app/dashboard/analytics Track call volume, lead conversion, agent performance, and token usage across your Boltcall account. The Analytics page gives you a real-time view of how your AI agents are performing. Use it to understand call trends, measure lead conversion, monitor response quality, and track your token consumption. Full analytics — including 30-day and 90-day date ranges and trend charts — require the **Pro plan** or higher. See [account/plans](/account/plans) for details. ## Date range At the top of the page, select the time window you want to analyse: * **7 days** — rolling last 7 days (default) * **30 days** — rolling last 30 days * **90 days** — rolling last 90 days * **Custom** — pick a specific start and end date Click **Refresh** at any time to reload the latest data. Analytics data is also refreshed automatically every 5 minutes. ## Key metrics ### Primary KPIs | Metric | What it measures | | ---------------------- | --------------------------------------------------------------------------------- | | **Total calls (24h)** | Number of calls handled by your agents in the last 24 hours | | **Success rate** | Percentage of calls where the agent achieved its goal (booking, answer, transfer) | | **Avg duration** | Average length of a call, in minutes and seconds | | **SMS sent today** | Number of outbound SMS messages sent in the last 24 hours | | **Total leads** | All leads captured across calls, chat, and forms | | **Missed calls (24h)** | Calls that were not answered by an agent in the last 24 hours | ### Secondary metrics | Metric | What it measures | | ------------------- | -------------------------------------------------- | | **Calls (7d)** | Total calls over the past 7 days | | **Talk time today** | Total minutes your agents have been on calls today | | **Active agents** | Number of agents currently in active status | | **SMS received** | Inbound SMS messages received today | | **Phone numbers** | Total phone numbers in your account | ### Token usage The token usage card shows how your AI credits are being consumed: | Metric | What it measures | | ---------------------- | ----------------------------------------------------- | | **Consumed today** | Tokens used in the current calendar day | | **Consumed this week** | Tokens used since the start of the current week | | **Remaining balance** | Tokens remaining in your account | | **Monthly used** | Percentage of your monthly allocation consumed so far | A progress bar visualizes how much of your monthly token allocation you have used. ## Activity breakdown The activity breakdown card shows: * **Callbacks** — total callbacks requested and how many are still pending * **Chats** — total chat conversations and how many are currently active * **Phone numbers** — a list of your active phone numbers ## Trend chart The trend chart plots daily leads and bookings over your selected date range. This helps you spot patterns — for example, whether calls spike on certain days of the week or after a marketing campaign. If the trend chart shows "No data yet", it means the daily metrics collector has not run since you signed up. Data typically appears within 24 hours of your first calls. ## Export To export your analytics data, use the Boltcall API. The `/api/calls` and `/api/leads` endpoints return full records with date filters. See [api/calls](/api/calls) and [api/leads](/api/leads) for details. # Knowledge base Source: https://boltcall.mintlify.app/dashboard/knowledge-base Add the business information your AI agents use to answer questions accurately. The knowledge base is where you store the information your AI agents draw on when answering calls. When a caller asks about your services, prices, hours, or policies, the agent searches your knowledge base and uses that content to respond accurately. ## Folders Documents are organized into folders. You can create multiple folders and assign different folders to different agents. For example, you might have a "General Info" folder shared across all agents and a "Sales Offers" folder assigned only to your outbound agent. A **Default** folder is created automatically when you sign up. Agents created from templates are linked to your default folder. ## Document types When adding a document to a folder, choose from three types: | Type | What it does | | -------- | ---------------------------------------------------- | | **URL** | Boltcall scrapes the webpage and imports the content | | **File** | Upload a PDF or document file | | **Text** | Type or paste content directly | ## Add a document Go to **Dashboard → Knowledge Base**. Click the folder you want to add the document to. To create a new folder first, click **New Folder**, enter a name, and save. Click **Add Document** and select **URL**, **File**, or **Text**. * **URL** — paste the full web address (e.g. `https://yourbusiness.com/services`) and click **Import** * **File** — drag and drop or browse to upload your PDF or document * **Text** — enter a title, then type or paste the content into the editor Click **Save**. The document is available to any agent linked to that folder immediately. ## Best practices Structure your knowledge base around the questions callers actually ask. A well-organized knowledge base leads to more accurate, confident answers. **Services and pricing** List each service with its price or price range. Be specific — vague answers frustrate callers. ```text theme={null} Emergency call-out — $150 Drain cleaning — $120 Hot water system replacement — from $2,500 Blocked toilet — $90–$140 ``` **FAQs** Write your most common questions and answers in a simple Q\&A format. Include one question and one answer per block. ```text theme={null} Q: Do you offer emergency service? A: Yes, we offer 24/7 emergency plumbing. Call us any time and we'll dispatch a technician. Q: How quickly can you come out? A: Same-day for emergencies, next-day for standard jobs in most areas. Q: Do you offer free quotes? A: Yes, all quotes are free with no obligation. ``` **Business hours** State your hours clearly. Include after-hours coverage if your AI agent handles calls outside business hours. ```text theme={null} Monday–Friday: 7 am – 6 pm Saturday: 8 am – 4 pm Sunday: Emergency calls only After-hours: AI receptionist available 24/7 ``` **Cancellation and deposit policies** ```text theme={null} Cancellation: 24-hour notice required or a $50 fee applies Deposit: 50% deposit required for jobs over $500 Rescheduling: Free with 12-hour notice ``` ## Example: plumbing business Here is a complete example knowledge base for a plumbing business. **Services and prices** ```text theme={null} Emergency call-out — $150 (any time, 24/7) Drain cleaning — $120 Blocked toilet — $90–$140 Burst pipe repair — from $200 Hot water system replacement — from $2,500 Leak detection — $180 Tap replacement — $95 Pipe relining — custom quote ``` **FAQs** ```text theme={null} Q: Do you offer emergency plumbing? A: Yes. We respond to emergencies 24/7, including nights, weekends, and public holidays. Q: What areas do you service? A: We cover the greater metro area and surrounding suburbs within 30 km. Q: Are your plumbers licensed? A: Yes, all our plumbers are fully licensed and insured. Q: Do you provide upfront pricing? A: Yes. We quote before we start, so there are no surprises. Q: Can I book online? A: You can request a booking through our website or call us directly and we'll find a time that suits you. ``` Keep each document focused on one topic. An agent retrieves the most relevant documents for each question — short, focused documents tend to produce better answers than long, mixed ones. # Dashboard overview Source: https://boltcall.mintlify.app/dashboard/overview A guide to navigating the Boltcall dashboard — layout, sidebar sections, and key metrics. After logging in, you land on the Boltcall dashboard. The layout has two main areas: a sidebar on the left for navigation and a main content area on the right where each page loads. ## Sidebar navigation The sidebar groups your workspace into four areas: **Activity** * **Dashboard** — home screen with setup guide and alerts * **Leads** — all captured leads from calls, forms, and chat * **Calls** — call log with recordings and transcripts * **Messages** — SMS and chat conversations **AI Receptionist** * **AI Receptionist** — enable and configure your 24/7 call answering service * **Agents** — create and manage your AI voice agents * **Voice Library** — browse and preview available voices * **Knowledge Base** — add the business information your agents use * **Phone** — claim and manage phone numbers * **Chat Widget** — configure the website chat widget * **Analytics** — call volume, lead data, and performance metrics **Engagement** * **Reminders** — automated appointment reminder campaigns * **Reputation** — review request campaigns * **Instant Lead Response** — auto-call new leads within seconds * **Calendar** — connect your booking calendar * **SMS** — two-way SMS conversations * **WhatsApp** — WhatsApp messaging * **Email** — email follow-up sequences **Workspace** * **Integrations** — connect to your CRM, calendar, and other tools * **Settings** — billing, team members, notifications, and business profile ## Dashboard home The dashboard home shows a **Setup Guide** that tracks your onboarding progress. Each step links to the relevant page and awards tokens when completed. Steps include: 1. Create your first agent 2. Connect Cal.com 3. Set up AI Receptionist 4. Configure phone numbers 5. Set up your knowledge base 6. Test your agent Once your first agent is active, a **Talk to Your Agent** button appears at the bottom of the setup guide. Click it and Boltcall calls your phone so you can test your AI receptionist live. Below the setup guide, a **Feature Hub** shows the status of each feature you have enabled, and an **Alerts** panel surfaces any issues that need attention. ## Multi-location support If your account has multiple locations, a location switcher appears in the top bar. Select a location to view and manage its agents, phone numbers, and analytics independently. ## Where to go next Create and configure the AI voice agents that answer your calls. Add the business information your agents use to answer questions. Claim a local number or assign an existing number to an agent. Track call volume, lead conversion, and agent performance. # Phone numbers Source: https://boltcall.mintlify.app/dashboard/phone-numbers Claim a local phone number or port your existing number to Boltcall, then assign it to an AI agent. Your AI agent needs a phone number to receive or make calls. You can claim a new local number directly from the dashboard, or port your existing business number to Boltcall so callers dial the same number they always have. ## Claim a new number Go to **Dashboard → Phone** and click **Add Number**. A modal opens showing available numbers. Enter an area code to filter results by location. Browse the list and click the number you want. Boltcall shows the friendly name, locality, and region for each available number. Confirm your selection. The number is added to your account immediately and appears in your phone numbers list. Click the number in your list to open its settings panel. Under **Assigned agent**, select the agent that should handle calls on this number. Save your changes. ## How call routing works When someone calls your Boltcall number: 1. The call is received by Boltcall and routed to the assigned agent. 2. The agent answers, greets the caller, and handles the conversation using your knowledge base. 3. If the caller asks to speak with a person — or if the agent cannot handle the request — the call transfers to the **human transfer phone number** configured on the agent. 4. The call is logged, transcribed, and stored under **Dashboard → Calls**. Each phone number can be assigned to one agent at a time. To change the assignment, open the number's settings and select a different agent. ## Port an existing number If you want callers to reach your AI agent on your current business number, you can port that number to Boltcall. Reach out to the Boltcall support team to start the porting process. Have your current carrier account details ready. The support team will send you a Letter of Authorization (LOA) to sign and will coordinate the transfer with your current carrier. Number porting typically takes 5–10 business days depending on your carrier. Your existing number continues to work normally during this period. Once the transfer is complete, the number appears in your phone numbers list. Assign it to an agent as you would with any other number. Do not cancel service with your current carrier before the port is complete. Cancelling early can result in losing the number permanently. ## Connect a SIP trunk If you use a SIP provider, you can connect your SIP trunk to Boltcall instead of claiming a new number. Click **Add Number → Connect SIP trunk** and enter your SIP termination URI, username, and password. ## Manage numbers From the phone numbers list you can: * View the number's status (active or inactive) * See which agent it is assigned to * Open the settings panel to reassign or rename the number * Release a number you no longer need # AI Receptionist Source: https://boltcall.mintlify.app/features/ai-receptionist Answer every inbound call 24/7 with a natural-sounding AI voice that greets callers, handles FAQs, books appointments, and transfers to humans when needed. AI Receptionist requires the **Starter plan** or higher. [View plans](/account/plans) Your AI Receptionist answers every call the moment it comes in — day or night, weekends included. It greets callers with your business name, handles common questions from your knowledge base, books appointments directly into your calendar, and hands off to a human when the situation calls for it. ## Key benefits Every inbound call is answered immediately — no voicemail, no hold music, no missed opportunities. 40% of calls come in outside business hours. Your AI receptionist handles them all. Callers get the same professional greeting and accurate answers every time. The AI checks your calendar live and confirms bookings during the call. ## How it works When a call comes in, your AI receptionist: 1. **Answers immediately** with your custom greeting ("Thanks for calling Acme Plumbing, how can I help you?") 2. **Understands the caller's intent** — booking, FAQ, emergency, or transfer request 3. **Answers questions** using your linked knowledge base 4. **Checks your calendar** and books appointments in real time 5. **Transfers to a human** if the caller asks, or if your transfer rules are triggered 6. **Saves call details** — transcript, caller info, and outcome — to your dashboard ## Setup Open your [dashboard](/dashboard/overview) and navigate to **AI Receptionist** in the sidebar. Enter the greeting your AI will say when it answers. For example: > "Thanks for calling \[Your Business Name]. I'm an AI assistant — how can I help you today?" You can also choose a voice that matches your brand tone. Preview voices before saving. Add the phone number the AI should call when it needs to transfer to a human. You can set rules for when transfers trigger — such as during business hours only, or when the caller explicitly asks to speak with someone. Connect your [knowledge base](/dashboard/knowledge-base) so the AI can accurately answer FAQs about your services, hours, pricing, and location. The more context you provide, the better the AI performs. Link your calendar via the [integrations page](/integrations/calendar) so the AI can check availability and book appointments live during calls. Boltcall connects with Cal.com and Google Calendar. Assign a phone number on the [Phone Numbers](/dashboard/phone-numbers) page — either a new local or toll-free number, or forward your existing business line. Your AI receptionist is now active. ## Call routing and transfers You control when the AI hands off to a human. Transfer rules you can configure: * **On request** — transfer any time the caller asks to speak with someone * **Business hours only** — transfer during your set hours; take messages after hours * **By keyword** — transfer when the caller mentions specific words (e.g., "emergency", "billing") * **After qualification** — let the AI gather information first, then transfer with context When a transfer happens, the AI briefs the receiving agent with the caller's name and what they need, so the caller does not have to repeat themselves. ## What callers experience Callers hear a natural-sounding voice — not a phone tree. They can speak freely, and the AI understands what they mean. Common interactions handled automatically: * Hours of operation and location * Service availability and pricing questions * Appointment booking and rescheduling * Requests to leave a message or schedule a callback * Urgent or emergency routing Add your most common FAQs to your [knowledge base](/dashboard/knowledge-base) before going live. This significantly improves answer accuracy on the first day. ## Frequently asked questions Yes. The AI understands natural language and can handle multi-part questions. For anything outside its knowledge base, it takes a detailed message or transfers the call to you with full context. The AI transfers the call at any time a caller requests it. You configure when and where transfers go — including fallback to voicemail if no one is available. Yes. You can forward your current business number to the AI receptionist without changing your number. See [Phone Numbers](/dashboard/phone-numbers) for setup instructions. Every call is transcribed and saved to your dashboard. You can review any conversation from the [Analytics](/dashboard/analytics) page. ## Related Add FAQs and business info your AI uses to answer calls. Assign a number or forward your existing line. Connect Cal.com or Google Calendar for live booking. View call stats, transcripts, and AI performance. # Automated Reminders Source: https://boltcall.mintlify.app/features/automated-reminders Send SMS and email reminders before appointments to reduce no-shows. Customers can confirm, reschedule, or cancel by replying — all handled automatically. No-shows cost businesses thousands of dollars a month in lost revenue and wasted time. Automated Reminders sends personalized SMS and email messages before every appointment, keeping customers informed and giving them an easy way to reschedule if plans change. You configure it once. The system handles every reminder from that point forward. ## What it does * Sends reminders at configurable intervals (e.g., 1 week, 48 hours, 24 hours, 2 hours before) * Personalizes each message with the customer's name, appointment time, and service details * Supports two-way replies — customers can confirm, reschedule, or cancel by text * Handles rescheduling automatically by checking your calendar and offering new times * Frees up cancelled slots so other customers can fill them ## Key benefits Automated reminders typically reduce no-show rates by 50–70%. Customers can reschedule by reply. The AI finds a new time and updates your calendar. Send via SMS, email, or both. Configure per customer or per appointment type. Reminders run automatically for every appointment once configured. ## Setup In your dashboard, navigate to **Reminders** in the sidebar. Reminders require a connected calendar. If you have not done so already, link your Cal.com or Google Calendar from the [Calendar integration](/integrations/calendar) page. Choose when reminders are sent relative to each appointment. You can add multiple reminders per appointment: | Timing | Recommended use | | --------------- | ------------------------------- | | 1 week before | High-value or long appointments | | 48 hours before | Standard appointments | | 24 hours before | Most appointment types | | 2 hours before | Same-day confirmation | Select the timings that make sense for your business and appointment types. Write the SMS and email messages your customers will receive. Templates support merge fields: **Example SMS (24h reminder):** ```text theme={null} Hi {{first_name}}, just a reminder about your appointment with {{business_name}} tomorrow at {{time}}. Reply YES to confirm, RESCHEDULE to change your time, or CANCEL to cancel. ``` **Example SMS (2h reminder):** ```text theme={null} See you soon, {{first_name}}! Your {{service}} appointment is today at {{time}} at {{address}}. Reply HELP if you need anything. ``` Toggle on the channels you want to use. If you enable both, reminders are sent via SMS and email for every appointment. Click **Save**. Reminders will be scheduled automatically for all upcoming appointments. ## Two-way rescheduling When a customer replies to a reminder, Boltcall handles the response automatically: * **YES / Confirm** — the confirmation is logged; no action needed * **RESCHEDULE** — the AI asks for their preferred new time, checks your calendar, and updates the booking * **CANCEL** — the appointment is cancelled, the slot is freed, and you are notified * **Any other reply** — the AI responds conversationally and escalates to you if needed Keep your calendar availability up to date. When customers reschedule, the AI only offers time slots that are genuinely open. ## Reminder content tips Include the following in your reminder messages to reduce confusion and no-shows: * Customer's first name * Appointment date and time * Service or appointment type * Business address or location (for in-person visits) * Preparation instructions if applicable (e.g., "Please arrive 10 minutes early") * Clear reply options (YES to confirm, RESCHEDULE to change) Do not include sensitive personal or medical information in SMS reminder messages. Use email for content that requires more privacy. ## Opt-outs Customers can opt out of reminders at any time by replying STOP. Boltcall removes them from future automated messages immediately and in compliance with SMS regulations. ## Frequently asked questions Yes. You can create different reminder timing and message templates for different services or appointment types. Customers can reply STOP at any time to opt out. You can also manually disable reminders for a specific customer from their lead record. No. Boltcall sends reminders during reasonable hours based on the customer's time zone. A 24-hour reminder will not go out at 3am. Yes. Add custom preparation instructions, parking info, or what to bring directly in your message templates. You can vary this per appointment type. Yes. Any appointment created through [SMS Booking](/features/sms-booking), the AI Receptionist, or manually added to your calendar will trigger the reminder sequence automatically. ## Related Book appointments via two-way SMS conversations. Connect your calendar to power reminders and booking. Answer calls and book appointments automatically. View upcoming reminders and appointment history. # Instant Lead Reply Source: https://boltcall.mintlify.app/features/instant-lead-reply Automatically send an SMS to every new lead within seconds — whether they came from a missed call, a website contact form, or a Facebook Lead Ad. Instant Lead Reply requires the **Pro plan** or higher. [View plans](/account/plans) When a potential customer reaches out and does not get an immediate response, they move on. Instant Lead Reply sends a personalized SMS within seconds of a new lead arriving — keeping them engaged while you are busy. Research shows that responding within 60 seconds increases conversion by 391%. Boltcall makes that the default. ## Sources monitored Boltcall watches for new leads from three channels: | Source | What triggers a reply | | ------------------------- | ---------------------------------------------------- | | **Missed calls** | Your business line receives a call you do not answer | | **Website contact forms** | A visitor submits a form on your site (via webhook) | | **Facebook Lead Ads** | A lead completes a Facebook or Instagram lead form | ## How it works 1. A lead comes in from one of the monitored sources 2. Boltcall identifies the lead's phone number 3. An SMS is sent within seconds using your configured message template 4. The AI follows up with qualifying questions if you have a qualification sequence enabled 5. If the lead responds, the conversation continues automatically until they are ready to book ## Setup In your dashboard, go to **Instant Lead Reply** in the sidebar. Choose which sources you want to monitor: * **Missed calls** — enabled automatically if you have a Boltcall phone number assigned * **Website forms** — copy your unique webhook URL and paste it into your form platform's webhook settings * **Facebook Lead Ads** — click **Connect Facebook** and authorize Boltcall to access your ad account Write the SMS your leads will receive. Keep it brief, friendly, and action-oriented. Templates support merge fields like `{{first_name}}` and `{{business_name}}`. **Missed call example:** ```text theme={null} Hi {{first_name}}, this is {{business_name}}. Sorry we missed your call! We'd love to help — what can we assist you with today? ``` **Form submission example:** ```text theme={null} Hi {{first_name}}, thanks for reaching out to {{business_name}}! We got your message and will be in touch shortly. Is there anything specific you'd like to know right away? ``` **Facebook lead example:** ```text theme={null} Hi {{first_name}}, we saw your interest in {{service}}! We're {{business_name}} — happy to answer any questions. When's a good time to connect? ``` Enable a follow-up sequence to automatically ask qualifying questions after the initial reply. The AI continues the SMS conversation, gathers key details, and flags the lead for you when they are ready to book. Toggle the feature on and send a test lead to confirm the reply arrives. Adjust timing or message copy as needed. ## Example SMS conversations **Missed call flow:** ```text theme={null} Boltcall → Lead: "Hi Sarah, this is Acme Plumbing. Sorry we missed your call! How can we help — are you dealing with an emergency or looking to schedule a service?" Lead → Boltcall: "Just need a quote for a bathroom faucet replacement." Boltcall → Lead: "Got it! We can usually get you a same-week appointment. What's your address and availability this week?" ``` **Facebook lead flow:** ```text theme={null} Boltcall → Lead: "Hi James, thanks for your interest in our HVAC tune-up special! I'm with Green Air — happy to get you scheduled. Are mornings or afternoons better for you?" Lead → Boltcall: "Afternoons work. This week if possible." Boltcall → Lead: "Perfect. I have Thursday at 2pm or Friday at 3pm available. Which works best?" ``` ## Lead source configuration ### Website forms Copy your webhook URL from the Instant Lead Reply dashboard and add it to your form tool's settings. Boltcall supports any platform that sends webhooks, including: * Gravity Forms, WPForms, Contact Form 7 (WordPress) * Typeform, JotForm * Squarespace and Wix native forms * Custom HTML forms (via fetch/XHR) The webhook payload should include at minimum the lead's phone number. Name and email are used for personalization when available. ### Facebook Lead Ads Connect your Facebook Business account from the dashboard. Once connected, Boltcall monitors all active lead forms across your pages and sends a reply within seconds of each submission. Run a test lead through your Facebook form after connecting to confirm the webhook fires correctly and the SMS arrives as expected. ## Frequently asked questions Replies are sent within 5–10 seconds of a lead arriving. This is consistent regardless of time of day or lead volume. Yes. You can configure a separate message template for missed calls, form submissions, and Facebook leads. If a form submission does not include a phone number, Boltcall will send an email reply instead (if an email address is present). You can configure email templates separately. Yes. Any lead that replies STOP is automatically removed from future automated messages. Boltcall handles opt-outs in compliance with SMS regulations. ## Related Turn a lead reply into a booked appointment via two-way SMS. Re-engage leads that went quiet after the initial reply. Connect your CRM, calendar, and ad platforms. Set up webhook integrations for custom form platforms. # Lead Reactivation Source: https://boltcall.mintlify.app/features/lead-reactivation Automatically re-engage cold leads who never booked or went quiet. Boltcall identifies dormant contacts and sends a personalized SMS sequence to bring them back. Lead Reactivation requires the **Pro plan** or higher. [View plans](/account/plans) Most businesses have a list of leads who showed interest but never booked. These contacts did not say no — they just got busy, were not ready, or slipped through the cracks. Lead Reactivation automatically identifies those dormant leads and sends a personalized SMS sequence to bring them back into your pipeline. Reactivating an existing lead costs significantly less than acquiring a new one, and the conversion rate is higher because the lead already knows your business. ## How it works Boltcall watches your leads for inactivity. When a lead has not had any contact for a configurable number of days, they are added to a reactivation sequence. The AI sends a series of personalized SMS messages designed to re-open the conversation — without being pushy. If the lead responds, the AI continues the conversation and can guide them toward booking an appointment or connecting with you directly. ## Setup In your dashboard, navigate to **Lead Reactivation** under the features section. Define when a lead is considered dormant. Common configurations: | Trigger | Use case | | -------------------------- | ------------------------------------------------- | | 7 days since last contact | Fast-moving service businesses | | 30 days since last contact | Most local businesses | | 60 days since last contact | Longer sales cycles | | Custom lead status | Trigger based on CRM status (e.g., "No response") | You can set multiple triggers for different lead segments. Write the SMS messages that will be sent as part of the sequence. A typical sequence has 2–4 messages spaced several days apart: **Message 1 (day 1):** ```text theme={null} Hi {{first_name}}, it's {{business_name}} — we spoke a while back about {{service}}. Wanted to check in and see if you're still interested or if there's anything we can help with. No pressure! ``` **Message 2 (day 4):** ```text theme={null} Hey {{first_name}}, just following up from {{business_name}}. We have some availability opening up this week if you'd like to get something scheduled. Want me to grab you a time? ``` **Message 3 (day 10):** ```text theme={null} Hi {{first_name}}, last follow-up from us — we know life gets busy. If you ever need {{service}}, we're here. Feel free to text or call anytime. Have a great day! ``` Configure how many days apart each message in the sequence is sent. Boltcall will not send multiple messages on the same day. When a dormant lead replies, the AI resumes the conversation. Choose what happens next: * **AI continues** — the AI qualifies the lead and attempts to book an appointment * **Notify me** — you receive an alert so you can follow up personally * **Both** — the AI responds first, then notifies you when the lead is engaged Toggle Lead Reactivation on. Boltcall will begin identifying dormant leads and enrolling them in the sequence automatically. ## Configurable triggers You can target dormant leads based on: * **Days since last contact** — leads with no inbound or outbound activity for X days * **Lead status** — leads with a specific CRM status (e.g., "Unresponsive", "Quote sent – no reply") * **Source** — only reactivate leads from specific sources (e.g., Facebook leads, missed calls) * **Service interest** — send different sequences to leads interested in different services Segment your cold leads before activating. Leads that went quiet after a quote need a different message than leads that never responded to your first SMS. ## What happens when a lead responds When a reactivated lead replies, Boltcall handles the conversation automatically: * The AI acknowledges their reply and picks up the conversation naturally * If the lead is ready to book, the AI checks your calendar and confirms an appointment * If the lead has questions, the AI answers them using your knowledge base * Lead activity is updated in your dashboard so you can see which leads re-engaged Leads who opt out (reply STOP) are immediately removed from all future reactivation messages. ## Best practices **Do not only use discounts.** Reaching out with a helpful check-in or a relevant piece of information often outperforms a generic "20% off" message. Most leads went quiet because of timing, not price. **Acknowledge the gap.** A message like "We haven't chatted in a while" feels more genuine than pretending no time has passed. It humanizes the outreach. **Keep sequences short.** Two or three messages over 10–14 days is usually enough. More messages without a response can feel intrusive and damage your reputation with that contact. **Stop after opt-out.** Respect any lead that asks not to be contacted. Boltcall enforces this automatically. ## Frequently asked questions There is no maximum age. However, the messaging approach should reflect the time gap. A lead that went quiet last month needs a different message than one from two years ago. Yes. You can connect your CRM via the [integrations page](/integrations/crm) and Boltcall will sync leads automatically. You can also tag or filter which leads are eligible for reactivation. Any lead that replies STOP is immediately removed from all future automated messages. You can also manually exclude specific leads from reactivation campaigns. Yes. In addition to the automated trigger-based campaigns, you can select a group of leads and manually start a reactivation sequence for them from the dashboard. The dashboard shows reply rates, re-engagement rates, and appointments booked from reactivated leads. You can see which message in the sequence gets the best response and adjust accordingly. ## Related Engage new leads before they go cold in the first place. Turn a reactivated lead into a booked appointment via SMS. Sync your lead data and trigger reactivation from CRM status. Track reactivation campaign performance and ROI. # SMS Booking Source: https://boltcall.mintlify.app/features/sms-booking Let leads book appointments through a two-way SMS conversation. The AI qualifies them, checks your calendar, and confirms the booking — no human needed. SMS Booking turns a text message into a booked appointment. When a lead texts your business number, the AI starts a natural conversation — it asks qualifying questions, checks your live calendar availability, and sends a confirmation. No phone calls, no back-and-forth email chains, no manual scheduling. Customers book on their terms, using the messaging app already on their phone. ## How it works A customer sends a message to your Boltcall number — anything from "I'd like to book an appointment" to a specific service request. The AI asks a few targeted questions to understand what the customer needs, when they are available, and whether the request is a good fit for your services. Boltcall connects to your Cal.com calendar in real time and identifies open time slots that match the customer's preferences. The AI presents available times, the customer picks one, and a booking confirmation is sent via SMS — with appointment details and any instructions you have configured. The appointment is added to your calendar immediately. You receive a notification, and the customer receives a confirmation. ## Example conversation ```text theme={null} Lead: "Hi, I'd like to book a cleaning appointment." Boltcall: "Hi there! Happy to help get you scheduled with Sparkle Clean. Are you looking for a standard clean or a deep clean?" Lead: "Deep clean, 3-bedroom house." Boltcall: "Perfect. Deep cleans for a 3-bed usually take about 4 hours. Do you have a preferred day this week or next?" Lead: "Next Tuesday or Wednesday works." Boltcall: "I have Tuesday the 15th at 9am or Wednesday the 16th at 1pm available. Which works better for you?" Lead: "Tuesday at 9 is great." Boltcall: "Confirmed! Your deep clean is booked for Tuesday, April 15th at 9:00am. We'll send a reminder the day before. Reply HELP if you need to reschedule. See you then!" ``` ## Calendar integration SMS Booking connects to your calendar through the [Calendar integration](/integrations/calendar). Boltcall currently supports: * **Cal.com** — recommended for full two-way booking support * **Google Calendar** — for availability checks and event creation The AI checks your calendar live during the conversation, so it only offers time slots that are genuinely available. Double-booking is not possible. Use Cal.com event types to configure buffer times, minimum notice periods, and service-specific durations. The AI will respect all your event type rules. ## Qualifying questions You can configure the questions the AI asks before checking availability. Common examples: * Service type (e.g., standard vs. deep clean, new patient vs. returning) * Location or address * Number of people, rooms, or units * Urgency or preferred timeframe * Budget range (for services with variable pricing) Qualification data is stored with the lead record so you have full context before the appointment. ## Rescheduling and cancellations After booking, customers can text your number at any time to: * Request a new time — the AI checks availability and offers alternatives * Cancel — the slot is freed on your calendar and you are notified * Ask questions about their upcoming appointment All changes are reflected in your calendar automatically. ## Supported use cases SMS Booking works for any business that takes appointments: * Home services (cleaning, HVAC, plumbing, landscaping) * Health and wellness (clinics, salons, spas, gyms) * Professional services (legal, financial, consulting) * Trades and contractors ## Frequently asked questions No. SMS Booking works with any phone that can send and receive text messages. No app download or account creation required. Boltcall connects to Cal.com and Google Calendar. See the [Calendar integration](/integrations/calendar) page for setup instructions. Yes. You can configure multiple service types with different durations, questions, and availability rules. The AI will ask the customer which service they need and route accordingly. The AI offers the next two or three available times that are closest to the customer's preference. If none work, it asks for alternate days or times. Yes. If a customer asks to speak with someone directly, the AI can transfer to a phone call or schedule a callback at a time that works for both parties. ## Related Connect Cal.com or Google Calendar to enable live booking. Send SMS reminders before booked appointments to reduce no-shows. Engage new leads before they are ready to book. Book appointments over phone calls instead of SMS. # Website Widget Source: https://boltcall.mintlify.app/features/website-widget Add an AI chat bubble or voice call button to your website. Visitors can ask questions, get answers, and book appointments without leaving your site. The Website Widget is a small embeddable component that sits in the corner of your website. Visitors can open it to chat with your AI assistant via text, or click to start a voice call — all without leaving the page. It works on any website platform and takes about two minutes to install. ## Two modes **Chat bubble** — visitors type questions and receive text responses. The AI answers FAQs, qualifies leads, collects contact information, and can book appointments directly in the chat window. **Voice call button** — visitors click to start a live voice conversation with your AI receptionist. Works like a phone call, but through the browser. You can enable one or both modes, depending on your preference. ## Key benefits Engage every visitor, even when you are offline. Leads are captured and saved automatically. Reduce bounce rate by answering visitor questions before they leave your site. Visitors can book appointments from the chat window — no phone call or form required. One embed snippet works on WordPress, Squarespace, Wix, Webflow, and custom HTML sites. ## Installation In your dashboard, navigate to **Website Widget** (Chat Bubble) in the sidebar. Set up the widget appearance and behavior: * **Greeting message** — the first thing visitors see when they open the chat (e.g., "Hi! How can I help you today?") * **Color** — pick a primary color to match your brand * **Position** — bottom-right or bottom-left corner * **Mode** — chat, voice, or both Click **Copy embed code**. Your unique snippet will look like this: ```html theme={null} ``` Add the snippet to your website just before the closing `` tag. Instructions by platform: **WordPress** — use a plugin like *Insert Headers and Footers*, or paste directly into your theme's `footer.php`. **Squarespace** — go to Settings → Advanced → Code Injection → Footer. **Wix** — go to Settings → Custom Code → Body (End of body tag). **Webflow** — go to Project Settings → Custom Code → Footer Code. **Custom HTML** — paste before `` in your HTML file. Visit your website in a browser. The chat bubble should appear in the corner within a few seconds of the page loading. Click it to confirm the greeting message appears correctly. ## Chat widget features When a visitor opens the chat bubble, your AI assistant can: * Answer questions using your [knowledge base](/dashboard/knowledge-base) * Collect the visitor's name, phone number, and email naturally through conversation * Qualify the lead by asking about their needs, timeline, or budget * Book an appointment directly (requires [calendar integration](/integrations/calendar)) * Hand off to a human if the visitor asks to speak with someone All conversations are logged in your dashboard with full transcripts. ## Voice call button When voice mode is enabled, visitors see a call button alongside (or instead of) the chat bubble. Clicking it starts a browser-based voice call with your AI receptionist. No phone number dialing required — it works like a phone call but through the browser. Voice mode requires your AI Receptionist to be configured and active. See [AI Receptionist](/features/ai-receptionist) for setup instructions. ## Customization You can configure the following from the [dashboard](/dashboard/overview): | Setting | Options | | ---------------- | ------------------------------------ | | Widget color | Any hex value | | Position | Bottom-right, bottom-left | | Greeting message | Custom text | | Chat mode | Chat only, voice only, or both | | Pages to show on | All pages (default) or specific URLs | ## Performance The widget script is asynchronous and lightweight. It loads after your page content and does not affect page speed or Core Web Vitals scores. It is also fully responsive and works on mobile, tablet, and desktop. ## Frequently asked questions No. The script loads asynchronously, meaning it does not block your page from rendering. Your page speed scores are not affected. Yes. The widget is fully responsive and adapts to any screen size. Yes. All chat conversations are saved and accessible from your dashboard. You can review transcripts, see which questions come up most often, and use that to improve your knowledge base. Yes. The widget adds a new contact option but does not replace your existing phone number, email, or contact form. Visitors choose how they want to reach you. If you need to regenerate your embed token, update the `data-token` value in your website's embed snippet. Old tokens stop working immediately after regeneration. ## Related Power the voice call button with your AI receptionist. Add content your AI uses to answer visitor questions. Follow up with leads from missed calls and forms. View widget conversations and captured leads. # Calendar Source: https://boltcall.mintlify.app/integrations/calendar Connect Google Calendar or Cal.com so your AI receptionist can check availability and book appointments in real time. Boltcall supports two calendar integrations. Connect one (or both) to enable live availability checking and automatic appointment booking. ## Google Calendar Google Calendar uses OAuth — you connect by signing in with your Google account. No API key is required. Once connected, your AI receptionist checks your calendar for open slots in real time and creates appointment events automatically when a booking is confirmed. ### What you get * **Auto-book appointments** — Boltcall creates calendar events when appointments are confirmed * **Two-way sync** — changes made in Google Calendar reflect in Boltcall, and vice versa * **No double bookings** — availability is checked live before any slot is offered to a caller ### How to connect Go to **Dashboard → Integrations → Google Calendar** and click the integration card. Click the **Connect with Google** button. You'll be redirected to Google's sign-in page. Sign in with the Google account that owns the calendar you want to use, then grant Boltcall permission to read and write to your calendar. You'll be redirected back to your dashboard. A green "Connected" badge confirms the integration is active. Boltcall requests calendar read and write permissions. This allows your AI receptionist to check availability and create appointment events on your behalf. ### Sync settings After connecting, you can configure sync behavior under **Dashboard → Integrations → Google Calendar → Sync Settings**. **Sync direction** | Option | Behavior | | ------- | ----------------------------------------------- | | One-way | Boltcall creates events in Google Calendar only | | Two-way | Changes sync in both directions | **Sync frequency** | Option | Behavior | | ------------ | ------------------------------ | | Real-time | Syncs instantly on every event | | Every 5 min | Batches syncs every 5 minutes | | Every 15 min | Batches syncs every 15 minutes | **Conflict resolution** (two-way sync only) When the same event is modified in both systems, you can choose which version wins: Boltcall, Google Calendar, or whichever was updated most recently. **Event settings** * **Default event duration** — 15, 30, 45, 60, 90, or 120 minutes * **Buffer between events** — 0, 5, 10, 15, or 30 minutes of padding after each appointment * **Auto-create events** — toggle whether Boltcall automatically creates a calendar event when an appointment is booked ### Reconnecting or disconnecting To reconnect (e.g. after a token expires), go to **Sync Settings** and click **Reconnect**. To remove the integration, click **Disconnect**. ### Sync history Every sync action is logged. Go to **Dashboard → Integrations → Google Calendar → Sync History** to view past syncs, their status, and any error messages. ## Cal.com Cal.com uses an API key connection. Once connected, Boltcall registers a webhook on your Cal.com account so that confirmed bookings are sent to Boltcall in real time. Your AI receptionist uses Cal.com to check availability and send SMS booking links to callers during the [SMS booking](/features/sms-booking) flow. ### What you get * **Live availability** — your AI receptionist checks your Cal.com booking page before offering a time slot * **SMS booking** — callers receive a direct booking link via SMS to complete scheduling on their own * **Booking confirmation sync** — when a booking is confirmed in Cal.com, Boltcall is notified and can trigger follow-up actions ### How to connect Go to **Cal.com → Settings → Developer → API Keys**. Click **Create API Key**. Give it a name (e.g. "Boltcall") and copy the key that's generated. Go to **Dashboard → Integrations → Cal.com**, paste the API key into the field labeled **Cal.com API Key**, and click **Connect Cal.com**. A "Connected" badge will appear on the Cal.com integration card. Boltcall will automatically register a booking webhook on your Cal.com account. Cal.com API keys are created under **Settings → Developer → API Keys**. The key is only shown once — copy it before closing the dialog. ### How Boltcall uses Cal.com When a caller asks to book an appointment, your AI receptionist checks your Cal.com availability in real time. If a suitable time is available, Boltcall sends the caller an SMS with a direct link to your Cal.com booking page. Once the caller confirms a booking on Cal.com, Boltcall receives the confirmation via webhook and can: * Log the appointment to your CRM * Trigger automated reminders * Fire a `appointment_booked` webhook event to any connected system Make sure your Cal.com event types are configured with accurate availability windows. Boltcall reads these directly when checking open slots for callers. ### Webhook registration Boltcall automatically registers a booking webhook on your Cal.com account during setup. You don't need to configure this manually. If you ever need to re-register it, disconnect and reconnect the Cal.com integration. # CRM sync Source: https://boltcall.mintlify.app/integrations/crm Automatically push leads, call logs, and appointments into your CRM. Configure sync direction and field mapping per integration. When your AI receptionist captures a lead or completes a call, Boltcall can push that data directly to your CRM. You control what syncs, in which direction, and how fields map. To connect a CRM, go to **Dashboard → Integrations** and select the CRM card. ## What syncs Depending on your configuration, Boltcall can sync: * **Leads** — new contacts captured by your AI receptionist * **Calls** — call logs and transcripts * **Appointments** — booked appointments and calendar events You can enable or disable each category independently after connecting. ## Sync direction | Mode | How it works | | ------- | ---------------------------------- | | One-way | Boltcall pushes data to your CRM | | Two-way | Changes in either system sync back | ## CRM integrations Automatically push new leads and call data into HubSpot CRM. **Connection type:** API key (Private App Token) **What syncs:** Leads, calls, contacts Go to **HubSpot → Settings → Integrations → Private Apps**. Click **Create a private app**. Give it a name (e.g. "Boltcall") and grant the `contacts` and `crm.objects.contacts` scopes. After creating the app, copy the access token shown on the app detail page. Go to **Dashboard → Integrations → HubSpot**, paste the token, and click **Connect HubSpot**. Find your Private App Token at **HubSpot → Settings → Integrations → Private Apps**. Create a new app if you don't have one. The token is only shown once — copy it immediately. **Field mapping defaults:** | Boltcall field | HubSpot field | | -------------- | ------------------------ | | Name | `firstname` + `lastname` | | Email | `email` | | Phone | `phone` | | Lead source | `leadsource` | | Notes | `notes_last_updated` | | Status | `hs_lead_status` | Sync leads and deals to Pipedrive. Track your sales pipeline automatically. **Connection type:** API key **What syncs:** Leads, deals, contacts Go to **Pipedrive → Settings → Personal preferences → API**. Your personal API token is displayed on that page. Copy it. Go to **Dashboard → Integrations → Pipedrive**, paste the token, and click **Connect Pipedrive**. Your Pipedrive API token is under **Settings → Personal preferences → API**. Each user has their own token — use the account that should own the data. **Field mapping defaults:** | Boltcall field | Pipedrive field | | -------------- | --------------- | | Name | `name` | | Email | `email` | | Phone | `phone` | | Lead source | `source_name` | | Notes | `notes` | | Status | `status` | Push leads into GoHighLevel CRM, trigger automations, and manage your pipeline. **Connection type:** API key + Location ID **What syncs:** Leads, contacts, pipeline Go to **GoHighLevel → Settings → Business Profile** and copy your Location ID (e.g. `abc123XYZ`). Go to **Settings → API Keys** (or **Marketplace → API Keys**) and create a new key with Contacts read/write permissions. Go to **Dashboard → Integrations → GoHighLevel**, enter both your API key and Location ID, then click **Connect GoHighLevel**. GoHighLevel requires both an API key and a Location ID. The Location ID identifies which sub-account (location) your leads should be assigned to. Find it under **Settings → Business Profile**. Sync leads and contacts to Salesforce automatically. **Connection type:** API key **What syncs:** Leads, contacts Go to **Salesforce → Setup → Apps → App Manager** and create a connected app, or retrieve an existing API key from your Salesforce admin. Go to **Dashboard → Integrations → Salesforce**, paste your API key, and click **Connect Salesforce**. Push leads and contact data to Zoho CRM. **Connection type:** API key **What syncs:** Leads, contacts Go to **Zoho CRM → Settings → Developer Space → APIs** to generate an API key or OAuth token. Go to **Dashboard → Integrations → Zoho CRM**, paste your API key, and click **Connect Zoho CRM**. Zoho CRM uses OAuth-based API tokens. You can generate a self-client token from **Zoho API Console → Self Client** for quick setup without a full OAuth flow. Sync contacts and deals to ActiveCampaign. **Connection type:** API key **What syncs:** Contacts, deals Go to **ActiveCampaign → Settings → Developer**. Your API URL and key are listed there. Go to **Dashboard → Integrations → ActiveCampaign**, paste your API key, and click **Connect ActiveCampaign**. ActiveCampaign API keys are under **Settings → Developer**. You'll also need your ActiveCampaign account URL (e.g. `youraccountname.activehosted.com`). Sync leads and contacts to Close CRM. **Connection type:** API key **What syncs:** Leads, contacts Go to **Close → Settings → Your API Keys** and click **Generate API Key**. Go to **Dashboard → Integrations → Close CRM**, paste your API key, and click **Connect Close CRM**. Close API keys are per user and found under **Settings → Your API Keys**. Generate a new key specifically for Boltcall so you can revoke it independently if needed. Sync contacts and apply tags in Keap (formerly Infusionsoft). **Connection type:** API key **What syncs:** Contacts, tags Go to **Keap → Admin → Settings → Application** and locate the API key section, or create a new key from the developer console. Go to **Dashboard → Integrations → Keap**, paste your API key, and click **Connect Keap**. Push leads and contacts to Freshsales. **Connection type:** API key **What syncs:** Leads, contacts Go to **Freshsales → Settings → API Settings** and copy your API key. Go to **Dashboard → Integrations → Freshsales**, paste your API key, and click **Connect Freshsales**. Freshsales API keys are user-specific and found under **Settings → API Settings**. You'll need your Freshsales subdomain (e.g. `yourcompany.freshsales.io`) as well. ## Field mapping Once connected, you can customize how Boltcall fields map to fields in your CRM. Go to **Dashboard → Integrations**, expand your CRM, and select the **Field Mapping** tab. Each Boltcall field (name, email, phone, lead source, notes, status) maps to a corresponding CRM field. You can change the target field from a dropdown of available options. Save your field mapping separately from your sync settings — both have their own Save button. ## Sync history Every sync attempt is logged. To view history, expand your CRM in **Dashboard → Integrations** and select the **Sync History** tab. Each entry shows the action taken, its status, and any error messages. # Integrations Source: https://boltcall.mintlify.app/integrations/overview Connect Boltcall to your CRM, calendar, and automation tools. Every integration is managed from Dashboard → Integrations. Boltcall connects to the tools your business already uses. When a lead comes in, a call ends, or an appointment is booked, data flows automatically to the right place — no manual entry required. To access integrations, go to **Dashboard → Integrations**. ## Available integrations Push leads, calls, and appointments into HubSpot, Pipedrive, GoHighLevel, and more. Connect Google Calendar or Cal.com so your AI receptionist can check availability and book appointments. Send real-time event data to any URL — Zapier, Make.com, or your own server. Build custom integrations using the Boltcall REST API. ## Integration categories ### CRM Automatically sync lead data, call logs, and appointments to your CRM. Boltcall supports both one-way and two-way sync, with configurable field mapping. | Integration | Connection type | What syncs | | -------------- | --------------------- | ------------------------- | | HubSpot | API key | Leads, calls, contacts | | Pipedrive | API key | Leads, deals, contacts | | GoHighLevel | API key + Location ID | Leads, contacts, pipeline | | Salesforce | API key | Leads, contacts | | Zoho CRM | API key | Leads, contacts | | ActiveCampaign | API key | Contacts, deals | | Close CRM | API key | Leads, contacts | | Keap | API key | Contacts, tags | | Freshsales | API key | Leads, contacts | ### Calendar Your AI receptionist checks real-time availability and books appointments directly into your calendar — no double bookings. | Integration | Connection type | What it does | | --------------- | --------------- | ------------------------------------------------------- | | Google Calendar | OAuth | Two-way sync, availability checking, auto-create events | | Cal.com | API key | Booking page sync, SMS booking via AI receptionist | ### Automation Send Boltcall events to thousands of apps through automation platforms. | Integration | Connection type | What it does | | ------------- | ------------------------ | --------------------------------------------- | | Zapier | Webhook URL | Trigger Zaps on any Boltcall event | | Make.com | Webhook URL | Trigger Make scenarios on any Boltcall event | | Google Sheets | API key + Spreadsheet ID | Log leads, calls, and appointments to a sheet | ### Communication | Integration | Connection type | What it does | | ------------- | --------------- | --------------------------------------------------- | | Email (Gmail) | Email address | Notify you on new leads, missed calls, and bookings | ### Local | Integration | Connection type | What it does | | ----------------------- | --------------------- | ------------------------------------------------------ | | Google Business Profile | API key + Location ID | Auto-request reviews, monitor responses, reply with AI | ## How to connect an integration Go to **Dashboard → Integrations** and find the integration you want to connect. Select the integration card to open its setup panel. Each integration shows step-by-step instructions for generating an API key or completing an OAuth flow. Paste your credentials and click **Connect**. You can optionally test the connection first. Connected integrations are shown first in the integrations grid, with a green "Connected" badge and live sync counts. # Webhooks Source: https://boltcall.mintlify.app/integrations/webhooks Send real-time HTTP POST requests to any URL when events happen in Boltcall — new leads, missed calls, bookings, and more. Webhooks let you push Boltcall event data to external systems the moment something happens. Every time a trigger event fires, Boltcall sends an HTTP POST request with a JSON payload to the URL you specify. Use webhooks to connect Boltcall to Zapier, Make.com, your own server, or any system that accepts HTTP requests. To manage webhooks, go to **Dashboard → Integrations → Webhooks**. ## Trigger events | Event | Value | When it fires | | ------------------ | -------------------- | ------------------------------------------------- | | New lead | `new_lead` | A new lead is captured by your AI receptionist | | Missed call | `missed_call` | A call comes in but is not answered | | Appointment booked | `appointment_booked` | An appointment is confirmed | | Call completed | `call_completed` | A call ends | | Review received | `review_received` | A new review comes in via Google Business Profile | ## Create a webhook Go to **Dashboard → Integrations → Webhooks** and click **Create Webhook**. Enter an optional name to identify this webhook (e.g. "Zapier Lead Notification"). This is for your reference only. Select the event that should fire this webhook from the dropdown. Each webhook is tied to one event. Paste the URL that should receive the POST request (e.g. your Zapier Catch Hook URL or your own server endpoint). Click **Create Webhook**. The webhook is active immediately. Before saving, click **Preview payload** to see the exact JSON your endpoint will receive for the selected trigger event. ## Example payloads ```json new_lead theme={null} { "event": "new_lead", "timestamp": "2025-03-20T10:00:00Z", "data": { "id": "lead_001", "name": "Jane Smith", "phone": "+1555123456", "email": "jane@example.com", "source": "missed_call", "agent_id": "agent_abc123" } } ``` ```json call_completed theme={null} { "event": "call_completed", "timestamp": "2025-03-20T10:15:00Z", "data": { "id": "call_002", "caller_phone": "+1555123456", "duration_seconds": 142, "outcome": "lead_captured", "agent_id": "agent_abc123", "recording_url": "https://storage.boltcall.org/recordings/call_002.mp3" } } ``` ```json appointment_booked theme={null} { "event": "appointment_booked", "timestamp": "2025-03-20T10:20:00Z", "data": { "id": "appt_003", "lead_id": "lead_001", "name": "Jane Smith", "phone": "+1555123456", "scheduled_at": "2025-03-22T14:00:00Z", "duration_minutes": 30, "agent_id": "agent_abc123" } } ``` ## Webhook security Each webhook has a **signing secret** generated automatically when you create it. Boltcall includes an HMAC-SHA256 signature in the `X-Boltcall-Signature` header of every request. You should verify this signature on your server to confirm the request genuinely came from Boltcall. ```javascript Node.js theme={null} const crypto = require('crypto'); function verifyWebhookSignature(payload, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(payload) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ); } // Express example app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => { const signature = req.headers['x-boltcall-signature']; const isValid = verifyWebhookSignature(req.body, signature, process.env.WEBHOOK_SECRET); if (!isValid) { return res.status(401).send('Invalid signature'); } const event = JSON.parse(req.body); console.log('Received event:', event.event); res.status(200).send('OK'); }); ``` ```python Python theme={null} import hmac import hashlib def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool: expected = hmac.new( secret.encode('utf-8'), payload, hashlib.sha256 ).hexdigest() return hmac.compare_digest(signature, expected) # Flask example from flask import Flask, request, abort app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): signature = request.headers.get('X-Boltcall-Signature') is_valid = verify_webhook_signature( request.data, signature, os.environ['WEBHOOK_SECRET'] ) if not is_valid: abort(401) event = request.get_json() print('Received event:', event['event']) return 'OK', 200 ``` To find your signing secret, go to **Dashboard → Integrations → Webhooks**, expand a webhook row, and click the copy icon next to **Signing Secret**. Treat your signing secret like a password. Do not expose it in client-side code or commit it to version control. ## Testing a webhook Each webhook has a **play button** in its row. Clicking it sends a sample payload to your endpoint immediately, without waiting for a real event. After a test fires, expand the webhook row to see the result in the **Event Log** — including the HTTP status code, response body, and response time in milliseconds. The event log shows the last 100 delivery attempts per webhook, including both test events and live events. ## Pausing and deleting To temporarily stop a webhook from firing, click the toggle icon in its row to pause it. Click again to reactivate. To permanently remove a webhook, click the trash icon in its row. Deletion is immediate and cannot be undone. ## Retries Boltcall does not automatically retry failed webhook deliveries. If your endpoint returns a non-2xx status code, the delivery is logged as failed in the event log. Use the test/replay feature to manually re-send a payload to your endpoint after resolving the issue. # Introduction Source: https://boltcall.mintlify.app/introduction Boltcall is an AI phone receptionist and lead engagement platform built for local businesses. Boltcall answers your phones, replies to new leads, books appointments, and follows up with customers — 24 hours a day, 7 days a week. You get more bookings without hiring extra staff. ## Who it's for Boltcall is built for local service businesses that depend on phone calls and leads to grow: * **Medical & wellness** — dentists, med spas, healthcare providers * **Home services** — plumbers, HVAC technicians, roofers, construction companies * **Legal & professional** — law firms, consultants * **Beauty & fitness** — salons, fitness studios * **Hospitality & retail** — restaurants, retail stores * **Other local businesses** — real estate agents, education providers, and more If a missed call means a missed customer, Boltcall is for you. ## What Boltcall does **24/7 AI call answering** — Your AI receptionist picks up every call, greets callers by business name, and handles common questions — even after hours and on weekends. **Instant lead reply** — When a new lead comes in from your website, ads, or a form, Boltcall contacts them within seconds so you're always first to respond. **SMS booking** — Boltcall texts leads and customers to confirm appointments, reducing no-shows and double-bookings. **Automated reminders** — Appointment reminders go out automatically so customers show up prepared. **Website chat widget** — A chat widget on your site captures visitors and routes them into the same lead flow as your phone calls. **CRM sync** — Lead data, call summaries, and conversation history sync to your CRM so your team always has full context. ## Plans | Plan | Monthly price | Best for | | -------- | ------------- | -------------------------------------------------------- | | Starter | \$549/mo | Getting started with AI call answering and lead capture | | Pro | \$897/mo | Full lead follow-up, SMS conversations, and website chat | | Ultimate | \$4,997/mo | Multi-location businesses needing AI audits and scale | See [account/plans](/account/plans) for a full feature comparison. ## Where to go next Create your account and launch your AI receptionist in minutes. Learn how Boltcall answers calls and handles customer conversations. Connect Boltcall to your CRM, calendar, and other tools. Build on top of Boltcall with our REST API. # Onboarding Source: https://boltcall.mintlify.app/onboarding A detailed walkthrough of the Boltcall setup wizard and what happens after you launch. After you create your account, Boltcall walks you through a three-step wizard to configure your AI receptionist. The whole process takes under two minutes. Your AI agent is auto-configured based on the industry you select. You don't need to write scripts, record greetings, or configure call flows manually — Boltcall handles that for you. ## The setup wizard The first step collects your personal details so Boltcall can associate your account with the right workspace. | Field | Required | Notes | | ---------- | -------- | ---------------------------------------------------- | | Full name | Yes | Your name as the account owner | | Work email | Yes | The email address for your Boltcall account | | Country | Yes | Used to assign a local phone number and set defaults | Click **Next** once all fields are filled in. The second step tells Boltcall about your business. This information is used to configure your AI receptionist's knowledge base and conversation style. | Field | Required | Notes | | ------------- | -------- | ------------------------------------------------------------------------------------- | | Business name | Yes | How your AI receptionist will greet callers (e.g., "Thanks for calling Smith Dental") | | Industry | Yes | Determines the AI agent template and default knowledge base | **Supported industries:** Dentist, Med Spa, Plumber, HVAC, Legal, Salon, Fitness, Restaurant, Retail, Real Estate, Healthcare, Construction, Roofing, Education, Technology, and Other. Choose the industry that most closely matches your business. Even if your exact niche isn't listed, selecting a similar category gives the AI a strong starting point. You can refine the knowledge base from your dashboard after launch. Click **Next** once you've entered your business name and selected your industry. The final step shows a summary of your personal and business profile for you to confirm. You'll see: * Your name, email, and country * Your business name and industry If anything looks wrong, click **Back** to edit the previous steps. When you're ready, click **Launch**. Your AI receptionist goes live immediately. Once you click Launch, your AI receptionist is active and will start answering calls to your Boltcall number. Make sure your business name is spelled correctly before launching. ## What happens after launch When you click **Launch**, Boltcall runs the following in the background: 1. **Workspace created** — A workspace is initialized under your account to store all your business data, agents, and leads. 2. **AI receptionist agent configured** — A primary inbound agent named `[Your Business] AI Receptionist` is created and pre-configured for your industry. 3. **Follow-up agent created** — A second agent named `[Your Business] Follow-Up Agent` is created to re-engage leads who haven't booked yet. 4. **Knowledge base initialized** — A knowledge base folder is created and linked to both agents. It's pre-populated with defaults for your industry. 5. **Phone number assigned** — A local phone number is assigned to your account based on your country. 6. **Dashboard ready** — You're redirected to your dashboard where you can see everything in one place. The whole process takes about 10 seconds. A progress screen shows you what's happening in real time. ## After the wizard Once you're on the dashboard, here are the most useful places to go next: * **[dashboard/agents](/dashboard/agents)** — View and configure your AI agents, adjust their voice, and set call transfer numbers. * **[dashboard/knowledge-base](/dashboard/knowledge-base)** — Add your services, FAQs, policies, and any other information your AI should know. * **[dashboard/phone-numbers](/dashboard/phone-numbers)** — See your assigned phone number and configure routing. * **[dashboard/analytics](/dashboard/analytics)** — Track call volume, lead conversions, and agent performance. * **[integrations/overview](/integrations/overview)** — Connect your CRM, calendar, or other tools. Your AI receptionist is live as soon as setup completes. If you're not ready to take live calls yet, you can pause your agent from the [dashboard/agents](/dashboard/agents) page. # Quick start Source: https://boltcall.mintlify.app/quickstart Get your AI receptionist live in under five minutes. Follow these steps to create your account, choose a plan, and launch your AI receptionist. Go to [boltcall.org](https://boltcall.org) and click **Get started**. Enter your email address and choose a password to create your account. If you already have an account, sign in at [boltcall.org/login](https://boltcall.org/login) instead. Select the plan that fits your business: | Plan | Price | Includes | | -------- | ---------- | --------------------------------------------------------------------------------------- | | Starter | \$549/mo | AI call answering, missed call text-back, instant lead reply, appointment reminders | | Pro | \$897/mo | Everything in Starter, plus full lead follow-up, SMS conversations, website chat widget | | Ultimate | \$4,997/mo | Everything in Pro, plus multi-location support and AI audits | You can change your plan at any time from [account/plans](/account/plans). After signing up, you'll be taken to a three-step setup wizard: 1. **Personal profile** — your name, work email, and country 2. **Business profile** — your business name and industry 3. **Review & launch** — confirm your details and go live The wizard takes less than two minutes to complete. See [Onboarding](/onboarding) for a detailed walkthrough of each step. When you click **Launch**, Boltcall starts building your AI receptionist in the background. This takes about 10 seconds. You'll see a progress screen while the following happen: * Your workspace is initialized * Your AI receptionist agent is configured for your industry * A follow-up agent is created to re-engage leads * Your knowledge base is set up with your business details * Your dashboard is prepared You don't need to do anything during this step. Boltcall handles all of the configuration automatically based on the industry you selected. Once setup is complete, you'll land on your dashboard. From there you can: * View your AI agent in [dashboard/agents](/dashboard/agents) * Review what's in your knowledge base at [dashboard/knowledge-base](/dashboard/knowledge-base) * Check your assigned phone number at [dashboard/phone-numbers](/dashboard/phone-numbers) * Make a test call to hear your AI receptionist in action Your AI receptionist is live immediately after setup. Any call to your Boltcall number will be answered right away. ## Next steps Once you've launched, here are a few things worth doing early: * **Add your services and FAQs** — Go to [dashboard/knowledge-base](/dashboard/knowledge-base) and fill in details about what your business offers. The more context your AI has, the better it handles calls. * **Connect your CRM or calendar** — Visit [integrations/overview](/integrations/overview) to sync leads and bookings with tools you already use. * **Invite your team** — Add team members at [account/team-members](/account/team-members) so everyone can see leads and call activity.