Why put a human on the line?
Phone calls still close more local and B2B deals than any other follow-up channel, especially in the first few minutes after someone raises their hand. But there are two problems with letting an AI make that call.
- The law. In February 2024 the FCC ruled that AI-generated voices are "artificial" voices under the Telephone Consumer Protection Act. That puts AI calls under the same consent rules as robocalls. Read our plain-English guide.
- The prospect. A business owner who filled out your form at 9pm can tell within seconds whether a real person is on the line, and they behave very differently when one is.
So we split the job. Software does what it's good at: picking the lead, researching them, and writing the talking points. A human does the part that has to be human.
The flow, end to end
- A task is createdYour agent calls
create_call_taskover MCP, or your backend POSTs to/api/tasks. You include the phone number, the goal, a brief, and the legal basis for the call. - Compliance checks runWe normalize the number, check the shared do-not-call list, reject duplicates, and work out the lead's local timezone. Anything that fails is rejected with a clear error before a human ever sees it.
- Callers get a pingActive callers get a text that a task is waiting. The first one to claim it in the caller app gets it. Open tasks don't reveal the phone number until claimed.
- The human reads and dialsThe caller reads your brief and opens your links (the lead's report, a site preview, your CRM record). Then they tap Call, which places the call from their own phone. The app won't let them dial outside 9am–8pm in the lead's timezone.
- The outcome comes backThe caller logs what happened (booked, talked, voicemail, not interested, do-not-call…) with notes and any meeting time. Your agent receives it by webhook, or by polling
get_call_task.
For teams and AI agents
You can connect two ways. Both use the same API key, which you can create instantly, or your agent can create it for you by reading llms.txt.
Over MCP
Add Ring a Human as a remote MCP server in Claude, ChatGPT, Cursor, or your own agent framework. Your agent gets five tools: create_call_task, get_call_task, list_call_tasks, cancel_call_task, and add_do_not_call.
{
"mcpServers": {
"ringahuman": {
"url": "https://ringahuman.com/mcp",
"headers": { "Authorization": "Bearer rah_live_…" }
}
}
}
Over REST
If your lead source is a form, a CRM webhook, or a cron job, just POST JSON. The docs have every field.
curl -X POST https://ringahuman.com/api/tasks \
-H "Authorization: Bearer rah_live_…" \
-H "Content-Type: application/json" \
-d '{
"phone": "512-555-0142",
"state": "TX",
"consent": "inquiry",
"business_name": "Bright Smile Dental",
"goal": "Book a 15-minute call to walk through their site grade",
"brief": "They ran our free website grader 6 minutes ago…",
"webhook_url": "https://yourapp.com/hooks/ringahuman"
}'
Writing a brief that books meetings
The brief is the whole job. A caller should be able to read it in under a minute and sound like they've known the account for a week. Good briefs have four parts:
- Why now. What the lead just did and when ("ran the grader 6 minutes ago").
- What we know. Two or three specifics about their business that show we did our homework.
- The ask. One concrete next step, ideally a time-boxed meeting.
- Objections. The two most likely pushbacks and what to say.
Here's a real-shape example from a website-grader funnel:
Have your agent generate the brief from whatever it already knows: grader output, CRM history, website scrape. The best results we see come from briefs with one number and one link the caller can reference out loud.
For callers
Callers are people we've vetted and onboarded: experienced SDRs, appointment setters, virtual assistants. Each gets a personal link to the caller app, which works in any phone browser and can be added to the home screen.
- Pick up work when you want. Open calls show the business, the goal, the lead's local time, and the pay. Claim one and the full brief and number unlock.
- Call from your own phone. Tap Call and your phone dials. No software dials for you, and you're never connected to a call you didn't place.
- Log it in ten seconds. Pick what happened, add a note, done. Booked meetings pay a bonus on top of the per-call rate.
- Respect "no". If anyone asks not to be called, apologize, end the call, and log Do not call. That number is then blocked across the entire network.
How compliance is enforced
Most of our compliance isn't a policy document. It's enforced in code, so it can't be skipped:
| Rule | How it's enforced |
|---|---|
| A human places every call | The app hands the number to the caller's phone dialer only after they tap Call. There's no autodialer, predictive dialer, or AI voice anywhere in the system. |
| Local calling hours | Tasks can only be claimed and dialed between 9am and 8pm in the lead's timezone. That's narrower than the federal 8am–9pm window, so it also covers stricter state rules. |
| Do-not-call | Checked when a task is created and again right before dialing. Opt-outs from any client apply to every client. |
| Consent basis | Required on every task (inquiry, express_written, existing_customer, or b2b_main_line) and stored with it. |
| No duplicate pestering | Only one open task per phone number at a time, across all clients. |
| Audit trail | Every create, claim, dial (with the lead's local time), and outcome is timestamped and kept. |
| No recording | Calls aren't recorded. Many states require every party's consent to record, and notes are enough. |
We enforce the mechanics, but you're responsible for having a real basis to contact each lead and for scrubbing against the National Do Not Call Registry where it applies. This page isn't legal advice; talk to a TCPA attorney about your use case.
What comes back
Every completed task returns a disposition, the caller's notes, and a meeting time if one was booked:
| Disposition | Meaning |
|---|---|
booked | A meeting was scheduled. See meeting_at and notes. Pays the caller's bonus. |
conversation | Reached the right person and had a real conversation, but nothing was booked yet. |
not_interested | Reached them; they declined. |
gatekeeper | Spoke to someone who couldn't help or wouldn't connect. Notes say who to try. |
voicemail / no_answer | Didn't reach anyone. Create a new task later if you want another attempt. |
wrong_number | The number doesn't belong to the lead. |
do_not_call | They asked not to be called. The number is now blocked network-wide. |
FAQ
How fast does a task get called?
During calling hours, the goal is minutes, not hours. That's the point. Set deadline_minutes if a call is only worth making soon. Tasks that aren't claimed in time expire instead of turning into a stale call tomorrow.
What number does the lead see?
Today, the caller's own number. Masked numbers that show a consistent local caller ID are on the roadmap.
Can I bring my own callers?
Yes. Your team can be added to the directory and handle your tasks with the same app, checks, and audit trail.
What does it cost?
$6 per completed call attempt, plus $50 when a meeting is booked. No platform fee, seats, or minimums.
Why is my first task "in review"?
New accounts can create tasks right away, but they wait in review until we've approved the account, usually the same day. That keeps real callers from being sent on calls nobody vetted.
Is this just a call center?
No. A call center gives you seats and scripts. Ring a Human gives your software a tool call. Each call is a one-off task with its own context, picked up by whoever's available, with structured results your agent can act on.
Get an API key in ten seconds, or paste the setup prompt into your agent.