LINE OA Studio
One web app that runs a three-branch dental clinic's customer side: every LINE and Facebook chat, bookings, patient records, the shop and marketing, with an AI that answers customers and helps staff.
2½-minute tour of the real app on a demo database.
The clinic's patients reach it through LINE and Facebook Messenger: price questions, bookings, reschedules, aftercare. Answering all of that by hand, across separate apps and outside opening hours, didn't scale for three branches.
I built one dashboard that the staff log into every day. It has three workspaces — LINE, Facebook and patient records — and a branch switcher, so each branch keeps its own customers, chats and settings in its own database.
Inside LINE OA Studio

One inbox, the AI answers first
- LINE and Messenger messages arrive by webhook; signatures are checked before anything is stored.
- The AI writes a reply from the clinic's knowledge base: services, prices, promotions, hours, Facebook posts and past staff answers (retrieval over embeddings).
- Pain, price, booking and complaint questions are handed to a person; every admin gets an alert on their own LINE.
- When staff type a reply the AI pauses for that customer, with a one-tap "let the AI continue".
- The same person on LINE and Messenger is linked by phone and name; the side panel shows member number, points, next visit, tags and notes.
แชท LINE และ Messenger ในที่เดียว AI ตอบก่อน แจ้งเมื่อต้องให้คนตอบ

It learns from the team every day
- A morning job reads new chats and turns staff answers into knowledge, so the AI sounds like the team.
- When a person corrects the AI within 12 hours, an AI judge turns it into a lesson for next time.
- "Train the AI" inbox: questions the AI couldn't answer become new knowledge in one click.
- AI calls go to a local model on the clinic PC first (through a secure tunnel), then fall back to Gemini / Groq.
- A second check asks the model whether its answer is supported by clinic facts; if not, it hands over instead of guessing.

From a chat to a dentist's calendar
- Patients book inside LINE: service, branch, dentist and free time slots, with a ticket and Google Calendar link.
- Day view with a column per dentist, plus week and list views; drag to reschedule, blocked on days off.
- Reminders the day before, then aftercare messages and a review request after the visit; recalls after N months.
- One-tap confirm / arrived from the home screen; no-show rate tracked.

Customers, loyalty and the LINE shop
- Customer list with member numbers, tags, AI auto-tagging, CRM stage and score, Excel / Google Sheets export.
- Member points card drawn as a LINE Flex Message, with a canvas card designer (foil, patterns, fonts, stamps).
- Coupons and counter QR codes; claim limits, per-user limits and atomic redemption.
- Shop inside LINE: products with colour variants and service vouchers, PromptPay QR or bank transfer, two-step slip check.
- Rich-menu builder: 8 ready designs, edits the live LINE menu, publishes straight to LINE.

Ads measured in patients, not clicks
- Break-even calculator: budget → chats → bookings → visits → revenue and return on ad spend.
- AI Ad Pilot plans campaigns per post and creates them paused for the owner to approve.
- Ad guard checks every campaign's cost per chat and hook rate, and pauses ads that stop paying off.
- Ad results stored per ad per day, so reports cover months; a weekly report goes to the owners' LINE.
- Ad check for Thai medical-advertising law and Meta policy before anything runs.

"Paragon", the staff assistant
- Opens with a daily brief: chats waiting, today's appointments, orders to check, ad status per branch.
- Plain-Thai requests become real actions: today's bookings with a confirm button, find a customer, draft a promotion.
- Common requests are handled in code; anything else is rewritten into one known command, so it can only do what that staff member may do.
พิมพ์ภาษาไทยธรรมดา ระบบหาและทำงานให้ตามสิทธิ์ของผู้ใช้

Security and privacy
- Personal accounts, 2-step login (authenticator or LINE code), rate-limited sign-in, signed session cookies.
- Page-level roles for ~260 server actions; automated tests block any action without a permission.
- Patient records stay locked until the staff member re-enters their password; every opening is logged.
- Password vault stores ciphertext only (browser-side AES-GCM); encrypted daily backups; audit log with undo.
- Daily health check: token expiry, API version drift, LINE quota, DB size — alerts the owner on LINE.
Gallery











Stack
Screens and the video come from the real app connected to a separate demo database with invented patients. No real patient data is shown.