Documentation Index
Fetch the complete documentation index at: https://docs.teli.ai/llms.txt
Use this file to discover all available pages before exploring further.
Send Single SMS
Send a manual SMS message to a contact within a campaign. This enables live agents to take over conversations from AI and communicate directly with contacts.
Authentication
Request Body
The campaign ID containing the contact
The contact’s phone number (E.164 format recommended: +15551234567)
The SMS message text to send (cannot be empty)
Response
Whether the message was sent successfully
The normalized phone number the message was sent to
Whether the conversation thread was marked as qualified (always true for manual messages)
Whether AI follow-ups have been disabled for this contact (always true after manual message)
Indicates this was a human takeover action (always true)
Example Request
curl -X POST "https://api.teli.ai/v1/sms/send" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "campaign_abc123",
"phone_number": "+15551234567",
"message": "Hi! This is John following up on your inquiry. How can I help you today?"
}'
Example Response
{
"success": true,
"message": "SMS sent successfully",
"phone_number": "+15551234567",
"campaign_id": "campaign_abc123",
"thread_qualified": true,
"ai_disabled": true,
"human_takeover": true,
"powered_by": "Teli"
}
Behavior
When a manual SMS is sent:
- Message Delivered - The SMS is sent immediately to the contact
- Thread Qualified - The conversation is marked as “human_takeover”
- AI Disabled - All scheduled AI follow-ups and drip messages are cancelled
- Conversation Saved - The message is added to conversation history
- Data Extracted - Any extraction fields are processed from the full conversation
Use Cases
- Live Agent Support - Customer service representatives responding to inquiries
- Sales Follow-up - Sales reps taking over promising leads
- Complex Issues - Handling situations AI cannot resolve
- VIP Customers - Personal touch for high-value contacts
Error Responses
{
"success": false,
"error": "Missing required fields: campaign_id, phone_number, message"
}
{
"success": false,
"error": "Message text cannot be empty"
}
{
"success": false,
"error": "Client +15551234567 not found in campaign campaign_abc123"
}
Notes
- The contact must already exist in the specified campaign
- DNC and timezone checks are bypassed for human-sent messages
- After sending, the AI will not send any more automated messages to this contact
- Message history remains accessible for review