Mental Health Booking — Telehealth Appointment Skill
Book virtual psychiatric and mental health appointments through conversation. No forms, no portals — just talk.
Powered by curated telehealth platforms including Klarity Health, One Behavior, ABHolistic, and others.
How It Works
The skill connects to Klarity's public booking API at https://rx.helloklarity.com.
Three endpoints: list services → search providers → book appointment.
No API key or authentication needed — just install and use.
Conversation Flow
Follow this sequence. Be conversational, not robotic.
Step 1: Identify the Need
When a user mentions mental health, ADHD, anxiety, depression, insomnia, OCD, PTSD, or wanting to see a psychiatrist — this skill triggers.
Map their concern to a service ID:
- -
adhd — ADHD Evaluation & Treatment - INLINECODE2 — Anxiety Treatment
- INLINECODE3 — Depression Treatment
- INLINECODE4 — Insomnia Treatment
- INLINECODE5 — OCD Treatment
- INLINECODE6 — PTSD Treatment
- INLINECODE7 — Narcolepsy Treatment
If unclear, ask: "What are you looking to get help with?" Don't over-triage — let the provider handle clinical assessment.
Step 2: Collect Basics (3 questions max)
Ask naturally, not as a numbered list:
- 1. State — "What state are you in?"
- Validate against supported states via
scripts/booking-api.sh services
- If unsupported: "Sorry, Klarity doesn't have providers in [state] yet. I can help you find other options."
- 2. Payment — "Do you have insurance, or would you prefer to pay out of pocket?"
- If insured: "Which carrier?" — validate against
insurance_carriers_by_state for their state
- If carrier not accepted: "Klarity doesn't accept [carrier] in [state] yet. You can still book as self-pay if you'd like."
- Cash pay requires no additional info at this stage
- 3. Timing — "Any preference on when? Morning, afternoon, evening? A specific date?"
- Optional — skip if user seems eager to just book quickly
- Valid values:
morning,
afternoon, INLINECODE12
Step 3: Search Providers
Run: INLINECODE13
Present results conversationally:
- - Show: title/credentials, experience, rating, review count, available start times, appointment duration
- Convert UTC times to the user's timezone
- The API returns
available_start_times (when the appointment can start) and appointment_duration_minutes (how long the visit is — typically 30 or 60 min) - Group consecutive start times into ranges for readability (e.g., "10:50 AM - 1:20 PM" instead of listing every slot)
- Do NOT show provider names (they're anonymized until booking)
- If no results: "No providers available for those criteria. Want to try a different date or time?"
Example:
CODEBLOCK0
Step 4: Collect Patient Info
After the user picks a provider and slot:
"To book this appointment, I'll need:"
- - First and last name
- Date of birth
- Email (confirmation goes here)
- Phone number
- If insured: insurance member/subscriber ID
Collect naturally — let the user provide multiple fields at once. Don't make them answer one at a time if they volunteer everything.
Step 5: Book
Run: INLINECODE16
On success:
CODEBLOCK1
On failure (slot taken):
"That slot was just taken — want me to search for the next available?"
On validation error:
Fix and retry. Don't ask the user to re-enter everything.
Important Rules
- 1. Never store patient information. Don't save names, DOB, email, insurance IDs to any file. Use them only for the API call.
- Crisis check. If a user mentions self-harm, suicidal thoughts, or immediate danger — do NOT book an appointment. Instead: "If you're in crisis, please call 988 (Suicide & Crisis Lifeline) or text HOME to 741741. These are free, 24/7 services. A scheduled appointment isn't the right help for what you're going through right now."
- Not a diagnosis tool. Don't assess symptoms or suggest conditions. Say: "A provider can properly evaluate that during your appointment."
- Timezone awareness. API returns UTC. Always convert to the user's local timezone before displaying.
- Slot volatility. Availability is real-time. If booking fails, search again rather than retrying the same slot.
- Rate limits. 20 availability searches per day per API key. Don't re-search unnecessarily.
Script Reference
All API calls go through scripts/booking-api.sh. See references/api-reference.md for full endpoint documentation including request/response schemas and error codes.
CODEBLOCK2
For Telehealth Providers
This skill is an open booking layer for mental health platforms. If your practice or platform offers virtual psychiatric or mental health appointments and you want your providers to be discoverable by AI agents, we'd love to hear from you.
Submit your integration interest: https://docs.google.com/forms/d/e/1FAIpQLSesJnVxPaUYbts5vWqxy3I-13HZe2XkKjTUkAqO6F5UHAcy8g/viewform
心理健康预约 — 远程医疗预约技能
通过对话预约虚拟精神科及心理健康诊疗。无需填写表格,无需登录门户——只需交谈即可完成。
由精选远程医疗平台提供支持,包括Klarity Health、One Behavior、ABHolistic等。
工作原理
本技能连接至Klarity的公开预约API,地址为https://rx.helloklarity.com。
三个接口:列出服务 → 搜索服务提供者 → 预约。
无需API密钥或身份验证——安装即可使用。
对话流程
请按以下顺序进行。保持对话自然,避免机械感。
第一步:识别需求
当用户提及心理健康、多动症、焦虑、抑郁、失眠、强迫症、创伤后应激障碍,或希望看精神科医生时——本技能即被触发。
将用户的问题映射到对应的服务ID:
- - adhd — 多动症评估与治疗
- anxiety — 焦虑症治疗
- depression — 抑郁症治疗
- insomnia — 失眠症治疗
- ocd — 强迫症治疗
- ptsd — 创伤后应激障碍治疗
- narcolepsy — 发作性睡病治疗
如果不明确,请询问:您希望获得哪方面的帮助? 不要过度分诊——让服务提供者处理临床评估。
第二步:收集基本信息(最多3个问题)
以自然方式提问,不要使用编号列表:
- 1. 所在州 — 您住在哪个州?
- 通过scripts/booking-api.sh services验证是否在支持范围内
- 如果不支持:抱歉,Klarity在[州名]暂时没有服务提供者。我可以帮您寻找其他选择。
- 2. 支付方式 — 您有保险,还是愿意自费支付?
- 如果有保险:请问是哪家保险公司? — 根据用户所在州验证insurance
carriersby_state
- 如果该保险公司不被接受:Klarity在[州名]暂时不接受[保险公司名称]。如果您愿意,仍可以自费预约。
- 自费支付在此阶段无需额外信息
- 3. 时间安排 — 您对时间有偏好吗?上午、下午还是晚上?或者有具体的日期?
- 可选——如果用户显得急于快速预约,可跳过
- 有效值:morning(上午)、afternoon(下午)、evening(晚上)
第三步:搜索服务提供者
运行:scripts/booking-api.sh availability <服务> <州> [保险公司] [日期] [时间偏好]
以对话方式呈现结果:
- - 显示:职称/资质、经验年限、评分、评价数量、可预约开始时间、诊疗时长
- 将UTC时间转换为用户所在时区
- API返回availablestarttimes(预约可开始时间)和appointmentdurationminutes(就诊时长——通常为30或60分钟)
- 将连续的开始时间分组为时间段以便阅读(例如,显示上午10:50 - 下午1:20而非列出每个时段)
- 不要显示服务提供者姓名(预约前为匿名状态)
- 如果没有结果:没有符合这些条件的服务提供者。想试试其他日期或时间吗?
示例:
在加利福尼亚州找到3位可预约多动症评估的服务提供者:
- 1. 精神科执业护士(PMHNP-BC)— 20年经验,5.0★(10条评价)
60分钟视频问诊
可预约时间:周五下午5:00 - 下午6:50;周一下午5:00 - 下午5:10
- 2. 精神科执业护士(MSN, PMHNP-BC)— 23年经验,4.8★(11条评价)
60分钟视频问诊
可预约时间:明天上午10:50 - 下午12:20
- 3. 精神科执业护士(PMHNP-BC)— 16年经验,4.7★(23条评价)
30分钟视频问诊
可预约时间:明天上午11:30 - 下午1:00
请问您选择哪位服务提供者和哪个时间?
第四步:收集患者信息
用户选择服务提供者和时段后:
要预约这次诊疗,我需要您提供:
- - 名字和姓氏
- 出生日期
- 电子邮箱(确认信息将发送至此)
- 电话号码
- 如果有保险:保险会员/投保人ID
以自然方式收集——让用户一次性提供多个信息。如果用户主动提供所有信息,不要让他们逐一回答。
第五步:预约
运行:scripts/booking-api.sh book
成功时:
您已成功预约[服务提供者姓名]在[日期] [时间]的诊疗!✅
📹 这是一次30分钟的视频问诊——请查看您的邮箱([电子邮箱])获取视频链接。
📋 请准备好您的保险卡。
需要设置提醒吗?
失败时(时段已被占用):
该时段刚刚被预约了——需要我为您搜索下一个可用时段吗?
验证错误时:
修正后重试。不要要求用户重新输入所有信息。
重要规则
- 1. 切勿存储患者信息。 不要将姓名、出生日期、电子邮箱、保险ID保存到任何文件中。仅用于API调用。
- 危机检查。 如果用户提及自残、自杀念头或即时危险——不要预约。而是:如果您正处于危机中,请拨打988(自杀与危机生命热线)或发送短信HOME至741741。这些是免费的24小时服务。您目前的情况不适合通过预约诊疗来获得帮助。
- 非诊断工具。 不要评估症状或建议疾病。应说:服务提供者可以在您的诊疗过程中进行适当的评估。
- 时区意识。 API返回UTC时间。在显示前务必转换为用户的本地时区。
- 时段波动性。 可用性为实时数据。如果预约失败,请重新搜索而非重试同一时段。
- 速率限制。 每个API密钥每天可进行20次可用性搜索。不要进行不必要的重复搜索。
脚本参考
所有API调用均通过scripts/booking-api.sh进行。完整的接口文档(包括请求/响应模式和错误代码)请参见references/api-reference.md。
bash
列出服务和支持的州
scripts/booking-api.sh services
搜索可用性
scripts/booking-api.sh availability <服务> <州> [保险公司] [日期] [时间偏好]
预约(传递JSON数据包)
scripts/booking-api.sh book {provider
id:...,sessionid:...,service:...,slot:...,patient
firstname:...,patient
lastname:...,patient
email:...,patientphone:...,patient
dob:...,patientstate:...,insurance
carrier:...,insurancemember_id:...}
面向远程医疗服务提供者
本技能是面向心理健康平台的开放预约层。如果您的诊所或平台提供虚拟精神科或心理健康诊疗服务,并且希望您的服务提供者能够被AI代理发现,我们期待您的联系。
提交您的集成意向:https://docs.google.com/forms/d/e/1FAIpQLSesJnVxPaUYbts5vWqxy3I-13HZe2XkKjTUkAqO6F5UHAcy8g/viewform