A job goes from
approved to needs_input and back as often as the care team needs.
create_care_job
Creates a request for one patient. The patient reviews the action and verifies it on their device. Give the patient the returned approvalUrl; an agent must not open it. A request waits up to 30 days for the patient’s decision. Each approvalUrl is a signed link that works for about an hour, and every read with get_care_jobs returns a current one, so when the patient says the link expired, read the job again and hand them the new link.
Job details
For an office-directed action, include both provider identity (
npi or providerName) and location (city and state); add facility, address, or phone when known. Pass patientId for a dependent. Consent applies to that patient.
Claims jobs
dispute_claim and resolve_billing_issue work from the patient’s connected insurance records:
claimIdis a claim’sidfromget_health_recordswithsection: "claims", for the same patient. A claim that is not in that patient’s records returnsCLAIM_NOT_FOUND. If the patient has no connected insurance, offerconnect_insurancefirst.issueis what is wrong, in the patient’s own words.
JOB_TYPE_NOT_AVAILABLE with the list of available job types.
Example request
status: "pending_approval", approvalUrl, and the job identifier. After handing the link to the patient, call get_care_jobs with its jobId to read the decision and execution record.
get_care_jobs
Lists the account’s care jobs. Jobs waiting on the patient come first and carry needsInput: true, needs (required questions still open), and answerBy. Pending jobs carry a current approvalUrl. Pass optional jobId to return one job with its status and patient-visible audit trail.
An approved job includes grantId for the care team to execute under and approvedViaLabel for how the patient verified. The audit trail records care-team steps. The patient sees the same record, with controls to revoke their approval, on the care activity page of their Arlo portal.
For a job in needs_input, the single-job form also returns:
When the patient mentions Arlo, their care team, or an appointment, referral, or bill Arlo is handling, read
get_care_jobs first.
Answering the care team
After approval, the care team may need something from the patient: a member ID, a choice between times the office offered, a photo of a bill. The job then readsstatus: "needs_input".
- Read the open questions with
get_care_jobsand thejobId. - Ask the patient every open item in one exchange, using each question as written.
- Answer them all in one
respond_to_care_jobcall. Relay only what the patient said; never pick an option or write an answer for them.
respond_to_care_job
Each answer carries
askId and itemId from openItems, plus one of:
If you do not hold the file, give the patient the job’s
portalUrl; uploading there is the normal path for photos.
answered, alreadyClosed (items someone else answered first, or questions that closed), rejected (each with an error to fix), and stillNeeded. status returns to approved once every required item is answered.
Learning about changes
updateson any result. When something happened on a care job since your last Arlo tool call (the care team asked a question, a job finished), your next tool result carriesupdates[]:event,jobId,askIdwhere it applies, a one-linesummary, andagentInstructions. Updates are delivered once. There is no tool to poll for them; the job itself stays the source of truth.wait_for_replywithjobId. Holds the turn until the job changes, returns at once when the job already needs the patient or is finished, and returnsstillWaitingon timeout.- Webhooks. Agent runtimes with a registered webhook are woken on every decision, care-team step, question, and completion. See Webhook Tools for the
care_job_*event names.