Skip to main content

Overview

Onboarding tools manage user profiles and patient information required before care. The typical funnel is:
  1. get_user_profile — check onboarding state and the computed nextStep
  2. start_onboarding — open the interactive setup widget (preferred on widget-capable hosts)
  3. update_patient_info — save demographics and medical history (data only)
  4. accept_terms — record the patient’s explicit ToS/Privacy consent and complete onboarding

start_onboarding

Open the interactive Arlo onboarding widget. It walks the user through everything needed before care: importing their health records (nationwide TEFCA search or their insurer/provider portal) or entering details manually, reviewing demographics, accepting the Terms of Service, and saving a payment method.

When to call

  • get_user_profile shows onboardingComplete: false, or nextStep is update_patient_info / accept_terms / create_payment_setup
  • A new user needs to finish setting up their account

Parameters

None required.

Behavior

On widget-capable hosts, the widget renders alongside the tool result and drives the profile, terms, and payment steps itself.
While the widget is open, do not duplicate its flow in text — don’t ask the user for profile fields, and don’t call update_patient_info / accept_terms / create_payment_setup yourself; the widget drives those. Tell the user to complete setup in the card and call get_user_profile afterwards to confirm completion.
On clients that can’t render widgets, the tool instead returns an onboardingUrl into the Arlo patient portal — send the user that link, then poll get_user_profile until onboardingComplete.
Call start_onboarding only while onboardingComplete is false. An already-onboarded user who wants to connect or change health records uses start_flexpa_link instead.

get_user_profile

Get the current user’s Arlo Health profile and patient information: account status and billing state, patient profiles (self and dependents), the computed onboarding funnel state, and a healthRecords block showing whether insurance health records are connected and how many records exist.

Parameters

None required.

Returns

Follow nextStep — it encodes the whole funnel, so you never need to re-derive what’s missing.

The healthRecords block

A pointer to the health records tools, not the data itself: When not connected, the block is { "connected": false, "message": ..., "howToConnect": ..., "nextStep": "start_flexpa_link" }.
Use healthRecords to decide whether calling get_health_records is worthwhile — it carries counts only, never the records themselves.

update_patient_info

Update patient information (demographics, contact, medical history). This is a data update only — it does not accept terms or complete onboarding. Once the required fields are filled, call accept_terms to finish.

Required Fields for Onboarding

Optional Fields

Medical History Fields

Example: Save Required Fields

Example: Update Medical History

State and province codes

US: two-letter state codes (CA, NY, TX, …) plus DC Canada (legacy accounts): ON, BC, AB, SK, MB, QC, NB, NS, PE, NL, YT, NT, NU
The profile province is the patient’s home address. Care licensing is based on where the patient is physically located when they start a conversation — that’s the separate region parameter on start_conversation. A patient whose home province isn’t a care region can still get care while they are in one, so don’t use province to decide whether care is available.

accept_terms

Record the patient’s acceptance of Arlo’s Terms of Service and Privacy Policy and complete onboarding (account status → ONBOARDED).
This is a distinct consent step, separate from update_patient_info. Call it only after the user has explicitly agreed to the Terms of Service and Privacy Policy.

Preconditions

All required profile fields must already be saved via update_patient_info: firstName, lastName, birthDate, gender, country, province (and phone for US patients). If any are missing, the tool returns onboardingIncomplete with the list — fill them, then call accept_terms again.

Parameters

None.

Returns