Create SMS campaign
curl --request POST \
--url http://localhost:8787/api/v1/sms-agent/campaigns \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "<string>",
"templates": [
{
"callStatus": "<string>",
"messageBody": "<string>",
"dltSenderId": "<string>",
"dltTemplateId": "<string>"
}
]
}
'import requests
url = "http://localhost:8787/api/v1/sms-agent/campaigns"
payload = {
"agentId": "<string>",
"templates": [
{
"callStatus": "<string>",
"messageBody": "<string>",
"dltSenderId": "<string>",
"dltTemplateId": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agentId: '<string>',
templates: [
{
callStatus: '<string>',
messageBody: '<string>',
dltSenderId: '<string>',
dltTemplateId: '<string>'
}
]
})
};
fetch('http://localhost:8787/api/v1/sms-agent/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));SMS Campaigns
Create SMS campaign
Create an SMS campaign with post-call message templates
POST
/
sms-agent
/
campaigns
Create SMS campaign
curl --request POST \
--url http://localhost:8787/api/v1/sms-agent/campaigns \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "<string>",
"templates": [
{
"callStatus": "<string>",
"messageBody": "<string>",
"dltSenderId": "<string>",
"dltTemplateId": "<string>"
}
]
}
'import requests
url = "http://localhost:8787/api/v1/sms-agent/campaigns"
payload = {
"agentId": "<string>",
"templates": [
{
"callStatus": "<string>",
"messageBody": "<string>",
"dltSenderId": "<string>",
"dltTemplateId": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
agentId: '<string>',
templates: [
{
callStatus: '<string>',
messageBody: '<string>',
dltSenderId: '<string>',
dltTemplateId: '<string>'
}
]
})
};
fetch('http://localhost:8787/api/v1/sms-agent/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Creates an SMS campaign that automatically dispatches SMS follow-up messages based on agent call outcomes (e.g. sending different text messages when a call was answered vs unanswered).
Only one SMS campaign is allowed per agent. To modify templates or settings, use
PUT /sms-agent/campaigns/{id}.Body parameters
string
required
UUID of the AI agent to bind this SMS campaign to.
string
Campaign display name (letters, numbers, and spaces only, up to 120 characters).
string
Sender phone number or alphanumeric sender ID.
string
Connected SMS provider name (e.g.
TWILIO, PLIVO, PINNACLE).boolean
default:"true"
Whether the SMS campaign is active.
object[]
required
Array of SMS message templates.
Show SMS Template
Show SMS Template
curl -X POST https://api.agentic-os.com/api/v1/sms-agent/campaigns \
-H "Authorization: Bearer $AGENTIC_OS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Post-Call SMS Follow-up",
"agentId": "11111111-1111-1111-1111-111111111111",
"senderNumber": "+15550199",
"senderProvider": "TWILIO",
"templates": [
{
"callStatus": "ANSWERED",
"messageBody": "Hi {{name}}, thanks for your time today! You can book your onboarding session here: https://agentic-os.com/onboarding"
},
{
"callStatus": "UNANSWERED",
"messageBody": "Hi {{name}}, we tried reaching you regarding your inquiry. Please call us back or reply to this message!"
}
]
}'
import requests
response = requests.post(
"https://api.agentic-os.com/api/v1/sms-agent/campaigns",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"name": "Post-Call SMS Follow-up",
"agentId": "11111111-1111-1111-1111-111111111111",
"senderNumber": "+15550199",
"senderProvider": "TWILIO",
"templates": [
{
"callStatus": "ANSWERED",
"messageBody": "Hi {{name}}, thanks for your time today! You can book your onboarding session here: https://agentic-os.com/onboarding",
},
{
"callStatus": "UNANSWERED",
"messageBody": "Hi {{name}}, we tried reaching you regarding your inquiry. Please call us back or reply to this message!",
},
],
},
)
print(response.json())
const response = await fetch(
"https://api.agentic-os.com/api/v1/sms-agent/campaigns",
{
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Post-Call SMS Follow-up",
agentId: "11111111-1111-1111-1111-111111111111",
senderNumber: "+15550199",
senderProvider: "TWILIO",
templates: [
{
callStatus: "ANSWERED",
messageBody: "Hi {{name}}, thanks for your time today! You can book your onboarding session here: https://agentic-os.com/onboarding",
},
{
callStatus: "UNANSWERED",
messageBody: "Hi {{name}}, we tried reaching you regarding your inquiry. Please call us back or reply to this message!",
},
],
}),
},
);
const data = await response.json();
console.log(data);
Response
{
"id": "66666666-6666-6666-6666-666666666666",
"tenantId": "990e8400-e29b-41d4-a716-446655440000",
"agentId": "11111111-1111-1111-1111-111111111111",
"name": "Post-Call SMS Follow-up",
"senderNumber": "+15550199",
"senderProvider": "TWILIO",
"isActive": true,
"templates": [
{
"id": "sms_tpl_1",
"callStatus": "ANSWERED",
"messageBody": "Hi {{name}}, thanks for your time today! You can book your onboarding session here: https://agentic-os.com/onboarding",
"dltSenderId": null,
"dltTemplateId": null
},
{
"id": "sms_tpl_2",
"callStatus": "UNANSWERED",
"messageBody": "Hi {{name}}, we tried reaching you regarding your inquiry. Please call us back or reply to this message!",
"dltSenderId": null,
"dltTemplateId": null
}
],
"createdAt": "2026-06-01T12:00:00.000Z",
"updatedAt": "2026-06-01T12:00:00.000Z"
}
⌘I

