# Custom Instructions Source: https://docs.kashfy.site/ai-agent/custom-instructions Fine-tune the AI agent's tone, focus, and behavior for your specific clinic Custom instructions let you give the AI specific guidance about how to behave — beyond what it learns from your clinic profile and knowledge base. Use them to shape the AI's personality, set restrictions, or give it clinic-specific rules to follow. ## Where to set custom instructions Navigate to **Dashboard → AI → Custom Instructions** (or **Dashboard → Settings → AI**). There are two instruction fields: | Field | Purpose | | ------------------------ | ------------------------------------------ | | **Arabic instructions** | Applied when the AI is speaking in Arabic | | **English instructions** | Applied when the AI is speaking in English | You can fill in one or both. If a patient writes in Arabic, the Arabic instructions are active. ## What to write in custom instructions Think of custom instructions as a briefing you'd give a new receptionist on their first day — clinic-specific rules and style preferences that go beyond the obvious. **Examples of useful custom instructions:** ``` - عند سؤال المريض عن دكتور معين مش موجود، أقترح عليه دكتور تاني في نفس التخصص - لو المريض بيسأل عن الأسعار، اذكر إن في إمكانية دفع بالتقسيط - متقبلش أي حجز لأقل من ساعة من دلوقتي - لو المريض بيسأل عن تأمين صحي، قوله إننا بنستقبل [أسماء التأمينات] ``` ``` - Always greet patients with "Welcome to [Clinic Name]" - If a patient asks about insurance, let them know we accept Allianz and AXA - Do not discuss anything unrelated to appointments and clinic services - If a patient seems to be in an emergency, immediately advise them to call 123 ``` ## Instruction best practices Vague instructions like "be polite" don't add much — the AI is already trained to be polite. Specific instructions like "always mention our free parking when a patient is deciding between branches" are far more useful. The AI responds to negative instructions well. "Do not mention competitor clinics" or "do not book appointments for more than 2 weeks in advance" are practical restrictions. Write Arabic instructions in Arabic and English instructions in English. The AI understands mixed-language instructions but performs best when instructions match the conversation language. After saving new instructions, go to **Dashboard → AI → Test Chat** and run through a few scenarios to make sure the AI behaves as expected. ## What custom instructions cannot do * Override the AI's core behavior (e.g., you cannot instruct it to give medical advice) * Change the AI's fundamental language or tone model * Force the AI to ignore real availability data (it will always show accurate slots) ## Resetting instructions To remove your custom instructions, simply clear the text fields and save. The AI will revert to its default behavior based on your clinic profile alone. Upload documents the AI can reference when answering questions. Use the test chat to verify your instructions work. # Knowledge Base Source: https://docs.kashfy.site/ai-agent/knowledge-base Upload documents so the AI can answer detailed patient questions from your own content The knowledge base lets you give the AI additional information about your clinic beyond the basic profile fields. Upload any PDF document — a price list, service brochure, doctor bios, or FAQ — and the AI will read it and use it when answering patient questions. ## What to upload Any document that contains information patients commonly ask about is a good candidate: * **Price lists** — consultation fees, procedure costs, lab test prices * **Service descriptions** — what treatments or procedures your clinic offers * **Doctor bios** — education, experience, and areas of expertise for each doctor * **FAQ documents** — common questions your receptionist already answers manually * **Preparation instructions** — what patients need to do before certain visits The AI does not read image-only PDFs (scanned documents without selectable text). Make sure your PDFs have actual text content, not just images of text. ## Uploading a document Navigate to **Dashboard → Knowledge Base** (or **Dashboard → AI → Knowledge**). Click the upload button and select a PDF file from your computer. Kashfy extracts and indexes the text from the PDF. This usually takes under a minute. Go to **Dashboard → AI → Test Chat** and ask a question that should be answered from your document. Verify the AI responds correctly. ## How the AI uses documents When a patient asks a question, the AI: 1. Checks if your knowledge base documents contain relevant information 2. If yes, references that content in its answer 3. If no, falls back to the clinic profile and doctor data it already has The AI does not quote documents verbatim — it uses the information to compose natural-sounding responses. ## Managing documents From **Dashboard → Knowledge Base** you can: * **View** all uploaded documents with their upload date * **Delete** documents you no longer want the AI to reference Deleting a document removes it from the AI's knowledge immediately. If a document contained information patients frequently ask about, removing it may cause the AI to say it doesn't know the answer. ## Tips for better results Keep documents focused. A PDF dedicated to "Pricing" will perform better than a single large file covering everything. The AI is better at finding specific information in shorter, well-structured documents. Use clear headings and organized formatting in your PDFs. The AI reads the text linearly, so well-structured content is easier for it to use accurately. ## Limitations * **Maximum file size:** Documents must be under 10MB per file * **File format:** Only PDF is supported currently * **Language:** Documents can be in Arabic or English. The AI handles both. * **Scanned PDFs:** Not supported — the text must be selectable Control the AI's behavior beyond documents. Understand how the AI uses all its available context. # AI Agent Source: https://docs.kashfy.site/ai-agent/overview How Kashfy's AI receptionist works and what it can do for your clinic Kashfy's AI agent is the core of the product. It's the conversational AI that talks to your patients via WhatsApp and your website widget — booking appointments, answering questions, and handling cancellations automatically. ## What the AI can do The AI checks your doctors' live availability and offers open slots to the patient. When the patient picks a slot and confirms, the appointment is created instantly in the dashboard. If a patient asks to cancel a booking, the AI finds their appointment and cancels it. The status updates automatically in the dashboard. Patients can ask "when is Dr. Ahmed free?" or "do you have anything tomorrow morning?" and the AI will look up the schedule and respond with accurate, real-time availability. The AI knows each doctor's consultation fee and can share it when patients ask. When patients ask for the clinic address or directions, the AI shares the address you have on file. If you've uploaded PDF documents (price lists, service info, doctor profiles), the AI reads them and answers patient questions from that content. The AI keeps track of the last 30 messages from each patient, so conversations feel continuous. A patient can reference a previous booking and the AI will understand the context. ## What the AI cannot do * Provide medical advice or diagnoses * Process payments * Access patient medical records or history outside of Kashfy * Send files or images to patients (it can receive images but does not process them as medical input) ## How the AI responds The AI responds in **Egyptian Arabic dialect** by default. If a patient writes in English, it will switch to English automatically. The tone is friendly, helpful, and professional — like a well-trained clinic receptionist. You can customize the AI's behavior and tone through [Custom Instructions](/ai-agent/custom-instructions). ## Testing the AI Before going live, test the AI from **Dashboard → AI → Test Chat**. This lets you simulate a patient conversation and see exactly how the AI responds based on your current clinic setup. Test the AI every time you change your doctors' schedules, fees, or custom instructions to make sure it responds as expected. ## The AI and your dashboard Every action the AI takes — booking or cancelling an appointment — is immediately reflected in your dashboard. You don't need to do anything. If you ever need to check a conversation, go to **Dashboard → Conversations** to see the full chat history. Link your WhatsApp number so the AI can start responding to patients. Upload documents so the AI can answer detailed questions. Control the AI's tone, focus, and behavior. Add the AI to your website as a chat widget. # WhatsApp Setup Source: https://docs.kashfy.site/ai-agent/whatsapp-setup Connect your clinic's WhatsApp number so patients can book appointments through it automatically WhatsApp is the primary channel through which patients interact with Kashfy's AI. Once your number is connected, every incoming message to that number goes through the AI agent — automatically. ## Before you start * You need a **WhatsApp number** dedicated to your clinic (can be a mobile or landline with WhatsApp enabled) * The number must **not** be logged in on a phone at the same time — Kashfy takes over the WhatsApp session * Make sure the number is **not** actively being used by staff for manual conversations during the connection process Once connected to Kashfy, the WhatsApp number is controlled by the AI. Staff should not use WhatsApp Web or the WhatsApp app on that number simultaneously, as this will disconnect the session. ## Connecting your WhatsApp number Navigate to **Dashboard → WhatsApp** (or **Dashboard → Settings → WhatsApp**). A QR code will appear on screen. Open WhatsApp on the phone with your clinic number, go to **Linked Devices**, and scan the QR code. The dashboard will show a confirmation when the connection is successful. This usually takes 10–30 seconds. Send a test message to your clinic's WhatsApp number from another phone. The AI should respond automatically. ## Connection status The WhatsApp connection status is shown at the top of the WhatsApp settings page: | Status | Meaning | | ---------------- | ------------------------------------------ | | **Connected** | The AI is active and handling messages | | **Disconnected** | The session has ended — rescan the QR code | | **Connecting** | In progress — wait a moment | ## Why connections drop The WhatsApp session can disconnect for several reasons: * The WhatsApp app on the connected phone was used (logged in on device) * The phone ran out of battery or lost internet for an extended period * WhatsApp revoked the linked session automatically (this happens periodically) If the session drops, simply go back to **Dashboard → WhatsApp** and scan the QR code again. Keep the phone with your clinic's WhatsApp number charged and connected to the internet. Avoid opening WhatsApp on that phone to prevent disconnections. ## What happens when the AI receives a message 1. The message arrives at your clinic's WhatsApp number 2. Kashfy receives it and routes it to the AI agent 3. The AI reads the patient's message and your clinic's context (doctors, availability, knowledge base) 4. The AI composes a response and sends it back via WhatsApp — typically within a few seconds 5. The conversation is logged in **Dashboard → Conversations** ## Handling messages the AI cannot answer If a patient asks something the AI is not equipped to handle (e.g., a very specific clinical question), the AI will politely inform the patient and suggest they call the clinic directly. Your clinic's phone number (from the clinic profile) is shared in these cases. ## Disconnecting WhatsApp To disconnect your WhatsApp number from Kashfy: 1. Go to **Dashboard → WhatsApp** 2. Click **Disconnect** After disconnecting, the AI will no longer respond to messages on that number. Understand what the AI does with incoming messages. View all WhatsApp conversations your AI has handled. # Appointment Statuses Source: https://docs.kashfy.site/appointments/appointment-status A reference for every appointment status in Kashfy and when to use each one Every appointment in Kashfy has a status that reflects where it is in the visit lifecycle. Staff and doctors can update statuses manually from the dashboard. ## Status reference The default status when an appointment is first created — either by the AI or manually. The patient has a confirmed slot but has not yet arrived. **When it's set:** Automatically when the AI books an appointment or when staff creates one manually. **Next step:** Update to **Arrived** when the patient shows up at the clinic. The patient is at the clinic and waiting to be seen. **When to set it:** When the receptionist confirms the patient has physically arrived. **Next step:** Update to **Completed** after the doctor's session ends. The appointment has been fully completed. The patient was seen by the doctor. **When to set it:** After the consultation or visit ends. **Effect on billing:** Completed appointments count toward your monthly booking quota. The appointment was cancelled — either by the patient or by your staff. **When to set it:** When a patient calls to cancel or when your clinic needs to cancel a slot. **Effect on billing:** Cancelled appointments do **not** count toward your monthly quota. This is intentional so that cancellations don't penalize your account. If the AI cancels an appointment during a WhatsApp conversation (because the patient requests it), the status is automatically set to Cancelled. The patient did not arrive for their scheduled appointment and did not cancel in advance. **When to set it:** At the end of the appointment window when the patient has not appeared and there was no cancellation. **Effect on billing:** No-shows do count toward your quota, as the slot was held and unavailable to other patients. ## Status flow The typical lifecycle of an appointment: ``` Reserved → Arrived → Completed ``` If things go differently: ``` Reserved → Cancelled (patient or clinic cancels) Reserved → No Show (patient doesn't appear) ``` ## Who can update statuses | Role | Can update | | -------- | ----------------------------------------- | | Owner | All appointments | | Admin | All appointments | | Employee | All appointments at their assigned branch | | Doctor | Their own appointments only | The AI can also update statuses during conversations — for example, it sets an appointment to Cancelled if a patient asks to cancel via WhatsApp. # Managing Appointments Source: https://docs.kashfy.site/appointments/managing-appointments Reschedule, cancel, mark attendance, and take notes on patient bookings Once appointments are in the system — whether booked by the AI or created manually — your staff manages them from the dashboard. ## Viewing appointment details Click any appointment in the list to open its detail panel. You'll see: * Patient name, phone number, and booking channel * Doctor assigned, date, and time * Current status * Any notes added by staff * Link to the full patient conversation (for WhatsApp and widget bookings) ## Updating appointment status The status of an appointment tracks where it is in the visit lifecycle. To update it, open the appointment and click the status dropdown. See [Appointment Statuses](/appointments/appointment-status) for a full breakdown of each status and when to use it. ## Rescheduling an appointment Click the appointment in the list to open its details. Select a new date and time from the available slots for the same doctor. Save the change. The appointment is updated instantly. The patient is not automatically notified — notify them manually via WhatsApp if needed. Rescheduling does not automatically send the patient a new confirmation message. If the booking came via WhatsApp, you can open the conversation and message them directly. ## Cancelling an appointment To cancel a booking, open it and select **Cancelled** from the status dropdown, or click **Cancel Appointment** if that button is available. Cancelled appointments do **not** count toward your plan's monthly booking quota. Only confirmed (non-cancelled) bookings are counted. ## Adding notes Your staff can add internal notes to any appointment. These notes are visible only to your team — not to patients. Use notes to record: * Special patient requests * Pre-visit instructions given * Follow-up actions needed ## Doctor view Doctors with access to the Kashfy doctor portal see a simplified version of this data — only their own appointments, with patient name and time. Doctors can update the status of their own appointments (e.g., marking a patient as arrived or completed). A reference for every appointment status. View the full patient record linked to a booking. # Appointments Source: https://docs.kashfy.site/appointments/overview View and manage all patient bookings across your clinic in real time The Appointments section is your live view of everything booked at your clinic. All bookings — whether made via WhatsApp, the website widget, or manually by your staff — appear here. ## The appointments dashboard Navigate to **Dashboard → Appointments** to see all bookings. The view shows appointments organized by date, with columns for: * **Patient name and phone number** * **Doctor** * **Date and time** * **Status** (reserved, arrived, completed, cancelled, no-show) * **Channel** (WhatsApp, widget, manual) * **Branch** (if you have multiple locations) Use the date range filter at the top to jump to any specific day or period. Today's schedule is shown by default. ## Appointment channels Appointments flow into Kashfy from three sources: | Channel | How it works | | ------------ | ------------------------------------------------------------------------------- | | **WhatsApp** | Patient messages your clinic's WhatsApp, AI books the appointment automatically | | **Widget** | Patient uses the chat widget on your website, AI books the appointment | | **Manual** | Your staff creates the appointment directly from the dashboard | ## Creating an appointment manually To add a booking yourself: Go to **Dashboard → Appointments** and click **New Appointment**. Choose which doctor the appointment is for. The system will show that doctor's available slots. Select an available slot. Unavailable times are greyed out. Enter the patient's name and phone number. If the patient already exists in your system, their record will be linked automatically. Click **Save**. The appointment is created and appears in the list immediately. ## Appointment reminders Kashfy automatically sends a WhatsApp reminder to the patient the day before their appointment. No action required from your staff. Reminders are only sent for appointments booked via WhatsApp or the widget, where the patient's phone number is already linked to a WhatsApp account. ## Filtering and searching Use the filters above the appointments list to narrow down by: * **Doctor** — see only one doctor's schedule * **Date range** — pick a custom period * **Status** — filter by reserved, completed, cancelled, etc. * **Branch** — relevant if you have multiple locations ## Exporting appointments Coming soon — appointment data export to CSV. Learn what each status means and how to update it. Reschedule, cancel, and mark attendance. # Invoices Source: https://docs.kashfy.site/billing/invoices View, download, and manage your Kashfy billing invoices Kashfy generates an invoice at the end of each billing cycle. The invoice includes your plan subscription fee and any overage charges if your clinic exceeded its monthly booking limit. ## Viewing invoices Navigate to **Dashboard → Finance** (or **Dashboard → Settings → Billing**) to see your invoice history. Each invoice shows: * **Billing period** — the month the invoice covers * **Plan fee** — your base subscription cost * **Overage charges** — additional bookings beyond your plan's included quota * **Total amount** in EGP * **Status** — Paid, Pending, or Overdue ## Invoice status | Status | Meaning | | ----------- | -------------------------------------- | | **Pending** | Invoice generated, payment not yet due | | **Paid** | Payment received successfully | | **Overdue** | Payment was due but not received | ## Overdue invoices If an invoice becomes overdue, Kashfy will: 1. Send you a notification via the dashboard and email 2. Display an overdue banner on your dashboard 3. Potentially suspend your clinic's AI agent until the balance is settled If your clinic's AI is suspended due to an overdue invoice, patients will no longer receive responses via WhatsApp or the widget. Settling the overdue invoice restores service immediately. ## Downloading invoices To download an invoice as a PDF: 1. Go to **Dashboard → Finance** 2. Find the invoice in the list 3. Click **Download** next to the invoice ## Invoice breakdown Each invoice line item shows: * Base plan fee for the month * Number of included bookings in your plan * Number of bookings used (if over the limit) * Overage fee per extra booking × number of extra bookings * Total due ## Questions about an invoice If you believe an invoice is incorrect, contact [support@kashfy.site](mailto:support@kashfy.site) with your invoice number and the issue. The Kashfy team reviews billing disputes manually. Review your plan's included bookings and limits. Pay an overdue invoice or update your payment method. # Payments Source: https://docs.kashfy.site/billing/payments Pay your Kashfy invoices and manage your payment method Kashfy uses **Kashier** as its payment gateway, supporting Egyptian debit and credit cards. All transactions are in **Egyptian Pounds (EGP)**. ## Paying an invoice When an invoice is due, you can pay it directly from the dashboard: Navigate to **Dashboard → Finance** and find the invoice with a **Pending** or **Overdue** status. Click the **Pay Now** button next to the invoice. You'll be redirected to the Kashier payment page. Enter your card details (card number, expiry, CVV). After successful payment, the invoice status updates to **Paid** and a receipt is available to download. ## Supported payment methods | Method | Supported | | -------------------------------------- | ----------------------------------- | | Egyptian debit cards (Visa/Mastercard) | Yes | | Egyptian credit cards | Yes | | International cards | Varies by bank | | Cash / bank transfer | Not supported through the dashboard | If you need to pay by bank transfer, contact [support@kashfy.site](mailto:support@kashfy.site) to arrange a manual payment. ## Payment security All payments are processed through **Kashier**, a PCI-compliant Egyptian payment gateway. Kashfy does not store your card details — they are handled entirely by Kashier's secure infrastructure. ## Failed payments If a payment fails (declined card, insufficient funds, network issue): 1. The invoice remains in **Pending** or **Overdue** status 2. You'll see an error message from Kashier explaining the reason 3. Retry with the same or a different card Common reasons for failure: * Incorrect card details * Card not enabled for online payments (contact your bank to enable) * Insufficient balance * 3D Secure authentication not completed ## Subscription auto-renewal Subscriptions renew automatically at the end of each billing cycle. You will receive an email notification before the renewal date. If auto-renewal fails (e.g., card declined), the invoice moves to **Overdue** and you will need to pay manually from the dashboard. ## Cancelling your subscription To cancel your Kashfy subscription: 1. Go to **Dashboard → Settings → Subscription** 2. Click **Cancel Subscription** Your clinic will remain active until the end of the current billing period. After that, the account moves to a read-only state — you can view past data but the AI agent will stop responding. Cancelling your subscription does not delete your data. Your clinic profile, appointments, and conversation history remain accessible. If you reactivate later, everything will be as you left it. View and download billing invoices. Review your current plan and booking quota. # Plans & Pricing Source: https://docs.kashfy.site/billing/plans Kashfy plans, included bookings, overage fees, and the free trial Kashfy offers quarterly and yearly subscription plans. All plans include the full AI agent, WhatsApp booking, knowledge base, and dashboard — the difference is booking volume and doctor count. ## Free trial Every new clinic starts on a **7-day free trial** with no credit card required. Use the trial to connect WhatsApp, add your doctors, and test the AI with real patient conversations before committing. The initial subscription is billed **quarterly (3-month minimum)**. This ensures the AI has enough time to be fully trained on your clinic and deliver accurate responses to your patients. ## Quarterly plans Billed every 3 months upfront. | | **Solo** | **Team** ⭐ | **Clinic** | | ----------------------------- | ----------- | ------------ | ------------ | | **Best for** | Solo doctor | Small clinic | Multi-doctor | | **Price** | 799 EGP/mo | 1,999 EGP/mo | 3,799 EGP/mo | | **Billed quarterly** | 2,397 EGP | 5,997 EGP | 11,397 EGP | | **Bookings / month** | 200 | 700 | 2,000 | | **Doctors** | 1 | Up to 5 | Unlimited | | **Overage per booking** | 3 EGP | 2.5 EGP | 2 EGP | | **WhatsApp** | ✓ | ✓ | ✓ | | **Website widget** | — | ✓ | ✓ | | **Knowledge base + AI agent** | ✓ | ✓ | ✓ | ## Yearly plans Billed annually — save compared to quarterly billing. | | **Solo** | **Team** ⭐ | **Clinic** | | ----------------------------- | ------------ | -------------- | -------------- | | **Best for** | Solo doctor | Small clinic | Multi-doctor | | **Price** | 7,999 EGP/yr | 19,999 EGP/yr | 37,999 EGP/yr | | **Effective monthly** | ≈ 667 EGP/mo | ≈ 1,667 EGP/mo | ≈ 3,167 EGP/mo | | **Bookings / year** | 2,400 | 8,400 | 24,000 | | **Doctors** | 1 | Up to 5 | Unlimited | | **Overage per booking** | 3 EGP | 2.5 EGP | 2 EGP | | **WhatsApp** | ✓ | ✓ | ✓ | | **Website widget** | — | ✓ | ✓ | | **Knowledge base + AI agent** | ✓ | ✓ | ✓ | ## What counts as a booking A booking is counted when the AI successfully creates an appointment. Bookings that are later **cancelled** are **not counted** — your quota is only consumed by active, non-cancelled appointments. | Event | Counts toward quota? | | ------------------------------ | -------------------- | | AI creates an appointment | Yes | | Appointment is later cancelled | Deducted (refunded) | | Appointment is no-show | Yes | | Appointment is completed | Yes | | Manually created appointment | Yes | ## Overage fees If your clinic exceeds the included bookings, you are charged the overage rate for each additional booking. Overages are billed at the end of the cycle as part of your invoice. If you consistently hit overages, upgrading to the next plan is almost always cheaper than paying per-booking overage rates at scale. ## Upgrading your plan To change your plan, contact [support@kashfy.site](mailto:support@kashfy.site). Upgrades take effect immediately and the difference is prorated. View and download your billing invoices. Pay invoices and manage your payment method. # Availability Overrides Source: https://docs.kashfy.site/doctors/availability Block specific dates for holidays, vacations, or exceptions without changing the regular schedule Availability overrides let you block a doctor's calendar for specific dates — holidays, conferences, vacations, or any reason — without permanently changing their regular working hours schedule. ## When to use overrides | Situation | Solution | | -------------------------------------- | -------------------------------------------- | | Doctor is on vacation for a week | Add an override for each day of the vacation | | Public holiday (clinic closed) | Add overrides for all doctors on that date | | Doctor has a late start one morning | Add a partial override for that morning | | Doctor is doing rounds, not consulting | Add a full-day override | ## Adding an availability override From **Dashboard → Doctors**, open a doctor's profile and go to **Availability Overrides**: Click the **Add Override** button in the doctor's availability section. Pick the date (or date range) you want to block. Select **Full Day** to block the entire day, or **Custom Hours** to block only a portion of the day. The override is active immediately. Any slot within the blocked period will no longer be offered by the AI. ## What patients see When a patient asks for availability and the doctor is blocked by an override, the AI simply skips those dates and offers the next available ones. The AI does not explain why those dates are unavailable — it just presents the open options. ## Existing bookings on overridden dates Adding an override does **not** automatically cancel or move existing appointments. If a doctor already has booked appointments on the date you're blocking, you need to handle those manually: 1. Go to **Dashboard → Appointments** 2. Filter by the doctor and the affected date 3. Reach out to patients to reschedule or cancel as needed Always check for existing appointments before adding a full-day override for a date that's already been shared with patients. ## Removing an override Go to **Dashboard → Doctors → \[Doctor Profile] → Availability Overrides** and delete the override. The blocked slots become available again immediately. ## Recurring closures For closures that happen every week on the same day (e.g., Friday), configure the regular schedule instead of using overrides — simply disable Friday in the doctor's working hours. Overrides are best for non-recurring, one-off exceptions. Set the regular weekly working hours. Manage bookings that exist on blocked dates. # Doctor Portal Source: https://docs.kashfy.site/doctors/doctor-portal A dedicated dashboard view for doctors to see their schedule, patients, and conversations Doctors at your clinic get their own simplified dashboard — separate from the clinic owner's view — focused entirely on their own appointments and patients. Doctors log in with the same email-and-password flow but land on a clean interface that shows only what's relevant to them. ## What doctors can access A real-time view of every appointment scheduled for the doctor today, sorted by time. Each card shows the patient name, phone number, appointment type, status, and branch. Doctors can update the status of their own appointments (arrived, in progress, completed, no-show) and add clinical notes (symptoms, diagnosis, prescription) directly from this view. A list of all patients who have ever had an appointment with this doctor. Clicking a patient opens their profile, including contact details, appointment history, and any recorded clinical notes. WhatsApp and widget conversation history for the doctor's patients. Doctors can review what the AI discussed with their patients — useful context before an appointment. Doctors can update their own name (Arabic/English), specialty, bio, and profile photo. They can also change the phone number linked to their account. ## What doctors cannot access The doctor portal intentionally excludes: * Other doctors' schedules, appointments, or patients * Clinic settings, AI configuration, and knowledge base * WhatsApp or widget connection settings * Billing, invoices, and subscription details * Team management and staff information ## Inviting a doctor Doctors are added through the clinic's team management, not as regular team members. When you add a doctor to the **Doctors** section and enter their phone number, they receive a WhatsApp invitation to activate their account. See [Team Roles](/team/roles) for a full breakdown of the Doctor role permissions. ## Multi-clinic doctors A doctor can be a member of more than one clinic in Kashfy — for example, a specialist who consults at two different practices. When a doctor who belongs to multiple clinics logs in, they see a **clinic switcher** in the sidebar. Switching clinics immediately updates every section of the portal — appointments, patients, and conversations — to show data for the selected clinic only. The active clinic selection is remembered in the browser session. Switching to a different clinic does not affect what other team members see. ## Branch restrictions If a doctor is assigned to a specific branch, their portal only shows appointments and patients at that branch. This is useful in multi-branch clinics where each doctor works at a fixed location. Branch assignments are set by the clinic owner in **Dashboard → Doctors → \[Doctor name] → Branch**. Add and manage doctor profiles. Full breakdown of what each role can do. # Doctors Source: https://docs.kashfy.site/doctors/overview Add and manage the doctors at your clinic so the AI can book patients with them accurately Doctors are at the center of Kashfy's scheduling system. Every appointment is tied to a specific doctor, and the AI can only offer slots that fall within the doctor's defined working hours. ## Adding a doctor Navigate to **Dashboard → Doctors** and click **Add Doctor**. Fill in the doctor's name in Arabic and English, their specialty, and a short bio (optional). The AI uses the name and specialty when discussing the doctor with patients. Enter the standard consultation fee in Egyptian Pounds (EGP). The AI will share this when patients ask "how much does a session cost?" Define how long each appointment lasts in minutes (e.g., 15, 20, 30). This determines how many slots are available per day. Configure which days the doctor works and their start/end times for each day. See [Doctor Schedules](/doctors/schedules) for details. If your clinic has multiple branches, assign the doctor to their branch(es). Patients at each branch see only the doctors available there. ## Doctor profile fields | Field | Required | Description | | -------------------- | -------- | --------------------------------------------------- | | Name (Arabic) | Yes | Used by the AI in Arabic conversations | | Name (English) | Yes | Used in the dashboard and English conversations | | Specialty | Yes | Shown to patients asking about specific specialties | | Consultation fee | Yes | Shared when patients ask about pricing | | Appointment duration | Yes | Controls how many slots are available per day | | Bio | No | Optional background info the AI can reference | | Photo | No | Displayed in the patient-facing clinic page | ## Editing a doctor Click on any doctor in the list to open their profile and make changes. Changes take effect immediately — the AI will reflect updated fees, hours, and availability right away. ## Deactivating a doctor If a doctor is temporarily unavailable (on leave, for example), you can deactivate them rather than deleting their profile. Deactivated doctors: * Will not appear in the AI's available doctor list * Will not have their slots offered to patients * Retain all their profile data and past appointments To deactivate, open the doctor's profile and toggle the **Active** switch. ## Deleting a doctor Deleting a doctor removes their profile permanently. Their past appointments remain in the system linked to the patient records but the doctor slot is gone. Deleting a doctor cannot be undone. If you want to preserve their data, deactivate them instead. Configure working hours for each doctor. Handle holidays, time off, and special exceptions. # Doctor Schedules Source: https://docs.kashfy.site/doctors/schedules Configure working days and hours for each doctor so the AI only offers valid appointment slots Doctor schedules define when each doctor is available to see patients. The AI strictly respects these schedules — it will never offer a slot outside the hours you define. ## Setting working hours Open a doctor's profile from **Dashboard → Doctors** and go to the **Working Hours** section. For each day of the week, you can: * **Enable or disable** the day (toggle on/off) * **Set a start time** for the first appointment of the day * **Set an end time** after which no new appointments are scheduled The appointment duration you set on the doctor's profile determines how slots are carved up within these hours. **Example:** ``` Doctor: Dr. Nada Appointment duration: 20 minutes Working hours: Saturday 9:00 AM – 1:00 PM Available slots: 9:00, 9:20, 9:40, 10:00, 10:20 ... 12:40 AM ``` The end time is when the last appointment starts, not when it ends. If a doctor works until 2:00 PM with 20-minute slots, the last slot is 1:40 PM (ending at 2:00 PM). ## Days of the week Kashfy follows the Egyptian work week. All 7 days are configurable. A typical Egyptian clinic schedule might be: | Day | Status | | --------- | ------ | | Saturday | Open | | Sunday | Open | | Monday | Open | | Tuesday | Open | | Wednesday | Open | | Thursday | Open | | Friday | Closed | You can configure any combination of days per doctor — different doctors can have different working days. ## Multiple time blocks per day If a doctor has a split schedule (e.g., morning session and evening session), you can add multiple time blocks for the same day: * Morning: 9:00 AM – 1:00 PM * Evening: 5:00 PM – 9:00 PM The AI will offer slots from both blocks when patients ask about availability. ## Checking booked vs. available slots From **Dashboard → Appointments**, filter by doctor to see their full schedule for any given day — which slots are booked, which are open, and which are complete. Doctors can also see their own schedule in the Doctor Portal. When logged in with a doctor account, they see a daily view of their upcoming appointments. ## What happens when a day is fully booked When all slots for a specific doctor on a specific day are taken, the AI will not offer that day and will instead suggest the next available date. It never overbooks. Block specific dates for holidays or time off without changing the regular schedule. Go back to the doctor setup overview. # Expenses Source: https://docs.kashfy.site/finance/expenses Log clinic spending, categorize it, and automate recurring bills The Expenses tab is where you record everything going out - rent, salaries, supplies, utilities, one-off purchases. Categorized entries flow into the [P\&L](/finance/pnl) automatically. Navigate to **Dashboard → Finance → Expenses**. ## Adding an expense Click **New expense** and fill in: * **Amount (EGP)** * **Category** - rent, salaries, supplies, utilities, marketing, etc. * **Subcategory** - optional finer detail under the category * **Date** - when the expense was paid * **Payment method** - cash, card, InstaPay, or transfer * **Branch** - which location the expense belongs to (multi-branch clinics) * **Notes** - vendor name, invoice number, anything you want to remember ## Filtering Filter the expense list by category or by branch. Combine with the top-level date range to answer questions like "how much did we spend on supplies at the Nasr City branch last quarter?" ## Recurring expenses For bills that hit every month (rent, subscriptions, cleaner, salaries), create a **recurring template** instead of adding the same expense over and over. Opens the recurring expenses manager. Enter amount, category, payment method, and how often it recurs - weekly, monthly, quarterly, or yearly. Each cycle, a new expense entry is added with today's date. You can still edit or delete individual entries after they're created. Use recurring templates for anything that's the same amount every cycle. For bills that vary (electricity, water), log them manually so you capture the real number. ## Editing and deleting Click any expense row to edit its details, or delete it entirely. Recurring-generated expenses can be edited without affecting the template. # Finance Source: https://docs.kashfy.site/finance/overview Track revenue, expenses, and profit across your clinic in one dashboard The Finance module is your clinic's books - a single dashboard covering money in, money out, and what's left. It replaces the spreadsheets clinics normally keep on the side. Navigate to **Dashboard → Finance**. ## Three tabs Payments received, split by method and insurance status. Add and categorize spending, including recurring bills. Net profit and expense breakdown for any date range. ## Date range A date picker at the top scopes every tab. Pick a week, a month, a quarter, or a custom range - all three tabs refresh together. Defaults to the current month. Set the range to "This year" once a quarter and export the P\&L for your accountant. ## Who sees Finance Finance is a manager-level feature - staff and doctor roles don't see it. If a team member needs access, promote them to manager in [Team → Members](/team/members). # Profit & Loss Source: https://docs.kashfy.site/finance/pnl See net profit and expense breakdown for any date range The P\&L tab combines revenue and expenses into a bottom-line view. Use it to answer "did we make money this month?" and "where does the money go?" Navigate to **Dashboard → Finance → P\&L**. ## Summary Three headline numbers for the selected date range: * **Total revenue** - all money in * **Total expenses** - all money out * **Net profit** - revenue minus expenses (green if positive, red if negative) ## Expense breakdown Below the summary, a bar chart shows how expenses split by category, with each category's share as a percentage. This is the fastest way to spot the categories eating into your margin. If one category is dominating your P\&L unexpectedly, click through to [Expenses](/finance/expenses) and filter to that category to see what's driving it. ## Exporting Export the P\&L as a PDF or CSV for your accountant at year-end. The export respects the date range you have selected. The P\&L uses cash accounting - revenue is counted when the payment lands, expenses when they're paid. This matches how most Egyptian clinics track their books. # Revenue Source: https://docs.kashfy.site/finance/revenue See every payment received across appointments, lab, and radiology The Revenue tab shows money coming in. It pulls from completed appointments, lab intakes, and radiology intakes across the selected date range. Navigate to **Dashboard → Finance → Revenue**. ## Summary cards Three tiles up top summarize the period: * **Total revenue** - sum of every payment recorded in the range * **Average per payment** - revenue divided by number of payments * **Insurance coverage** - share of revenue paid via insurance vs. cash ## Appointment stats Below the tiles, four counters show the appointment volume behind the money: * **Total** - appointments in the range * **Completed** - marked completed by staff * **Cancelled** - cancelled by patient or clinic * **Pending** - still reserved, not yet resolved ## Payments table Every payment in the range appears in the table with: * **Date** paid * **Patient** name (click to open the patient's record) * **Amount** in EGP * **Method** - cash, card, InstaPay, or transfer * **Insurance** - which insurer, if any * **Notes** - free-text notes staff added at payment time Filter and sort by any column. Click a row to see the underlying appointment or intake. Payments are recorded automatically when staff mark an appointment or intake as paid. There's no separate "log a payment" step - payment lives on the appointment/intake itself. # Clinic Setup Source: https://docs.kashfy.site/getting-started/clinic-setup Configure your clinic profile so the AI agent can accurately represent you to patients Your clinic profile is the foundation of the AI agent's knowledge. The more complete and accurate it is, the better the AI performs when answering patient questions. ## Clinic profile fields Navigate to **Dashboard → Settings → Clinic** to edit your clinic profile. Enter your clinic name in both **Arabic** and **English**. The AI uses the Arabic name when speaking with patients and the English name for system labels in the dashboard. Both language fields are required. If your clinic only operates in Arabic, you can duplicate the Arabic name in the English field. Select your clinic's primary specialty (e.g., dermatology, cardiology, general practice). This helps the AI contextualize conversations and answer specialty-specific questions appropriately. The phone number patients can call if they prefer to speak with someone directly. The AI shares this when patients ask for a phone number. Enter your clinic's full street address and select your area from the list. When patients ask "where are you located?" the AI will share this information along with directions if available. If you have multiple locations, each branch can have its own address. See [Branches](#branches) below. Set the days and hours your clinic operates. These are the outer limits — individual doctors can have narrower schedules within these hours. Example: Clinic open Saturday–Thursday 9am–9pm. Dr. Amira available Saturday–Tuesday 10am–2pm. A short description of your clinic (in Arabic and English) that the AI can share with patients who ask general questions about what services you offer. ## Branches If your clinic operates from more than one location, you can add multiple branches. Navigate to **Dashboard → Settings → Clinic → Branches** to add a new branch. Each branch has: * Its own name and address * Its own set of assigned doctors * Separate appointment tracking When patients ask which branch to go to, the AI will help them based on which doctors are available at each location. ## Clinic readiness checklist Kashfy shows a **readiness checklist** in the dashboard to help you complete your setup before going live. The checklist tracks: | Item | Why it matters | | ---------------------------- | ----------------------------------------------- | | Clinic profile complete | AI needs basic info to answer patient questions | | At least one doctor added | Without doctors, the AI cannot offer slots | | Doctor has working hours set | Required for availability checks | | WhatsApp connected | Required for WhatsApp booking to work | | Subscription active | Required to go live after the free trial | The AI will not accept booking requests until all critical checklist items are complete. You can still test it in the **Dashboard → AI** test chat. ## What the AI says about your clinic When a patient asks a question like "what's your address?" or "do you have a cardiologist?", the AI answers based on your clinic profile. To see exactly what context the AI has, go to **Dashboard → AI → Test** and ask a general question about your clinic. Add doctors and configure their schedules. Link your clinic's WhatsApp number. # Introduction Source: https://docs.kashfy.site/getting-started/introduction What Kashfy is, how it works, and who it is for ## What is Kashfy? Kashfy is an AI-powered clinic receptionist that automates appointment booking through WhatsApp and your website — operating 24/7 without any manual effort from your staff. Patients message your clinic's WhatsApp number in natural **Egyptian Arabic dialect**, and Kashfy's AI agent responds like a trained receptionist: answering questions, checking doctor availability, and confirming bookings in real time. ## How it works A patient messages your clinic's WhatsApp number (or the widget on your website) in Arabic. Kashfy's AI agent — powered by Google Gemini — understands what the patient wants: book an appointment, ask about a doctor, inquire about fees, or cancel a booking. The agent looks up the requested doctor's live schedule, finds available slots, and proposes options to the patient. Once the patient confirms, the appointment is created instantly in your dashboard without any staff involvement. The day before the appointment, Kashfy automatically sends the patient a WhatsApp reminder. ## Who is Kashfy for? Kashfy is built for Egyptian clinics and healthcare practices that want to: * **Stop missing patient inquiries** that arrive outside working hours * **Reduce receptionist workload** by automating repetitive booking conversations * **Serve patients in their language** — Egyptian Arabic dialect, not formal Modern Standard Arabic * **Manage multiple doctors** under one clinic without complex scheduling tools Whether you run a single-doctor dermatology clinic or a multi-specialty center with several branches, Kashfy adapts to your structure. ## Key capabilities The AI is tuned specifically for Egyptian Arabic dialect (عامية مصرية), not formal Arabic. Patients can write casually and the AI understands naturally. No app downloads required. Patients use WhatsApp — the app they already have on their phones. A floating chat bubble you can embed on any website with a single script tag. It opens a booking conversation right on your site. The AI only offers slots that are genuinely open. It checks live doctor schedules and never double-books. Upload PDFs (price lists, service descriptions, doctor bios) and the AI will answer patient questions from them. Add multiple doctors with independent schedules. If you have more than one location, each branch has its own setup. Kashfy sends WhatsApp appointment reminders the day before, reducing no-shows without any staff effort. Doctors can record symptoms, diagnoses, and prescriptions against each appointment. Patients can request a secure link via WhatsApp to view their full appointment history and share it with any doctor using a 4-digit PIN. ## What Kashfy does not do * Kashfy is **not a full EHR/EMR system**. It stores appointment-level clinical notes (symptoms, diagnosis, prescription) but does not support lab results, imaging, or complex medical record workflows. * Kashfy does **not handle payments** on behalf of patients. Fee collection happens at the clinic as normal. * The AI handles **booking and records conversations only** — it does not provide medical advice. Go live in 10 minutes. Configure your clinic profile in detail. # Kashfy Docs Source: https://docs.kashfy.site/index The AI-powered clinic receptionist — automate appointment booking via WhatsApp and your website

AI Clinic Receptionist

# Book appointments on autopilot with Kashfy

Kashfy is your AI-powered clinic receptionist that handles appointment booking 24/7 via WhatsApp and your website — in Egyptian Arabic, without any manual intervention.

Explore Kashfy

Your 24/7 AI receptionist that understands Egyptian Arabic and books appointments automatically. Connect your clinic's WhatsApp number and let the AI handle all patient conversations. Embed a booking chat widget on your clinic website in minutes with a single line of code. Manage all bookings in real time across multiple doctors and branches. Add doctors, set working hours, and let the AI book only into available slots. Flexible monthly and yearly plans with included bookings and transparent overage fees. Patients access their full appointment history via a secure PIN-protected link shared over WhatsApp.

Get started

Set up your clinic and go live with AI booking in under 10 minutes. 7-day free trial — no credit card required. Step-by-step guide to linking your clinic's WhatsApp number. Add the booking widget to your website with one snippet.
# Tests catalogue Source: https://docs.kashfy.site/lab/catalogue Manage your lab test menu, prices, turnaround times, and sample types The catalogue is your lab's price list. Every test you run should live here - it keeps intake fast (staff pick from a list instead of retyping) and gives the AI agent an accurate price to quote on WhatsApp. Navigate to **Dashboard → Lab → Tests catalogue**. ## Adding a test Click **New test** and fill in: * **Arabic name** (required) - what patients see * **English name** - shown to staff and in reports * **Code** - your internal or LOINC code (optional) * **Price (EGP)** - what you charge for this test * **Turnaround (hours)** - how long from sample to result; used to set expectations with the patient * **Sample type** - blood, urine, swab, etc. ## Editing prices in bulk Ran a supplier price change? Use **Adjust prices** to bump every active test by a percentage in one shot. Opens the bulk adjust dialog. Positive numbers raise prices, negative numbers lower them. `10` means +10%, `-5` means -5%. Kashfy shows how many tests will be affected. Confirm to apply. Bulk adjustments only touch **active** tests with a price already set. Tests without a price or that are archived are skipped. ## Archiving tests Toggle a test to inactive if you've stopped offering it. Inactive tests stay in your history (so old intakes still resolve correctly) but disappear from the intake picker and the AI agent's answers. ## What the AI does with the catalogue If a patient asks "بكم تحليل صورة الدم؟" the AI looks up the test in this catalogue and quotes the exact price and turnaround. Keep the catalogue current - every stale price is a bad quote to a patient. # Intake queue Source: https://docs.kashfy.site/lab/intake Register walk-in patients for lab tests and track them through the workflow The intake queue is where every walk-in for the lab shows up. Each row is a patient with their tests, total, and current stage. Navigate to **Dashboard → Lab → Intake queue**. ## Adding an intake manually Click **New intake** to open the form and fill in: * **Patient name** (required) * **Patient phone** - used to send the result on WhatsApp later * **Tests** - the tests being run today, comma-separated or free-text * **Total (EGP)** - the price the patient is paying; pulled from the catalogue when you pick from the menu * **Notes** - anything the technician needs to remember (fasting status, prior visit, etc.) Phone number is optional but strongly recommended - without it Kashfy can't send the result to the patient automatically. ## The status cycle Tap the status pill on any row to advance it. Each intake moves through five stages: | Status | Meaning | | -------------- | ------------------------------------------------------ | | **Pending** | Registered, sample not yet collected | | **Collected** | Sample taken from the patient | | **Processing** | Test is being run | | **Ready** | Result is available - upload it to send to the patient | | **Delivered** | Result has been sent/handed over | Statuses only move forward. If you make a mistake, delete the intake and create a new one. ## QR arrivals If your branch has a printed QR sticker at the counter, patients who scan it are added to this queue automatically with the arrived status - you don't need to type anything in. The intake card shows a small **QR** badge so you can tell scanned arrivals apart from manually-added ones. QR arrivals only work once WhatsApp is connected for your clinic. See [WhatsApp setup](/ai-agent/whatsapp-setup). ## Multi-branch clinics If your clinic has more than one branch, the intake queue is scoped to the branch you're currently viewing. Switch branches from the branch picker in the top bar to see another location's queue. # Lab Source: https://docs.kashfy.site/lab/overview Run your clinic lab end-to-end — intake, catalogue, and results — from one dashboard The Lab module is a full workflow for clinics that run their own lab: register walk-ins, price your test menu, and send results back to the patient over WhatsApp. The Lab section only appears if your organization is set up as a lab (or has lab enabled alongside a clinic). Contact support if you don't see it and expect to. ## The lab dashboard Navigate to **Dashboard → Lab** to see the day at a glance. Three summary cards up top: * **Today's total** - how many walk-ins have been registered today * **Pending** - intakes waiting to be processed (sample not yet collected) * **Results ready** - cases with results uploaded and ready to hand over Below the cards you'll find quick-access tiles for the three lab surfaces: Today's walk-ins, ordered by arrival time. Manage your test menu and prices. Upload and send results to patients. ## Typical lab day The QR sticker at your counter opens WhatsApp with a prefilled code. When the patient sends it, the intake is created and marked **arrived** automatically. If you'd rather add them yourself, use the **New intake** button on the [intake queue](/lab/intake). On the intake card, tap the status pill to advance through the stages: pending → collected → processing → ready → delivered. From the [Results](/lab/results) page (or the intake card), attach the result PDF. Kashfy sends it to the patient on WhatsApp automatically. Set your prices once in the catalogue and every new intake picks them up automatically - no need to re-type totals for repeat tests. # QR intake Source: https://docs.kashfy.site/lab/qr-intake Let patients register themselves at the counter by scanning a WhatsApp QR sticker QR intake turns the patient's phone into the intake terminal. They scan a printed sticker at your counter, WhatsApp opens with a prefilled code, they send it, and Kashfy adds them to your intake queue automatically - name, phone, and arrival time already filled in. QR intake is available for both **Lab** and **Radiology** modules. Each branch gets its own QR - so scans are always tagged to the correct location. ## How it works The sticker encodes a short URL like `kashfy.site/s/AB4X7Q`. Any phone camera opens it. They see a friendly hello and a 6-character code. They just tap **Send**. The webhook parses the code out of the incoming WhatsApp message and creates an intake in the correct branch and module (lab or radiology). Staff see a new card in the intake queue immediately - patient name is pulled from their WhatsApp profile, phone is captured automatically. ## What gets captured When a patient arrives via QR, the intake starts with: * **Patient name** from their WhatsApp profile * **Phone number** automatically * **Arrival timestamp** * **Branch** it was scanned at * **Kind** - lab or radiology, depending on which QR they scanned Any prescription photos the patient sends after scanning attach to their intake card too, so staff can see what tests were ordered without having to ask. ## Prerequisites QR intake only works when: * WhatsApp is connected for your organization (see [WhatsApp setup](/ai-agent/whatsapp-setup)) * The branch has an intake short-code generated (contact support to enable) If either isn't set up, the QR redirects to the marketing site as a graceful fallback - it won't show an error page to the patient. ## Fallback: manual intake If a patient can't or won't scan the QR, you can always add them manually from the [intake queue](/lab/intake). QR and manual intakes live in the same queue - the only difference is the QR badge on scanned cards. # Results Source: https://docs.kashfy.site/lab/results Upload lab result files and send them to patients on WhatsApp automatically The Results page lists every intake whose status is **Ready** - meaning the test has run and the report needs to go out to the patient. Navigate to **Dashboard → Lab → Results**. ## Sending a result Each ready intake shows the patient's name, phone, tests, and the time they were registered. Upload the result PDF (or image) to the intake card. Kashfy stores it against the patient's record. As soon as the file is uploaded, it goes out on WhatsApp with a short cover message. No manual send step. The intake disappears from the Results queue and is marked delivered in the patient's history. If the patient didn't provide a phone number at intake, the result file is stored but not sent. You'll need to hand it over in person or add a phone later. ## Viewing past results Once an intake is marked delivered, its result file stays attached to the patient's record. Open the patient from **Patients** to see every historical result. # Conversations Source: https://docs.kashfy.site/patients/conversations Read and review every AI conversation your clinic has had with patients via WhatsApp and the widget Kashfy logs every conversation your AI agent has with patients — whether through WhatsApp or the website widget. The Conversations section gives your team full visibility into what was discussed and what actions the AI took. ## Viewing conversations Navigate to **Dashboard → Conversations** to see a list of all patient conversations, sorted by most recent activity. Each row shows: * **Patient name** and phone number * **Channel** (WhatsApp or widget) * **Last message** preview * **Last active** timestamp * **Number of bookings** made in this conversation Click any conversation to read the full chat. ## Conversation view Inside a conversation, you see the full message-by-message exchange between the patient and the AI. You can see: * Exactly what the patient asked * Exactly what the AI responded * Any appointments that were booked or cancelled as part of the conversation * Timestamps for each message Conversations are read-only from the dashboard — you cannot send messages or edit the AI's responses after the fact. If you need to follow up with a patient, message them directly on WhatsApp. ## Filtering conversations Use the filters at the top of the conversations list to narrow by: * **Date range** — find conversations from a specific period * **Channel** — WhatsApp only, widget only, or both * **Doctor mentioned** — conversations that resulted in a booking with a specific doctor * **Has bookings** — conversations that led to at least one appointment ## Why review conversations? Reviewing AI conversations regularly helps you: * **Catch gaps in the knowledge base** — if the AI says "I don't know" frequently about certain topics, add that info to the knowledge base or custom instructions * **Spot misunderstandings** — if patients seem confused by the AI's responses, adjust the custom instructions * **Audit AI behavior** — verify the AI is following your clinic's guidelines * **Handle complaints** — if a patient is unhappy about how a conversation went, the log gives you full context ## The AI's conversation memory The AI remembers the last **30 messages** from each patient's conversation history. This means: * Within a session, the AI knows the full context of the discussion * Returning patients who have a history will have that context available (up to 30 messages back) * Very old messages beyond 30 may not be referenced by the AI If a patient complains that "the AI forgot something we discussed," it may be because the conversation exceeded 30 messages. This is the current limit of the AI's memory window. View patient records and their full booking history. Understand how the AI handles conversations. # Patients Source: https://docs.kashfy.site/patients/overview View and manage your clinic's patient records, booking history, and contact information Every person who books an appointment through Kashfy — whether via WhatsApp or the widget — is automatically added as a patient record. You can also add patients manually. ## The patients list Navigate to **Dashboard → Patients** to see all patients who have interacted with your clinic through Kashfy. Each patient record shows: * **Name** and **phone number** * **Channel** they came through (WhatsApp or widget) * **Total appointments** at your clinic * **Last visit date** * **Registration date** (when they first booked) ## Patient details Click any patient to open their full record: Name, phone number, and the channel through which they first contacted the clinic. A full list of all their appointments at your clinic — past, upcoming, completed, and cancelled. All WhatsApp or widget conversations this patient has had with your AI agent. Click any conversation to read the full chat. Any internal notes your staff has added to this patient's record. Not visible to the patient. ## Adding patients manually To add a patient without them having messaged your clinic: 1. Go to **Dashboard → Patients** 2. Click **Add Patient** 3. Enter their name and phone number 4. Optionally book an appointment directly from their record ## Patient identity Kashfy identifies patients primarily by their **phone number**: * WhatsApp patients: identified by their WhatsApp phone number * Widget patients: identified by a browser session key (no phone required) If the same patient contacts your clinic via both WhatsApp and the website widget, they will appear as two separate records (since the widget session doesn't require a phone number). Merging is not yet supported. ## Searching for a patient Use the search bar at the top of the patients list to find a patient by name or phone number. ## Privacy and data Patient data stored in Kashfy includes only what is needed for appointment management: name, phone number, booking history, and conversation logs. No medical records or clinical data are stored. Read the full WhatsApp and widget chat histories. View all bookings associated with patients. # Patient Records Portal Source: https://docs.kashfy.site/patients/records-portal Give patients secure access to their appointment history and medical notes via a PIN-protected link The Patient Records Portal lets patients access their complete appointment history — including diagnoses, prescriptions, and doctor notes — through a secure, PIN-protected link they can share with any doctor. ## How it works The patient sends a message to your clinic's WhatsApp number asking for their file — for example: "ممكن ملفي" or "my records". The AI responds with a personal link to their portal. If this is the patient's first time requesting a link, the AI asks them to choose a 4-digit PIN. This PIN protects their records from unauthorized access. The patient can copy the link and share it however they choose — WhatsApp, SMS, in person. They share the PIN separately to keep access secure. The doctor opens `patients.kashfy.site/ar/[patient-id]` in any browser and enters the 4-digit PIN. Once verified, they see the patient's full records. ## What the portal shows The records portal displays everything Kashfy has on file for that patient: | Section | Contents | | ------------------ | ------------------------------------------------------------------------------ | | **Patient info** | Name, phone number, gender, date of birth, insurance details | | **Appointments** | All past and upcoming appointments with date, time, doctor, branch, and status | | **Clinical notes** | Symptoms, diagnosis, and prescription recorded by the doctor for each visit | | **Prescriptions** | Prescribed medications with dosage, linked to each appointment | ## Accessing via direct link with PIN Doctors and other authorized people can also open the portal with the PIN pre-filled in the URL: ``` https://patients.kashfy.site/ar/[patient-id]?pin=1234 ``` This lets patients share a single tap-to-open link that verifies automatically on load — no manual PIN entry required. The portal is available in Arabic (`/ar/`) and English (`/en/`). The language defaults to Arabic when the patient requests the link via WhatsApp. ## Resetting a forgotten PIN If a patient forgets their PIN, they can reset it directly from WhatsApp: 1. Patient sends "نسيت الكود" or "forgot pin" to your clinic's WhatsApp number 2. The AI resets the old PIN and asks the patient to send a new 4-digit code 3. Patient sends any 4 digits and the new PIN is set immediately The old PIN is invalidated as soon as the reset is triggered. Anyone who had the old PIN can no longer access the portal until the patient shares the new one. ## Security details PINs are never stored as plain text. Kashfy stores a cryptographic hash of the PIN that is specific to each patient — it cannot be reversed or used across accounts. After a correct PIN is entered, the portal session lasts 24 hours in the same browser. After 24 hours, the PIN must be re-entered. After 5 consecutive wrong PIN attempts, the portal locks out the requester for 30 minutes. This prevents automated PIN guessing. The portal requires no login, app download, or account creation. Access is controlled entirely by knowing the patient-specific link and PIN. ## What patients see vs. what the clinic sees The records portal is a **read-only view** for patients and doctors who access it. Nothing can be edited through the portal — clinical data is only added or modified by clinic staff and doctors through the Kashfy dashboard. The portal link is permanent and patient-specific. If a patient wants to revoke access from someone they shared it with, they should reset their PIN. Once the PIN changes, the old PIN stops working immediately. View the AI conversation history for each patient. Manage appointments and add clinical notes. # Quick Start Source: https://docs.kashfy.site/quickstart Set up your clinic and go live with AI-powered appointment booking in under 10 minutes This guide walks you through everything you need to start taking bookings automatically — via WhatsApp and your website — using Kashfy's AI receptionist. ## What you'll need * A WhatsApp number for your clinic (an existing number works fine) * Your clinic's basic details (name, address, working hours) * At least one doctor with a defined schedule ## 1. Create your account Go to [kashfy.site](https://kashfy.site) and sign up. You start on a **7-day free trial** with no credit card required. Sign up with your clinic's email address so your team can easily be added later. ## 2. Set up your clinic profile After signup, complete your clinic profile: Add your clinic name in Arabic and English, your specialty, phone number, and address. The AI uses this information to answer patient questions. Define the days and hours your clinic is open. These become the outer bounds for all doctor schedules. Add your clinic's address and area. When patients ask for directions, the AI shares this information with them. ## 3. Add your doctors Navigate to **Dashboard → Doctors** and add your doctors: Enter the doctor's name (Arabic and English), specialty, and consultation fee. Define which days the doctor works and their available time slots. The AI will only book appointments within these hours. Set how long each appointment lasts (e.g., 20 minutes). This controls the number of slots available per day. ## 4. Connect WhatsApp Navigate to **Dashboard → WhatsApp** to connect your clinic's WhatsApp number. Kashfy supports connecting your existing WhatsApp number. Patients can message it directly, and the AI responds on your behalf. See [WhatsApp Setup](/ai-agent/whatsapp-setup) for the full connection guide. ## 5. Test your AI agent Go to **Dashboard → AI** and use the built-in test chat to simulate a patient conversation. Try messages like: * "عايز أحجز مع الدكتور" * "امتى المواعيد المتاحة؟" * "كام سعر الكشف؟" The AI should respond naturally in Egyptian Arabic and offer available time slots. ## 6. (Optional) Install the website widget If you have a clinic website, add the booking widget so patients can book directly from it: ```html theme={null} ``` See [Widget Installation](/widget/installation) for the complete guide. ## You're live! Your AI receptionist is now active. Every message sent to your WhatsApp number or website widget will be handled automatically — 24/7. View and manage all bookings from the dashboard. Fine-tune the AI's tone, knowledge, and behavior. Invite your staff and assign roles. Review your trial limits and choose the right plan. # Scans catalogue Source: https://docs.kashfy.site/radiology/catalogue Manage your scan menu, prices, body parts, and imaging modalities The catalogue is your radiology center's price list. Every scan you offer should live here - it makes intake faster and lets the AI agent quote accurate prices on WhatsApp. Navigate to **Dashboard → Radiology → Scans catalogue**. ## Adding a scan Click **New scan** and fill in: * **Arabic name** (required) - what patients see * **English name** - shown to staff and in reports * **Code** - your internal or CPT code (optional) * **Price (EGP)** - what you charge * **Body part** - chest, abdomen, brain, etc. * **Modality** - X-ray, ultrasound, CT, MRI, mammography, fluoroscopy ## Bulk price adjustments Use **Adjust prices** to move every active scan by a percentage in one step. Positive numbers raise, negative numbers lower. Only priced, active scans are affected - archived scans are skipped. Prices update immediately. Kashfy shows how many scans will be affected before applying - review the count before you confirm. ## Archiving scans Toggle a scan inactive when you stop offering it. Historic intakes stay linked, but the scan disappears from the intake picker and from the AI agent's answers. ## What the AI does with the catalogue When a patient asks "بكم أشعة الصدر؟" the AI reads this catalogue and quotes the exact price and modality. Keeping the catalogue current is the difference between the AI quoting real prices and quoting stale ones. # Intake queue Source: https://docs.kashfy.site/radiology/intake Register walk-in patients for scans and track them through the workflow The intake queue lists every walk-in for imaging. Each row is a patient with their scans, total, and current stage. Navigate to **Dashboard → Radiology → Intake queue**. ## Adding an intake manually Click **New intake** to open the form and fill in: * **Patient name** (required) * **Patient phone** - used to send the report on WhatsApp * **Scans** - the scans being performed (chest X-ray, abdomen ultrasound, etc.) * **Total (EGP)** - price the patient is paying; auto-filled from catalogue when picking from the menu * **Notes** - technician notes: contrast used, prior scans, referring doctor ## The status cycle Tap the status pill to advance the intake: | Status | Meaning | | -------------- | ---------------------------------------------------- | | **Pending** | Registered, scan not yet performed | | **Collected** | Patient prepped, scan starting | | **Processing** | Scan complete, radiologist reviewing | | **Ready** | Report is written - upload it to send to the patient | | **Delivered** | Report has been sent/handed over | ## QR arrivals If your branch has a printed QR sticker, patients scanning it are added here automatically with all their details captured. Cards from QR scans show a QR badge to distinguish them from manual entries. See [QR intake](/lab/qr-intake) for the full flow. # Radiology Source: https://docs.kashfy.site/radiology/overview Run your imaging center - scan intake, catalogue, and report delivery - from one dashboard The Radiology module is a full workflow for clinics and centers that run imaging: X-ray, ultrasound, CT, MRI, and more. It mirrors the [Lab module](/lab/overview) but tracks scans and reports instead of tests and results. The Radiology section only appears if your organization is set up as a radiology center (or has radiology enabled alongside a clinic). Contact support if you don't see it and expect to. ## The radiology dashboard Navigate to **Dashboard → Radiology** to see the day at a glance. Three summary cards up top: * **Today's total** - scans registered today * **Pending** - scans waiting to be performed * **Reports ready** - scans whose reports are uploaded and ready to hand over Quick-access tiles below: Today's walk-ins, ordered by arrival time. Manage your scan menu and prices. Upload and send reports to patients. ## Typical day QR intake works the same way as the lab - see [QR intake](/lab/qr-intake). Manual registration is available from the [intake queue](/radiology/intake). Advance the intake through pending → collected → processing → ready → delivered as the scan progresses. Attach the report file. Kashfy sends it to the patient on WhatsApp automatically. Radiology and Lab intakes share the same branch-level counter view when both are enabled - one queue, two card types, one screen for the receptionist to work. # Reports Source: https://docs.kashfy.site/radiology/results Upload radiology reports and send them to patients on WhatsApp automatically The Reports page lists every intake whose status is **Ready** - meaning the radiologist has finished reading and the report is ready to go out. Navigate to **Dashboard → Radiology → Reports**. ## Sending a report Each ready intake shows the patient's name, phone, scans, and arrival time. Upload the PDF (or image) report to the intake card. The file goes out immediately with a short cover message. No manual send step. The intake leaves the Reports queue and is marked delivered in the patient's history. If the patient didn't provide a phone at intake, the report is stored but not sent. Add a phone later or hand the report over in person. ## Viewing past reports Delivered reports stay attached to the patient's record. Open a patient from **Patients** to see every scan they've ever had and download prior reports. # Reviews Source: https://docs.kashfy.site/reviews/overview See patient feedback on your doctors and reply where it matters The Reviews section is where patient ratings and comments land - one place to read what people are saying about your clinic and respond. Navigate to **Dashboard → Reviews**. ## What a review looks like Each review card shows: * **Star rating** - 1 to 5 stars * **Doctor** the review was left for * **Patient name and phone** - so you can follow up if needed * **Comment** - the patient's written feedback * **Date** the review was submitted Click the patient's name to open their record for a full history. ## Hiding a review If a review is inappropriate, off-topic, or the patient asked you to remove it, toggle it hidden. Hidden reviews stay visible to you (with reduced opacity) but no longer count toward the doctor's public rating. Kashfy doesn't let you edit or delete reviews - only hide them. This keeps the record honest: nothing is ever quietly rewritten. ## Where reviews come from Reviews come in through the same WhatsApp thread the AI agent uses. After an appointment, patients receive a follow-up asking for feedback. Their rating and comment flow straight into this page. Ratings drive doctor visibility in your website widget - highly-rated doctors are recommended first. Encourage happy patients to leave feedback. # Services Source: https://docs.kashfy.site/services/overview Define and price the services your clinic offers beyond the consultation The Services module is your clinic's menu of add-on services - things you charge for on top of (or instead of) a plain consultation. Setting these up lets the AI agent quote accurate prices and lets staff bill quickly. Navigate to **Dashboard → Services**. ## Adding a service Two ways to add: Kashfy ships with a searchable catalogue of common clinic services. Pick one and set your price - the Arabic and English names are already filled in. If a service isn't in the catalogue, add a bilingual entry from scratch: Arabic name, English name, and price. ## Pricing options For each service, choose: * **Included in visit** - no separate charge; the service is covered by the consultation fee * **Custom price (EGP)** - a specific price the patient pays on top of the consultation Edit pricing inline anytime, or remove a service to drop it from your menu. Mark diagnostic add-ons like ECG or blood pressure as "included in visit" if your consultation fee covers them - it keeps the AI from double-charging patients when they ask about costs. ## What the AI does with services When a patient asks "بعمل ايكو؟" (do you do echocardiograms?) the AI checks this list to answer yes/no and quote the price. If a service isn't in the list, the AI says it doesn't offer that service - so add anything you actually do here, even if it's rare. ## Services vs. Lab / Radiology Services are for clinical procedures done during a doctor visit - dressings, ECG, injections, minor procedures. For lab tests and radiology scans, use the dedicated [Lab catalogue](/lab/catalogue) and [Radiology catalogue](/radiology/catalogue) instead - they carry extra fields like turnaround time and modality. # Clinic Settings Source: https://docs.kashfy.site/settings/clinic Update your clinic's profile, branding, and operational details Clinic settings control how your clinic is presented to patients and how the AI represents you in conversations. Keep this information accurate — the AI pulls from it constantly. ## Accessing clinic settings Navigate to **Dashboard → Settings → Clinic**. ## General information Your clinic's name in Arabic and English. The AI uses the Arabic name in patient conversations. Both are required. The primary medical specialty of your clinic. Helps the AI contextualize conversations ("We are a dermatology clinic..."). The phone number the AI shares when patients ask to speak to someone directly. This should be your clinic's public-facing phone line. A short description of your clinic in Arabic and English. The AI may use this when patients ask general questions about your services. Upload your clinic's logo. It appears on the public-facing clinic page and (optionally) in the website widget. ## Address & locations Your clinic's physical address is set here. For multi-branch clinics, each branch has its own address. * **Street address** — Full address including building number and street name * **Area** — Select from the list of areas (used for patient-facing directions and search) * **Google Maps link** — Optionally add a Google Maps URL so the AI can share a direct link with patients asking for directions ## Working hours Set your clinic's overall operating hours. Individual doctor schedules are set separately (in **Dashboard → Doctors**) but cannot extend beyond the clinic's working hours. ## Clinic readiness The **Readiness** section shows you a checklist of what's been configured and what's still missing before you can go live. Items include: * Clinic profile complete * At least one active doctor with working hours * WhatsApp connected (or widget installed) * Active subscription The AI will not handle patient bookings until your clinic is considered "ready." You can still test it in the AI test chat regardless. Full walkthrough of setting up your clinic profile. Configure how and when you receive alerts. # Notifications Source: https://docs.kashfy.site/settings/notifications Control how Kashfy notifies you and your team about new bookings and important events Kashfy can notify your team when important things happen — a new appointment is booked, a patient cancels, or an invoice is overdue. Configure notifications from **Dashboard → Settings → Notifications**. ## Notification channels Receive notifications directly in your browser, even when the Kashfy dashboard tab is not in focus. To enable, click **Allow** when the browser prompts for notification permission. If you previously denied the permission, you'll need to re-enable it in your browser settings. Push notifications are **per device** — each team member enables them on their own device. Receive a WhatsApp message on a designated number when key events occur. This is separate from your clinic's patient-facing WhatsApp number. Set a notification phone number in the notifications settings to receive these alerts. ## Notification events Configure which events trigger a notification: | Event | Description | | ------------------------- | ---------------------------------------------------- | | **New booking** | The AI successfully books an appointment | | **Cancellation** | A patient cancels an appointment via the AI | | **New patient** | A new patient contacts the clinic for the first time | | **Invoice overdue** | A billing invoice is past its due date | | **WhatsApp disconnected** | The WhatsApp session drops and needs re-linking | Enable the **WhatsApp disconnected** notification so you can quickly re-link your WhatsApp if the session drops — minimizing downtime for your patients. ## Per-member notification preferences Each team member can set their own notification preferences from **Dashboard → Settings → Personal**. For example, doctors may only want notifications for their own appointments, while owners may want all events. ## Appointment reminders (outbound) Kashfy automatically sends WhatsApp reminder messages to **patients** the day before their appointment. This is configured separately and is not a notification to your team — it's a patient-facing feature. See [AI Agent](/ai-agent/overview) for details on automatic patient reminders. Update your personal account preferences. Manage your WhatsApp connection. # WhatsApp Settings Source: https://docs.kashfy.site/settings/whatsapp Manage your clinic's WhatsApp connection and messaging configuration WhatsApp settings control how Kashfy connects to your clinic's WhatsApp number and how the AI behaves in those conversations. ## Accessing WhatsApp settings Navigate to **Dashboard → Settings → WhatsApp** or **Dashboard → WhatsApp**. ## Connection status The top of the page shows the current connection status: | Status | What to do | | ---------------- | ------------------------------------------- | | **Connected** | No action needed — AI is active | | **Disconnected** | Scan the QR code to reconnect | | **Connecting** | Wait a moment for the handshake to complete | For detailed steps on connecting or reconnecting, see [WhatsApp Setup](/ai-agent/whatsapp-setup). ## WhatsApp number Once connected, your linked WhatsApp number is displayed. This is the number patients message to reach your AI agent. To use a different WhatsApp number: 1. Disconnect the current number 2. Scan the QR code with the new number's WhatsApp app ## Message settings A small artificial delay between when a patient sends a message and when the AI responds. This makes the conversation feel more natural rather than instant. The default delay is 1–3 seconds. You can adjust or disable it. Automatic WhatsApp reminder messages sent to patients the day before their appointment. Enable or disable this feature here. When enabled, every patient with an appointment tomorrow receives a WhatsApp message at a set time (configurable, default: 9:00 AM Cairo time). Configure what the AI says when a patient contacts the clinic outside of working hours. Options include: * **Acknowledge and offer next available time** (default) * **Only acknowledge and ask them to try again** (if you don't want off-hours bookings) ## Best practices for WhatsApp continuity * **Keep the linked phone charged and connected to the internet.** The WhatsApp session depends on the linked device maintaining connectivity. * **Do not open WhatsApp on the linked phone.** If someone opens WhatsApp on the same number's device, it may terminate the Kashfy session. * **Enable the "WhatsApp disconnected" notification** so you're alerted immediately if the session drops. Full step-by-step guide to connecting your number. Set up alerts for disconnections and new bookings. # System Status Source: https://docs.kashfy.site/status Check the current status of Kashfy services Monitor the health of Kashfy's core services and view the history of past incidents. ## Current status All systems are currently **operational**. | Service | Status | | ------------------- | ----------- | | AI Agent (WhatsApp) | Operational | | AI Agent (Widget) | Operational | | Dashboard | Operational | | Appointment booking | Operational | | WhatsApp connection | Operational | | Billing & payments | Operational | This page is updated manually during incidents. For real-time alerts, enable the **WhatsApp disconnected** notification in **Dashboard → Settings → Notifications** so your team is immediately alerted to any connectivity issue affecting your clinic. ## Reporting an outage If you're experiencing an issue that looks like a system-wide problem (not specific to your clinic's configuration): 1. Email [support@kashfy.site](mailto:support@kashfy.site) with the subject line **Possible Outage** 2. Include your clinic name and a description of what's not working 3. The team will investigate and update this page during confirmed incidents ## Incident history No incidents in the past 90 days. *** Contact the team for help with your specific issue. Re-link your WhatsApp if the connection has dropped. # Support Source: https://docs.kashfy.site/support Get help with Kashfy — contact the team, report issues, and find answers The Kashfy support team is here to help with setup, technical issues, billing questions, and anything else related to your clinic's AI agent. ## Contact support [support@kashfy.site](mailto:support@kashfy.site) — for non-urgent questions, billing issues, and general help. We typically respond within 24 hours. Message our support team directly on WhatsApp for faster responses during business hours (Saturday–Thursday, 9am–6pm Cairo time). ## What to include in your support request To help us resolve your issue quickly, include: * Your **clinic name** and the email address used to sign up * A **description of the issue** — what you expected to happen vs. what actually happened * The **date and time** when the issue occurred * Screenshots or screen recordings if relevant (especially for AI conversation issues) * Your **WhatsApp conversation** or appointment ID if the issue is specific to a booking ## Common issues & quick fixes Go to **Dashboard → WhatsApp** and scan the QR code again with your clinic's phone. This re-establishes the session. If the QR code doesn't load, try refreshing the page or using a different browser. Check **Dashboard → WhatsApp** to verify the connection is active. If connected, check **Dashboard → Settings → Subscription** to ensure your subscription is not suspended. Go to **Dashboard → Conversations** and find the conversation. Review what the patient asked and what the AI responded. If you find a recurring pattern, adjust the AI's custom instructions or doctor schedules to prevent it. To fix the incorrect booking, open the appointment and reschedule or cancel as needed. Check with your bank that the card is enabled for online payments. Try again with the same card, or use a different card. If the problem persists, contact [support@kashfy.site](mailto:support@kashfy.site). Confirm the script tag is placed just before `` in your HTML, that `data-clinic-id` is set to your actual Clinic ID, and that there are no JavaScript errors in your browser console. ## Feedback & feature requests Have an idea for a feature or an improvement? We'd love to hear it. Email [support@kashfy.site](mailto:support@kashfy.site) with the subject line **Feature Request** and describe what you're looking for and why it would help your clinic. Popular requests are tracked and prioritized on our [Roadmap](/updates/roadmap). # Team Members Source: https://docs.kashfy.site/team/members Invite and manage staff who can access your clinic's Kashfy dashboard Kashfy supports multiple team members per clinic so your staff can collaborate on appointment management, patient follow-ups, and dashboard administration — each with appropriate access based on their role. ## Inviting a team member Navigate to **Dashboard → Settings → Team** and click **Invite Member**: Type the email address of the person you want to invite. They'll receive an invitation link via email. Select the role that matches their responsibilities. See [Roles & Permissions](/team/roles) for a breakdown of what each role can do. If you have multiple branches and this staff member works at a specific location, assign them to that branch. Branch-assigned members see only the appointments and data for their location. Click **Send Invite**. The invited person receives an email with a link to create their account and join your clinic. Team members do not need a separate Kashfy account before being invited — the invitation creates their account automatically. ## Managing existing members From **Dashboard → Settings → Team**, you can see all current members and their roles. For each member you can: * **Change their role** — promote or restrict access * **Change their branch assignment** — reassign to a different location * **Remove them** — revoke their access to the clinic ## Pending invitations If an invited member has not yet accepted, they appear as **Pending** in the team list. You can resend or cancel pending invitations from the same screen. ## Removing a member To remove a team member's access: 1. Go to **Dashboard → Settings → Team** 2. Find the member in the list 3. Click **Remove** They will immediately lose access to the dashboard. Their past actions (appointments created, notes added) remain in the system. ## Clinic owner The clinic **Owner** is the account that created the clinic. The owner has full access to all settings, billing, and team management. There can only be one owner per clinic. Ownership transfer is not currently supported through the dashboard. Contact [support@kashfy.site](mailto:support@kashfy.site) if you need to transfer clinic ownership. Understand what each role can and cannot access. Manage other clinic settings. # Roles & Permissions Source: https://docs.kashfy.site/team/roles A reference for every team role in Kashfy and what each one can access Kashfy uses four roles to control what each team member can see and do in the dashboard. Assign roles based on each person's responsibilities at your clinic. ## Role overview | Role | Who it's for | | ------------ | --------------------------------------------------------------- | | **Owner** | The clinic account holder — full access to everything | | **Admin** | Senior staff managing the clinic operationally | | **Employee** | Receptionists and coordinators handling day-to-day appointments | | **Doctor** | Physicians who need to see their own schedule and patient info | ## Permissions by role The Owner is automatically assigned to the account that created the clinic. There is one owner per clinic. **Full access to:** * All appointments across all branches and doctors * All patient records and conversations * All team management (invite, remove, change roles) * Billing and subscription settings * Clinic profile and settings * AI agent settings, custom instructions, and knowledge base * WhatsApp and widget configuration * Financial dashboard (invoices, payments, revenue) * Admin features and clinic suspension controls The owner cannot be removed by other team members. Admins have nearly the same access as the Owner, except for billing and financial controls. **Can do:** * View and manage all appointments * View and manage patient records * Invite and manage team members (except changing Owner) * Update clinic profile and settings * Configure AI, knowledge base, and custom instructions * Manage WhatsApp connection and widget settings **Cannot do:** * Access billing and invoices * Change subscription plans * View the financial dashboard Employees are receptionists or clinic coordinators. They can manage appointments and patients but cannot change settings or access sensitive financial data. **Can do:** * View and manage appointments (at their assigned branch, if branch-restricted) * View patient records and conversation histories * Create manual appointments * Update appointment statuses * Add notes to appointments and patients **Cannot do:** * Change clinic settings, AI instructions, or WhatsApp configuration * View billing or financial data * Invite or manage team members * View doctors' configuration or edit schedules If an employee is assigned to a specific branch, they only see appointments and patients for that branch. Doctors have a simplified view focused entirely on their own schedule and patients. **Can do:** * View their own upcoming and past appointments * See patient names and basic info for their appointments * Update status of their own appointments (arrived, completed, no-show) * Add notes to their own appointments **Cannot do:** * View other doctors' schedules or appointments * Access patient records beyond their own patients * View conversations, billing, or clinic settings * Invite team members or change any configuration Doctors log in through the same dashboard but see a dedicated simplified view of their schedule only. ## Branch restrictions Employees (and optionally Doctors) can be **assigned to a specific branch**. When branch-restricted: * They see only appointments for their assigned branch * They can only create appointments at their branch * Patient records they see are filtered to those who visited their branch Owners and Admins always see all branches regardless of any branch setting. ## Changing a role To change a team member's role: 1. Go to **Dashboard → Settings → Team** 2. Click the member's current role 3. Select the new role from the dropdown 4. The change takes effect immediately Demoting an Admin to Employee will immediately restrict their access. Make sure they don't have any in-progress tasks that require Admin access before changing their role. # Roadmap Source: https://docs.kashfy.site/updates/roadmap Upcoming features and improvements planned for Kashfy This page gives a high-level view of what the Kashfy team is working on. Priorities can shift — this is a directional guide, not a committed release schedule. Have a feature request? Let us know at [support@kashfy.site](mailto:support@kashfy.site). Highly requested features move up the queue. ## In progress These are actively being built: Export your appointments list as a CSV file for use in Excel, Google Sheets, or other tools. Filter by date range, doctor, or status before exporting. Log calls from patients who prefer to call in. Staff can record the call outcome and create appointments directly from the call log. Two-way sync between Kashfy appointments and Google Calendar for doctors who want their bookings reflected in their personal calendar. ## Planned These are confirmed priorities but not yet in development: Detailed analytics for clinic owners: booking trends, peak hours, most requested doctors, cancellation rates, and revenue over time. Generate a QR code that patients can scan to open a booking conversation — useful for physical flyers, waiting room posters, and business cards. Allow the AI to suggest follow-up appointments at the end of a consultation, based on instructions from the doctor (e.g., "return in 2 weeks"). Allow patients to send images via the widget (e.g., skin photos for dermatology clinics) that staff can view in the conversation history. ## Considering These are ideas under evaluation — not yet committed: * **Insurance verification** — The AI asks patients for their insurance information and validates coverage before confirming a booking * **Waitlist management** — Patients can join a waitlist for fully booked slots and get notified automatically if a cancellation opens up * **Multi-language AI** — Support for patients who write in languages other than Arabic and English (French, for diaspora communities) * **Patient-facing portal** — A web page where patients can view their upcoming appointments and booking history without contacting the clinic *** See the latest released features. Request a feature or report an issue. # What's New Source: https://docs.kashfy.site/updates/whats-new Latest updates, improvements, and new features in Kashfy Stay up to date with the latest improvements to Kashfy. Major updates are listed here with a summary of what changed and why. *** ## August 2026 ### Patient Records Portal Patients can now request a secure link to their appointment history directly through WhatsApp. The AI responds with a personal portal link at `patients.kashfy.site/ar/[patient-id]` — protected by a 4-digit PIN the patient sets on the spot. * Patient asks for records ("ممكن ملفي" / "my records") and receives a secure link * Patient sets a 4-digit PIN via WhatsApp on first request * Link can be shared with any doctor; the doctor enters the PIN to access the records * Portal shows all appointments with dates, doctors, diagnoses, prescriptions, and symptoms * `?pin=XXXX` URL parameter auto-verifies on load for one-tap sharing * Forgot PIN - patient sends "نسيت الكود" and sets a new 4 digits immediately * Brute-force protection: 5 wrong attempts trigger a 30-minute lockout * Sessions last 24 hours in the same browser after a correct PIN ### Doctor Portal - multi-clinic support Doctors who consult at more than one clinic registered on Kashfy now see a clinic switcher in their sidebar. Switching clinics updates all sections - appointments, patients, and conversations - to reflect the selected clinic instantly. The previous behavior showed data from whichever clinic happened to load first, which was incorrect for multi-clinic doctors. *** ## August 2025 ### AI agent improvements * Improved understanding of Egyptian dialect edge cases in appointment booking conversations * Better handling of multi-doctor requests ("بكرة في دكتورة نساء؟") * Faster response time for availability queries ### Dashboard * New date range filter on the Appointments page * Appointment status updates now reflected in real time without page refresh * Improved mobile layout for the doctor schedule view *** ## July 2025 ### Knowledge base * Knowledge base documents now indexed faster after upload (under 30 seconds for most PDFs) * Improved accuracy when the AI references uploaded PDFs in conversations ### Billing * Overage charges are now itemized separately on invoices * New payment retry flow for failed card transactions ### Widget * Widget chat panel now adapts correctly to RTL (Arabic) and LTR (English) in a single session * Reduced widget JavaScript bundle size by 40% for faster page load on clinic websites *** ## June 2025 ### WhatsApp * Improved session stability — connections now persist longer without requiring re-linking * New "WhatsApp disconnected" notification to alert your team when the session drops ### AI agent * Added support for multi-branch availability queries ("فين الفرع اللي فيه دكتور كذا؟") * The AI can now handle cancellation requests more reliably even when patients give vague references to their booking ### Team * Branch assignment for team members now works correctly for employees with multiple branch access *** See what's coming next. Report issues or suggest improvements. # Widget Installation Source: https://docs.kashfy.site/widget/installation Add the Kashfy booking widget to your clinic website in under 5 minutes Installing the Kashfy widget on your website requires adding a single ` ``` Replace `YOUR_CLINIC_ID` with the ID from Step 1. ## Platform-specific instructions 1. Go to **Appearance → Theme File Editor** (or use a plugin like **Insert Headers and Footers**) 2. Find your theme's `footer.php` file 3. Paste the script tag before `` 4. Save the file Alternatively, use the **Insert Headers and Footers** plugin: 1. Install and activate the plugin 2. Go to **Settings → Insert Headers and Footers** 3. Paste the script in the "Scripts in Footer" section 1. Go to your Wix dashboard 2. Open **Settings → Custom Code** 3. Click **+ Add Custom Code** 4. Paste the script tag and set placement to **Body - end** 5. Apply to **All Pages** 6. Save and publish 1. Go to **Online Store → Themes** 2. Click **Actions → Edit Code** on your active theme 3. Open `layout/theme.liquid` 4. Paste the script tag before `` 5. Save Open your HTML file and paste the script tag just before the closing `` tag: ```html theme={null} ``` ## Step 3: Verify the widget appears After saving your changes, visit your website. You should see a floating chat icon in the bottom-right corner of the page. Click it to open the chat and test a booking conversation. Clear your browser cache or open an incognito window if the widget doesn't appear immediately after installation. ## Customization options The widget's appearance can be configured with optional data attributes on the script tag: ```html theme={null} ``` Additional customization (colors, position, welcome message) is managed from **Dashboard → Settings → Widget** in your Kashfy dashboard. ## Troubleshooting * Make sure the script tag is placed before ``, not `` * Check that `YOUR_CLINIC_ID` is replaced with your actual ID * Clear your browser cache and try in an incognito window * Check your browser console for JavaScript errors * Verify your WhatsApp or widget channel is active in the dashboard * Check that your clinic has at least one doctor with working hours configured * Look at **Dashboard → Conversations** to see if messages are arriving If you already have another chat widget on your site, they may overlap. Remove the other widget or use CSS positioning to separate them. Contact support if you need help adjusting widget position. Learn what the widget can do for patients. Get help with installation issues. # Website Widget Source: https://docs.kashfy.site/widget/overview Add an AI-powered booking chat to your clinic website with a single script tag The Kashfy widget is a floating chat button that sits in the corner of your clinic website. When patients click it, a booking conversation opens right on the page — powered by the same AI agent that handles your WhatsApp. ## What the widget looks like The widget appears as a small floating button (bottom-right by default) with the Kashfy chat icon. When clicked, it opens a chat panel: * **Desktop:** Opens as a 360×560px floating panel * **Mobile:** Opens full screen for easy thumb navigation The chat panel is fully responsive and supports both Arabic (RTL) and English (LTR) layouts, switching automatically based on the patient's language. ## What patients can do in the widget Everything the WhatsApp AI agent can do: * Book an appointment with any available doctor * Check available time slots * Ask about fees and services * Get the clinic's address * Cancel an existing booking (if they have a booking reference) ## How patients are identified Patients using the widget are tracked by a **session key** (a browser cookie). This means: * The AI remembers the conversation context within the same browser session * If a patient returns on the same device and browser, the AI may remember previous interactions * No login or account is required for patients ## Widget vs. WhatsApp | Feature | WhatsApp | Widget | | ---------------------- | ---------------- | --------------------- | | Patient identification | Phone number | Browser session | | Conversation history | Full, persistent | Per session | | Availability | 24/7 | 24/7 | | Reminder messages | Yes (day before) | No | | Setup required | QR code scan | Script tag on website | Offer both channels. Many patients prefer WhatsApp — it's on their phone. But the widget is great for capturing patients browsing your website who haven't yet saved your number. Add the widget to your website in minutes. Connect WhatsApp for the primary booking channel.