Skip to main content
The professional dashboard is the central hub for mental health professionals using Zenda. It provides quick access to upcoming appointments, calendar management, patient information, and practice analytics.

Accessing the Dashboard

After logging in as a professional, you’ll be directed to /admin/dashboard which displays your personalized dashboard with real-time information about your practice.

Dashboard Overview

The dashboard is divided into three main sections:

Upcoming Appointments

View your next scheduled sessions with patient details

Practice Stats

Track appointments today, confirmed sessions, and total bookings

Quick Access

Navigate quickly to key features like calendar, settings, and patients

Main Dashboard Sections

Upcoming Appointments (Próximos Turnos)

This section displays your next scheduled appointments. Each appointment card shows:
  • Date and time - When the session is scheduled
  • Patient name - Client information
  • Session modality - Virtual or in-person (Presencial)
  • Quick navigation - Click any appointment to view full details
The dashboard shows the next 2 upcoming appointments. If you have no appointments scheduled, you’ll see: “Aún no hay turnos asignados” (No appointments assigned yet).
The appointments are fetched from the ReservationsStore which calls getAllReservations() to retrieve all sessions for the professional. See implementation in /workspace/source/store/ReservationsStore.ts:69-91.

Practice Statistics (Estado de la Agenda)

Track key metrics about your practice:
  • Appointments Today (Turnos hoy) - Sessions scheduled for today
  • Confirmed Appointments (Turnos confirmados) - Sessions with confirmed status
  • Total Appointments (Total de turnos) - All scheduled sessions
These statistics are calculated in real-time from your reservation data using the getInfoTurns() utility function referenced in /workspace/source/app/core/admin/components/home/DashboardAdmin.tsx:46.

Payment Alerts

The dashboard includes an alerts section for pending payments. When there are no pending payments, you’ll see: “No hay pagos pendientes” (No pending payments). Navigate quickly to essential features:
  • Calendar management
  • Professional settings
  • Patient list
  • Reservation history
  • And more
These links are configured in the QUICK_LINKS constant referenced at /workspace/source/app/core/admin/components/home/DashboardAdmin.tsx:12.

Dashboard Implementation

The dashboard component is built using React and integrates with several state management stores:
// Key stores used in the dashboard
const currentSession = useAuthStore(state => state.session);
const currentGetAllReservations = useReservationsStore(state => state.getAllReservations);
const currentGetProfessionalSettings = useProfessionalSettingsStore(state => state.getProfessionalSettings);
The dashboard automatically loads your professional settings on mount to ensure all features are properly configured. See /workspace/source/app/core/admin/components/home/DashboardAdmin.tsx:32-34.
From the dashboard, you can access:
  • Full Calendar - Click “Ver agenda completa” to view your complete schedule
  • Appointment Details - Click any appointment card to see full reservation details
  • Reservation History - Click “Ver más” to view all past and future appointments

Data Fetching

The dashboard fetches data on component mount:
useEffect(() => {
  if (!currentSession) return;
  
  const fetchReservations = async () => {
    const professionalId = currentSession.user.id;
    const localReservations = await currentGetAllReservations({ professionalId });
    
    // Filter out manual blocks (where client_id === professional_id)
    const filteredReservations = localReservations.filter(
      (res: Reservation) => res.client_id !== professionalId
    );
    setAllReservations(filteredReservations);
  };
  
  fetchReservations();
}, [currentSession]);
Reference: /workspace/source/app/core/admin/components/home/DashboardAdmin.tsx:36-59
Manual calendar blocks (where client_id equals professional_id) are filtered out from the dashboard display to show only actual patient appointments.

Next Steps

Manage Schedule

Configure your working hours and availability

View Reservations

Manage all your appointments

Payment Settings

Configure payment and deposit requirements

Patient Management

View and manage patient information

Build docs developers (and LLMs) love