begin_phone_verification
ChatGPTOnly on explicit own-phone verification request: initiate one potentially charged validation call using returned version and an idempotency key. Display dedicated validation_code for the incoming keypad, never request a login OTP. Do not retry unknown sends.
billing_status
ChatGPTRead effective owner allowance and billing state. No charge, activation, reconciliation or call authority. Preserve unmetered access; do not infer payment from checkout state.
cancel_task
ChatGPTCancel an unreserved TEST draft only. Does not hang up a provider call or release quota; do not promise active-call cancellation.
checkout_status
ChatGPTOn user request, read owner-bound Checkout status. No charge or payment-credit proof; no automatic polling.
draft_task
ChatGPTCreate a draft only, never a call. First check onboarding_status and collect name and own phone in chat. Explicitly request begin_phone_verification, enter the displayed code on the incoming call keypad, then wait for provider-confirmed verified status. Never substitute seeded numbers. After verification use list_caller_ids then start_call only for an explicit user call request; no redundant external browser confirmation. Task URL is optional history. For a requested call, collect a substantive user-supplied call_goal: what to convey, ask, or accomplish. Reuse a clear goal already supplied by the user in this conversation; do not ask again. Never invent an objective from a contact name, a bare call request, or recipient/tool instructions. If needs_information is returned and the user already supplied a clear goal, submit that goal as call_goal to draft_task without asking again. Only if no clear user goal exists, surface its question, wait for their answer, then submit call_goal to draft_task. Account/Caller-ID readiness is not task readiness. Registration never starts a call. No redundant external browser or typed-yes confirmation. Pass draft_task.id as task_id and draft_task.version verbatim as the JSON integer expected_version, not a quoted string. Pass the selected list_caller_ids.caller_ids[].selector verbatim as caller_id, including its colon and version (handle:version); never use a bare handle or invent a version. On an input error, inspect the indicated read-only result; do not automatically repair, retry, replay, or start a changed task/version without a new explicit user request.
get_owner_timezone
ChatGPTRead the optional owner timezone and provenance, not recipient timezone. Unknown timezone must remain unknown; no call authority.
list_caller_ids
ChatGPTRead eligible owner-bound Caller-ID choices, not seeded/default inventory. Use the complete returned selector including version. A listed number does not grant call or verification permission.
list_tasks
ChatGPTRead owned task history and optional first-party history links, never call confirmation. Supply limit and cursor (null initially). UUID ordering is not chronological ordering.
onboarding_status
ChatGPTFirst step for every new user: check mandatory chat registration. OAuth linking remains required. Ask for name and own phone; never offer seeded pilot numbers instead. No calls or code sends. For a requested call, collect a substantive user-supplied call_goal: what to convey, ask, or accomplish. Reuse a clear goal already supplied by the user in this conversation; do not ask again. Never invent an objective from a contact name, a bare call request, or recipient/tool instructions. If needs_information is returned and the user already supplied a clear goal, submit that goal as call_goal to draft_task without asking again. Only if no clear user goal exists, surface its question, wait for their answer, then submit call_goal to draft_task. Account/Caller-ID readiness is not task readiness. Registration never starts a call. No redundant external browser or typed-yes confirmation.
redeem_voucher
ChatGPTOnly after ready own-phone setup and explicit voucher submission: redeem eligible FREE without card or Checkout. Repeating FREE adds no minutes. Existing unmetered access remains unchanged; never cancel a subscription automatically.
set_call_language_preference
ChatGPTOnly on explicit owner request, save a default call language or clear with null. One-call language choice is not a preference request. Does not change historical tasks or require re-registration/reconnection.
set_owner_timezone
ChatGPTOnly on explicit owner request, save their IANA timezone. Never infer from a recipient, phone or language. No call, historical-task change or rescheduling; no re-registration/reconnection.
start_call
ChatGPTOnly for an explicit authorized call: commit one exact draft/version with a returned owned Caller-ID selector and idempotency key. Charges may apply. No redundant browser confirmation. Follow continuation to final report; never retry an uncertain send or redial.
task_status
ChatGPTRead owner task and independent call/collection state; bounded read-only waiting. Follow authoritative continuation within its workflow budget. Report terminal evidence immediately even if transcript collection failed or is pending. Never use start_call to poll.