IDLE, where send_message can resume it.
start_conversation
Starts a conversation with the patient’s health concern and current physical region.
Confirm the patient’s current location before calling. Read supported region codes from the live
start_conversation tool description. To resume an existing thread, use send_message with its conversation ID.
list_conversations
Lists the account’s conversations, including their id, status, region, activity, and visit counts.
The result includes
conversations, total, and hasMore. When more results exist, it includes nextCursor and nextPageInstructions.
Example response
get_conversation
Reads current status, region, messages, provider visit details, past visits, and any payment gate.
pastVisits[].hasNotes indicates which visits have notes. Reading the conversation with messages also satisfies the read-first requirement for a later send_message.
Visit payment gate
AtPAYMENT_REQUIRED, the conversation result includes a paymentGate with a summary and paymentUrl. Relay the summary and offer that Stripe page for the patient’s approval. The page collects any missing visit identity details and asks the patient to approve a temporary hold; there is no card setup. The hold is captured only if a doctor joins and released otherwise. After approval, the conversation moves to MATCHING.
cancel_request
Stops a request in TRIAGING, MATCHING, or PAYMENT_REQUIRED and returns the conversation to IDLE. It does not end the thread. A matching request cancellation releases the visit hold. A request cannot be canceled after a provider joins.
The result includes success, conversationId, previousStatus, newStatus, userMessage, and note.
Example response
wait_for_reply
Waits for a triage reply, provider connection, or provider message. It is resumable: if the result has stillWaiting: true, call it again with the same conversation ID. Use afterMessageId to wait beyond a reply already handled.
Connector hosts support about 55 seconds per call. Agent runtimes default to 240 seconds and allow up to 600 seconds with
maxWaitSeconds; without a progress token or logging capability, the window is capped at 300 seconds. A wait in PAYMENT_REQUIRED returns the gate and payment link; IDLE and EMERGENCY have nothing pending to await.
With jobId, the call holds the turn on a care job and returns the job the moment it changes (the patient decided, the care team logged a step or asked a question, the job finished). It returns at once when the job already needs the patient (needs_input) or is finished. See Care Jobs.
Results can contain reply or replies, informationNeed, connected, statusChanged, paymentRequired, paymentGate, stillWaiting, and guidance fields. For a prescription event, use prescriptionOrderId with get_prescriptions.