1. Features
  • HMS Sovereign API
  • Get started
    • Authentication
    • Introduction
    • Quickstart
  • Core concepts
    • Assistants
    • Calls
    • Phone Numbers
    • Webhooks
  • Platform
    • Billing & Credits
    • EU Data Sovereignty
    • Voice Selection
    • Whitelabel Portal
  • Webhooks
    • Assistant Request
    • End of Call Report
    • Webhooks Overview
    • Webhook Security
    • Status Update
    • Tool Calls
  • Configuration
    • Analysis Templates
    • Custom Tools
    • SIP Trunks
    • Tool Templates
  • Features
    • AI Generation
    • Autonomous Silence Handling
    • Call Analysis
    • Call Transfers
    • Campaigns Setup
    • Outbound Campaigns
    • Voicemail Detection
    • Web Calls
  • Integrations
    • BYOK Setup
    • Provider Pricing
    • xAI Grok Integration
  • Reference
    • Error Codes
    • Rate Limits
    • Troubleshooting
Documentation
API Reference
Documentation
API Reference
Book a meeting
Linkedin
Github
  1. Features

Outbound Campaigns

🧪
Outbound Campaigns is currently in Beta. Features may change.
This guide walks you through setting up an automated outbound calling campaign to reach your leads with personalized AI conversations.

Overview#

Outbound campaigns allow you to:
Upload a list of leads with contact information
Personalize each call with lead-specific context
Schedule calls within specific time windows
Track progress and results for each lead

Prerequisites#

Before creating a campaign, ensure you have:
1.
An active assistant - See Assistants API
2.
A phone number - See Phone Numbers API
3.
A configured SIP trunk - The phone number must have a SIP trunk configured for outbound calls
The phone number used for outbound calls must have a SIP trunk configured for outbound dialing.

Quick Start#

1
Create a Campaign
Create a campaign linked to your assistant:
2
Add Leads
Add leads with personalization variables:
3
Start the Campaign
Set the campaign status to scheduled to begin calling:
4
Monitor Progress
Check campaign progress and lead statuses:

Personalizing Calls#

System Message Template#

The system_message_template is appended to your assistant's existing system messages. Use {{variable}} placeholders that match keys in each lead's variables object.
Example Template:
You are calling {{name}}, the {{role}} at {{company}}.

Background:
- They expressed interest in: {{interest}}
- Previous interaction: {{last_contact}}
- Priority: {{priority}}

Your goal is to schedule a demo call.
Example Lead Variables:
{
  "name": "Maria Jansen",
  "role": "Head of Operations",
  "company": "LogiFlow BV",
  "interest": "workflow automation",
  "last_contact": "Downloaded whitepaper on Jan 5",
  "priority": "high"
}

Best Practices#

Personalization Tips
1.
Include the lead's name - Creates immediate rapport
2.
Reference their company - Shows you've done your research
3.
Mention their interest - Makes the call relevant
4.
Keep it concise - Don't overload the assistant with context

Scheduling#

Time Windows#

Campaigns only make calls during the configured time window:
FieldFormatExampleDescription
schedule_start_timeHH:MM:SS09:00:00Earliest time to start calls
schedule_end_timeHH:MM:SS17:00:00Latest time to start calls
timezoneIANAEurope/AmsterdamTimezone for the schedule

Supported Timezones#

Use any valid IANA timezone:
Europe/Amsterdam
Europe/London
America/New_York
America/Los_Angeles
Asia/Tokyo
etc.
Calls are processed one at a time. A new call starts only after the previous call ends.

Campaign Statuses#

StatusDescriptionCalls Made?
draftCampaign created but not activeNo
scheduledCampaign active, calling leadsYes
pausedTemporarily stoppedNo
completedAll leads processedNo

Status Transitions#


Lead Statuses#

StatusDescription
pendingWaiting to be called
callingCall currently in progress
completedCall finished successfully
failedCall failed (connection error, etc.)
no_answerNo answer after attempts

Bulk Import#

For large lead lists, you can add multiple leads programmatically:
In the dashboard, you can upload a CSV file to bulk import leads with automatic variable mapping.

Monitoring & Results#

Campaign Progress#

The campaign object includes progress metrics:
{
  "total_leads": 150,
  "completed_leads": 45,
  "current_call_id": "call-uuid-123",
  "last_lead_processed_at": "2026-01-07T14:25:00.000Z"
}

Call Results#

After a lead is called, you can retrieve the call details:
This includes:
Full transcript
Call duration
Call analysis (if configured on the assistant)
Recording URL (if enabled)
See Calls API for details.

Error Handling#

Common Issues#

Campaign not making calls
Leads failing immediately
Assistant not using lead context

API Reference#

List Campaigns
GET /campaigns
Create Campaign
POST /campaigns
Update Campaign
PATCH /campaigns/{id}
Add Lead
POST /campaigns/{id}/leads

Related#

Campaigns API Reference - Full API documentation
Assistants API - Create and configure assistants
Call Analysis Guide - Analyze campaign call results
Modified at 2026-03-17 10:59:50
Previous
Campaigns Setup
Next
Voicemail Detection
Built with