Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Healthie

Scalekit connector
Open markdown

The Healthie connector lets your AI agent act in each user's Healthie account. Each user connects their own Healthie API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 44 tools.

Tools
44
What they doRead · write · destructive
29 · 13 · 229 read13 write2 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Healthie connection

    In AgentKit > Connections, create a Healthie connection. The name you give it is the connection_name your code passes. See Configure connections.

    Console steps with screenshots

    Healthie connections use a Healthie API key. Each key belongs to one Healthie provider or staff user, and every tool call acts as that user, with that user’s permissions. Each connected account stores the key and the Healthie environment it was issued for.

    1. Create a Healthie API key

      Sign in to Healthie as the user the agent should act as, and go to Settings > Developer > API Key to create a key. API access is an add-on for Healthie’s Group and Enterprise plans.

      Keys are tied to one environment: a production key works only against Production, and a sandbox key only against Sandbox.

    2. Create the connection

      In the Scalekit dashboard, go to AgentKit > Connections > Create Connection, find Healthie and click Create. The connection name is the connection_name your code passes.

    3. Add a connected account

      To test, open the connection, click the Connected Accounts tab > Add Account, and fill in:

      • The user’s identifier: your app’s ID for the user, such as user_123.
      • Environment: Production (api.gethealthie.com) or Sandbox (staging) (staging-api.gethealthie.com), matching the key.
      • API Key: the key only, without the word Basic.

      In production, each user opens the authorization link and enters the same fields there.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'healthie'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Healthie:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'healthie_get_current_user',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Healthie credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • healthie_get_appointmentGet one Healthie appointment by ID.Read-only

    Get Appointment

    Get one Healthie appointment by ID. Returns its date, start and end, length, contact type, status, confirmation flags, location, notes, video links, appointment type, provider, client and attendees, recurrence, cancellation reason, and the attached chart note and intake form IDs. Use this when you already have the appointment ID; use healthie_list_appointments to find it. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    appointment_idstringrequired
    Healthie ID of the appointment. Example: "9900".
    include_deletedboolean
    Set true to return the appointment even if it was deleted.
  • healthie_get_appointment_typeGet one Healthie appointment type by ID.Read-only

    Get Appointment Type

    Get one Healthie appointment type by ID. Returns its id, name, length, available contact types, booking and waitlist flags, pricing, client-facing name and description, and its no-availability message. Use this to check an appointment type's length and allowed contact types before booking; use healthie_list_appointment_types to find the ID. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    appointment_type_idstringrequired
    Healthie ID of the appointment type. Example: "1128". Find it with healthie_list_appointment_types.
  • healthie_get_billing_itemGet one Healthie billing item (payment or charge) by ID.Read-only

    Get Billing Item

    Get one Healthie billing item (payment or charge) by ID. Returns its amount, currency, state, payment method and card details, description, failure reason, refund details, payer, recipient, provider, packages and timestamps. Use this when you have a billing item ID from healthie_list_billing_items. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    billing_item_idstringrequired
    Healthie ID of the billing item. Example: "8888".
  • healthie_get_clientGet one Healthie client (patient) by ID.Read-only

    Get Client

    Get one Healthie client (patient) by ID. Returns the client's demographics, contact details, address, primary provider and care team, group, tags, quick notes, metadata, default billing type and insurance policies; user is null when no client has that ID or the key cannot see it. Use this when you already have the client ID; use healthie_search_clients to find it, and healthie_list_client_policies for full policy details. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    client_idstringrequired
    Healthie ID of the client (patient). Example: "12345". Find it with healthie_search_clients.
  • healthie_get_conversationGet one Healthie chat conversation by ID, without its messages.Read-only

    Get Conversation

    Get one Healthie chat conversation by ID, without its messages. Returns the conversation's id, name, category, client, owner, members, member count, last message preview, closed date and timestamps. Use this to see who is in a conversation; use healthie_list_messages to read its messages. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    conversation_idstringrequired
    Healthie ID of the conversation. Example: "5555". Find it with healthie_list_conversations.
  • healthie_get_current_userGet the Healthie user the API key belongs to.Read-only

    Get Current User

    Get the Healthie user the API key belongs to. Returns the user's id, names, email, time zone, NPI, qualifications, whether they are an active provider, and their organization. Use this to find your own provider ID or check which account the connection uses; use healthie_list_providers for other team members. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    This tool takes no inputs.

  • healthie_get_filled_formGet one filled-out form or chart note (form answer group) with its answers.Read-only

    Get Filled Form

    Get one filled-out form or chart note (form answer group) with its answers. Returns the form's id, name, finished and locked flags, chart note status, template, client, filler, linked appointment and each answer's custom_module_id, label, answer and displayed answer. Use this to read a chart note or intake form; use healthie_list_chart_notes or healthie_list_filled_forms to find the ID. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    filled_form_idstringrequired
    Healthie ID of the filled form (form answer group). Example: "1234".
  • healthie_get_form_templateGet one Healthie form template with its questions.Read-only

    Get Form Template

    Get one Healthie form template with its questions. Returns the template's id, name and charting flag, and each question's id (custom_module_id), label, sublabel, question type (mod_type), options, required flag and position. Use this before healthie_create_filled_form to learn which custom_module_id answers each question; use healthie_list_form_templates to find the template. GraphQL errors return HTTP 200 with an errors array, so check it on every response.

    Inputs

    form_template_idstringrequired
    Healthie ID of the form template (custom_module_form_id). Example: "100".