Doraemon can search for real doctors, schedules, and health articles from a hospital network's public API β all triggered naturally from WhatsApp conversations.
When someone tells Doraemon they're sick or asks about doctors/hospitals, the health skill activates and:
- Maps symptoms to the right medical specialty
- Calls the hospital's JSON API to find real doctors with live schedules
- Presents results conversationally in WhatsApp
- Offers to walk through a mock appointment booking flow
The entire flow is API-driven β Doraemon never tells users to "check the website." It searches, parses, and presents results itself.
User: "batuk2 di bekasi"
β
βΌ
βββββββββββββββββββββββ
β OpenClaw Gateway β β Receives WhatsApp message
β (Claude Haiku 4.5) β
ββββββββββ¬βββββββββββββ
β Skill activated by symptom keywords
βΌ
βββββββββββββββββββββββ
β health-skill.md β β Loaded from ~/.openclaw/workspace/skills/health/SKILL.md
β (with partner ctx) β
ββββββββββ¬βββββββββββββ
β exec(curl) tool calls
βΌ
βββββββββββββββββββββββ
β Hospital JSON API β β Public endpoints, no auth
β (services.*.com) β
ββββββββββ¬βββββββββββββ
β Doctor data + schedules
βΌ
βββββββββββββββββββββββ
β Formatted response β β Doctor name, clinic, schedule, slots
β sent via WhatsApp β
βββββββββββββββββββββββ
The skill markdown contains:
- Symptom β specialty mapping table
- API endpoint documentation with curl examples
- Response parsing instructions
- Appointment booking flow (mock only)
- Emergency detection keywords
- Partner context placeholder (injected at deploy time)
The source file is brand-agnostic β it uses placeholders like [PARTNER_API_BASE] and [PARTNER_CALL_CENTER].
Contains all hospital-specific data:
- Partner info: name, domain, call center, WhatsApp number
- API endpoints: doctor search, specialities, clinics, articles
- Symptom β specialty keyword mapping
- Clinic reference IDs for city-based filtering
This file is gitignored. Use health.json.example as a template.
At deploy time, this script:
- Reads the partner JSON config
- Replaces all
[PARTNER_*]placeholders in the skill file - Injects a
<!-- PARTNER_CONTEXT_START -->block with clinic directory, API reference, etc.
The source skill file stays clean β only the deployed copy gets partner data.
Deploys skills to the OpenClaw runtime:
- Copies skill source to a temp backup
- Runs partner context injection on the source
- Syncs the injected version to
~/.openclaw/workspace/skills/health/SKILL.md - Restores the original brand-agnostic source from backup
Run from the doraemon/ directory:
bash openclaw/sync.sh- Copy
openclaw/partners/health.json.exampletoopenclaw/partners/health.json - Fill in your hospital's API base URL, contact info, and clinic data
- Map your hospital's clinic branches to city names with their
ref_idvalues - Run
bash openclaw/sync.shfrom thedoraemon/directory - Test by sending a symptom message via WhatsApp
The skill activates on Indonesian health-related words:
- Symptoms: sakit, batuk, flu, demam, pusing, mual, pilek, diare, migrain, vertigo, maag, etc.
- Medical: dokter, rumah sakit, hospital, jadwal, spesialis, obat, kesehatan
- Booking: buat janji, booking, appointment, daftar
- Appointment booking is mock-only (generates fake booking ID, always shows call center disclaimer)
- The
web_searchtool doesn't work (missing Brave API key) β all queries useexec(curl)directly - API data depends on the hospital partner keeping their public endpoints available