# Manasulo Maata — V30.7.0

Developer & Support Guide

https://manasulo.learnwithvedha.com/developer?lang=en

## Categories and tasks

### Get started

- [Welcome to the documentation](https://manasulo.learnwithvedha.com/developer?lang=en#overview)
- [V30.7 call alerts and paid group talks](https://manasulo.learnwithvedha.com/developer?lang=en#v307-listener-alerts-groups)
- [Architecture & source map](https://manasulo.learnwithvedha.com/developer?lang=en#architecture)
- [Local setup](https://manasulo.learnwithvedha.com/developer?lang=en#setup)
- [App screenshots & journey guide](https://manasulo.learnwithvedha.com/developer?lang=en#screens)

### Member

- [Member overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-member)
- [Create a member account](https://manasulo.learnwithvedha.com/developer?lang=en#member-register)
- [Sign in and recover a password](https://manasulo.learnwithvedha.com/developer?lang=en#member-login)
- [Add or change your nickname](https://manasulo.learnwithvedha.com/developer?lang=en#member-nickname)
- [Profile and account menu](https://manasulo.learnwithvedha.com/developer?lang=en#member-profile)
- [Recharge Talk Balance](https://manasulo.learnwithvedha.com/developer?lang=en#member-wallet)
- [Use your introductory free calls](https://manasulo.learnwithvedha.com/developer?lang=en#member-free-calls)
- [Talk to a normal listener](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-listener)
- [Book a doctor appointment](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-doctor)
- [Book a lawyer](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-lawyer)
- [Book a pandit](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-pandit)
- [Book a Jyothishya specialist](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-jyothishya)
- [Book a purohit](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-purohit)
- [Book other specialists](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-other)
- [Use Consult now](https://manasulo.learnwithvedha.com/developer?lang=en#member-consult-now)
- [Join Celebrity Talks](https://manasulo.learnwithvedha.com/developer?lang=en#member-celebrity)
- [Create or join a private room](https://manasulo.learnwithvedha.com/developer?lang=en#member-private-rooms)
- [Find My bookings](https://manasulo.learnwithvedha.com/developer?lang=en#member-bookings)
- [Join a scheduled consultation](https://manasulo.learnwithvedha.com/developer?lang=en#member-join)
- [Enable and read notifications](https://manasulo.learnwithvedha.com/developer?lang=en#member-notifications)
- [Download the latest prescription](https://manasulo.learnwithvedha.com/developer?lang=en#member-prescriptions)
- [Check payment status](https://manasulo.learnwithvedha.com/developer?lang=en#member-payments)
- [Understand refunds and returned balance](https://manasulo.learnwithvedha.com/developer?lang=en#member-refunds)
- [Get help and track a ticket](https://manasulo.learnwithvedha.com/developer?lang=en#member-support)

### Normal listener

- [Normal listener overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-listener)
- [Register as a listener](https://manasulo.learnwithvedha.com/developer?lang=en#listener-register)
- [Track approval and corrections](https://manasulo.learnwithvedha.com/developer?lang=en#listener-approval)
- [Enable skills for calls](https://manasulo.learnwithvedha.com/developer?lang=en#listener-availability)
- [Accept and complete a voice call](https://manasulo.learnwithvedha.com/developer?lang=en#listener-requests)
- [Earnings and withdrawal](https://manasulo.learnwithvedha.com/developer?lang=en#listener-earnings)
- [Add and manage approved skills](https://manasulo.learnwithvedha.com/developer?lang=en#listener-skills)
- [Alerts and service updates](https://manasulo.learnwithvedha.com/developer?lang=en#listener-notifications)
- [Get help as a listener](https://manasulo.learnwithvedha.com/developer?lang=en#listener-support)

### Specialist listener

- [Specialist listener overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-specialist)

### Doctor

- [Doctor overview](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-overview)
- [Register as a doctor](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-register)
- [Add your practice address and PIN](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-address)
- [Documents, review and approval](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-approval)
- [Set up clinics and affiliations](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-clinics)
- [Set voice, video and clinic prices](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-prices)
- [Weekly availability and breaks](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-weekly-hours)
- [Block leave dates and unavailable time](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-leave)
- [Generate and review appointment slots](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-generate-slots)
- [Override an individual slot price](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-price-override)
- [Publish Consult now hours](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-consult-now)
- [Start and end the correct consultation](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-start-consultation)
- [Chat and attach consultation documents](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-documents)
- [Write and send a prescription](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-prescription)
- [Edit a sent prescription](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-prescription-edit)
- [Doctor earnings and payout](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-earnings)

### Lawyer / legal advisor

- [Lawyer / legal advisor overview](https://manasulo.learnwithvedha.com/developer?lang=en#legal-overview)
- [Registration and skill approval](https://manasulo.learnwithvedha.com/developer?lang=en#legal-registration)
- [Publish services and prices](https://manasulo.learnwithvedha.com/developer?lang=en#legal-services)
- [Consult now hours and fees](https://manasulo.learnwithvedha.com/developer?lang=en#legal-consult-now)
- [Calls, documents and completion](https://manasulo.learnwithvedha.com/developer?lang=en#legal-consultation)

### Pandit

- [Pandit overview](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-overview)
- [Registration and skill approval](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-registration)
- [Publish services and prices](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-services)
- [Consult now hours and fees](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-consult-now)
- [Calls, documents and completion](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-consultation)

### Purohit

- [Purohit overview](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-overview)
- [Registration and skill approval](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-registration)
- [Publish services and prices](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-services)
- [Consult now hours and fees](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-consult-now)
- [Calls, documents and completion](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-consultation)

### Jyothishya specialist

- [Jyothishya specialist overview](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-overview)
- [Registration and skill approval](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-registration)
- [Publish services and prices](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-services)
- [Consult now hours and fees](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-consult-now)
- [Calls, documents and completion](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-consultation)

### Traditional healer

- [Traditional healer overview](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-overview)
- [Registration and skill approval](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-registration)
- [Publish services and prices](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-services)
- [Consult now hours and fees](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-consult-now)
- [Calls, documents and completion](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-consultation)

### Celebrity / speaker

- [Celebrity / speaker overview](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity-role-overview)
- [Create a scheduled talk](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity-publish)
- [Run fan turns and end a talk](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity-stage)

### Clinic / hospital team

- [Clinic / hospital overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-clinic)
- [Register a clinic or hospital](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-register)
- [Branches and visiting addresses](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-branches)
- [Authorise a clinic assistant](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-assistants)
- [Invite doctors and prepare applications](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-doctors)
- [Publish hours for multiple doctors](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-schedule)
- [Mark doctors present and ready](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-readiness)
- [Check in, start and complete visits](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-appointments)

### Recruiter Admin

- [Recruiter Admin overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-recruiter)
- [Share referral links](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-referrals)
- [View your recruited team](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-team)
- [Commissions and withdrawals](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-commissions)
- [Help your team obtain support](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-support)

### Support Agent

- [Support Agent overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-support)
- [Receive a Support invitation](https://manasulo.learnwithvedha.com/developer?lang=en#support-invitation)
- [Sign in to the Support workspace](https://manasulo.learnwithvedha.com/developer?lang=en#support-sign-in)
- [Where to take support training](https://manasulo.learnwithvedha.com/developer?lang=en#support-academy-entry)

### Support Lead

- [Support Lead overview](https://manasulo.learnwithvedha.com/developer?lang=en#support-lead-overview)

### Main Admin

- [Main Admin overview](https://manasulo.learnwithvedha.com/developer?lang=en#journey-admin)
- [Give final application approval](https://manasulo.learnwithvedha.com/developer?lang=en#admin-approvals)
- [People and workspace access](https://manasulo.learnwithvedha.com/developer?lang=en#admin-people)
- [Review earnings and payouts](https://manasulo.learnwithvedha.com/developer?lang=en#admin-payouts)
- [Invite and manage support staff](https://manasulo.learnwithvedha.com/developer?lang=en#admin-support-team)
- [Deploy a verified project release](https://manasulo.learnwithvedha.com/developer?lang=en#admin-releases)
- [Private reports and CSV exports](https://manasulo.learnwithvedha.com/developer?lang=en#admin-reporting)

### Service reference

- [Accounts, login & nicknames](https://manasulo.learnwithvedha.com/developer?lang=en#accounts)
- [Roles, approvals & My skills](https://manasulo.learnwithvedha.com/developer?lang=en#roles)
- [My bookings & joining](https://manasulo.learnwithvedha.com/developer?lang=en#bookings)
- [Doctor availability & prices](https://manasulo.learnwithvedha.com/developer?lang=en#availability)
- [Clinics & consultation completion](https://manasulo.learnwithvedha.com/developer?lang=en#clinic)
- [Prescriptions & revisions](https://manasulo.learnwithvedha.com/developer?lang=en#prescriptions)
- [Specialist chat & attachments](https://manasulo.learnwithvedha.com/developer?lang=en#documents)
- [Listener calls, video & free calls](https://manasulo.learnwithvedha.com/developer?lang=en#calls)
- [Celebrity Talks & fan turns](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity)
- [Private rooms](https://manasulo.learnwithvedha.com/developer?lang=en#private-rooms)
- [Talk Balance, payments & refunds](https://manasulo.learnwithvedha.com/developer?lang=en#payments)
- [Earnings, referrals & administration](https://manasulo.learnwithvedha.com/developer?lang=en#earnings)
- [Notifications & device setup](https://manasulo.learnwithvedha.com/developer?lang=en#notifications)
- [Legal & other specialist services](https://manasulo.learnwithvedha.com/developer?lang=en#specialists)
- [Consult now: open specialist hours](https://manasulo.learnwithvedha.com/developer?lang=en#instant)

### Customer help

- [Errors & guided recovery](https://manasulo.learnwithvedha.com/developer?lang=en#errors)
- [Troubleshooting playbook](https://manasulo.learnwithvedha.com/developer?lang=en#troubleshooting)
- [Support tickets & agent handoff](https://manasulo.learnwithvedha.com/developer?lang=en#handoff)

### Engineering & deployment

- [Member-chat release lock](https://manasulo.learnwithvedha.com/developer?lang=en#chat-lock)
- [API contract & authentication](https://manasulo.learnwithvedha.com/developer?lang=en#api)
- [Workflow API examples](https://manasulo.learnwithvedha.com/developer?lang=en#api-examples)
- [Data model & migrations](https://manasulo.learnwithvedha.com/developer?lang=en#data)
- [Configuration & secrets](https://manasulo.learnwithvedha.com/developer?lang=en#configuration)
- [Webhooks & background jobs](https://manasulo.learnwithvedha.com/developer?lang=en#webhooks)
- [Testing & release validation](https://manasulo.learnwithvedha.com/developer?lang=en#testing)
- [Deployment & recovery](https://manasulo.learnwithvedha.com/developer?lang=en#deployment)
- [Privacy, security & maintenance](https://manasulo.learnwithvedha.com/developer?lang=en#privacy)
- [PWA, mobile UI & Android status](https://manasulo.learnwithvedha.com/developer?lang=en#mobile)
- [Product review & next improvements](https://manasulo.learnwithvedha.com/developer?lang=en#product-review)

# Get started

## Welcome to the documentation

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#overview)

# Build, operate and support with confidence
This is the public developer and support guide for Manasulo Maata V30.7.0. Use the workflow guides to help a customer, the engineering reference to maintain the application, and the troubleshooting guides to investigate a failure.
The application connects members with listeners, doctors, legal advisors and other approved professionals. Celebrity Talks and private rooms provide scheduled group experiences. Each role sees its own account menu and permitted actions.
## Choose your starting point
- Customers: Accounts, My bookings, Calls, Prescriptions and Troubleshooting.
- Providers: My skills, Doctor availability, Clinic appointments and Earnings.
- Support agents: Error handling, Troubleshooting and Support handoff.
- Developers: Architecture, Setup, API reference, Data model, Testing and Deployment.
## Release boundaries
This guide describes source behavior, not proof that a live payment, OTP or device push succeeded. Member-to-member chat is locked in this release. V30.7 includes native Android listener-alert source, but compilation, signing and phone tests remain outstanding; the existing APK is retained unchanged. See the V30.7 release topic above.
The APIs documented here are the application's authenticated internal contract. There is no public third-party developer registration, OAuth partner programme, API-key issuance or sandbox account service.
## Keeping the guide current
The portal ships with the application release. Its content lives in app/developer/content.ts; the API inventory is generated from source. Each topic lists the source files to inspect. Historic release notes may describe behavior superseded by this guide.

Source files: package.json, app/components/product-app.tsx, worker/index.ts

---

## V30.7 call alerts and paid group talks

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#v307-listener-alerts-groups)

# V30.7 release boundaries
These instructions supersede older notification/group-talk descriptions. Source is implemented, not deployed. Closed-app Android ringing requires Firebase configuration, a rebuilt signed APK and physical-phone validation. The APK retained in the package is the old build, not the new native alert code.
## Notifications and requests
Notifications shows Enabled on this device only when permission, subscription and server registration agree. Enable page beep/voice with a tap; the global listener layer covers Requests, Bookings and other pages. Browser suspension or closing prevents continuous page speech. Android pairing is a separate opt-in, lasts 30 days and uses visible call notifications. Silent, DND, offline, force-stop and battery restrictions may prevent alerts. It cannot guarantee endless ringing. Paired online specialist windows remain bookable within enabled working hours; pause availability when away. Clinic presence is unchanged.
Members can withdraw an unanswered request after two minutes of server time and choose another listener. Acceptance that happens first prevents withdrawal. Wallet reservations/free allowance are released; fixed-price refunds follow payment history. The directory starts at All languages; availability and access restrictions still apply.
## Paid listener group talks
Listener → Host Group Talks: choose the topic, description, IST schedule, duration, 2–50 member seats plus host, audio/video and a fixed seat price within the displayed limits. No host recharge. Members find listener and celebrity talks in the scrolling home strip and Group Talks page. Both have live, booked-participant group chat. Audience devices start off; raise a hand and receive host permission before choosing to enable microphone/camera. One-to-one normal-listener video and member-to-member chat remain locked.
Seats reserve Talk Balance. Cancellation before the scheduled start returns the reservation. Host cancellation, no-show or insufficient verified delivery also returns it. A cancelled/refunded seat cannot be booked again for the same event. Delivered seats earn 70% for the host, with the existing 5% eligible recruiter / 25% platform policy (otherwise platform keeps the unallocated 5%). Earnings have a 24-hour hold. Read the full release guide before deployment and review the stated business rules.
## Deployment
Apply pending migrations through 0037, preserve cron/payment/media webhooks and existing secrets, configure Web Push and Firebase securely, then complete staging/device tests. Do not paste service-account, signing or reporting secrets in chat. V30.6 Reports & Exports remains included. Deployment alone does not connect GPT or create a monitoring schedule.

Source files: START_HERE_V30_7.md, app/components/group-talk-ui.tsx, app/lib/group-talk-server.ts, app/lib/native-alert-server.ts, drizzle/0036_listener_call_alerts.sql, drizzle/0037_paid_listener_group_talks.sql

---

## Architecture & source map

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#architecture)

## Request flow
Browser / installed PWA → Cloudflare Worker → authenticated route → domain service → D1 database, R2 file storage or a configured external provider.
The React application uses Next-style routes through vinext and Vite. Cloudflare serves the built client assets. Hash routes such as /#/member/bookings select the signed-in dashboard page. The /developer route is public and does not require customer login.
## Main components
| Component | Responsibility |
| app/components/product-app.tsx | Authentication UI, dashboard shell, account menus, calls, action requests |
| app/components/release-features.tsx | Bookings, availability, prescriptions, skills and retained chat screens |
| app/api/actions/route.ts | Dashboard GET and JSON action dispatch |
| app/lib/* | Domain rules, authorization, settlement, notifications and integrations |
| drizzle/*.sql | Ordered D1 schema migrations |
| worker/index.ts | HTTP security headers, minute cron and hourly availability generation |
| public/ | Logo, service icons, fonts, PWA files and existing APK |
| tests/ and scripts/ | Runtime, security, build and browser verification |
## External systems
Supabase authenticates accounts and delivers configured OTPs. LiveKit provides media rooms. Cashfree handles payment orders and refunds. Web Push uses VAPID and the device's push service. Meta conversion events use the existing conversion integration. R2 stores private documents and images; the application authorizes file access.

Source files: worker/index.ts, vite.config.ts, db/index.ts, app/lib/release-v304.ts

---

## Local setup

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#setup)

## Prerequisites
Use the complete source package and Node.js 22.13 or later. Keep package-lock.json. Run commands in the folder containing package.json and wrangler.jsonc. Use an isolated local database for development; production binding names alone are not permission to test against production.
## Install and verify
```powershell
npm ci
npm test
npx tsc --noEmit
```
npm test builds the production assets first, then runs the Node test suite. A successful dependency install alone does not build the release.
## Local database and development
```powershell
npx wrangler d1 migrations apply manasulo-maata-prod --local --config .\wrangler.jsonc
npm run dev
```
The --local flag keeps this migration local. The development URL is printed by Vite. Configure local secrets privately using the project's environment examples. APP_MODE=demo is for isolated demos only; production must use APP_MODE=production. Tests use synthetic actors and in-memory SQLite, not real patient accounts.
## Build output
dist/client contains deployable assets; dist/server contains the Worker. Never hand-edit compiled files to fix an issue. Change the source and rebuild.

Source files: package.json, wrangler.jsonc, scripts/ui-preview.mjs, docs/ENVIRONMENT.example

---

## App screenshots & journey guide

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#screens)

## Follow the actual app screens
These screenshots are captured from the release React pages with demonstration accounts. They show the actual interface, not concept art. Names, appointments, qualifications, balances, dates and prescription text shown in them are examples, not live customer records or clinical instructions.
Use the English/Telugu switch for guide captions. The app controls retain their current language. Open an image at full size when reading a long registration or settings form.
## Doctor journey
Sign in → complete doctor registration and credential consent → wait for approval → set clinics, prices and weekly availability → create appointments → receive a confirmed booking → start the private consultation → write and send a prescription → edit and send a new revision when required. The related topic contains the focused screenshots for each part.
## Other journeys
Member screens cover profiles, listener calls, doctors, Consult now, bookings, documents, private rooms, celebrity talks, balance and support. Provider screens show skills and services. Recruiter/main-admin examples show their respective home, approval and support pages. No action on this public guide changes an account, makes a payment or joins a real call.
Refresh these screenshots with the capture script when the interface changes. Browser fixtures check layout and interaction; production OTP, push, payment and real-device calls require separate operational verification.

Source files: scripts/capture-guide-screens.mjs, tests/ui/fixtures.mjs, app/components/product-app.tsx, app/components/release-features.tsx

---

# Member

## Member overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-member)

## Your Member workspace
A Member account lets you choose approved listeners and specialists, book online or clinic consultations, attend Celebrity Talks and create invitation-only private rooms. Your profile uses a safe name or nickname; login contact details are not displayed as call identities.
## Find the right guide
Expand Member in the left menu. Each subtopic explains one task: registration, login, wallet recharge, booking a doctor or another professional, joining a call, receiving prescriptions or obtaining help. Select a topic to see its steps, expected result and recovery guidance. On a phone, use Documentation menu.
## Your daily starting point
Home shows essential services and upcoming/ready appointments. My bookings is the place to find your booked sessions. Updates stores service notices. The profile circle opens account options and Logout separately; the headset beside Notifications opens Help & Support.
## Current service boundaries
Normal-listener calls are voice-only, with two introductory five-minute calls for eligible members. Specialist and group video follow the selected service. Member-to-member chat remains locked. Read the displayed quote and booking status before payment or joining.

![Member · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-home.jpg)

Source files: app/components/product-app.tsx, app/lib/window-booking.ts, app/lib/upcoming-sessions.ts, app/lib/consultation-records.ts

---

## Create a member account

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-register)

## What this guide covers
Create your first account with a private login and a public nickname.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Member → Create account. Enter a name or nickname with at least two letters; do not use your phone number or email as the name.
2. Enter your mobile number and choose a password. Request the registration verification code.
3. Enter the SMS OTP sent to your phone and complete verification. Review the account notices before continuing.
## After completion
Your verified account opens the Member workspace. Future sign-ins use your mobile number and password.
## If something goes wrong
If this number already has an account, choose Sign in or password recovery. Repeating Create account will not create a second professional skill.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![New member registration: nickname, mobile and password before OTP — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-registration.jpg)

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx

---

## Sign in and recover a password

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-login)

## What this guide covers
Return to an existing account without repeating registration.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Choose Member → Sign in and enter your registered mobile number and password.
2. If the password is forgotten, open password recovery and verify your own mobile number through the displayed flow.
3. After a successful sign-in, complete a missing nickname if asked. Use Profile → Logout when deliberately changing accounts.
## After completion
A valid session can restore after refresh. The name prompt belongs to the authenticated account.
## If something goes wrong
Check the selected login workspace and the number. If a newer device signed in, the previous device may need to sign in again; do not share credentials.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member sign-in: the actual mobile and password form — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-sign-in.jpg)

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx

---

## Add or change your nickname

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-nickname)

## What this guide covers
Control the safe name other participants see in calls.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. After sign-in, complete the name prompt if your account has no safe name.
2. For later changes, open the profile circle → Profile. Enter a name with at least two letters.
3. Save and confirm the updated name appears in your account. A phone number or email is not a valid public nickname.
## After completion
Calls use your safe display name; a previously downloaded record may retain its original issued details.
## If something goes wrong
Keep the entered name when a save fails. Read the exact message, correct the field or restore connectivity, and retry.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · profile — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-profile.jpg)

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx

---

## Profile and account menu

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-profile)

## What this guide covers
Find account options without crowding the Home page.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Tap the profile circle at the top. This opens the menu; it does not log you out.
2. Scroll inside the menu to reach Profile, My bookings, Wallet, Prescriptions, Updates or the final options. Status refreshes keep the menu open at your position.
3. Use the separate Logout action when finished on a shared device. Additional approved responsibilities appear in their permitted workspace.
## After completion
The account menu remains the main route to detailed account functions. Home keeps essential service and upcoming-session actions.
## If something goes wrong
If an option is missing, check the signed-in account and approved role before opening a support ticket.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Open the profile menu to reach all account options — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-profile-menu.jpg)

![Member · profile — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-profile.jpg)

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts

---

## Recharge Talk Balance

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-wallet)

## What this guide covers
Add balance for eligible listener calls and private-room reservations.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Wallet / Talk Balance. Read the available balance and transaction history.
2. Choose a recharge amount and continue with Recharge with Cashfree. Complete the provider’s payment screen.
3. Return to Wallet and wait for the verified order result before trying again.
## After completion
A verified recharge creates a balance entry. Reserved money, used money and money returned are separate ledger events.
## If something goes wrong
If money left your bank but balance did not change, check the order status and send its reference to Support; do not pay twice.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · balance — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-balance.jpg)

Source files: app/lib/talk-balance.ts, app/lib/talk-balance-policy.ts, app/api/payments/webhook/route.ts, app/lib/providers.ts

---

## Use your introductory free calls

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-free-calls)

## What this guide covers
Eligible members receive two successfully connected five-minute normal-listener voice calls.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Read the welcome benefit on Home to check remaining free calls.
2. Choose a normal listener who is available and send a voice-call request. A zero Talk Balance does not block an eligible free call.
3. Wait for acceptance, allow the microphone and follow the five-minute call timer.
## After completion
Only a successfully connected introductory call counts. Failed requests do not consume a completed free call.
## If something goes wrong
This benefit does not cover specialists, celebrity seats or private rooms. If the displayed eligibility is wrong, send the call reference to Support.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-home.jpg)

![Member · listeners — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-listeners.jpg)

Source files: app/lib/free-normal-calls.ts, app/lib/timed-room-server.ts, app/lib/providers.ts, app/lib/service-access.ts

---

## Talk to a normal listener

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-listener)

## What this guide covers
Find an available listener and start an emotional-support voice call.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home → Listeners. Search by nickname, language or the available filters.
2. Review the compact listener row; open its details menu for more information. Check free eligibility or the displayed Talk Balance quote.
3. Request a voice call, wait for the listener, then enable the microphone. Use the visible timer and End action.
## After completion
A paid call settles connected usage and returns unused reserve according to the shown policy. Normal-listener video remains locked.
## If something goes wrong
If the listener becomes busy, choose another available listener. Check the existing request before submitting another payment or request.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · listeners — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-listeners.jpg)

![audio call — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-audio-call.jpg)

Source files: app/lib/free-normal-calls.ts, app/lib/timed-room-server.ts, app/lib/providers.ts, app/lib/service-access.ts, app/lib/talk-balance.ts, app/lib/talk-balance-policy.ts, app/api/payments/webhook/route.ts

---

## Book a doctor appointment

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-doctor)

## What this guide covers
Choose a specific doctor and an online or physical consultation that fits your needs.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home → Doctors. Search specialty, doctor or hospital name and use state, city, locality and PIN filters.
2. Choose online or clinic appointment type. Open the doctor details and available times; physical visits show the branch address.
3. Read the consultation notice, select the date, mode and quoted fee, then complete Cashfree payment.
4. Open My bookings. Join your own online appointment when ready, or attend the displayed clinic at the booked time.
## After completion
Only the paid appointment belongs to you. Sent prescriptions become available in Prescriptions for that consultation.
## If something goes wrong
No results can mean no published matching appointments. Clear filters or try other dates. Payment success does not let you join another patient’s slot.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · doctors — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-doctors.jpg)

![Member · bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-bookings.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/product-app.tsx, app/lib/window-booking.ts, app/lib/consultation-records.ts

---

## Book a lawyer

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-lawyer)

## What this guide covers
Find an approved professional through Lawyers and choose a published service.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home or the profile menu → Lawyers. Search the provider’s public name, language and available category filters.
2. Open the row’s details menu and read the qualification, service description, duration, available call modes and price.
3. Choose a published offering or currently ready Consult now option, accept the notices and complete the displayed payment.
4. Use My bookings and the ready-to-join notice for your own consultation. Chat & documents is available inside eligible specialist calls.
## After completion
The booking keeps the service and price you selected. Only approved treating doctors can issue medical prescriptions.
## If something goes wrong
An empty category means no matching available offering. Try another filter or time. Never send a second payment before checking an existing order.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Lawyer directory: review the actual member booking options — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-legal.jpg)

![Choose the service and call price — demonstration providers — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-legal.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Book a pandit

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-pandit)

## What this guide covers
Find an approved professional through Hindu Dharma Sandehalu → Jyothishya Pandit and choose a published service.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home or the profile menu → Hindu Dharma Sandehalu → Jyothishya Pandit. Search the provider’s public name, language and available category filters.
2. Open the row’s details menu and read the qualification, service description, duration, available call modes and price.
3. Choose a published offering or currently ready Consult now option, accept the notices and complete the displayed payment.
4. Use My bookings and the ready-to-join notice for your own consultation. Chat & documents is available inside eligible specialist calls.
## After completion
The booking keeps the service and price you selected. Only approved treating doctors can issue medical prescriptions.
## If something goes wrong
An empty category means no matching available offering. Try another filter or time. Never send a second payment before checking an existing order.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Jyothishya Pandit directory: member selection — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-jyotishya_pandit.jpg)

![Choose the service and call price — demonstration providers — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-jyotishya_pandit.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Book a Jyothishya specialist

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-jyothishya)

## What this guide covers
Find an approved professional through Hindu Dharma Sandehalu → Jyothishya Pandit and choose a published service.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home or the profile menu → Hindu Dharma Sandehalu → Jyothishya Pandit. Search the provider’s public name, language and available category filters.
2. Open the row’s details menu and read the qualification, service description, duration, available call modes and price.
3. Choose a published offering or currently ready Consult now option, accept the notices and complete the displayed payment.
4. Use My bookings and the ready-to-join notice for your own consultation. Chat & documents is available inside eligible specialist calls.
## After completion
The booking keeps the service and price you selected. Only approved treating doctors can issue medical prescriptions.
## If something goes wrong
An empty category means no matching available offering. Try another filter or time. Never send a second payment before checking an existing order.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Jyothishya Pandit directory: member selection — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-jyotishya_pandit.jpg)

![Choose the service and call price — demonstration providers — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-jyotishya_pandit.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Book a purohit

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-purohit)

## What this guide covers
Find an approved professional through Hindu Dharma Sandehalu → Purohit and choose a published service.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home or the profile menu → Hindu Dharma Sandehalu → Purohit. Search the provider’s public name, language and available category filters.
2. Open the row’s details menu and read the qualification, service description, duration, available call modes and price.
3. Choose a published offering or currently ready Consult now option, accept the notices and complete the displayed payment.
4. Use My bookings and the ready-to-join notice for your own consultation. Chat & documents is available inside eligible specialist calls.
## After completion
The booking keeps the service and price you selected. Only approved treating doctors can issue medical prescriptions.
## If something goes wrong
An empty category means no matching available offering. Try another filter or time. Never send a second payment before checking an existing order.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Purohit directory: member selection — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-purohit.jpg)

![Choose the service and call price — demonstration providers — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-purohit.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Book other specialists

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-book-other)

## What this guide covers
Find an approved professional through Other Professionals or the relevant Hindu Dharma category and choose a published service.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home or the profile menu → Other Professionals or the relevant Hindu Dharma category. Search the provider’s public name, language and available category filters.
2. Open the row’s details menu and read the qualification, service description, duration, available call modes and price.
3. Choose a published offering or currently ready Consult now option, accept the notices and complete the displayed payment.
4. Use My bookings and the ready-to-join notice for your own consultation. Chat & documents is available inside eligible specialist calls.
## After completion
The booking keeps the service and price you selected. Only approved treating doctors can issue medical prescriptions.
## If something goes wrong
An empty category means no matching available offering. Try another filter or time. Never send a second payment before checking an existing order.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Other professionals: member selection — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-other.jpg)

![Choose the service and call price — demonstration providers — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-other.jpg)

![Traditional services directory: member selection — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-boitha_vaidyudu.jpg)

![Choose the service and call price — demonstration providers — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-boitha_vaidyudu.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Use Consult now

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-consult-now)

## What this guide covers
Reserve a specialist who is currently ready within published working hours.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Home → Consult now. Search name, specialty, clinic/hospital or area/PIN and choose online or clinic mode.
2. Check Available now, duration and the selected doctor’s fee. Busy providers cannot accept another reservation.
3. Complete checkout within the displayed ten-minute reservation. Check My bookings after verified payment.
4. Join an online consultation when called. For physical Consult now, arrive within the displayed arrival/start deadline and ask the desk to check you in.
## After completion
The provider is busy for this reservation and returns available after completion when sufficient working time remains.
## If something goes wrong
Future working periods appear only when active and ready. For advance bookings use scheduled appointments. If a reservation expires, read its payment/refund state before retrying.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · consult now — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-consult-now.jpg)

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx, app/components/product-app.tsx, app/lib/window-booking.ts, app/lib/upcoming-sessions.ts, app/lib/consultation-records.ts

---

## Join Celebrity Talks

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-celebrity)

## What this guide covers
Book your own seat and follow the invitation when selected to speak.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Celebrity Talks, read the talk time, fee and rules, and complete the seat purchase.
2. Join that talk from My bookings. Audience listening and stage speaking have separate permissions.
3. When selected, accept before the invitation deadline. Enable microphone/camera as offered and review local preview.
4. Follow the countdown until your turn and remaining-time display during your turn. Return to the audience when the turn ends.
## After completion
Your selected turn belongs only to your paid seat and event. Participant names are privacy-safe.
## If something goes wrong
If an invitation expires, return to the talk and wait for the host. For blocked media use permission retry; do not repeatedly leave and purchase another seat.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · celebrity — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-celebrity.jpg)

![celebrity selected — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-celebrity-selected.jpg)

Source files: app/lib/community-server.ts, app/lib/celebrity-stage.ts, app/lib/celebrity-pricing.ts

---

## Create or join a private room

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-private-rooms)

## What this guide covers
Create an invitation-only audio/video group for up to ten people including the host.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Private rooms. To host, enter a meeting title, IST date/time, duration and mode. Review the maximum Talk Balance reserve.
2. Invite only intended members using the supported member-code/invitation flow. Keep private codes out of public posts.
3. As an invitee, open your invitation or join-code option. At meeting time, join your room and enable the required media.
4. Use the timer. The host ends the meeting with End; closing a browser is not the same as completing it.
## After completion
The host pays eligible connected room usage; invitees are not charged under the private-room policy. Unused reserve returns through settlement.
## If something goes wrong
For failed joining, check the invite, account, meeting time and ended status. An ended room cannot be reopened by reusing its code.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · private — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-private.jpg)

Source files: app/lib/community-server.ts, app/lib/talk-balance.ts, app/lib/timed-room-server.ts

---

## Find My bookings

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-bookings)

## What this guide covers
Find upcoming and ready sessions in one place.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open My bookings from the bottom bar or profile menu.
2. Check the provider, service, IST time and payment/status label. Upcoming or ready sessions also appear prominently on Home.
3. Open the matching booking for its Join, details or document actions.
## After completion
Only your own confirmed bookings grant joining access.
## If something goes wrong
If missing, confirm the signed-in account and payment status before opening Support with the order reference.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-bookings.jpg)

Source files: app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Join a scheduled consultation

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-join)

## What this guide covers
Enter the correct consultation when the provider is ready.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open the ready card or My bookings and confirm the date/time in IST.
2. Tap your appointment’s Join action. Permit microphone and, for video, camera; use retry if blocked.
3. Stay on the call screen and follow the countdown. Use End when finished.
## After completion
Completed or expired appointments no longer allow a new join.
## If something goes wrong
A grey or missing Join may mean the provider is not ready, payment is pending, or the appointment is over. Read the status and contact Support for an unexpected mismatch.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-bookings.jpg)

![doctor room — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-doctor-room.jpg)

Source files: app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/lib/free-normal-calls.ts, app/lib/timed-room-server.ts, app/lib/providers.ts, app/lib/service-access.ts

---

## Enable and read notifications

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-notifications)

## What this guide covers
Receive booking and service updates on this device.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Updates or the bell icon and read the saved in-app notifications.
2. Choose Enable on this device and allow browser notifications.
3. If already blocked, change site notification permission in the browser settings, then return and retry.
## After completion
Enabled push can appear in the background or on a locked phone when the device permits delivery. In-app Updates and bookings remain available.
## If something goes wrong
Push-service errors can require browser or Google Play services updates on Android. Missing server configuration needs Support. Check My bookings even if a reminder does not arrive.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · notifications — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-notifications.jpg)

Source files: app/lib/notification-server.ts, app/lib/upcoming-sessions.ts, public/sw.js, scripts/generate-web-push-keys.mjs

---

## Download the latest prescription

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-prescriptions)

## What this guide covers
Read the treating doctor’s sent prescription and later revisions.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Profile → Prescriptions / Prescriptions & documents and select the consultation.
2. Read the sent prescription and choose Download PDF. Check the reference, revision and issue time.
3. When the doctor sends an update, download again. Previously saved PDFs do not update automatically.
## After completion
The download uses the latest sent revision. Unsent doctor drafts are private.
## If something goes wrong
If no document is present, ask the doctor whether it was sent instead of saved as a draft. Do not attach clinical content to a general support ticket.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · prescriptions — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-prescriptions.jpg)

![Read or download the latest sent prescription — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-prescription-sent.jpg)

Source files: app/lib/consultation-records.ts, app/lib/prescription-pdf.ts, app/api/prescription/route.ts, drizzle/0024_prescription_revisions_chat_lock.sql

---

## Check payment status

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-payments)

## What this guide covers
Understand whether a payment has been verified for your booking.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Complete payment only from the app’s displayed order. Keep its reference.
2. Return to My bookings or Wallet and read the order/payment state. A redirect alone is not confirmation.
3. If the bank debited money but the app still shows pending, wait for reconciliation and contact Support with the order reference.
## After completion
A verified order updates only its matching service and account.
## If something goes wrong
Avoid paying a second time because a page was refreshed. Do not share UPI PINs, OTPs or full bank details.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · balance — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-balance.jpg)

Source files: app/lib/talk-balance.ts, app/lib/talk-balance-policy.ts, app/api/payments/webhook/route.ts, app/lib/providers.ts

---

## Understand refunds and returned balance

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-refunds)

## What this guide covers
Distinguish a released reservation, Talk Balance credit and original-payment refund.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Open Wallet history and the affected booking. Match the amount and order reference.
2. Read whether the entry is unused reserve returned, an app credit or a refund to the original payment source.
3. For a completed consultation shown as unused, open Support and give the appointment ID and approximate IST call time.
## After completion
Refund status and payment-source completion are tracked separately; an app message is not proof the bank already credited the money.
## If something goes wrong
Do not assume a balance came from a booking without checking history. Support must verify the actual appointment and payment before correcting it.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · balance — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-balance.jpg)

Source files: app/lib/talk-balance.ts, app/lib/talk-balance-policy.ts, app/api/payments/webhook/route.ts, app/lib/providers.ts

---

## Get help and track a ticket

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#member-support)

## What this guide covers
Contact Support from any normal app page.
## Before you begin
Use your own Member account. Keep your nickname complete and check that the selected booking or payment belongs to you. Prices and availability are confirmed by the app when you select a service.
## Follow these steps
1. Tap the headset beside Notifications or open Help & Support from your account menu.
2. Choose the issue category and describe the exact action, error and expected result. Include a relevant booking reference privately.
3. Open your ticket to read replies, add the requested non-sensitive evidence and confirm whether the solution worked.
## After completion
Your conversation and status remain in the support ticket so you can follow the issue.
## If something goes wrong
Hide phone numbers and private documents in screenshots. A support agent should never ask for your password or OTP.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-support.jpg)

Source files: app/lib/support-server.ts, app/api/support-attachment/route.ts, app/lib/api-errors.ts

---

# Normal listener

## Normal listener overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-listener)

## Listen through your own approved account
Normal listeners provide human emotional-support voice conversations. Your public nickname, languages, description and availability help a member choose you. This role does not confer doctor or other professional qualifications.
## Follow the left-hand journey
Use Registration and Approval to start. Availability and Requests explain your daily work; Earnings explains the existing settlement and withdrawal flow. My skills lets the same verified account apply for another professional category with separate review.
## Home and account menu
Keep incoming alerts enabled when ready. On Home, enable Normal listener and any other approved skills you want to offer, then watch Requests. Busy bookings pause all skills while keeping the switches On; use Disable all when unavailable. End completed conversations with the call control. The account menu contains detailed profile, service, earnings and support options.
## Boundaries
Normal-listener video and standalone text/voice-note packages are unavailable. Paid usage and introductory/onboarding benefits follow the displayed policy. Protect the member’s identity and use Support for errors; never ask a member to share a password or OTP.

![normal listener · requests — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-requests.jpg)

Source files: app/api/listener-application/route.ts, app/lib/application-review.ts, app/lib/provider-skills.ts

---

## Register as a listener

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-register)

## What this guide covers
Submit your first Normal listener application for review.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Choose Listener and sign in. Use Create account only for a new mobile number.
2. Select Normal listener. Complete your legal name, public nickname, photo, languages, preferences and introduction of at least four words.
3. Read and accept the required identity/privacy/safety consents and submit the application.
## After completion
The application remains pending until review and Main Admin final approval.
## If something goes wrong
Read the field-specific error and preserve your entered details. Do not upload an Aadhaar card image or number.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![auth — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-auth.jpg)

Source files: app/api/listener-application/route.ts, app/lib/application-review.ts, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/lib/auth-server.ts

---

## Track approval and corrections

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-approval)

## What this guide covers
Follow the current application instead of submitting duplicates.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Profile → Application progress. Read its current stage and reviewer note.
2. If corrections were requested, edit the named field or replace the requested evidence and resubmit.
3. Wait for the current revision to be reviewed and finally approved by Main Admin.
## After completion
Changing evidence requires a fresh review. Approval for one skill does not approve all other skills.
## If something goes wrong
If a reviewer note is unclear, ask through Support with the application reference; do not create another account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![pending — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-pending.jpg)

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/application-review.ts

---

## Enable skills for calls

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-availability)

## What this guide covers
Offer several separately approved skills from one account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Listener Home and enable incoming alerts. In Available for these skills, turn the approved skills you want On.
2. Use Enable all or Disable all to change every approved skill together. Pending and rejected skills have no availability toggle.
3. Keep each service’s own prices and schedules. A busy booking or call pauses all skills; their switches keep your choices.
## After completion
Enabled direct services resume under manual availability rules when the account is free. Consult now also requires sufficient working hours and current presence; clinics require current branch readiness.
## If something goes wrong
Read Available now, Paused · busy, Outside working hours or Waiting for online presence. Turning a skill Off prevents automatic return. Finish an ongoing call with End.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Several approved skills remain enabled while a booking pauses availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-multi-skill-availability.png)

Source files: app/lib/free-normal-calls.ts, app/lib/timed-room-server.ts, app/lib/providers.ts, app/lib/service-access.ts, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/application-review.ts

---

## Accept and complete a voice call

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-requests)

## What this guide covers
Handle a member request with clear media controls and a visible timer.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open the incoming request at the top or Profile → Requests. Review the member’s safe nickname and request.
2. Accept while it is active, enable your microphone and wait for connection.
3. Watch remaining time and use End when complete. Normal listener video and standalone text/voice-note packages are unavailable.
## After completion
The completed call appears in history; connected usage determines the applicable settlement.
## If something goes wrong
If the request expires or another call makes you busy, refresh Requests. Permission denial should be corrected through browser microphone settings.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![normal listener · requests — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-requests.jpg)

![audio call — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-audio-call.jpg)

Source files: app/lib/free-normal-calls.ts, app/lib/timed-room-server.ts, app/lib/providers.ts, app/lib/service-access.ts

---

## Earnings and withdrawal

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-earnings)

## What this guide covers
Understand eligible earnings and follow the payout process.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Profile → Earnings and review pending, available and paid amounts.
2. Check the related completed calls. Introductory/onboarding free-service rules can affect earnings.
3. Set your permitted payout method and request withdrawal only when the displayed minimum and hold requirements are met.
## After completion
Requested, approved and paid are separate states. Paid status requires the recorded transfer evidence.
## If something goes wrong
For a mismatch, provide the call/withdrawal reference privately. Do not recalculate old earnings from today’s service price.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![normal listener · earnings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-earnings.jpg)

Source files: app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md, app/api/listener-application/route.ts, app/lib/application-review.ts, app/lib/provider-skills.ts

---

## Add and manage approved skills

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-skills)

## What this guide covers
Use one mobile account with separate approval and availability for each skill.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Sign in to your existing Listener account and open Profile → My skills. Choose Add another skill and complete its fields, evidence and consent.
2. Submit for review. After Main Admin approval, enable that skill on Home; existing approved skills can remain On together.
3. To manage a skill’s details, use Edit profile & services. To set open hours, choose Skill to manage in Consult now availability. These viewing choices do not toggle availability.
## After completion
Each skill retains its approval, enabled choice, offerings, hours, prices and recorded earnings. One booking or call makes the account busy across skills.
## If something goes wrong
Do not create another phone account for another skill. Pending or rejected skills need separate approval; Enable all never bypasses review.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Several approved skills remain enabled while a booking pauses availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-multi-skill-availability.png)

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/components/consultation-window-editor.tsx

---

## Alerts and service updates

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-notifications)

## What this guide covers
Keep track of requests and important service changes.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Enable incoming alerts from Home while available.
2. Open Updates and enable notifications on this device if desired.
3. Check Requests and My bookings directly when expecting a call; a missing push does not cancel it.
## After completion
In-app updates remain available even when a phone delays a background notification.
## If something goes wrong
Check browser permission, connectivity and Android device services. Share the displayed error through Support when enabling fails.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/notification-server.ts, app/lib/upcoming-sessions.ts, public/sw.js, scripts/generate-web-push-keys.mjs

---

## Get help as a listener

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#listener-support)

## What this guide covers
Report application, request, call or earnings problems from your own account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Tap the top headset icon and choose the relevant issue category.
2. Give the action, exact error, approximate IST time and application/call reference.
3. Follow replies in the ticket and confirm whether the suggested step resolved the issue.
## After completion
The ticket keeps the investigation in one conversation linked to your account.
## If something goes wrong
Never send a member’s medical document, call recording, password or OTP to explain a routine error.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-support.jpg)

Source files: app/lib/support-server.ts, app/api/support-attachment/route.ts, app/lib/api-errors.ts

---

# Specialist listener

## Specialist listener overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-specialist)

## Several skills, one verified identity
An approved listener may apply for doctor, legal, pandit, purohit, Jyothishya or another supported professional category from My skills. Each category has its own evidence and final approval; a pending extra skill does not replace existing approved skills.
## Pick your category on the left
Doctor has dedicated guides for practice address, appointment generation, Consult now and prescriptions. Lawyer and the spiritual/traditional categories have their own registration, offering, price and consultation guides. Celebrity has separate scheduled-talk and stage guides.
## What specialists share
Approved services have a published description, duration and price. Eligible calls include private chat and attachments. My bookings and the urgent ready card lead to the correct consultation. Home lets several approved skills stay enabled together. A reservation or call pauses new bookings across all of them without clearing the enabled choices. Each service retains its own price and availability rules; changing the profile being edited does not change availability.
## Keep the professional boundary clear
Only an approved treating doctor writes a medical prescription. A service’s title or inclusion in a category is not an automatic external licence check. Use the actual approval and displayed offering to explain what a member is booking.

Source files: app/lib/doctor-address.ts, app/lib/consultation-windows.ts, app/lib/window-booking.ts, app/lib/consultation-records.ts

---

# Doctor

## Doctor overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-overview)

## What this guide covers
The Doctor workspace covers approved medical consultations, location-based appointment availability and private clinical records.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Begin with the registration and practice-address guides if your doctor skill is not yet approved.
2. Use the left sidebar for prices, weekly hours, Consult now, appointments, documents and prescriptions.
3. Use your own account for clinical care even if clinic staff manage your schedule.
## After completion
Each patient has their own booked appointment and authorised clinical record.
## If something goes wrong
For an unexpected booking state, keep the exact appointment reference and use Support; never substitute another patient’s slot.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctor · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-home.jpg)

Source files: app/lib/doctor-address.ts, app/lib/consultation-windows.ts, app/lib/window-booking.ts, app/lib/consultation-records.ts

---

## Register as a doctor

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-register)

## What this guide covers
Apply for the Doctor skill using your own verified account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. New providers use Listener registration. Existing listeners use Profile → My skills → Add another skill → Doctor.
2. Complete qualification, registration/licence, issuing authority, specialty, photo and professional credential. Write at least four words about your service.
3. Enter full practice address, locality, city, state and six-digit PIN, including if all consultations will be online. Accept the required consents and submit.
## After completion
Support reviews the current evidence; Main Admin grants final doctor approval.
## If something goes wrong
A clinic may prepare details but cannot consent for you. Review its invitation in your own account before submitting.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctor registration: identity, qualifications and consent — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-application.jpg)

![Enter qualifications and upload a professional credential — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-credentials.jpg)

![Complete consent and submit for separate doctor approval — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-submit.jpg)

Source files: app/lib/doctor-address.ts, app/lib/consultation-windows.ts, app/lib/window-booking.ts, app/lib/consultation-records.ts, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Add your practice address and PIN

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-address)

## What this guide covers
Enable location-based discovery and meet the doctor publishing requirements.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Doctor Home or the registration/profile form when practice address is requested.
2. Enter the actual practice address, locality, city, state and valid six-digit PIN.
3. Save before publishing new appointments or Consult now periods.
## After completion
Online directories show practice area/PIN; physical visits show the relevant clinic’s visiting address.
## If something goes wrong
Existing bookings remain accessible while missing address details are corrected. Address entry does not automatically verify a medical licence.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Home: accepting bookings, practice address and consultation setup — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-home-consult-now.jpg)

Source files: app/lib/doctor-address.ts, app/lib/consultation-windows.ts, app/lib/window-booking.ts, app/lib/consultation-records.ts

---

## Documents, review and approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-approval)

## What this guide covers
Track your doctor application and respond to corrections.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Application progress and read the current reviewer note.
2. Correct the named field or requested document and submit the current application revision.
3. Wait for support review followed by Main Admin final approval before publishing medical consultations.
## After completion
Only the approved doctor skill grants doctor consultation and prescription permissions.
## If something goes wrong
Do not create a duplicate account or submit another person’s credential. Ask Support to clarify an unclear correction note.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![pending — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-pending.jpg)

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Set up clinics and affiliations

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-clinics)

## What this guide covers
Manage physical locations or accept an authorised clinic association.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. For your own clinic, open Services and add the full visiting address.
2. For a hospital invitation, open Profile → Clinic team in your own account. Review the organisation, branch and scheduling permissions.
3. Accept only if you agree. Clinic staff can then publish authorised hours without sharing your login.
## After completion
Each location is distinct. A doctor remains busy across their skills and branches during a reservation or consultation.
## If something goes wrong
To stop future clinic scheduling use the affiliation revoke option. Already paid appointments still need to be handled.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · clinic team — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Set voice, video and clinic prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-prices)

## What this guide covers
Set default appointment prices and your Consult now quotes.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Profile → Booking availability for scheduled appointment defaults. Enter duration, buffer and enabled mode prices.
2. For Consult now, open Home → Edit hours & prices and set prices for the modes you offer. An empty mode fee disables that mode.
3. Preview and save. Read any server minimum or invalid-duration error before publishing.
## After completion
New quotes use the saved price. An already paid booking keeps its original quoted fee and duration.
## If something goes wrong
Do not change a paid appointment’s fee through a new default. Use individual overrides only on eligible unbooked appointments.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctor · availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-availability.jpg)

![Preview dates, periods and your consultation prices — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-open-hours-preview.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx, app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx

---

## Weekly availability and breaks

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-weekly-hours)

## What this guide covers
Generate recurring online and clinic appointment slots.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Booking availability, turn Accepting bookings on and save defaults.
2. In Weekly hours choose weekdays, separate Online or a clinic period, start/end time and breaks.
3. Save non-overlapping periods and generate the required future slots. Review the result in Services or My bookings.
## After completion
Slots follow saved hours, breaks, duration and generation range. Repeated generation should not duplicate the same slots.
## If something goes wrong
For missing times, check approval, address, master switch, break/leave dates and the generation horizon.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Choose weekly online/clinic hours and breaks — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-weekly-hours.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx

---

## Block leave dates and unavailable time

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-leave)

## What this guide covers
Stop new slot availability while preserving commitments already booked.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Booking availability → leave or blocked times.
2. Choose the affected IST date range and time, then save.
3. Review existing bookings separately; setting leave does not cancel a patient’s paid appointment.
## After completion
New matching slots or immediate reservations respect the blocked period.
## If something goes wrong
For an already booked conflict, use the appointment’s supported workflow and Support instead of silently abandoning the patient.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Block leave dates before new bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-leave.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx

---

## Generate and review appointment slots

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-generate-slots)

## What this guide covers
Create an appointment list for the days you intend to work.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Save prices, duration, weekly periods, breaks and leave in Booking availability.
2. Set the generation horizon and generate slots. Use Services to create a specific appointment if needed.
3. Review IST time, online/clinic location, mode and price before making availability visible.
## After completion
Members can choose published appointment times; Consult now is a separate immediate-availability workflow.
## If something goes wrong
If times overlap, correct the working periods rather than repeatedly generating. Existing paid bookings retain their time and fee.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Create an appointment with time, mode, duration and price — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-create-appointment.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx

---

## Override an individual slot price

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-price-override)

## What this guide covers
Set a different fee for one eligible unbooked appointment.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Booking availability → Individual appointment prices.
2. Choose the IST date and the specific unbooked appointment. Enter its permitted mode prices.
3. Save and review that slot’s displayed price.
## After completion
The override applies to the selected eligible slot, without repricing paid bookings.
## If something goes wrong
If the slot was booked while editing, reload its state. Do not replace the patient’s agreed price.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctor · availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-availability.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx

---

## Publish Consult now hours

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-consult-now)

## What this guide covers
Set your own immediate-consultation hours and fees from Home.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. On Home enable Doctor in Available for these skills. Open Consult now availability, choose Doctor under Skill to manage and complete your practice address.
2. Choose Next 4, 5, 7 or 14 days, or a custom range up to 60 days. Select weekdays, one to four daily periods, excluded dates, duration and buffer.
3. Set your own mode prices, preview and Publish availability. Keep online presence active for online calls; physical readiness uses the authorised clinic desk or your own clinic control.
4. Edit, pause or enable individual published periods as needed.
## After completion
A reservation or call pauses every skill and branch while saving enabled choices. Doctor Consult now returns only while Doctor stays enabled and the period, online presence or branch readiness permit another consultation.
## If something goes wrong
A busy booking, scheduled appointment, break or leave can block a period. Future periods are not shown as Available now before their start.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Home: accepting bookings, practice address and consultation setup — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-home-consult-now.jpg)

![Preview dates, periods and your consultation prices — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-open-hours-preview.jpg)

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx

---

## Start and end the correct consultation

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-start-consultation)

## What this guide covers
Bring the booked patient into their consultation and record completion.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open the urgent booking card or My bookings. Confirm patient, service and IST time.
2. Start the correct session and call the booked patient. Private-queue patients stay in separate rooms.
3. Enable the required media and use the visible timer. Choose End / Complete consultation when finished.
## After completion
The correct booking completes and new joining access ends. Closing the browser alone is not a reliable completion action.
## If something goes wrong
If a patient cannot join, confirm their exact paid booking and readiness. Do not send another patient’s room or invitation.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctor · bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-bookings.jpg)

![doctor room — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-doctor-room.jpg)

Source files: app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Chat and attach consultation documents

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-documents)

## What this guide covers
Exchange permitted documents privately during the consultation.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Chat & documents inside the eligible consultation.
2. Write a message or select a supported attachment: PDF, JPG, PNG, DOC or DOCX up to 10 MB.
3. Send to the current consultation and verify it appears. Completed consultation documents remain readable to authorised participants.
## After completion
New message sending stops after completion. Clinical documents remain limited to the treating doctor and booked patient.
## If something goes wrong
For upload failure check file type/size and consultation state. Do not upload private medical files to public links or general support.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![doctor room — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-doctor-room.jpg)

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts

---

## Write and send a prescription

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-prescription)

## What this guide covers
Create the patient’s prescription from the call or consultation record.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Write prescription in the doctor call, or Profile → Prescriptions / Consultation records → Open.
2. Configure your permitted hospital/clinic header, address, logo, signature and footer; enter your clinical instructions.
3. Save draft to keep it private. Choose Finalize & send when ready for the patient.
## After completion
The patient sees the sent prescription and can download its PDF. The app does not write medical instructions for the doctor.
## If something goes wrong
If an expected document is missing for the patient, verify it was sent. A draft remains private.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctor · prescriptions — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-prescriptions.jpg)

Source files: app/lib/consultation-records.ts, app/lib/prescription-pdf.ts, app/api/prescription/route.ts, drizzle/0024_prescription_revisions_chat_lock.sql

---

## Edit a sent prescription

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-prescription-edit)

## What this guide covers
Issue a corrected revision without silently replacing the patient’s last sent version.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open the consultation record and choose Edit sent prescription.
2. Make corrections and review them. Until sent, the patient continues to see the previously issued version.
3. Choose Send updated prescription. Ask the patient to download again after the update notification.
## After completion
The new issued revision and timestamp identify the updated document. Existing downloaded files do not update themselves.
## If something goes wrong
If another tab saved first, copy unsaved text, Reload latest prescription and review before sending. Never overwrite a newer revision blindly.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Edit a sent prescription, then send the updated revision — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-prescription-edit.jpg)

![Read or download the latest sent prescription — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-prescription-sent.jpg)

Source files: app/lib/consultation-records.ts, app/lib/prescription-pdf.ts, app/api/prescription/route.ts, drizzle/0024_prescription_revisions_chat_lock.sql

---

## Doctor earnings and payout

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#doctor-earnings)

## What this guide covers
Track settlement for your completed appointments across personal and clinic bookings.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open your own Profile → Earnings and identify the consultation reference.
2. Review earned, pending and paid balances and any refund adjustments.
3. Use the permitted withdrawal workflow and payout method after the displayed requirements are met.
## After completion
Clinic-team scheduling does not create consolidated hospital settlement; existing doctor-wise earnings remain.
## If something goes wrong
A booked fee is not automatically earned if the consultation was not served. For a mismatch provide the appointment reference to Support.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md, app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

# Lawyer / legal advisor

## Lawyer / legal advisor overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#legal-overview)

## What this guide covers
The Lawyer / legal advisor workspace provides approved professional services, its own offerings, immediate availability and consultation records.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Choose the approved legal category in My skills. The category in the app remains the source of available professional options.
2. Use the left-hand subtopics for registration, published services, Consult now, calls and earnings.
3. Keep public service claims accurate and respect the boundaries of the approved qualification. This workspace does not grant medical-prescription permissions.
## After completion
Your own approved role and offering determine what a member can book.
## If something goes wrong
For a missing category, check My skills and current approval. Ask Support with the application reference instead of creating duplicate accounts.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![legal · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Registration and skill approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#legal-registration)

## What this guide covers
Register the Lawyer / legal advisor skill using the same verified account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. New providers open Listener registration; existing providers open Profile → My skills → Add another skill.
2. Select legal. Complete the requested qualification/category evidence, name, photo, languages, minimum four-word introduction and consents.
3. Read correction notes in Application progress, resubmit when needed and wait for final Main Admin approval.
## After completion
Approval belongs to this specific category; another approved skill stays separate.
## If something goes wrong
If the number already exists, sign in. A second category does not need another signup or a duplicate phone account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/specialist-server.ts, app/components/product-app.tsx

---

## Publish services and prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#legal-services)

## What this guide covers
Define what members can purchase from your Lawyer / legal advisor profile.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open My skills → Edit profile & services for the approved category you want to manage. This changes the editing view without turning other skills off.
2. Enter a clear title, service description, duration, allowed call modes and your price within the displayed limits.
3. Save and enable the offering. Review the published service from its details view.
## After completion
New orders use the published service quote. Existing paid bookings keep their original terms.
## If something goes wrong
If invisible, check category approval, enabled availability and offering active state. A rejected price must be corrected before publishing.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![legal · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Consult now hours and fees

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#legal-consult-now)

## What this guide covers
Let members book your approved service while you are ready to start.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Publish an active service in Services, then open Consult now availability from Home or the profile menu.
2. Choose Skill to manage, then its service, dates, weekdays, periods, exclusions, duration, buffer and mode prices. Preview and publish for that skill; other skills keep their own hours and prices.
3. Keep the app online and accepting bookings. Use the existing reservation/request to handle the next member.
## After completion
A reservation or call pauses all skills while preserving enabled choices. Consult now resumes only for enabled skills with enough working time and current online presence; direct services retain their manual availability rules.
## If something goes wrong
A period must fit checkout, consultation and buffer. Overlapping appointments, breaks and leave take priority.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![legal · open hours — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-open-hours.jpg)

![Preview dates, periods and your consultation prices — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/legal-open-hours-preview.jpg)

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx, app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Calls, documents and completion

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#legal-consultation)

## What this guide covers
Run the member’s booked specialist consultation.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Requests or the upcoming booking and accept the assigned member when ready.
2. Enable the required microphone/camera, follow the timer and use Chat & documents for the current consultation.
3. End the consultation using its completion action. Review the final status and your earnings record.
## After completion
Participants retain permitted access to completed consultation records; new chat messages stop after ending.
## If something goes wrong
For blocked media, retry browser permissions. Never join or share the private room for a different member.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

# Pandit

## Pandit overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-overview)

## What this guide covers
The Pandit workspace provides approved professional services, its own offerings, immediate availability and consultation records.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Choose the approved jyotishya_pandit category in My skills. The category in the app remains the source of available professional options.
2. Use the left-hand subtopics for registration, published services, Consult now, calls and earnings.
3. Keep public service claims accurate and respect the boundaries of the approved qualification. This workspace does not grant medical-prescription permissions.
## After completion
Your own approved role and offering determine what a member can book.
## If something goes wrong
For a missing category, check My skills and current approval. Ask Support with the application reference instead of creating duplicate accounts.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![jyotishya pandit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-jyotishya_pandit-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Registration and skill approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-registration)

## What this guide covers
Register the Pandit skill using the same verified account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. New providers open Listener registration; existing providers open Profile → My skills → Add another skill.
2. Select jyotishya_pandit. Complete the requested qualification/category evidence, name, photo, languages, minimum four-word introduction and consents.
3. Read correction notes in Application progress, resubmit when needed and wait for final Main Admin approval.
## After completion
Approval belongs to this specific category; another approved skill stays separate.
## If something goes wrong
If the number already exists, sign in. A second category does not need another signup or a duplicate phone account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/specialist-server.ts, app/components/product-app.tsx

---

## Publish services and prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-services)

## What this guide covers
Define what members can purchase from your Pandit profile.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open My skills → Edit profile & services for the approved category you want to manage. This changes the editing view without turning other skills off.
2. Enter a clear title, service description, duration, allowed call modes and your price within the displayed limits.
3. Save and enable the offering. Review the published service from its details view.
## After completion
New orders use the published service quote. Existing paid bookings keep their original terms.
## If something goes wrong
If invisible, check category approval, enabled availability and offering active state. A rejected price must be corrected before publishing.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![jyotishya pandit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-jyotishya_pandit-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Consult now hours and fees

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-consult-now)

## What this guide covers
Let members book your approved service while you are ready to start.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Publish an active service in Services, then open Consult now availability from Home or the profile menu.
2. Choose Skill to manage, then its service, dates, weekdays, periods, exclusions, duration, buffer and mode prices. Preview and publish for that skill; other skills keep their own hours and prices.
3. Keep the app online and accepting bookings. Use the existing reservation/request to handle the next member.
## After completion
A reservation or call pauses all skills while preserving enabled choices. Consult now resumes only for enabled skills with enough working time and current online presence; direct services retain their manual availability rules.
## If something goes wrong
A period must fit checkout, consultation and buffer. Overlapping appointments, breaks and leave take priority.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx, app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Calls, documents and completion

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#pandit-consultation)

## What this guide covers
Run the member’s booked specialist consultation.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Requests or the upcoming booking and accept the assigned member when ready.
2. Enable the required microphone/camera, follow the timer and use Chat & documents for the current consultation.
3. End the consultation using its completion action. Review the final status and your earnings record.
## After completion
Participants retain permitted access to completed consultation records; new chat messages stop after ending.
## If something goes wrong
For blocked media, retry browser permissions. Never join or share the private room for a different member.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

# Purohit

## Purohit overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-overview)

## What this guide covers
The Purohit workspace provides approved professional services, its own offerings, immediate availability and consultation records.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Choose the approved purohit category in My skills. The category in the app remains the source of available professional options.
2. Use the left-hand subtopics for registration, published services, Consult now, calls and earnings.
3. Keep public service claims accurate and respect the boundaries of the approved qualification. This workspace does not grant medical-prescription permissions.
## After completion
Your own approved role and offering determine what a member can book.
## If something goes wrong
For a missing category, check My skills and current approval. Ask Support with the application reference instead of creating duplicate accounts.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![purohit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-purohit-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Registration and skill approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-registration)

## What this guide covers
Register the Purohit skill using the same verified account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. New providers open Listener registration; existing providers open Profile → My skills → Add another skill.
2. Select purohit. Complete the requested qualification/category evidence, name, photo, languages, minimum four-word introduction and consents.
3. Read correction notes in Application progress, resubmit when needed and wait for final Main Admin approval.
## After completion
Approval belongs to this specific category; another approved skill stays separate.
## If something goes wrong
If the number already exists, sign in. A second category does not need another signup or a duplicate phone account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/specialist-server.ts, app/components/product-app.tsx

---

## Publish services and prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-services)

## What this guide covers
Define what members can purchase from your Purohit profile.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open My skills → Edit profile & services for the approved category you want to manage. This changes the editing view without turning other skills off.
2. Enter a clear title, service description, duration, allowed call modes and your price within the displayed limits.
3. Save and enable the offering. Review the published service from its details view.
## After completion
New orders use the published service quote. Existing paid bookings keep their original terms.
## If something goes wrong
If invisible, check category approval, enabled availability and offering active state. A rejected price must be corrected before publishing.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![purohit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-purohit-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Consult now hours and fees

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-consult-now)

## What this guide covers
Let members book your approved service while you are ready to start.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Publish an active service in Services, then open Consult now availability from Home or the profile menu.
2. Choose Skill to manage, then its service, dates, weekdays, periods, exclusions, duration, buffer and mode prices. Preview and publish for that skill; other skills keep their own hours and prices.
3. Keep the app online and accepting bookings. Use the existing reservation/request to handle the next member.
## After completion
A reservation or call pauses all skills while preserving enabled choices. Consult now resumes only for enabled skills with enough working time and current online presence; direct services retain their manual availability rules.
## If something goes wrong
A period must fit checkout, consultation and buffer. Overlapping appointments, breaks and leave take priority.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx, app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Calls, documents and completion

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#purohit-consultation)

## What this guide covers
Run the member’s booked specialist consultation.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Requests or the upcoming booking and accept the assigned member when ready.
2. Enable the required microphone/camera, follow the timer and use Chat & documents for the current consultation.
3. End the consultation using its completion action. Review the final status and your earnings record.
## After completion
Participants retain permitted access to completed consultation records; new chat messages stop after ending.
## If something goes wrong
For blocked media, retry browser permissions. Never join or share the private room for a different member.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

# Jyothishya specialist

## Jyothishya specialist overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-overview)

## What this guide covers
The Jyothishya specialist workspace provides approved professional services, its own offerings, immediate availability and consultation records.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Choose the approved jyotishya_pandit category in My skills. The category in the app remains the source of available professional options.
2. Use the left-hand subtopics for registration, published services, Consult now, calls and earnings.
3. Keep public service claims accurate and respect the boundaries of the approved qualification. This workspace does not grant medical-prescription permissions.
## After completion
Your own approved role and offering determine what a member can book.
## If something goes wrong
For a missing category, check My skills and current approval. Ask Support with the application reference instead of creating duplicate accounts.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![jyotishya pandit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-jyotishya_pandit-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Registration and skill approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-registration)

## What this guide covers
Register the Jyothishya specialist skill using the same verified account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. New providers open Listener registration; existing providers open Profile → My skills → Add another skill.
2. Select jyotishya_pandit. Complete the requested qualification/category evidence, name, photo, languages, minimum four-word introduction and consents.
3. Read correction notes in Application progress, resubmit when needed and wait for final Main Admin approval.
## After completion
Approval belongs to this specific category; another approved skill stays separate.
## If something goes wrong
If the number already exists, sign in. A second category does not need another signup or a duplicate phone account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/specialist-server.ts, app/components/product-app.tsx

---

## Publish services and prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-services)

## What this guide covers
Define what members can purchase from your Jyothishya specialist profile.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open My skills → Edit profile & services for the approved category you want to manage. This changes the editing view without turning other skills off.
2. Enter a clear title, service description, duration, allowed call modes and your price within the displayed limits.
3. Save and enable the offering. Review the published service from its details view.
## After completion
New orders use the published service quote. Existing paid bookings keep their original terms.
## If something goes wrong
If invisible, check category approval, enabled availability and offering active state. A rejected price must be corrected before publishing.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![jyotishya pandit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-jyotishya_pandit-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Consult now hours and fees

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-consult-now)

## What this guide covers
Let members book your approved service while you are ready to start.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Publish an active service in Services, then open Consult now availability from Home or the profile menu.
2. Choose Skill to manage, then its service, dates, weekdays, periods, exclusions, duration, buffer and mode prices. Preview and publish for that skill; other skills keep their own hours and prices.
3. Keep the app online and accepting bookings. Use the existing reservation/request to handle the next member.
## After completion
A reservation or call pauses all skills while preserving enabled choices. Consult now resumes only for enabled skills with enough working time and current online presence; direct services retain their manual availability rules.
## If something goes wrong
A period must fit checkout, consultation and buffer. Overlapping appointments, breaks and leave take priority.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx, app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Calls, documents and completion

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#jyothishya-consultation)

## What this guide covers
Run the member’s booked specialist consultation.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Requests or the upcoming booking and accept the assigned member when ready.
2. Enable the required microphone/camera, follow the timer and use Chat & documents for the current consultation.
3. End the consultation using its completion action. Review the final status and your earnings record.
## After completion
Participants retain permitted access to completed consultation records; new chat messages stop after ending.
## If something goes wrong
For blocked media, retry browser permissions. Never join or share the private room for a different member.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

# Traditional healer

## Traditional healer overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-overview)

## What this guide covers
The Traditional healer workspace provides approved professional services, its own offerings, immediate availability and consultation records.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Choose the approved boitha_vaidyudu category in My skills. The category in the app remains the source of available professional options.
2. Use the left-hand subtopics for registration, published services, Consult now, calls and earnings.
3. Keep public service claims accurate and respect the boundaries of the approved qualification. This workspace does not grant medical-prescription permissions.
## After completion
Your own approved role and offering determine what a member can book.
## If something goes wrong
For a missing category, check My skills and current approval. Ask Support with the application reference instead of creating duplicate accounts.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![boitha vaidyudu · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-boitha_vaidyudu-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Registration and skill approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-registration)

## What this guide covers
Register the Traditional healer skill using the same verified account.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. New providers open Listener registration; existing providers open Profile → My skills → Add another skill.
2. Select boitha_vaidyudu. Complete the requested qualification/category evidence, name, photo, languages, minimum four-word introduction and consents.
3. Read correction notes in Application progress, resubmit when needed and wait for final Main Admin approval.
## After completion
Approval belongs to this specific category; another approved skill stays separate.
## If something goes wrong
If the number already exists, sign in. A second category does not need another signup or a duplicate phone account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/specialist-server.ts, app/components/product-app.tsx

---

## Publish services and prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-services)

## What this guide covers
Define what members can purchase from your Traditional healer profile.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open My skills → Edit profile & services for the approved category you want to manage. This changes the editing view without turning other skills off.
2. Enter a clear title, service description, duration, allowed call modes and your price within the displayed limits.
3. Save and enable the offering. Review the published service from its details view.
## After completion
New orders use the published service quote. Existing paid bookings keep their original terms.
## If something goes wrong
If invisible, check category approval, enabled availability and offering active state. A rejected price must be corrected before publishing.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![boitha vaidyudu · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-boitha_vaidyudu-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Consult now hours and fees

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-consult-now)

## What this guide covers
Let members book your approved service while you are ready to start.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Publish an active service in Services, then open Consult now availability from Home or the profile menu.
2. Choose Skill to manage, then its service, dates, weekdays, periods, exclusions, duration, buffer and mode prices. Preview and publish for that skill; other skills keep their own hours and prices.
3. Keep the app online and accepting bookings. Use the existing reservation/request to handle the next member.
## After completion
A reservation or call pauses all skills while preserving enabled choices. Consult now resumes only for enabled skills with enough working time and current online presence; direct services retain their manual availability rules.
## If something goes wrong
A period must fit checkout, consultation and buffer. Overlapping appointments, breaks and leave take priority.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx, app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Calls, documents and completion

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#traditional-consultation)

## What this guide covers
Run the member’s booked specialist consultation.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open Requests or the upcoming booking and accept the assigned member when ready.
2. Enable the required microphone/camera, follow the timer and use Chat & documents for the current consultation.
3. End the consultation using its completion action. Review the final status and your earnings record.
## After completion
Participants retain permitted access to completed consultation records; new chat messages stop after ending.
## If something goes wrong
For blocked media, retry browser permissions. Never join or share the private room for a different member.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts, app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx, app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

# Celebrity / speaker

## Celebrity / speaker overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity-role-overview)

## What this guide covers
Approved speakers host scheduled talks and manage selected fan turns.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Use your approved Celebrity skill and the talk-management options in your account.
2. Follow the subtopics for publishing a talk and running its stage.
3. State the talk rules clearly and use the supported seat, duration and pricing controls.
## After completion
Each purchased seat is tied to its member and event; audience access differs from stage access.
## If something goes wrong
For a missing host action, verify approved skill and ownership of the talk.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · celebrity — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-celebrity.jpg)

Source files: app/lib/community-server.ts, app/lib/celebrity-stage.ts, app/lib/celebrity-pricing.ts, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## Create a scheduled talk

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity-publish)

## What this guide covers
Publish a talk with the intended schedule, seat capacity and fee.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Open your Celebrity talk management page with the approved skill selected.
2. Enter the title, IST time, duration, capacity and price permitted by the form.
3. Review and publish. Use the talk’s own page to track its booked participants.
## After completion
Members can purchase the published talk’s seats and see it in their bookings.
## If something goes wrong
Do not assume publishing means someone booked. Confirm seat/payment state in the talk before granting participation.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/community-server.ts, app/lib/celebrity-stage.ts, app/lib/celebrity-pricing.ts

---

## Run fan turns and end a talk

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity-stage)

## What this guide covers
Control invitations, speaking turns and the end of the event.
## Before you begin
Sign in using your own registered account. Working as a provider requires approval for the selected skill. An existing account uses My skills to add a category; creating another account with the same number is unnecessary.
## Follow these steps
1. Start your own scheduled talk and check local microphone/camera readiness.
2. Select an eligible fan and send the stage invitation. Allow them to accept and prepare before the turn.
3. Follow acceptance, start and remaining-turn timers. End the turn or talk using its displayed control.
## After completion
The selected participant returns to the audience after their turn. Ending the talk stops new event access.
## If something goes wrong
An expired invitation needs the current stage workflow. Do not reuse another event’s token or ask fans for passwords.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![celebrity selected — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-celebrity-selected.jpg)

Source files: app/lib/community-server.ts, app/lib/celebrity-stage.ts, app/lib/celebrity-pricing.ts

---

# Clinic / hospital team

## Clinic / hospital overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-clinic)

## One organisation, several branches and doctors
A clinic owner registers an organisation, receives review and Main Admin approval, then manages its branches and authorised team. Assistants use their own accounts. Doctors personally accept associations and retain their individual professional approval.
## Use the clinic subtopics
The left menu separates organisation registration, branches, assistants, doctor invitations, bulk schedules, readiness and patient visits. Each article includes the exact workflow and recovery when something is unavailable.
## Scheduling and patient care
The clinic can publish common hours for several doctors with individual fee overrides. Physical Consult now requires a present, ready doctor. A reserved or active consultation makes that doctor busy across branches. Desk staff can check in, start and complete physical visits within their authority.
## Limits of clinic administration
Doctors keep their own earnings and payout flow. Clinic assistants manage logistics and cannot prescribe or read private patient clinical records. Organisation approval does not automatically approve a doctor, and preparing a doctor application does not replace that doctor’s consent.

![Member · clinic team — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Register a clinic or hospital

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-register)

## What this guide covers
Create an organisation application under the owner’s own account.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Profile → Clinic team and enter the registered organisation name, registration number and complete address/PIN.
2. Upload the registration document as a PDF/image up to 4 MB and submit.
3. Read correction notes and wait for support review followed by Main Admin final approval.
## After completion
Only an approved organisation can publish authorised doctor availability.
## If something goes wrong
Organisation approval is not medical approval for every invited doctor. Each doctor needs their own approved skill.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · clinic team — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Branches and visiting addresses

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-branches)

## What this guide covers
Keep separate locations clear to staff and patients.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open the approved Clinic team organisation.
2. Add a branch with name, full visiting address, locality, city, state and PIN.
3. Select the right branch before adding doctors, publishing hours or handling patient arrival.
## After completion
Physical booking details show the selected branch so the patient knows where to attend.
## If something goes wrong
For an approved organisation identity change, contact Support. Do not create duplicate branches to bypass an incorrect record.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · clinic team — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Authorise a clinic assistant

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-assistants)

## What this guide covers
Give a colleague their own clinic-management access.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Ask the assistant to register their own member account.
2. As the owner, open Authorised assistants and enter that registered mobile number.
3. Grant access for the intended team and revoke it when no longer needed. Never share the owner’s password.
## After completion
Assistants can perform authorised logistics; staff grants and ownership remain restricted.
## If something goes wrong
If denied, verify active membership and the correct approved organisation. Assistant access does not grant patient prescription access.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Member · clinic team — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Invite doctors and prepare applications

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-doctors)

## What this guide covers
Link a doctor with consent or prepare their first doctor application.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Choose branch → Doctors & applications; enter the doctor’s own name and mobile number.
2. An existing approved doctor accepts the affiliation in their own Clinic team page. For a new doctor, prepare required profile, credential, photo and practice address details.
3. The doctor signs in, reviews the current details/documents, personally accepts consent and submits for review.
## After completion
Scheduling starts only with accepted association and approved doctor skill. A clinic invitation creates no password for the doctor.
## If something goes wrong
If details changed after the doctor opened the form, reload and review the latest revision before accepting.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Doctors & applications · authorised clinic workspace — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/clinic-doctors-applications.jpg)

![Clinic prepares details; doctor reviews and consents — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/clinic-prepared-application.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Publish hours for multiple doctors

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-schedule)

## What this guide covers
Apply a common time period while preserving each doctor’s own fee.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Choose branch → Consult now and select the approved associated doctors.
2. Choose online/physical mode, date range, weekdays, daily periods and excluded dates. Set common prices, duration and buffer.
3. Open Individual prices for per-doctor overrides. Preview and publish the selection together.
## After completion
A conflict for any selected doctor rejects the batch rather than silently publishing only part. Paid bookings retain their original quote.
## If something goes wrong
Check overlap across branches/skills, scheduled appointments, breaks and leave. Reduce the selection or correct periods before retrying.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Consult now · authorised clinic workspace — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/clinic-consult-now.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Mark doctors present and ready

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-readiness)

## What this guide covers
Show physical Consult now only for doctors who are actually ready at the branch.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open the branch Consult now screen during the published period.
2. Select only doctors present and ready and use Mark selected doctors ready. Keep the desk page open to confirm readiness.
3. For online consultations, the doctor must be online in their own account. Remove readiness when a doctor leaves.
## After completion
A reservation makes only that doctor busy across clinics. After completion they return available if readiness and sufficient period time remain.
## If something goes wrong
Publishing future hours alone does not mean Available now. Check the active period, doctor approval and accepting-bookings master switch.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Consult now · authorised clinic workspace — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/clinic-consult-now.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Check in, start and complete visits

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic-appointments)

## What this guide covers
Record the physical patient journey and close the consultation correctly.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Clinic team → Patient bookings and refresh. Confirm doctor, branch and the paid patient appointment.
2. When the patient arrives, record Check in. Record Start consultation when the doctor actually begins.
3. Use Complete visit after service ends. A repeat completion must not create another earnings credit.
## After completion
The doctor’s completed visit follows the existing doctor-wise earnings policy. Clinical records remain restricted to doctor and patient.
## If something goes wrong
If the reservation expired or patient did not arrive, read the appointment’s current state and follow its resolution. Do not mark an unserved visit completed to create earnings.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![Patient bookings · authorised clinic workspace — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/clinic-patient-bookings.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

# Recruiter Admin

## Recruiter Admin overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-recruiter)

## Grow and guide your assigned group
Recruiter Admins use their own authorised account to share referrals, guide onboarding and review group records and eligible commissions. Recruitment access is scoped; it does not give final professional approval or unrestricted access to all members.
## Find a task in the left menu
Use Referrals for sharing the correct link, Team for permitted account visibility, Commissions for settlement and Support for helping a user reach the right channel. Existing listeners apply for extra skills through My skills on the same account.
## Additional support responsibility
Support Hiring is a separately granted permission for selected recruiters. A support nomination does not activate staff access; the designated Support Lead or Main Admin must review the invitation. The invited person uses their existing registered account, completes private training and follows activation requirements.
## Keep identities separate from authority
Being a recruiter does not allow signing in as a member, viewing a patient’s medical records or handling private support logs. A separately approved Support membership has its own workspace and controls.

![recruiter · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-home.jpg)

Source files: app/api/actions/route.ts, app/lib/provider-skills.ts, docs/MULTI_ADMIN_REFERRALS.md

---

## Share referral links

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-referrals)

## What this guide covers
Attribute invited members and listeners to your assigned referral group.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Recruiter Administration → Referrals in your assigned account.
2. Copy the displayed referral link/code and share it with the intended new user.
3. Help the person complete their own registration; an existing listener adds skills through My skills.
## After completion
A referral link identifies a group; it does not grant administrator access or approve a provider.
## If something goes wrong
Check team attribution in your permitted records and raise a ticket for mismatches. Do not ask for a user’s OTP or password.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![recruiter · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-home.jpg)

Source files: app/api/actions/route.ts, app/lib/provider-skills.ts, docs/MULTI_ADMIN_REFERRALS.md, app/lib/payout-methods.ts, docs/PRICING_DISCOUNTS.md

---

## View your recruited team

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-team)

## What this guide covers
Review members and providers within your permitted recruiter scope.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open the account menu → Listeners or Members.
2. Search the permitted group and read profile/approval status.
3. Guide pending providers to Application progress and their correction notes.
## After completion
Visibility remains limited to your assigned group and permissions.
## If something goes wrong
If a user is outside your scope, ask Main Admin through Support; do not change roles to bypass restrictions.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![recruiter · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-home.jpg)

Source files: app/api/actions/route.ts, app/lib/provider-skills.ts, docs/MULTI_ADMIN_REFERRALS.md, app/lib/payout-methods.ts, docs/PRICING_DISCOUNTS.md

---

## Commissions and withdrawals

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-commissions)

## What this guide covers
Understand the earnings recorded for your recruited group.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Earnings and review the transaction or call reference.
2. Compare pending, available and paid amounts using the recorded commission snapshot.
3. Follow the permitted payout-method and withdrawal workflow.
## After completion
Eligible completion and refund adjustments determine actual commission; booked amounts alone are not earnings.
## If something goes wrong
Provide the reference when an amount is unexpected. A current pricing tier does not rewrite historical transactions.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/api/actions/route.ts, app/lib/provider-skills.ts, docs/MULTI_ADMIN_REFERRALS.md, app/lib/payout-methods.ts, docs/PRICING_DISCOUNTS.md

---

## Help your team obtain support

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#recruiter-support)

## What this guide covers
Direct a user to their own ticket and help explain the affected journey.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Ask which action failed and the exact visible error; avoid collecting private documents.
2. Direct the user to the headset icon → Help & Support in their own account.
3. For recruiter-only account or commission issues, create your own ticket with the relevant reference.
## After completion
The affected account’s support conversation stays with the correct user.
## If something goes wrong
Do not sign in as a customer using their password. Support diagnostics require an authorised support workspace and assigned scope.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![recruiter · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-support.jpg)

Source files: app/api/actions/route.ts, app/lib/provider-skills.ts, docs/MULTI_ADMIN_REFERRALS.md, app/lib/payout-methods.ts, docs/PRICING_DISCOUNTS.md

---

# Support Agent

## Support Agent overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-support)

## Invitation-only Support access
Support Agents are appointed by authorised officials using an existing registered mobile account. There is no public Support signup. A Member, Listener or Specialist can keep those responsibilities while holding a separate Support membership.
## Notification and sign-in
The invitation is delivered in the app; invitation SMS is not used. The person reads Updates, accepts the staff policy and signs in through Support with their existing mobile number and password. Staff suspension affects the Support membership, not unrelated customer/provider access.
## Training is inside the app
Support Workspace → Support Academy is the protected training hub in English and Telugu. Invited trainees can complete assigned learning; real customer work requires the training and activation requirements to be satisfied. Detailed procedures, practice cases and assessments are not published here.
## Use these public subtopics
Receive a Support invitation, Sign in to Support, and Where to take training explain how an invited person reaches their workspace. Questions about the invitation should go to the inviting official. Ordinary customers can open Help & Support using the headset icon.

Source files: app/lib/application-review.ts, app/api/application-review-document/route.ts, app/lib/support-server.ts

---

## Receive a Support invitation

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#support-invitation)

## What this guide covers
Support staff are invited by authorised officials; there is no public Support registration.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Keep your existing registered Member or Listener account. An official enters your registered number in Support Team Management.
2. Read the invitation in Updates or the available Support invitation entry. No SMS is sent for this invitation.
3. Accept the displayed staff policy using your own account and continue to Support Academy.
## After completion
Your original member/listener access remains. Support membership proceeds through training and official activation.
## If something goes wrong
If the invitation expired or was revoked, ask the inviting official to review it. A notification does not by itself grant active staff permission.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx, app/lib/support-server.ts, app/api/support-attachment/route.ts, app/lib/api-errors.ts

---

## Sign in to the Support workspace

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#support-sign-in)

## What this guide covers
Open your invited Support workspace using your usual account credentials.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Select Support on the login page and use your own registered mobile number and existing password.
2. If training is pending, continue in Support Academy. Active customer-ticket access requires completed requirements and staff activation.
3. Use the approved workspace switch when you want to return to your Member or Listener work.
## After completion
One account can hold separate responsibilities with their own permissions.
## If something goes wrong
If Support access is unavailable, check the invitation and membership status with your official. Do not create another phone account.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts

---

## Where to take support training

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#support-academy-entry)

## What this guide covers
Find the private training hub for invited agents and leads.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Sign in through Support and open Support Workspace → Support Academy.
2. Choose English or Telugu. Continue your assigned modules, demonstration practice and assessments in the protected workspace.
3. Check progress and required retraining. When complete, follow the official activation step shown in your workspace.
## After completion
The public documentation explains the entry route only. Internal training, practice cases and staff procedures remain inside the authenticated Academy.
## If something goes wrong
If an invited trainee cannot enter, contact the inviting official. Do not ask another agent to share private training downloads or sign-in credentials.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/support-server.ts, app/api/support-attachment/route.ts, app/lib/api-errors.ts, app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

# Support Lead

## Support Lead overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#support-lead-overview)

## What this guide covers
Support Leads are specifically appointed officials responsible for their permitted support team.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Use the Main Admin’s Support Lead invitation on your existing registered account.
2. Accept the staff policy and complete the required agent and lead training inside Support Academy.
3. Use your activated workspace for the assigned team responsibilities. Other member/listener work remains in its own workspace.
## After completion
The private Academy is the authoritative place for lead procedures and operational training.
## If something goes wrong
An ordinary recruiter or support agent cannot grant themselves Support Lead access. Ask Main Admin about appointment or access questions.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts, app/lib/support-server.ts, app/api/support-attachment/route.ts, app/lib/api-errors.ts

---

# Main Admin

## Main Admin overview

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#journey-admin)

## Platform administration
Main Admin is the final authority for reviewed professional and organisation applications and protected platform settings. The role also governs support-team appointments, scoped account responsibilities, pricing policy and payout operations through dedicated screens.
## Choose the task on the left
Application approval explains the reviewed decision flow. People explains account responsibilities. Support Team covers invitation-only staff membership. Payouts describes the difference between requested and paid amounts. Deployment links to the existing release process.
## Review current evidence
Support can review an application and request corrections; final activation remains with Main Admin. If an applicant changes relevant evidence, a new review is required. An organisation’s approval does not automatically approve all its doctors.
## Private operational learning
Detailed staff training, internal procedures, practice cases and operational diagnostics are in the protected Support Academy and Support workspace. Public documentation explains the product and permitted journeys without exposing private customer records.

![main-admin · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-home.jpg)

Source files: app/lib/application-review.ts, app/lib/provider-skills.ts, app/api/actions/route.ts, drizzle/0027_v3044_reviews_clinic_teams.sql

---

## Give final application approval

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#admin-approvals)

## What this guide covers
Decide a reviewed provider, extra skill or clinic organisation application.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Main Admin → Application reviews and choose a current review-complete item.
2. Read the current evidence, reviewer recommendation and correction history. Support review is not final activation.
3. Approve or reject with a clear reason within your permitted authority.
## After completion
Additional-skill approval activates only that skill. Organisation approval does not automatically approve its doctors.
## If something goes wrong
If evidence changed, require a current review before final approval. Never review or approve your own application.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![main-admin · application reviews — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-application-reviews.jpg)

Source files: app/lib/application-review.ts, app/lib/provider-skills.ts, app/api/actions/route.ts, drizzle/0027_v3044_reviews_clinic_teams.sql, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

## People and workspace access

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#admin-people)

## What this guide covers
Manage permitted account responsibilities without confusing user identity and job role.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Main Admin → People and locate the intended account.
2. Check its existing account and approved responsibilities before making any change.
3. Use dedicated staff/team management for support invitations and permissions; an invitation is not public registration.
## After completion
Support access is an additional membership and must preserve member/listener access.
## If something goes wrong
Read the affected scope before suspending or revoking access. Report a conflict instead of overwriting a profile role as a shortcut.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![main-admin · people — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-people.jpg)

Source files: app/lib/application-review.ts, app/lib/provider-skills.ts, app/api/actions/route.ts, drizzle/0027_v3044_reviews_clinic_teams.sql, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

## Review earnings and payouts

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#admin-payouts)

## What this guide covers
Complete payout review using the recorded ledger and transfer evidence.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open the payout or earnings section and select the withdrawal reference.
2. Review eligible balance, payout destination verification and applicable holds.
3. Record paid status only with actual transfer evidence through the permitted workflow.
## After completion
The ledger preserves separate requested, reviewed and paid states.
## If something goes wrong
Do not create manual credits to hide an unexplained booking/refund mismatch. Investigate the linked records first.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

![main-admin · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-home.jpg)

Source files: app/lib/application-review.ts, app/lib/provider-skills.ts, app/api/actions/route.ts, drizzle/0027_v3044_reviews_clinic_teams.sql, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

## Invite and manage support staff

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#admin-support-team)

## What this guide covers
Grant invitation-only Support memberships to existing registered accounts.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Open Support Team Management and enter the person’s registered mobile number.
2. Select the permitted staff role and send the invitation. The invitation appears in-app; no invitation SMS is sent.
3. Review acceptance and required training, then use the permitted activation workflow. Suspend or revoke the support membership when appropriate.
## After completion
The person keeps the same account password and existing customer/provider workspaces.
## If something goes wrong
If the number is not registered, ask the person to create their own Member account first. Never create or collect another person’s password.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/application-review.ts, app/lib/provider-skills.ts, app/api/actions/route.ts, drizzle/0027_v3044_reviews_clinic_teams.sql, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

## Deploy a verified project release

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#admin-releases)

## What this guide covers
Apply the packaged update using the existing Cloudflare project configuration.
## Before you begin
Sign in with your own account and open the workspace approved for your responsibilities. Menu visibility alone does not grant permission; each action checks the current account and its assigned scope.
## Follow these steps
1. Extract the complete release into a new project folder and run npm ci followed by npm test.
2. After tests pass, apply the remote D1 migrations with the release’s wrangler.jsonc configuration.
3. Deploy only after migration succeeds, then verify the critical app journeys and operational configuration.
## After completion
A deployment must be confirmed by the actual command result; local tests alone do not prove production is updated.
## If something goes wrong
If a command fails, stop that deployment step and keep the error. Do not recreate the production database or rotate provider secrets as a generic retry.
## Privacy and help
Use the headset icon for Help & Support. Share the displayed error and booking or ticket reference privately. Never send your password, OTP or another person’s private documents.

Source files: app/lib/application-review.ts, app/lib/provider-skills.ts, app/api/actions/route.ts, drizzle/0027_v3044_reviews_clinic_teams.sql, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

## Private reports and CSV exports

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#admin-reporting)

# Reports & Exports
Open the Administration profile menu and choose Reports & Exports. Main Admin can generate account directories, individual specialist-skill lists, recruiter lists, call activity, recorded earnings, commissions, withdrawals, verified payment collections and safe operational events. Generate after changing filters. CSV exports work in Excel; amounts are integer paise and CSV timestamps are UTC while the table displays IST.
## People and privacy
The account directory counts a person once. The skills report has a separate row for each skill, so one doctor/normal-listener account appears in both categories. Approval and availability are separate. Phones are masked by default. Main Admin may explicitly reveal full phones; each successful view or export is audited. Recruiters see only their own assigned directory/skills and commission data with masked phones. This reporting release does not alter permissions on unrelated existing screens.
## Read the definitions
Activity dates default to 30 IST calendar days; directory dates default to all registrations. Gross app-verified collections are not net revenue or bank settlements. Wallet usage is not another external payment. Reversed earnings are excluded from overview totals but remain visible in detail. Calls cover talk_sessions, not every group participant minute. Missing event evidence does not prove app health. Inactive means observed account-session activity older than 30 days, not current offline status.
## GPT connection
The optional GET /api/reports API is disabled until the owner configures an expiring dedicated reporting credential. It permits predefined reports only. Connecting an authorized tool, testing a read and creating a scheduled task are separate post-deployment steps; deployment alone does not start GPT monitoring. Never paste a reporting key, admin password or service-role secret into chat. See START_HERE_V30_6_REPORTING.md for the exact setup and limitations.

Source files: app/lib/reporting.ts, app/lib/reporting-contract.ts, app/api/reports/route.ts, app/components/admin-reports.tsx, drizzle/0035_v306_admin_reporting.sql, START_HERE_V30_6_REPORTING.md

---

# Service reference

## Accounts, login & nicknames

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#accounts)

## Member and listener sign-in
Use the registered mobile number and password in the correct portal: Member, Listener, Support or Administration. Ordinary sign-in does not need a new OTP. First registration and password recovery use mobile verification. Support is invitation-only and has no public signup; its invitation is an in-app notification, not an SMS.
## One number, multiple professional skills
An existing listener signs in, opens Profile → My skills → Add another skill and submits the new category for approval. Do not create another account with the same number. An OTP screen is not proof an SMS was sent: authentication providers can return a generic signup response for an existing number.
## Nickname flow
New accounts collect a valid name/nickname. For an existing member without a safe display name, completion is requested after authentication. A persisted browser session can reopen without asking for the number again; that does not mean the app guessed the identity. The profile button opens the menu, profile editing and explicit logout.
Names must have at least two letters and must not be phone numbers or email addresses. Call participants receive an opaque identity and safe display name. Never put contact information into a visible LiveKit identity.
## Refresh and session protection
Refreshing restores a valid authenticated session. A temporary network error should not sign the user out. A new member login on another device invalidates the previous active account session. A service device lease separately prevents sharing the same call/event seat.
## Recovery
If a name save fails, retain the text, check the error and support reference, then retry after fixing the reported cause. Do not change the user's role or create a duplicate profile to bypass a failed write.

![Open the profile menu to reach all account options — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-profile-menu.jpg)

![Member · profile — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-profile.jpg)

![Doctor · profile — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-profile.jpg)

![auth — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-auth.jpg)

![Doctor registration: identity, qualifications and consent — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-application.jpg)

![Enter qualifications and upload a professional credential — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-credentials.jpg)

![Complete consent and submit for separate doctor approval — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-submit.jpg)

![pending — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-pending.jpg)

Source files: app/lib/auth-server.ts, app/lib/account-session.ts, app/lib/member-registration.ts, app/components/product-app.tsx

---

## Roles, approvals & My skills

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#roles)

## Access model
| Role | Scope |
| Member (customer in API) | Own profile, bookings, balance, consultations and records |
| Listener/provider | Own incoming requests, services, approved skills, earnings and consultation records |
| Main admin | Platform administration, approvals, pricing, safety and payout review |
| Recruiter admin | Assigned team and permitted referral/earnings operations; not unrestricted main-admin access |
| Clinic receptionist | Assigned clinic operations under the existing clinic permissions |
Role headers select portal context; the server still checks the authenticated identity, assigned role, ownership and approval. A header alone never grants administrator access.
## Adding a provider skill
Complete the first provider profile and identity approval. Open My skills and submit a new category with a nickname, supported languages, description of at least four words and consent. Doctor, legal and other professional applications require the category's credential fields and private document.
The main admin reviews each skill independently. Pending or rejected skills cannot be enabled. Existing earnings remain associated with their original skill and transaction.
## Enable several approved skills together
On Listener Home, use Available for these skills to turn each approved skill On or Off. Enable all and Disable all change your approved skills together. An account may offer Normal listener, Doctor, Purohit or other separately approved skills at the same time. Each skill retains its own services, prices and consultation hours.
A held reservation, booking or active call pauses new bookings across the account. The switches retain your choices while busy. After the conflict ends, enabled skills become bookable again subject to their own rules: normal and direct specialist services retain manual availability; Consult now also requires sufficient published hours and current online presence. Physical clinic visits require current readiness at that branch. Turning a skill Off keeps it disabled after the consultation.
My skills → Edit profile & services selects the profile to manage. Viewing or editing one skill does not turn other skills Off or make the account busy. Approval, availability and the profile being edited are separate.
## Registration problems
For Forbidden, inspect the correct portal, first-profile approval, the requested skill’s approval and credential requirements. For an existing number, guide the user to sign-in and My skills. Do not ask them to request repeated OTPs or bypass approval.
## V30.4.4 review requirement
Support reviews the current first-profile or additional-skill application before Main Admin final approval. All doctors need a practice address and PIN, including online-only doctors. See the role-specific journeys for the complete checklist and correction path.

![Member · profile — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-profile.jpg)

![Doctor · profile — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-profile.jpg)

![Doctor · skills — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-skills.jpg)

![main-admin · skills — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-skills.jpg)

![auth — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-auth.jpg)

![Doctor registration: identity, qualifications and consent — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-application.jpg)

![Enter qualifications and upload a professional credential — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-credentials.jpg)

![Complete consent and submit for separate doctor approval — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-submit.jpg)

![pending — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-pending.jpg)

![Several approved skills remain enabled while a booking pauses availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-multi-skill-availability.png)

Source files: app/lib/provider-skills.ts, app/lib/provider-availability.ts, app/components/skill-availability-panel.tsx, app/api/provider-skill/route.ts, app/api/listener-application/route.ts, app/lib/auth-server.ts

---

## My bookings & joining

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#bookings)

## A single place to join
My bookings combines direct listener/specialist calls, doctor appointments, celebrity talks and private meetings. A strip at the top of signed-in pages highlights a joinable session or one starting within 30 minutes. Refreshing the list does not create a booking.
Times are presented in Asia/Kolkata (IST). Keep server timestamps authoritative; do not apply the phone's timezone again to an already converted appointment.
## Patient journey
- Choose a provider, mode and appointment; complete the required consent and payment.
- Open My bookings. Check in when the doctor's online session is live.
- Wait until the doctor calls this appointment, then use Join.
- Keep the visible timer in view. After completion, use Prescriptions & documents for records.
Only the booked patient can join a private appointment. A booking for one slot does not permit access to the next patient's slot. A clinic visit opens visit details instead of an online room.
## Missing or stale Join button
Check the appointment ID, payment confirmation, session status, queue status and current appointment ID. An ended session must not issue a new media token. Use the call end action, not just a browser close, to complete the consultation.

![Member · doctors — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-doctors.jpg)

![Member · bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-bookings.jpg)

![Doctor · bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-bookings.jpg)

Source files: app/lib/upcoming-sessions.ts, app/lib/session-time.ts, app/components/release-features.tsx

---

## Doctor availability & prices

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#availability)

## Set up appointments
1. Sign in as listener and select the approved Doctor skill in My skills.
2. Add clinics in Services if you offer in-person visits.
3. Open Profile → Booking availability and turn on Accepting bookings.
4. Set default voice, video and clinic prices, slot length, buffer and generation horizon.
5. Save Weekly hours. Choose Online or a specific Clinic for each period and add breaks.
6. Add leave dates or blocked times. Review generated slots in My bookings/Services.
7. To change one unbooked appointment, open Individual appointment prices, choose an IST date and save its override.
## Rules developers must preserve
Overlapping weekly periods are rejected. Online and clinic hours are separate; clinics belong to the doctor. Generation is repeatable without duplicate slots. The scheduled job extends the horizon hourly. Accepting bookings controls new availability.
Existing paid bookings are preserved when hours, prices or leave change. A doctor must handle an existing booking separately rather than assuming a leave date cancels it. Default price changes apply to newly generated slots; an existing unbooked slot can have an individual override.
## No appointments in the directory?
Check doctor approval, Doctor availability intent, accepting-bookings settings, generated date range, breaks/leave and clinic location. The directory initially shows the next online/clinic times; See more appointment times exposes other dates and slots.

![Member · doctors — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-doctors.jpg)

![Doctor · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-home.jpg)

![Doctor · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-services.jpg)

![Create an appointment with time, mode, duration and price — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-create-appointment.jpg)

![Doctor · availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-availability.jpg)

![Choose weekly online/clinic hours and breaks — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-weekly-hours.jpg)

![Block leave dates before new bookings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-leave.jpg)

Source files: app/lib/doctor-availability.ts, app/lib/doctor-server.ts, app/components/release-features.tsx

---

## Clinics & consultation completion

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#clinic)

## Register the organisation
1. The owner signs in with their own member account. Profile → Clinic team opens the clinic/hospital workspace. Enter registered organisation name, registration number, address, locality, city, state and PIN.
2. Upload the organisation registration document (PDF/image, maximum 4 MB). Support reviews the organisation and owner authority; Main Admin approves finally. Before approval, the organisation cannot publish doctor availability.
3. Add a branch with its full visiting address. Create separate branches for different locations. Approved organisation identity changes require support; branch details use the branch management screen.
4. An assistant creates their own member account. The owner enters that mobile number under Authorised assistants to grant or revoke team access. Never share the owner's password. Assistants cannot manage ownership or staff grants.
## Add doctors without repeating account creation
Choose a branch → Doctors & applications → enter the doctor's own name and mobile number. An existing approved doctor signs in, opens Clinic team, and accepts the association. For a new doctor, prepare their name, introduction, languages, qualification, specialty, registration, authority and practice address; upload photo and credential. The doctor signs in on their own number, reviews the details/documents, confirms consent and submits for support review and Main Admin approval.
A clinic invitation is not a new OTP/account and does not confer medical approval. Clinic scheduling is enabled only for doctors with an active accepted association and approved doctor skill. The doctor can remove future scheduling access from Clinics authorised to manage my hours. Existing paid appointments remain accessible.
## Publish for multiple doctors
1. Choose branch → Consult now. Select several approved doctors, choose online or physical visits, dates/preset, weekdays, daily periods and excluded leave dates.
2. Enter common fees, duration and buffer. Expand Individual prices for different doctor fees or durations. Preview and publish all selected doctors together. A conflict for any selected doctor rejects the batch; it does not silently publish only part of it.
3. Physical visits: desk staff select only doctors actually present and ready, then Mark selected doctors ready. Keep the page open to confirm readiness. Online calls require the doctor to be online in their own account. Clinic staff entering timings removes the need for each doctor to enter them again.
4. A reservation/consultation makes that doctor busy across branches and skills. Other ready doctors remain bookable. After completion the same doctor returns to availability within their remaining period. Pausing a period or revoking access stops new bookings, not an existing paid appointment.
## Patient search, arrival and completion
Members open Home → Consult now and search hospital/clinic name, specialty or location. They see the selected doctor's own fee; an organisation listing does not silently substitute another doctor. Physical visits display the branch address. Checkout lasts up to ten minutes; the patient should arrive within thirty minutes after verified payment, before the consultation-start deadline.
Confirmed bookings notify the doctor and authorised clinic team in Updates; background push depends on each device's enabled subscription. Open Clinic team → Patient bookings and Refresh bookings. Desk staff record Check in → Start consultation → Complete visit. Repeat completion cannot credit earnings twice.
Only the doctor and booked patient access clinical chat, documents and prescriptions. An assistant may manage logistics but cannot enter the private online room or prescribe. Existing doctor-wise earnings and payouts are retained; organisation-level settlement is not introduced.

![Doctor · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-home.jpg)

![Doctor · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-services.jpg)

![Create an appointment with time, mode, duration and price — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-create-appointment.jpg)

![doctor room — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-doctor-room.jpg)

Source files: app/lib/clinic-team.ts, app/components/clinic-team.tsx, app/lib/consultation-windows.ts, app/api/clinic-document/route.ts, app/lib/doctor-server.ts

---

## Prescriptions & revisions

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#prescriptions)

## Doctor: create and send
Open Write prescription inside the doctor call, or Profile → Consultation records → Open. Set the hospital/clinic header, address, footer, logo and signature as needed. Enter the patient's details and your clinical instructions. Save draft keeps the document private to the treating doctor. Finalize & send makes it available to the patient.
## Doctor: edit a sent prescription
1. Open the appointment's prescription and choose Edit sent prescription.
2. Make corrections. The patient continues to see the last sent version while you edit.
3. Select Send updated prescription and confirm. The revision number increases and the patient receives an update notification.
4. Cancel changes discards the unsent edits. A sent prescription cannot be changed back to a private draft.
If another window saved first, your stale save is rejected. Copy any unsaved text, choose Reload latest prescription and review before sending again. The app does not silently overwrite the newer version.
## Patient: download the latest version
Open Prescriptions & documents, select the consultation and Download PDF. Downloads always use the latest sent database record with private, no-store caching. The PDF shows its reference, revision and issue time. A previously downloaded file does not update itself; download again after an update notification.
## Authorization and history
Only the approved treating doctor may write. Only that doctor and the booked patient may read. The appointment must be confirmed or completed. Each issued revision has an archived content/template snapshot in prescription_versions. Doctors write all clinical content; the application does not generate medical instructions.
New amendments are local form edits until sent. They are not autosaved drafts. Changing a reusable template affects future saves, not an already issued snapshot.

![Member · prescriptions — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-prescriptions.jpg)

![Read or download the latest sent prescription — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-prescription-sent.jpg)

![Doctor · prescriptions — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-prescriptions.jpg)

![Read or download the latest sent prescription — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-prescription-sent.jpg)

![Edit a sent prescription, then send the updated revision — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-prescription-edit.jpg)

![doctor room — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-doctor-room.jpg)

Source files: app/lib/consultation-records.ts, app/lib/prescription-pdf.ts, app/api/prescription/route.ts, drizzle/0024_prescription_revisions_chat_lock.sql

---

## Specialist chat & attachments

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#documents)

## In-call communication
Specialist calls provide Chat & documents so the participants can exchange text and private attachments during the eligible consultation. This is separate from the locked member-to-member chat feature. Normal listeners use their live call options and do not sell standalone text/voice-note sessions.
Supported consultation attachments are PDF, JPG, PNG, DOC and DOCX, up to 10 MB. The server checks file format, size, participant ownership and whether writing is still allowed. Files are stored privately in R2 and retrieved through authenticated routes.
## After the call
Completed consultation messages and attachments remain readable to authorized participants. Sending new messages or documents stops when the consultation ends. A private-queue patient cannot send into another patient's consultation.
## Upload recovery
Keep the selected file and entered message where possible. Check size/type, network, session status and the displayed error. Do not make the bucket public or paste medical records into a general support ticket. Provide a masked screenshot and record ID when investigating a failure.

Source files: app/lib/consultation-records.ts, app/api/consultation-file/route.ts

---

## Listener calls, video & free calls

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#calls)

## Normal listener calls
Normal-listener calls are voice only in V30.5. The video option is hidden and a server/database release lock rejects new video requests. Specialist, doctor, celebrity and private-room video remains available. The introductory benefit remains two successfully connected five-minute normal-listener voice calls, including with zero Talk Balance. A failed request or failed connection must not consume a completed free call.
Paid normal-listener voice uses the configured Talk Balance rate. The video rate and implementation remain saved for a future release, but do not enable video now. Always use the server quote and reserved/settled amount, not a hard-coded UI price. Free voice eligibility does not make video free.
## Media readiness
Ask for microphone/camera permission in the visible user flow, show local preview where appropriate, and offer retry. A denied permission or mobile autoplay restriction should show a recoverable message rather than a blank screen. LiveKit tokens control allowed publish/subscribe rights and must use private-safe participant names.
## Timers and ending
Every call view has a visible countdown based on server start/end timestamps. Client timers are presentation; the server enforces expiry and denies rejoining ended calls. Closing the screen and ending the service are different actions. Presence and successful connection determine settlement.
For audio/video faults, verify the selected mode, permission, device lease, token grant, room identity and current session status before changing code.

![Member · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-home.jpg)

![Member · listeners — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-listeners.jpg)

![Member · clinic team — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

![normal listener · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-services.jpg)

![normal listener · requests — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-requests.jpg)

![normal listener · earnings — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-earnings.jpg)

![audio call — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-audio-call.jpg)

Source files: app/lib/free-normal-calls.ts, app/lib/timed-room-server.ts, app/lib/providers.ts, app/lib/service-access.ts

---

## Celebrity Talks & fan turns

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#celebrity)

## Scheduled talk journey
An approved speaker creates a scheduled talk under the configured capacity, duration and pricing rules. A member books a seat and joins that event. A selected fan receives an invitation to prepare and accept the stage interaction.
The fan screen shows the acceptance deadline, countdown until the turn and time remaining after it starts. Microphone/camera readiness and preview must remain usable on a phone. Audience access alone does not grant stage publishing rights.
## Invitation accepted but cannot proceed
Check that the invitation still belongs to the current member and event, is within its deadline, and the stage state has advanced. Inspect token permissions, camera/microphone status and device access. Do not reuse a token for another room or member.
If the UI crashes, use the recovery screen and collect the time, talk ID, invitation state and MM reference. A screenshot of a white page alone does not identify the failing line. Test audience → selected → accepted → speaking → returned-to-audience transitions.

![Member · celebrity — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-celebrity.jpg)

![celebrity selected — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/journey-celebrity-selected.jpg)

Source files: app/lib/community-server.ts, app/lib/celebrity-stage.ts, app/lib/celebrity-pricing.ts

---

## Private rooms

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#private-rooms)

## Create or join
The host creates an invitation-only audio/video meeting with up to ten participants in total, including the host. Invited members use the supported invite/code flow. Show only safe names/nicknames; member codes are for invitations, not passwords.
## Billing and access
The host reserves the applicable Talk Balance amount. Connected room usage requires the host and at least one invitee; invitees are not charged under the current private-room policy. Unused reserve is released by settlement. Display the current server quote and reserve before creation.
The service lease prevents one account sharing the same seat across devices. All participants see the session countdown. The host's end action and server expiry close access; a hidden browser tab does not prove a meeting ended.
## Support checks
Verify invite ownership, host balance/reserve, scheduled time, live/ended status, room name and connected participant evidence. Do not publish an invite code or participant list in a public issue.

![Member · private — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-private.jpg)

Source files: app/lib/community-server.ts, app/lib/talk-balance.ts, app/lib/timed-room-server.ts

---

## Talk Balance, payments & refunds

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#payments)

## What Talk Balance means
It is the member's available app balance, with recharge, reservation, usage and refund records. Booking an appointment does not by itself prove where a displayed balance came from. Use the balance ledger and payment/refund references to trace a credit.
## Payment confirmation
The server creates Cashfree orders. A redirect, client success callback or screenshot is not payment verification. Server verification and signed webhooks update the matching order and business record. Replayed events and retried purchases must not debit or credit twice.
## Reserve versus charge
Reserved money is held for an eligible service; settlement charges the applicable connected usage and releases the unused reserve. Specialist appointments use their booked price and lifecycle rules. Preserve the amount quoted when the booking was purchased.
## A customer reports a wrong refund
Collect a masked payment/order reference, appointment/session ID, approximate IST time and the displayed message. Inspect payment status, refund status, connection evidence and ledger entries. In-app balance credit and money returned to the original payment source are different outcomes; say which is recorded. Never promise a bank completion time based only on an app notification.
If the result is uncertain, check Wallet and My bookings before asking the customer to pay again.

![Member · balance — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-balance.jpg)

Source files: app/lib/talk-balance.ts, app/lib/talk-balance-policy.ts, app/api/payments/webhook/route.ts, app/lib/providers.ts

---

## Earnings, referrals & administration

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#earnings)

## Earnings and payouts
Provider and recruiter earnings are ledger-based. Eligibility, completion, refunds and commission snapshots determine payable amounts. A current UI price does not rewrite historical earnings. Review the configured tiers and transaction snapshots before explaining a commission difference.
Payout details are encrypted using the configured key. The workflow includes method verification, applicable hold/minimum, withdrawal request, review and manual transfer confirmation with UTR. Requested, approved and paid are distinct states. Do not mark a payout paid without its transfer evidence.
## Referrals and team scope
Recruiter admins manage their assigned scope. Main admins manage invitations, assignments, approvals and permitted platform settings. Referral codes attribute a group; they are not authentication credentials. Changing team assignments must not silently recalculate old commissions.
## Safety and support
Main-admin safety/report review and the support-ticket workflow have their own permissions. Never expose bank details, professional credentials, private reports or medical attachments in the public documentation or a public screenshot. Use the existing scoped review actions instead of editing role records to bypass access checks.

![recruiter · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-home.jpg)

![main-admin · home — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-home.jpg)

![main-admin · people — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-people.jpg)

![main-admin · application reviews — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-application-reviews.jpg)

Source files: app/api/actions/route.ts, app/lib/payout-methods.ts, docs/MULTI_ADMIN_REFERRALS.md, docs/PRICING_DISCOUNTS.md

---

## Notifications & device setup

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#notifications)

## In-app updates and background push
Booking confirmations, doctor-ready alerts, appointment reminders and prescription updates are stored in the app notification centre. A configured Web Push subscription can also wake the installed app/browser's notification service when the app is in the background or the phone is locked. Delivery depends on connectivity, permission, device services and battery restrictions; it is not guaranteed when the browser is force-stopped.
## Enable on this device
Use a supported browser over HTTPS. Open Updates → Enable on this device and allow notifications. If permission was previously blocked, enable it in the site's/browser's settings and retry. Booking records remain in My bookings even without push.
## Operator configuration
Use WEB_PUSH_VAPID_PUBLIC_KEY, WEB_PUSH_VAPID_PRIVATE_JWK and WEB_PUSH_VAPID_SUBJECT. Generate a matched pair with npm run webpush:keys and set secrets privately in Cloudflare. The project contact is mailto:nagaraju@learnwithvedha.com; set that explicit subject rather than relying on an old default mailbox.
Do not regenerate keys as a routine retry. Existing subscriptions are tied to the key pair and may need re-registration after an intentional rotation.
## Registration failed — push service error
This may be a device/browser push-service failure. Check permission, connection, browser updates and Google Play services on affected Android devices, then retry. A missing-server-keys message is a different configuration issue. Inspect the actual error before choosing the recovery step.

![Member · notifications — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-notifications.jpg)

Source files: app/lib/notification-server.ts, app/lib/upcoming-sessions.ts, public/sw.js, scripts/generate-web-push-keys.mjs

---

## Legal & other specialist services

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#specialists)

## Publish a specialist service
Legal advisors, Jyothishya Pandits, Purohits, traditional healers and other professionals use their approved provider category. Sign in through the Listener portal, select the approved skill, then manage the offering and call settings in Services. Approval for one category does not authorize another.
An offering records the relevant service, duration and price under server validation. Non-celebrity specialist offerings have the current minimum of ₹99. The server creates the order using the stored offering, not a price supplied by the member. Turning an offering inactive stops new discovery/purchases through that offering; existing bookings still need their normal lifecycle handling.
## Member journey
Choose the category on Home or from the account menu, review the compact provider rows and open the three-dot details when needed. Select an available offering and supported call mode, review the quote and consent, then complete payment. Use My bookings or the top upcoming strip to join when ready.
These consultations can exchange private chat and documents within an eligible call. The medical prescription editor is for approved treating doctors only. Legal or other professional approval does not grant prescription-writing permission.
## Not visible in the directory?
Check the booked category’s approval, its enabled availability, offering active state, call preferences and the member's filters/referral scope. Do not duplicate a provider account to make a service visible.

![legal · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-services.jpg)

![jyotishya pandit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-jyotishya_pandit-services.jpg)

![purohit · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-purohit-services.jpg)

![boitha vaidyudu · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-boitha_vaidyudu-services.jpg)

![other · services — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-other-services.jpg)

Source files: app/lib/specialist-server.ts, app/lib/provider-skills.ts, app/components/product-app.tsx

---

## Consult now: open specialist hours

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#instant)

## Choose the approved skill and its own hours
Sign in to your existing Listener account. Home → Available for these skills lets you enable several approved skills together. Pending or rejected categories cannot be enabled. My skills → Edit profile & services selects only the profile to manage; it does not change your availability choices.
Open Consult now availability and choose Skill to manage. Doctors require an approved practice address. Other specialists publish an active priced service in Services. Choose that skill’s service, dates, weekdays, one to four daily periods, leave exclusions, duration, buffer and voice/video fees. Preview and publish. Each skill and clinic keeps its own periods and prices; changing one does not replace another skill’s schedule. Paid bookings keep their quoted fee and duration.
## Ready means more than enabled
Enable the skill on Home or in its hours editor. For online Consult now, keep the app visible and connected; online presence expires after 90 seconds without a visible-page heartbeat. The active period must fit checkout, consultation and buffer. Physical clinic Consult now also requires current readiness at the selected branch from the authorised clinic desk or doctor. Publishing future hours alone does not make a provider Available now. Normal listener calls and direct specialist services keep their existing manual availability rules.
## One shared busy state
A held reservation, booking or active call pauses new bookings across all provider skills and clinic branches. Enabled choices stay saved while busy. After completion or expiry, only enabled skills return under their own time and readiness rules. A skill that you turned Off stays Off. Scheduled appointments, breaks, leave and other overlapping bookings continue to block conflicts.
## Member booking and recovery
Members use Consult now, review the provider’s booked skill, duration, location and quoted price, then accept applicable age and doctor privacy notices. Only one reservation can win for the same provider or member. Complete checkout within ten minutes, then use My bookings. Online consultations must start within ten minutes of verified payment; physical clinic visits have thirty minutes. Expired or late paid reservations follow the existing refund path. A late payment never grants another patient’s booking.
Doctors use the private patient queue; other specialists accept the incoming request. Existing consultation documents and doctor prescriptions remain available. Disabling a skill or going offline stops new Consult now availability without cancelling paid appointments.

![Member · consult now — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-consult-now.jpg)

![Home: accepting bookings, practice address and consultation setup — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-home-consult-now.jpg)

![Doctor · open hours — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-open-hours.jpg)

![Preview dates, periods and your consultation prices — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/doctor-open-hours-preview.jpg)

![legal · open hours — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-open-hours.jpg)

![Preview dates, periods and your consultation prices — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/legal-open-hours-preview.jpg)

![Several approved skills remain enabled while a booking pauses availability — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/listener-multi-skill-availability.png)

Source files: app/lib/instant-availability.ts, app/lib/instant-booking.ts, app/lib/consultation-windows.ts, app/lib/provider-availability.ts, app/components/consultation-window-editor.tsx, app/components/skill-availability-panel.tsx

---

# Customer help

## Errors & guided recovery

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#errors)

## A useful error explains the next step
Keep user-entered information, distinguish validation from permission or network failures, and show the relevant recovery action. Internal stack traces, database details and provider secrets belong in restricted diagnostics, not a customer message.
| Status / symptom | Customer guidance | Agent investigation |
| 401 | Sign in again if the session expired | Auth validity and session restoration |
| 403 / Forbidden | Use the authorized account/skill; check pending approval | Role, ownership, clinic/team scope and credentials |
| 409 | Review the current record before retrying | Stale revision, duplicate booking, active device or state conflict |
| 412 | Complete the required name, consent or prerequisite | Exact missing field/gate |
| 423 / MEMBER_CHAT_LOCKED | Return Home; purchased chat time is saved | Expected release lock, not a payment failure |
| 429 | Wait before trying once more | Rate limit and repeated requests |
| Network / timeout | Check connection; verify saved result before resubmitting | Request stage, response body, idempotency and backend logs |
| 5xx | Retry a safe read or contact support with the reference | MM reference and matching server log |
guidedFetch applies a timeout that includes reading the response body. JSON failures are normalized through readApiJson/UserFacingError. The UI preserves status/code and exposes Support. Avoid generic success messages on failed operations.
For a partially completed write, inspect the saved state first. A prescription may have saved even if a subsequent notification failed; reloading the latest record resolves uncertainty without blindly overwriting it.

Source files: app/lib/user-errors.ts, app/lib/api-errors.ts, app/components/error-recovery.tsx, app/guided-errors.css

---

## Troubleshooting playbook

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#troubleshooting)

## Start with the exact symptom
| Symptom | First useful action |
| Existing listener gets no signup OTP | Sign in → Profile → My skills; do not create a duplicate account |
| Doctor registration Forbidden | Confirm listener portal, completed first approval, skill eligibility and required credentials |
| Name prompt appears before typing a number | Check whether a valid session was restored; use explicit Logout to change accounts |
| Name will not save | Check valid nickname, authentication and displayed support reference; retain input |
| Pull-to-refresh logs out | Inspect refresh/session response; distinguish expiry from temporary offline state |
| Blank celebrity acceptance screen | Capture talk/invitation state and console/support reference; test media readiness transition |
| Patient can join the wrong appointment | Check server ownership/current appointment, not only the visible button |
| Completed meeting remains joinable | Inspect end action, lifecycle reconciliation and token endpoint denial |
| Missing prescription | Confirm correct appointment and that the doctor sent it rather than only saving a draft |
| Old prescription PDF | Re-download after the update; compare revision and issue time |
| Push keys not configured | Operator checks VAPID variables and matched key pair |
| Push service registration failed | Inspect browser/device permission and device push service; do not assume server keys are missing |
| Old colour or page after update | Confirm deployed release and service-worker update; an old Android wrapper may retain native styling |
| APK missing in npm test | Use the complete release package; do not delete the security test or invent an APK |
| Unexpected balance/refund | Reconcile payment, appointment and ledger evidence before explaining the cause |
## Escalation rule
If a safe retry or documented account action does not resolve it, open a support ticket with the minimum evidence below. Never request a password, OTP, full card number or authentication token.

![Member · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-support.jpg)

![recruiter · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-support.jpg)

![main-admin · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-support.jpg)

Source files: app/lib/support-knowledge.ts, app/support/page.tsx, app/lib/user-errors.ts

---

## Support tickets & agent handoff

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#handoff)

## Customer help
The headset icon beside Notifications opens Help & Support. The public /support page is available without entering a private dashboard. The project contact is nagaraju@learnwithvedha.com.
## Collect only what is needed
- App release and device/browser version.
- Role and selected service/skill; mask phone/email in screenshots.
- Steps, expected result and exact displayed message.
- Approximate date/time in IST and the MM support reference, if shown.
- Relevant booking, session, order or ticket ID through the private support channel.
- Whether the operation succeeded on a retry; avoid repeated payments.
## Engineering handoff template
```text
Release:
Role / service:
Device / browser:
Time (IST):
Steps to reproduce:
Expected / actual:
Displayed error / MM reference:
Related record IDs (private ticket only):
Safe checks already performed:
Result and next owner:
```
Use a synthetic account to reproduce. Inspect restricted logs by reference, redact sensitive fields and attach only necessary evidence. State confirmed facts separately from hypotheses. After a fix, verify the original journey, communicate the next user action and update the relevant guide.

![Member · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-support.jpg)

![recruiter · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-support.jpg)

![main-admin · support — demonstration data](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-support.jpg)

Source files: app/lib/support-server.ts, app/api/support-attachment/route.ts, app/lib/api-errors.ts

---

# Engineering & deployment

## Member-chat release lock

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#chat-lock)

## Current state: locked
V30.4.2 hides member-to-member chat from customer Home and profile menus. A bookmarked chat page shows an unavailable message and Return Home. Customer chat actions, package purchases and audio access are blocked on the server with HTTP 423 and MEMBER_CHAT_LOCKED.
This lock does not disable live listener calls or specialist in-call Chat & documents. Main admins retain price preparation and reported-conversation review; changing a price or its availability does not unlock the feature.
## Preserved data
Code, price packages, purchases, text/voice time balances and conversation records remain. Migration 0024 pauses open rooms without charging remaining time and expires waiting matches. Existing voice-note retention still applies: unreported audio follows the 30-day retention job; reported evidence is excluded from that cleanup.
## Enforcement
service_feature_flags has a server-owned member_chat row, disabled by default. UI visibility follows the server payload, never a customer-supplied flag. Database triggers prevent purchases, new messages, activation and allowance debits while locked, including during a deployment with an older Worker.
Releasing later is a deliberate engineering release with two-member regression tests, restored discovery, price review and explicit owner approval. Do not enable it as a support workaround. The current customer UI and admin price screen do not provide an unlock switch.

Source files: app/lib/member-chat-access.ts, app/lib/member-chat.ts, app/api/member-chat-audio/route.ts, drizzle/0024_prescription_revisions_chat_lock.sql

---

## API contract & authentication

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#api)

## Base URL and contract
Production base URL: https://manasulo.learnwithvedha.com. API paths start with /api/. The inventory below lists every current route and detected action name, grouped by source file. It is an internal source index, not an OpenAPI schema or a promise of stable external APIs.
## Authenticated requests
Use a valid Supabase user access token in Authorization: Bearer, the selected x-portal-role (customer, listener or admin), and the current browser x-device-id. Customer account-session activation/resume must succeed through the existing sign-in flow. Reuse that flow; do not manufacture an activation header or store a service-role secret in a browser.
## JSON actions
GET /api/actions loads the authorized dashboard. POST /api/actions accepts a JSON object with action, deviceId and the action-specific fields. Always send Content-Type: application/json. The server checks identity, role, ownership, consent and lifecycle constraints for each action.
```json
{"action":"prescriptionGet","deviceId":"<current-device-id>","appointmentId":"<own-appointment-id>"}
```
Example response shape (synthetic identifiers):
```json
{"appointment":{"id":"<appointment-id>"},"canWrite":false,"prescription":{"id":"<rx-id>","status":"final","revision":3,"content":{"patientName":"<patient>"},"finalizedAt":"<ISO timestamp>"}}
```
## Multipart and file responses
Uploads use FormData; omit an explicit Content-Type so the browser supplies the boundary. Keep authentication/device headers. File GET routes return the authorized binary or an error; do not parse every response as JSON. Use guidedFetch/readApiJson and retain form values on failure.
## Error contract
Failures may contain error, code and a support reference. Preserve HTTP status and code. Handle 401, 403, 409, 412, 423, 429 and server/network failures as distinct cases. Do not automatically retry a payment or other write because the response was lost.

Source files: app/api/actions/route.ts, app/lib/auth-server.ts, app/components/product-app.tsx, app/lib/user-errors.ts

---

## Workflow API examples

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#api-examples)

## Common actions
These examples are request bodies for the existing authenticated action client. Placeholder IDs must belong to the signed-in actor. Read the current handler before adding fields; omitted examples do not imply an endpoint is public.
| Action | Important inputs | Result / restriction |
| upcomingSessions | action, deviceId | Own upcomingSessions; canJoin is server-derived |
| prescriptionGet | appointmentId | Own appointment, visible prescription and canWrite |
| prescriptionSave | appointmentId, revision, content, finalize | Treating doctor only; revision conflict returns 409 |
| savePrescriptionTemplate | clinicName, header, address, footer | Approved doctor only |
| consultationMessages | talkSessionId or appointmentId | Authorized specialist messages |
| sendConsultationMessage | talkSessionId, text, clientKey | Active consultation; text up to 4000 characters |
| saveDoctorBookingSettings | acceptingBookings, voicePriceRupees, videoPriceRupees, clinicPriceRupees, slotMinutes, bufferMinutes, generateDays | Approved doctor settings and generated slots |
| overrideDoctorSlotPrice | doctorSessionId, voicePriceRupees, videoPriceRupees | Own unbooked slot only |
## Send a corrected prescription
Read prescriptionGet first. Pass exactly the returned revision. content is the complete replacement, not a partial patch; preserve fields that are not changing.
```json
{"action":"prescriptionSave","deviceId":"<current-device-id>","appointmentId":"<own-appointment-id>","revision":3,"finalize":true,"content":{"patientName":"<patient>","patientAge":"","diagnosis":"","medicines":[],"tests":"","advice":"<instructions written by treating doctor>","followUp":"","notes":""}}
```
Success returns the updated prescription with a greater revision. Stale revision, unauthorized actor or unconfirmed appointment must not modify the record. A new revision creates a patient notification and historical snapshot.
GET /api/prescription?appointmentId=<own-appointment-id> returns the latest eligible PDF with Content-Type application/pdf and private, no-store caching. It does not accept a public file key as authorization.

Source files: app/lib/consultation-records.ts, app/lib/doctor-availability.ts, app/lib/upcoming-sessions.ts, app/api/consultation-file/route.ts

---

## Data model & migrations

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#data)

## Core record groups
| Records | Purpose |
| profiles, provider_skills, approved_doctor_profiles | Identity, role, independently approved skills and doctor credentials |
| talk_sessions, doctor_sessions, doctor_appointments | Call state, schedules and patient-specific bookings |
| clinics, doctor_booking_settings, doctor_availability_rules, doctor_blocked_dates | Clinic locations, master settings, recurring time and leave |
| prescriptions, prescription_templates, prescription_versions | Current prescription, reusable layout and issued snapshots |
| consultation_messages | Private specialist messages and attachment references |
| member_talk_balances, talk_balance_ledger | Available/reserved balance and auditable changes |
| app_notifications, push_subscriptions | Durable in-app updates and device subscriptions |
| member_chat_* and service_feature_flags | Retained chat data and server-owned release lock |
Consult the migration inventory for all tables across the project, including private rooms, celebrity talks, referrals, payouts, safety and support. The migrations are the authoritative deployed schema history; do not assume a newly edited ORM file has changed production.
## V30.4.2 migration
0024 adds prescription_versions, backfills existing final prescriptions and creates issued-revision triggers. It adds the disabled member_chat flag, pauses open rooms and protects balances during the lock. It does not delete purchases or prescription content.
Apply migrations in filename order using Wrangler's migration command. Before a production change, retain the previous source and confirm an operational database recovery point. Rollback of a Worker does not roll back its database. Do not drop new tables or remove the chat guards as an automatic rollback step.

Source files: drizzle/0023_v304_schedules_communication.sql, drizzle/0024_prescription_revisions_chat_lock.sql, db/schema.ts

---

## Configuration & secrets

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#configuration)

## Cloudflare bindings
DB is D1; BUCKET is private R2; ASSETS serves built files; IMAGES supports the image optimization route. Preserve the project's existing production binding identities when deploying an update.
## Integration variables
| Area | Variable names |
| Mode | APP_MODE |
| Authentication | SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY |
| Media | LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET |
| Payments | CASHFREE_APP_ID, CASHFREE_SECRET_KEY, CASHFREE_ENV |
| Push | WEB_PUSH_VAPID_PUBLIC_KEY, WEB_PUSH_VAPID_PRIVATE_JWK, WEB_PUSH_VAPID_SUBJECT |
| Operations | SUPPORT_EMAIL, LEGAL_BUSINESS_NAME, ADMIN_IDENTIFIERS, TOP_TIER_MIN_RATING |
| Payout encryption | PAYOUT_DATA_ENCRYPTION_KEY |
| Safety integration | MODERATION_WEBHOOK_SECRET |
The environment inventory lists additional variables found in the code. Set secret values through Cloudflare's secret controls or interactive Wrangler secret put; do not publish their values in source, docs, screenshots or support tickets. Public config intentionally exposes only client-safe values.
Set SUPPORT_EMAIL to nagaraju@learnwithvedha.com for this project. Read productionReadiness for approval/test gates. A gate should reflect a completed check, not be set true merely to make /api/health green.
Keep the payout encryption key stable unless performing a planned re-encryption. Changing it without migrating stored details can make payout records unreadable.

Source files: app/lib/runtime.ts, wrangler.jsonc, docs/ENVIRONMENT.example

---

## Webhooks & background jobs

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#webhooks)

## Incoming integrations
| Route | Sender and purpose |
| /api/payments/webhook | Cashfree; verified payment/refund lifecycle |
| /api/livekit/webhook | LiveKit; room/participant lifecycle evidence |
| /api/moderation/webhook | Configured moderation integration; signed safety events |
Keep the raw request format required by each signature verifier. Validate signatures before business writes. Handle duplicates idempotently and compare the event's resource with the stored order/session. Never accept a client request as a substitute for a signed provider event.
## Scheduled work
The Worker runs a minute cron for expired celebrity/private/doctor/direct calls, member-chat reconciliation, appointment reminders and voice-note retention. Doctor availability generation also runs hourly. The chat lock stops usage charging without removing the scheduled code.
## Investigating delayed updates
Inspect the last successful job execution, configuration, affected IDs and provider event status. An HTTP acknowledgement does not prove all external follow-up effects succeeded. A cron job cannot establish a consultation happened if connection evidence was never recorded. Replay only through the existing idempotent reconciliation path; do not insert a payment success row manually.

Source files: worker/index.ts, app/api/payments/webhook/route.ts, app/api/livekit/webhook/route.ts, app/api/moderation/webhook/route.ts

---

## Testing & release validation

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#testing)

## Test layers
The Node suite covers runtime behavior against migrated SQLite, authorization and security contracts. The build validates bundled routes/assets. TypeScript checks static types. Browser scripts render real React screens with synthetic data and media to check layout and user interactions.
## V30.4.2 acceptance cases
- Doctor sends revision 1, edits it and sends a later revision; the patient retrieves the latest content/PDF.
- A stale save, another doctor or the patient cannot overwrite the prescription; the prior issued snapshot remains.
- Locked chat is absent from customer navigation; direct actions, audio and purchases cannot bypass the lock or consume time.
- Specialist consultation chat remains independent of the member-chat lock.
- /developer opens without login, switches English/Telugu, searches content and supports direct topic links on phone and desktop.
Retained chat regression tests explicitly enable it only in isolated fixtures. That test setup does not unlock production.
## What automated checks do not prove
Synthetic tests do not prove live OTP delivery, Cashfree capture/refund, two-device LiveKit quality, phone push delivery or Play Store readiness. After deployment, verify the original affected doctor/patient journey with consent and controlled test records. Report the exact checks completed rather than saying every feature was tested on real devices.

Source files: tests/helpers/v304-runtime.mjs, scripts/verify-v304-ui.mjs, scripts/verify-v304-calls.mjs, scripts/verify-v3041-errors.mjs

---

## Deployment & recovery

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#deployment)

## Existing project update
Extract the complete V30.4.2 package into a new folder. Open PowerShell inside the project folder. Keep your existing Cloudflare authentication, production bindings and secrets. Run one command at a time and stop on failure.
```powershell
npm ci
npm test
npx wrangler d1 migrations apply manasulo-maata-prod --remote --config .\wrangler.jsonc
npx wrangler deploy --config .\wrangler.jsonc
```
npm test includes the build. Apply migration 0024 before deploying this Worker. It is required for prescription revision history and the chat lock. Confirm the migration list instead of assuming No migrations to apply means you extracted the correct package.
## After deployment
Keep the deployment version ID. Open the app and accept its update prompt when shown. Visit https://manasulo.learnwithvedha.com/developer to check this portal; use ?lang=te#prescriptions for a Telugu topic link. Test a prescription correction and patient re-download, then confirm member chat is hidden.
## Failure and rollback
If migration fails, do not deploy the new Worker. If deployment fails after migration, retain the schema and investigate the build/upload error. Restoring a prior Worker does not reverse the database, and the chat lock remains intentionally enforced by database guards. Do not remove guards, drop prescription history or re-run completed financial writes as a rollback shortcut.
The web release does not build or publish a new native Android application. Follow a separate signing and store-release workflow only when that work resumes.

Source files: wrangler.jsonc, package.json, drizzle/0024_prescription_revisions_chat_lock.sql, public/sw.js

---

## Privacy, security & maintenance

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#privacy)

## Access and data handling
Keep authorization on every read and write, including PDFs and attachments. Use opaque participant identities with safe display names. Do not rely on hidden buttons for permission checks. Account sessions and service leases solve different access problems and both must remain enforced.
Do not publish patient details, phone numbers, bank data, private object keys or credentials in documentation examples. Use placeholders or synthetic fixtures. Keep public developer documentation separate from private tickets and operational logs.
## Safe maintenance
Preserve payment idempotency, appointment ownership, doctor approval and revision checks when changing UI. Do not weaken them to make a failed test pass. Apply additive migrations carefully, keep a recovery point and verify targeted regressions before release.
The public portal is static documentation: it cannot run administrator actions, inspect a customer's records or unlock features. Link users to Help & Support for account-specific assistance.
## Documentation design reference
The topic navigation, overview and API/workflow separation were informed by Uber's developer documentation structure. This portal's implementation and project-specific content are independently written. Reference links are included below; no Uber branding or proprietary API behavior is used.

Source files: app/lib/participant-privacy.ts, app/lib/service-access.ts, app/lib/support-server.ts, worker/index.ts, app/privacy/page.tsx

---

## PWA, mobile UI & Android status

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#mobile)

## Mobile web and installation
The customer, listener and admin portals share a responsive web application. The /download page provides the existing official installation paths. Install the PWA from the production HTTPS origin in a supported browser. Reinstalling a PWA may reuse the browser's authenticated session; it is not guaranteed to clear the account.
The profile menu holds full role navigation. On a phone, scroll inside the open menu to reach its last option. Background status updates preserve the open menu and its scroll position; tapping a destination opens that page and closes the menu. The top support icon and notification shortcut remain available. Long forms and documentation may scroll vertically; layouts must fit the screen width. Live video uses the mobile viewport with reachable controls and safe-area spacing.
## Updates and colour
Web branding uses the green theme colour in the page metadata and manifest. A service-worker update refreshes the web assets. An older Android wrapper may retain its own native system-bar colour until its separate build is updated. Do not change account data or repeatedly reinstall to solve a styling issue.
## Android release boundary
The complete package retains existing Android source and the supplied APK. V30.4.2 does not create a newly signed native APK/AAB or publish a Play Store release. Native Android work is deferred until the web workflows are confirmed. Before a later Android release, use its own build, signing, domain-association and store validation process.
## Verification
Check text contrast, large touch targets, safe-area controls, no horizontal page overflow, camera/microphone recovery, background notification permission and the restored-login flow on the actual target device. Desktop browser emulation is useful but cannot establish every native-device behavior.

Source files: public/manifest.webmanifest, public/sw.js, app/layout.tsx, android/README.md, android-native/README.md

---

## Product review & next improvements

[Open this topic](https://manasulo.learnwithvedha.com/developer?lang=en#product-review)

## Review scope
This review covers the supplied source, database/runtime tests and actual React screens with demonstration data. It is not a production payment audit, capacity estimate or live-device certification. Consult the complete release report in docs/V30_4_3_PRODUCT_REVIEW.md.
## Highest priorities
1. Give each booking a payment timeline showing the price, verified payment, consultation outcome and refund destination/status. A wallet credit is different from a return to the original payment method.
2. Add operational monitoring for last successful cron/webhook, old pending payments, stuck sessions, refunds and push errors. Use private record references, not patient document contents.
3. Create a staging test journey on two real devices for signup, normal voice, doctor consultation/prescription amendments, specialist video and celebrity selection.
4. Run realistic load tests and measure latency and database queries before larger promotions. Passing unit tests does not prove a number of concurrent users.
## Usability improvements
Add a provider onboarding checklist with direct links to missing verification, prices and hours. Use distinct deduplicated event keys for booking confirmation, 30-minute reminder, 5-minute reminder and join-ready. Split long registration forms into saved steps while keeping vertical scrolling and accessible controls. Add credential renewal tracking without claiming an automatic registry integration.
These are recommendations for subsequent work; they are not all implemented in V30.4.3. The video lock, Consult now and screenshot guides are implemented in this release.

Source files: docs/V30_4_3_PRODUCT_REVIEW.md, app/lib/upcoming-sessions.ts, app/lib/notification-server.ts, app/api/actions/route.ts, tests/helpers/v304-runtime.mjs

---

## API inventory

| Method | Route | Source |
| --- | --- | --- |
| POST | /api/account-session | app/api/account-session/route.ts |
| GET, POST | /api/actions | app/api/actions/route.ts |
| GET | /api/application-review-document | app/api/application-review-document/route.ts |
| POST, GET | /api/clinic-document | app/api/clinic-document/route.ts |
| GET | /api/config | app/api/config/route.ts |
| POST, GET | /api/consultation-file | app/api/consultation-file/route.ts |
| GET | /api/health | app/api/health/route.ts |
| POST | /api/listener-application | app/api/listener-application/route.ts |
| POST | /api/livekit/webhook | app/api/livekit/webhook/route.ts |
| POST, GET | /api/member-chat-audio | app/api/member-chat-audio/route.ts |
| POST | /api/moderation/webhook | app/api/moderation/webhook/route.ts |
| POST | /api/native-alerts | app/api/native-alerts/route.ts |
| POST | /api/payments/webhook | app/api/payments/webhook/route.ts |
| GET | /api/prescription | app/api/prescription/route.ts |
| POST, GET | /api/professional-credential | app/api/professional-credential/route.ts |
| POST, GET | /api/profile-photo | app/api/profile-photo/route.ts |
| POST, GET | /api/provider-skill | app/api/provider-skill/route.ts |
| GET | /api/reports | app/api/reports/route.ts |
| POST, GET | /api/support-attachment | app/api/support-attachment/route.ts |
| GET | /api/support-training-asset | app/api/support-training-asset/route.ts |

### app/api/actions/route.ts

`acceptSession`, `assignListener`, `assignListenerAdmin`, `completeMemberDisplayName`, `createInstantOrder`, `createOrder`, `createRecruiterAdmin`, `createTalkBalanceTopup`, `deleteAccount`, `deleteRecruiterAdmin`, `endSession`, `joinReferralGroup`, `leaveReferralGroup`, `listenerQueue`, `markSessionJoined`, `markSessionPresence`, `rateSession`, `recordListenerRegistrationStart`, `regenerateRecruiterCode`, `rejectIncomingCall`, `rejectSession`, `reportSession`, `requestAdminWithdrawal`, `requestTalkBalanceRefund`, `requestWithdrawal`, `resolveReport`, `retrySessionRefund`, `revealAdminPayoutDetails`, `revealPayoutDetails`, `reviewTalkBalanceRefund`, `saveAdminPayoutMethod`, `savePayoutMethod`, `searchPeople`, `sendSessionMessage`, `sessionUpdates`, `setAdminPayoutMethodStatus`, `setAdminWithdrawalStatus`, `setAvailability`, `setDoctorSpecialtyStatus`, `setListenerIdentityStatus`, `setPayoutMethodStatus`, `setPricing`, `setPricingDiscountAll`, `setRecruiterAdminStatus`, `setRecruiterTopTierApproval`, `setUserStatus`, `setWithdrawalStatus`, `string`, `updateListenerProfile`, `updateProfile`, `verifyPayment`, `verifyTalkBalanceTopup`, `voiceToken`, `withdrawListenerRequest`

### app/lib/application-review.ts

`applicationReviewDetails`, `applicationReviewQueue`, `claimApplication`, `myApplicationReviews`, `reviewApplication`

### app/lib/clinic-team.ts

`acceptClinicInvitation`, `clinicTeamState`, `decideClinicOrganisation`, `inviteClinicDoctor`, `registerClinicOrganisation`, `revokeClinicDoctor`, `saveClinicBranch`, `saveClinicDoctorDraft`, `setClinicStaff`, `submitClinicDoctorDraft`

### app/lib/community-server.ts

`celebrityRoomState`, `communityMediaToken`, `communityRoomJoined`, `communityRoomLeft`, `communityVoiceToken`, `createCelebrityOrder`, `createCelebrityTalk`, `createPrivateMeeting`, `enforceCommunityDeadline`, `readyCelebrityStage`, `respondPrivateMeeting`, `setCelebrityHand`, `setCelebrityParticipantPermissions`, `setCelebrityTalkStatus`, `setPrivateMeetingStatus`, `updateProviderType`, `verifyCelebrityPayment`

### app/lib/consultation-records.ts

`consultationMessages`, `prescriptionGet`, `prescriptionSave`, `savePrescriptionTemplate`, `sendConsultationMessage`

### app/lib/consultation-windows.ts

`clinicPresence`, `consultationWindowState`, `pauseConsultationWindows`, `providerPresence`, `publishConsultationWindows`, `saveDoctorAddress`, `setConsultationAccepting`

### app/lib/doctor-availability.ts

`addDoctorLeave`, `doctorPriceSlots`, `generateDoctorSlots`, `overrideDoctorSlotPrice`, `removeDoctorLeave`, `saveDoctorAvailability`, `saveDoctorBookingSettings`

### app/lib/doctor-server.ts

`assignClinicReceptionist`, `browseDoctorAppointments`, `callNextDoctorPatient`, `createDoctorOrder`, `createDoctorSession`, `doctorMediaToken`, `doctorRoomJoined`, `doctorRoomLeft`, `endCurrentDoctorConsultation`, `enforceDoctorSessionDeadline`, `enterDoctorWaitingRoom`, `rescheduleClinicAppointment`, `saveClinic`, `setDoctorSessionStatus`, `updateClinicVisitStatus`, `verifyDoctorPayment`

### app/lib/group-talk-server.ts

`bookListenerGroupTalk`, `cancelListenerGroupSeat`, `createCelebrityOrder`, `createListenerGroupTalk`, `groupTalkMessages`, `listGroupTalks`, `removeGroupTalkMessage`, `sendGroupTalkMessage`, `setCelebrityTalkStatus`

### app/lib/instant-availability.ts

`instantHeartbeat`, `instantState`, `saveInstantAvailability`

### app/lib/member-chat.ts

`memberChatAccept`, `memberChatBlock`, `memberChatCancelSearch`, `memberChatEnd`, `memberChatFind`, `memberChatPulse`, `memberChatPurchase`, `memberChatReport`, `memberChatReportMessages`, `memberChatSend`, `memberChatState`, `setMemberChatPrice`

### app/lib/native-alert-server.ts

`createNativeAlertPairing`, `disable`, `disableNativeAlerts`, `getNativeAlertState`, `pair`, `pairInfo`, `refreshToken`, `reject`

### app/lib/notification-server.ts

`getWebPushState`, `markAllNotificationsRead`, `markNotificationRead`, `subscribeWebPush`, `unsubscribeWebPush`

### app/lib/provider-availability.ts

`setAllProviderSkillsAvailability`, `setProviderSkillAvailability`

### app/lib/provider-skills.ts

`reviewProviderSkill`, `switchProviderSkill`

### app/lib/release-v304.ts

`directCallClock`, `instantState`, `releaseV304State`, `setNormalListenerVideoRate`, `upcomingSessions`

### app/lib/specialist-server.ts

`createSpecialistOrder`, `joinListenerReferral`, `saveProviderOffering`, `setProviderOfferingActive`, `updateSpecialistCallSettings`

### app/lib/support-academy.ts

`academyAcceptPolicy`, `academyModule`, `academyPractice`, `academyProgress`, `academyPublishRevision`, `academyRequireRetraining`, `academyRolePreview`, `academyStartModule`, `academyState`, `academySubmitQuiz`

### app/lib/support-operations.ts

`acceptSupportInvitation`, `assignSupportLead`, `confirmSupportResolution`, `createSupportAgent`, `decideSupportNomination`, `escalateSupportTicket`, `inviteSupportStaff`, `manageSupportInvitation`, `rateSupportTicket`, `reopenSupportTicket`, `resolveSupportTicket`, `reviewSupportQuality`, `saveSupportIncident`, `saveSupportRouting`, `setSupportAgentStatus`, `setSupportHiringPermission`, `setSupportMembership`, `supportOperations`

### app/lib/support-server.ts

`addSupportMessage`, `createSupportAgent`, `createSupportTicket`, `endSupportCall`, `getSupportTicket`, `requestSupportCall`, `respondSupportCall`, `setSupportAgentStatus`, `supportCallToken`, `supportSummary`, `updateSupportTicket`

## Migrations

- drizzle/0000_sudden_maximus.sql: admin_audit, blocks, listener_ledger, pricing, profiles, ratings, reports, safety_events, talk_sessions
- drizzle/0001_gray_scorpion.sql: rate_limits
- drizzle/0002_skinny_next_avengers.sql: 
- drizzle/0003_goofy_black_cat.sql: 
- drizzle/0004_call_participant_consent.sql: 
- drizzle/0005_manual_listener_payouts.sql: listener_payout_methods, withdrawal_requests
- drizzle/0006_multi_admin_referrals.sql: admin_memberships, admin_commission_ledger, admin_payout_methods, admin_withdrawal_requests
- drizzle/0007_pricing_discounts.sql: session_listener_declines
- drizzle/0008_phone_password_auth.sql: 
- drizzle/0009_provider_events_private_meetings.sql: celebrity_talks, celebrity_talk_bookings, private_meetings, private_meeting_members
- drizzle/0010_listener_referrals_specialist_pricing.sql: provider_offerings
- drizzle/0011_cashfree_payments.sql: 
- drizzle/0012_listener_customer_gender_preference.sql: 
- drizzle/0013_livekit_voice_video.sql: 
- drizzle/0014_doctors_professionals.sql: professional_profiles, doctor_sessions, doctor_appointments
- drizzle/0015_role_dashboards_doctor_specialties.sql: doctor_specialties
- drizzle/0016_customer_support.sql: staff_memberships, support_tickets, support_messages, support_calls
- drizzle/0017_listener_registration_followup.sql: 
- drizzle/0018_live_call_coordination.sql: talk_session_messages
- drizzle/0019_talk_balance_metered_calls.sql: member_talk_balances, talk_balance_sources, talk_balance_reservations, talk_balance_ledger, member_refund_requests, call_event_log
- drizzle/0020_v27_secure_sessions_stage_queue.sql: active_service_leases, service_access_events
- drizzle/0021_v28_clinics_notifications_languages.sql: clinics, clinic_staff, app_notifications, push_subscriptions, celebrity_talk_bookings_v28_backup, celebrity_talks_v28
- drizzle/0022_v30_member_identity_device_session.sql: active_account_sessions, account_session_history
- drizzle/0023_v304_schedules_communication.sql: normal_listener_rates, doctor_booking_settings, doctor_availability_rules, doctor_blocked_dates, provider_skills, consultation_messages, prescription_templates, prescriptions, member_chat_prices, member_chat_allowances, member_chat_purchases, member_chat_rooms, member_chat_memberships, member_chat_queue, member_chat_messages, member_chat_blocks, member_chat_reports
- drizzle/0024_prescription_revisions_chat_lock.sql: prescription_versions, service_feature_flags
- drizzle/0025_listener_video_lock.sql: 
- drizzle/0026_instant_specialist_availability.sql: specialist_instant_settings, instant_consultations
- drizzle/0027_v3044_reviews_clinic_teams.sql: doctor_practice_addresses, application_reviews, clinic_organisations, clinic_team, clinic_doctors, clinic_doctor_invitations, clinic_consent_guards
- drizzle/0028_v3044_consultation_windows.sql: instant_windows, provider_online_presence, clinic_doctor_presence
- drizzle/0029_v305_support_memberships.sql: support_memberships, support_hiring_permissions
- drizzle/0030_v305_support_operations.sql: support_routing_preferences, support_quality_reviews, support_incidents
- drizzle/0031_v305_support_academy.sql: support_academy_releases, support_academy_progress, support_academy_attempts, support_academy_retraining
- drizzle/0032_v305_support_diagnostics.sql: operational_events
- drizzle/0033_v3051_multiskill_availability.sql: specialist_instant_settings_v3051
- drizzle/0034_v3051_shared_provider_busy.sql: 
- drizzle/0035_v306_admin_reporting.sql: report_access_log
- drizzle/0036_listener_call_alerts.sql: call_alert_outbox, native_alert_pairings, native_alert_devices
- drizzle/0037_paid_listener_group_talks.sql: group_seat_payments, listener_event_ledger, admin_event_commission_ledger, group_talk_messages, group_host_events

## App screenshots / యాప్ స్క్రీన్‌షాట్లు

Demonstration data only.

### Member · home

![Member · home](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-home.jpg)

### Open the profile menu to reach all account options

![Open the profile menu to reach all account options](https://manasulo.learnwithvedha.com/developer/screens/member-profile-menu.jpg)

### Member · profile

![Member · profile](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-profile.jpg)

### Member · listeners

![Member · listeners](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-listeners.jpg)

### Member · doctors

![Member · doctors](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-doctors.jpg)

### Member · consult now

![Member · consult now](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-consult-now.jpg)

### Member · bookings

![Member · bookings](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-bookings.jpg)

### Member · prescriptions

![Member · prescriptions](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-prescriptions.jpg)

### Read or download the latest sent prescription

![Read or download the latest sent prescription](https://manasulo.learnwithvedha.com/developer/screens/member-prescription-sent.jpg)

### Member · private

![Member · private](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-private.jpg)

### Member · celebrity

![Member · celebrity](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-celebrity.jpg)

### Member · balance

![Member · balance](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-balance.jpg)

### Member · notifications

![Member · notifications](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-notifications.jpg)

### Member · clinic team

![Member · clinic team](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-clinic-team.jpg)

### Doctors & applications · authorised clinic workspace

![Doctors & applications · authorised clinic workspace](https://manasulo.learnwithvedha.com/developer/screens/clinic-doctors-applications.jpg)

### Consult now · authorised clinic workspace

![Consult now · authorised clinic workspace](https://manasulo.learnwithvedha.com/developer/screens/clinic-consult-now.jpg)

### Patient bookings · authorised clinic workspace

![Patient bookings · authorised clinic workspace](https://manasulo.learnwithvedha.com/developer/screens/clinic-patient-bookings.jpg)

### Clinic prepares details; doctor reviews and consents

![Clinic prepares details; doctor reviews and consents](https://manasulo.learnwithvedha.com/developer/screens/clinic-prepared-application.jpg)

### Member · support

![Member · support](https://manasulo.learnwithvedha.com/developer/screens/member-normal_listener-support.jpg)

### Doctor · home

![Doctor · home](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-home.jpg)

### Home: accepting bookings, practice address and consultation setup

![Home: accepting bookings, practice address and consultation setup](https://manasulo.learnwithvedha.com/developer/screens/doctor-home-consult-now.jpg)

### Doctor · profile

![Doctor · profile](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-profile.jpg)

### Doctor · services

![Doctor · services](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-services.jpg)

### Create an appointment with time, mode, duration and price

![Create an appointment with time, mode, duration and price](https://manasulo.learnwithvedha.com/developer/screens/doctor-create-appointment.jpg)

### Doctor · availability

![Doctor · availability](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-availability.jpg)

### Choose weekly online/clinic hours and breaks

![Choose weekly online/clinic hours and breaks](https://manasulo.learnwithvedha.com/developer/screens/doctor-weekly-hours.jpg)

### Block leave dates before new bookings

![Block leave dates before new bookings](https://manasulo.learnwithvedha.com/developer/screens/doctor-leave.jpg)

### Doctor · open hours

![Doctor · open hours](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-open-hours.jpg)

### Preview dates, periods and your consultation prices

![Preview dates, periods and your consultation prices](https://manasulo.learnwithvedha.com/developer/screens/doctor-open-hours-preview.jpg)

### Doctor · bookings

![Doctor · bookings](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-bookings.jpg)

### Doctor · prescriptions

![Doctor · prescriptions](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-prescriptions.jpg)

### Read or download the latest sent prescription

![Read or download the latest sent prescription](https://manasulo.learnwithvedha.com/developer/screens/listener-prescription-sent.jpg)

### Edit a sent prescription, then send the updated revision

![Edit a sent prescription, then send the updated revision](https://manasulo.learnwithvedha.com/developer/screens/doctor-prescription-edit.jpg)

### Doctor · skills

![Doctor · skills](https://manasulo.learnwithvedha.com/developer/screens/listener-doctor-skills.jpg)

### normal listener · services

![normal listener · services](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-services.jpg)

### normal listener · requests

![normal listener · requests](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-requests.jpg)

### normal listener · earnings

![normal listener · earnings](https://manasulo.learnwithvedha.com/developer/screens/listener-normal_listener-earnings.jpg)

### legal · services

![legal · services](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-services.jpg)

### legal · open hours

![legal · open hours](https://manasulo.learnwithvedha.com/developer/screens/listener-legal-open-hours.jpg)

### Preview dates, periods and your consultation prices

![Preview dates, periods and your consultation prices](https://manasulo.learnwithvedha.com/developer/screens/legal-open-hours-preview.jpg)

### jyotishya pandit · services

![jyotishya pandit · services](https://manasulo.learnwithvedha.com/developer/screens/listener-jyotishya_pandit-services.jpg)

### purohit · services

![purohit · services](https://manasulo.learnwithvedha.com/developer/screens/listener-purohit-services.jpg)

### boitha vaidyudu · services

![boitha vaidyudu · services](https://manasulo.learnwithvedha.com/developer/screens/listener-boitha_vaidyudu-services.jpg)

### other · services

![other · services](https://manasulo.learnwithvedha.com/developer/screens/listener-other-services.jpg)

### recruiter · home

![recruiter · home](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-home.jpg)

### recruiter · support

![recruiter · support](https://manasulo.learnwithvedha.com/developer/screens/recruiter-normal_listener-support.jpg)

### main-admin · home

![main-admin · home](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-home.jpg)

### main-admin · skills

![main-admin · skills](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-skills.jpg)

### main-admin · people

![main-admin · people](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-people.jpg)

### main-admin · application reviews

![main-admin · application reviews](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-application-reviews.jpg)

### main-admin · support

![main-admin · support](https://manasulo.learnwithvedha.com/developer/screens/main-admin-normal_listener-support.jpg)

### auth

![auth](https://manasulo.learnwithvedha.com/developer/screens/journey-auth.jpg)

### Doctor registration: identity, qualifications and consent

![Doctor registration: identity, qualifications and consent](https://manasulo.learnwithvedha.com/developer/screens/journey-application.jpg)

### Enter qualifications and upload a professional credential

![Enter qualifications and upload a professional credential](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-credentials.jpg)

### Complete consent and submit for separate doctor approval

![Complete consent and submit for separate doctor approval](https://manasulo.learnwithvedha.com/developer/screens/doctor-registration-submit.jpg)

### pending

![pending](https://manasulo.learnwithvedha.com/developer/screens/journey-pending.jpg)

### audio call

![audio call](https://manasulo.learnwithvedha.com/developer/screens/journey-audio-call.jpg)

### doctor room

![doctor room](https://manasulo.learnwithvedha.com/developer/screens/journey-doctor-room.jpg)

### celebrity selected

![celebrity selected](https://manasulo.learnwithvedha.com/developer/screens/journey-celebrity-selected.jpg)

### Lawyer directory: review the actual member booking options

![Lawyer directory: review the actual member booking options](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-legal.jpg)

### Jyothishya Pandit directory: member selection

![Jyothishya Pandit directory: member selection](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-jyotishya_pandit.jpg)

### Purohit directory: member selection

![Purohit directory: member selection](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-purohit.jpg)

### Traditional services directory: member selection

![Traditional services directory: member selection](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-boitha_vaidyudu.jpg)

### Other professionals: member selection

![Other professionals: member selection](https://manasulo.learnwithvedha.com/developer/screens/v305-member-directory-other.jpg)

### Member sign-in: the actual mobile and password form

![Member sign-in: the actual mobile and password form](https://manasulo.learnwithvedha.com/developer/screens/v305-member-sign-in.jpg)

### New member registration: nickname, mobile and password before OTP

![New member registration: nickname, mobile and password before OTP](https://manasulo.learnwithvedha.com/developer/screens/v305-member-registration.jpg)

### Choose the service and call price — demonstration providers

![Choose the service and call price — demonstration providers](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-legal.jpg)

### Choose the service and call price — demonstration providers

![Choose the service and call price — demonstration providers](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-jyotishya_pandit.jpg)

### Choose the service and call price — demonstration providers

![Choose the service and call price — demonstration providers](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-purohit.jpg)

### Choose the service and call price — demonstration providers

![Choose the service and call price — demonstration providers](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-boitha_vaidyudu.jpg)

### Choose the service and call price — demonstration providers

![Choose the service and call price — demonstration providers](https://manasulo.learnwithvedha.com/developer/screens/v305-member-offerings-other.jpg)

### Several approved skills remain enabled while a booking pauses availability

![Several approved skills remain enabled while a booking pauses availability](https://manasulo.learnwithvedha.com/developer/screens/listener-multi-skill-availability.png)


## References

[Uber developer documentation](https://developer.uber.com/docs), [Uber Eats introduction](https://developer.uber.com/docs/eats/introduction). Layout reference only; project content independently written.
