DevelopersChanges data

schedule_callback

API reference — one of the tools an AI assistant can call on an Avrosh account.

What it does

Write down that this business will ring somebody back. It does NOT place the call - a sweep does that when the time comes - and it does not promise the customer anything by itself. Say who asked: 'customer' if they asked to be rung, 'us' if we offered, because the two are owed differently. If that number is on the do-not-call list the answer comes back scheduled:false and NOTHING is written; say so plainly rather than telling anyone they will be called. Scheduling a second time for the same number moves the existing promise instead of creating a second one, so nobody ends up with two phones ringing.

This is the exact text the model reads before deciding to call.

Parameters

business_idstringrequired

The id returned by list_businesses.

e164stringrequired

Full international form, e.g. +6281234567890.

asked_bystringrequired

'customer' = they asked us to ring. 'us' = we offered.

one of: customer · us

due_atstringrequired

When to ring, ISO 8601 with an offset.

namestringoptional

Who to ask for.

reasonstringoptional

What the call is about.

they_saidstringoptional

The customer's own words, verbatim. Never a summary.

Request

curl -X POST https://us.avrosh.com/mcp \
  -H "Authorization: Bearer $AVROSH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"schedule_callback","arguments":{"business_id":"926135ac-487d-4367-8bad-25397d0d4b87","e164":"+6281234567890","asked_by":"customer","due_at":"2026-08-20T09:00:00+08:00","name":"Andi","reason":"wants to move the appointment"}}}'

Response

The result arrives as an MCP content block; the JSON below is what the text field parses to.

{
  "scheduled": true,
  "id": "cb_2…",
  "movedExisting": false
}

Connecting

Paste the URL into your assistant and log in. Avrosh implements OAuth 2.1, so an MCP client discovers the authorisation server, registers itself, and opens a browser asking you to sign in here. That is the whole setup: nothing to copy, no key to keep, and nothing to rotate later.

https://us.avrosh.com/mcp

For something with no browser to log in with — a cron job, a script, an automation platform — there is a second door: a bearer key made in the dashboard under Docs, shown once because only its hash is stored, and revocable at any time.

curl https://us.avrosh.com/mcp \
  -H "Authorization: Bearer $AVROSH_KEY"

Either way the boundary is the same one: an assistant reaches every business on the account it signed in to, and no others. There are no scopes to configure and nothing to switch on — what bounds it is whose account it is, enforced in the database rather than by a permission anybody sets.