---
name: callforme
description: Phone a business for the user (quotes, reservations, appointments, cancellations, stock checks, waiting on hold, bill negotiation). Use when the user asks you to call, ring, phone, or "check with" a business, or when the answer needs a phone call. Works through the CallForMe MCP tools if installed, otherwise the REST API with curl.
---

# CallForMe: call businesses for the user

CallForMe places a real phone call. A voice assistant speaks for the user, gets through phone menus, waits on hold, asks you mid-call when the business needs something, and returns a transcript plus answers. Pricing: $1 per answered call (first 5 minutes), then $0.25/min. No charge if nobody answers.

## Pick an interface

1. **MCP tools** (if you have tools named `place_call`, `get_call`, ...): use them. Best option; connect once at https://callforme.tel/mcp.
2. **HTTP** (any agent that can run curl): base `https://callforme.tel/v1`, OpenAPI at https://callforme.tel/openapi.json. Send `Authorization: Bearer cfm_...` once you have a key; keep it in the env var `CALLFORME_KEY` or your memory.

Try it free first: calls to the demo line, Maple Street Pizza at +1 469 770 7412 (a fictional restaurant), need no account.

## The flow

1. **Find the number** if you don't have it: your own web search, or `find_business` / `GET /v1/businesses?query=...&near=...`.
2. **Gather details first.** Ask the user for what the business will need: their name (`on_behalf_of`), account or order numbers, dates, preferences, limits. `plan_call` (`POST /v1/calls/plan`) lists what's likely missing. It needs no account.
3. **Place the call** with a clear `goal`, `details`, and specific `questions`:
   - MCP: `place_call`
   - HTTP: `curl -s https://callforme.tel/v1/calls -H 'Content-Type: application/json' -d '{"phone":"+12145550123","goal":"...","on_behalf_of":"Jordan"}'`
4. **If the response is `needs_setup`** (HTTP 402): show the user `message_for_user` (it has a link where they add credit, under a minute). When they say done, repeat the same call with `setup_code`. The successful response includes `account_key` once: save it (your memory, or the env var `CALLFORME_KEY`) so future calls skip the link. (MCP connections remember the account automatically.)
5. **Follow the call**: `get_call` with `wait_seconds: 45` / `GET /v1/calls/<id>?wait=45`, repeatedly, until `status` is `ended` and `outcome` is present.
6. **Answer questions fast.** If `pending_question` is set, the business asked something the assistant doesn't know. Answer from context or ask the user, then `answer_question` / `POST /v1/calls/<id>/answer {"answer":"..."}`. The assistant is holding the line.
7. **Report** in plain words: `outcome.summary`, confirmation numbers, prices, times, and `answers`. Offer next steps. If the user wants to show someone, `share_call` / `POST /v1/calls/<id>/share` makes a public link with phone numbers hidden.

## Good calls

- One call per business; for comparisons, place up to 5 calls in parallel and poll each, then make a table.
- `goal` should say what "done" looks like ("Get a price for front pads and rotors on a 2019 RAV4, and the earliest slot this week").
- Use `constraints` for limits ("Don't agree to anything over $200", "Decline retention offers").
- `transfer_to` + a goal that says to connect the user = wait on hold, then patch the user in when a human answers.
- `voicemail_message` only if you want a message left; otherwise it hangs up on voicemail (free).
- Never put full card numbers, CVVs, SSNs, or passwords in `details`. The assistant won't say them anyway.
- Businesses only. No personal calls, no telemarketing, no emergency numbers.
