Voice
CallHub
API integration
Ship Voice features without building the integration. Full CallHub API access via Proxy and 20+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with CallHub
Common scenarios for SaaS companies building CallHub integrations for their customers.
Embed voter and supporter outreach in political CRMs
Political CRM and campaign management platforms can let organizers push segmented voter lists directly into CallHub phonebooks and sync tags back as volunteers complete calls, eliminating manual CSV exports between tools.
Automate volunteer and agent provisioning from scheduling tools
Workforce and volunteer scheduling SaaS can provision CallHub agents, assign them to teams for specific shifts, and revoke access when shifts end — keeping call center rosters in sync without a dedicated ops team.
Centralize TCPA compliance across channels
Debt collection, fundraising, and omnichannel marketing platforms can push opt-outs captured anywhere in their product directly to CallHub's DNC list in real time, reducing TCPA exposure for their customers.
Unified campaign analytics and credit monitoring
Marketing and advocacy analytics dashboards can pull live CallHub campaign metrics and credit usage alongside other channels to show true cost-per-contact and ROI without customers logging into multiple tools.
Script and template orchestration for managed services
Agencies and managed-service platforms can inject standardized call scripts, survey templates, and P2P campaign configurations into their clients' CallHub accounts, enforcing consistent messaging across many sub-accounts.
What You Can Build
Ship these features with Truto + CallHub
Concrete product features your team can ship faster by leveraging Truto’s CallHub integration instead of building from scratch.
Bulk phonebook sync from CRM segments
Use asynchronous bulk contact creation and phonebook bulk add/remove to keep CallHub audiences aligned with dynamic CRM segments, even at the scale of millions of records.
Real-time tag write-back
Create contact tags on CallHub records as call outcomes and survey responses come in, so your users see unified contact profiles inside your product.
Agent and team lifecycle automation
Create teams, bulk-update agent assignments, and bulk-delete agents based on shift schedules or role changes in your platform.
P2P campaign remote control
Let your users start, pause, or update CallHub P2P campaigns from your UI, without context-switching into the CallHub dashboard.
DNC enforcement engine
Push opt-outs to CallHub's DNC list with voice, SMS, or both granularity whenever a contact unsubscribes anywhere in your product.
Local-presence number provisioning
Rent CallHub phone numbers matching your users' target area codes on demand, and surface validated and calling numbers inside your campaign setup flow.
SuperAI
CallHub AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_call_hub_contact
Create a new CallHub contact. Returns the created contact record including id, url, phonebooks, contact, mobile, first_name, last_name, and email. Required: contact (the phone number used in all voice campaigns).
delete_a_call_hub_contact_by_id
Delete a CallHub contact by id. Returns an empty 204 response on success. Required: id.
get_single_call_hub_contact_by_id
Get a single CallHub contact by id. Returns the contact record including id, url, phonebooks, contact, mobile, first_name, last_name, and email. Required: id.
update_a_call_hub_contact_by_id
Update an existing CallHub contact by id. Returns the updated contact record including id, url, phonebooks, contact, mobile, first_name, and last_name. Required: id and contact (the phone number used in all voice campaigns).
create_a_call_hub_contact_tag
Create one or more tags on a CallHub contact. Returns the created tag objects including name, crm_type, crm_id, id, pk_str, and created_date. Required: contact_id, name.
delete_a_call_hub_contact_tag_by_id
Delete a tag from a CallHub contact by tag id. Returns an empty 204 response on success. Required: contact_id and id.
call_hub_phonebook_contacts_bulk_add
Add existing CallHub contacts to a phonebook in bulk. Returns the updated phonebook object including its id, url, owner, name, description, and contact count. Required: phonebook_id, contact_ids.
call_hub_phonebook_contacts_bulk_remove
Remove existing CallHub contacts from a phonebook in bulk. Returns the updated phonebook object including its id, url, owner, name, description, and contact count. Required: phonebook_id, contact_ids.
list_all_call_hub_phonebook_contacts
List all contacts in a CallHub phone book, each with all contact details. Returns: url, phonebooks, contact, mobile, last_name, first_name, country_code, email, address, city, state, company_name, company_website, job_title. Required: phonebook_id. Max page size 1000.
create_a_call_hub_contacts_bulk_create
Bulk import contacts into a CallHub phonebook from an uploaded CSV file or a hosted csv_url. Returns: message, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: phonebook_id, mapping. Either contacts_csv or csv_url must be supplied; imports are processed asynchronously one at a time.
create_a_call_hub_tag
Create a tag in CallHub. Returns the created tag object including id, name, crm_id, crm_type, contact, created_date, and updated_date. Required: tag (the name of the tag to create).
get_single_call_hub_tag_by_id
Get details of a specific tag in CallHub by its id. Returns the tag record with id, name, crm_id, crm_type, contact, created_date, and updated_date. Required: id.
get_single_call_hub_team_agent_by_id
Get agent details for a CallHub team by id. Returns: agents_data, team. Required: id.
list_all_call_hub_team_agents
List the existing agents assigned to a CallHub team. Returns: agents. Required: team_id.
call_hub_team_agents_bulk_delete
Remove existing agents from a CallHub team. Pass the agent ids to remove in agent_ids. Required: team_id. Returns an empty 204 response on success.
call_hub_team_agents_bulk_update
Assign existing agents to a CallHub team. Returns the team record: id, name, created_at. Required: team_id, agent_ids.
create_a_call_hub_team
Create a team in CallHub with the given name. Returns the created team object including id, name, created_at, and pk_str (the team id as a string). Required: name.
delete_a_call_hub_team_by_id
Delete a team in CallHub by id. Returns an empty 204 response on success. Required: id.
list_all_call_hub_teams
List teams in CallHub. Returns each team's id, name, and created_at.
update_a_call_hub_team_by_id
Update a team's name in CallHub by id. Returns the updated team object including id, name, and created_at. Required: id, name.
list_all_call_hub_campaign_info
List CallHub campaign info for the campaigns the agent is assigned to, filtered by campaign IDs. Returns an array of campaign info objects including id, name, status, script, totalcontact, completed, phonebook, and created_date. Required: id (array of Campaign IDs).
list_all_call_hub_credits_usage
Get CallHub credits usage details for a date range. Returns a usage report with count, next, previous, and results containing total_usage records (sms_amount, voice_amount, voice_calls, credits_remaining) plus per-campaign-type usage breakdowns. Required: start_date (mm/dd/yyyy). If end_date is omitted, usage covers a single day; all usage details cover UTC 00:00-23:59.
create_a_call_hub_dnc_contact
Create a new DNC contact in CallHub, adding a phone number to a Do-Not-Call list. Returns: url, dnc, phone_number, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: dnc, phone_number. Set category to 1 for opted out of calling only, 2 for opted out of texting only, or 3 for both (defaults to 3).
update_a_call_hub_p_2_p_campaign_by_id
Update a CallHub P2P campaign's status (1 = START, 2 = PAUSE, 4 = END) or rename it. Returns: id, name, status, openapi, info, servers, components, security, paths, x-readme, x-readme-fauxas. Required: id. PATCH semantics — at least one of status or name must be provided, and name cannot be changed while the campaign is running (status 1) unless the same request also transitions it out of START.
list_all_call_hub_calling_numbers
List rented calling numbers in Callhub. Returns: phone_number, country, region, last_rent, is_active, last_used_date, is_used_in_campaign. Filterable by country, region, and number prefix; max 1000 per page.
list_all_call_hub_validated_numbers
List the phone numbers validated for use in CallHub campaigns. Returns a list where each item includes phone_number. Max 1000 per page.
create_a_call_hub_rent_number
Rent a phone number in CallHub for use in call center or voice broadcast campaigns. Returns the rented number with id, phone_number, country, region, status, voice/sms/mms capability flags, and rental charges. Required: country_iso. If no numbers are available in the requested area code, a random number from the country is rented.
create_a_call_hub_template
Create a CallHub script template with a label and a list of survey/text questions. Returns the created template: label, questions. Required: label, questions; each question requires type (12 or 1) and question text.
list_all_call_hub_templates
List CallHub script templates. Returns template records with id, label, and their survey/text questions.
Why Truto
Why use Truto’s MCP server for CallHub
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with CallHub in under an hour. No boilerplate, no maintenance burden.
Link your customer’s CallHub account
Use Truto’s frontend SDK to connect your customer’s CallHub account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call CallHub
Truto’s Proxy API is a 1-to-1 mapping of the CallHub API. You call us, we call CallHub, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate CallHub’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about CallHub on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication does CallHub use?
CallHub uses API key authentication tied to a user's account. With Truto, your end users connect their CallHub account once through a connected-account flow, and Truto handles credential storage and injection on every request.
How do we handle importing very large contact lists without hitting rate limits?
Use the bulk contact create endpoint, which accepts a CSV URL and runs asynchronously inside CallHub. This is the recommended path for lists ranging from thousands to millions of contacts, since it avoids per-record API calls entirely.
Can we read campaign performance data in real time?
Yes. You can poll the campaign info endpoint to retrieve status, total contacts, and completion metrics for active campaigns. CallHub does not expose streaming webhooks for all campaign events via this surface, so dashboards are typically polling-based.
Does the integration support DNC granularity for voice vs. SMS?
Yes. The DNC contact create operation supports specifying whether a number should be blocked for voice, SMS, or both, allowing you to mirror channel-specific opt-out preferences from your product.
What agent and team operations are supported?
You can list and fetch team agents, bulk update and bulk delete agents, and create, update, list, and delete teams. This covers most provisioning and deprovisioning workflows needed to sync agents from an external HRIS, scheduling tool, or CRM.
Can we manage call scripts and templates programmatically?
Yes. You can create templates and list all existing templates, which lets you inject standardized scripts and survey questions into a client's CallHub account before campaigns launch.
How do we monitor usage for billing or alerting?
Use the credits usage list endpoint to pull consumption data per account. This is commonly used to trigger in-app budget alerts, enforce plan limits, or reconcile internal billing against CallHub spend.
CallHub
Get CallHub integrated into your app
Our team understands what it takes to make a CallHub integration successful. A short, crisp 30 minute call with folks who understand the problem.