Client Portal
Give clients self-service access to meal plans, food diary, water tracking, weight logging, and progress photos.
The Client Portal is a mobile-first web app where your clients can view their meal plans, log meals, track water intake, log weight, upload progress photos, and more — all without WhatsApp back-and-forth.
The portal lives at mealcraft.workfile.io/p/your-org-slug. Each client logs in with their own Workfile ID account. You control which features each client can access.
Portal branding
The portal automatically uses your practice's branding based on the branding mode configured in Settings → Practice Profile:
| Branding mode | Portal header | Practitioner card |
|---|---|---|
| Auto (solo) | Your name + credentials | Not shown (you ARE the practice) |
| Auto (team) | Clinic name | Assigned practitioner's photo, name, credentials |
| Clinic Only | Clinic name + bio | Not shown |
| Clinic + Practitioner | Clinic name | Assigned practitioner card with visible fields |
| Practitioner Only | Practitioner name + credentials | Not shown (practitioner IS the identity) |
The practitioner card shows the dietitian assigned to the client (assignedTo field). What's visible on the card is controlled by the practitioner visibility toggles in Settings.
Clients always see your clinic logo and brand colors regardless of branding mode. The mode only controls the name and practitioner attribution.
Setting up portal access
Enable the portal for a client
Open a client profile → Portal tab → toggle Client Portal on.
Send the invite
Click Send Invite — the client receives an email with a link to create their Workfile ID account and access the portal.
Auto-linking
If the client already has a Workfile ID account with the same email or phone, their account links automatically on first login. No manual setup needed.
You don't need to wait for the client to accept the invite. Once portal is enabled, they can access it anytime by logging in at the portal URL. The invite email is just a convenience.
What clients see
The portal has a bottom navigation with four main sections plus a quick-action button:
| Section | What it does |
|---|---|
| Home | Daily summary with calorie ring, macro progress, water tracker, next meal, and appointments |
| Plan | Daily and weekly meal plan view with food items, portions, and nutrition |
| Diary | Log meals as done/modified/skipped, upload meal photos, log unplanned meals |
| Stats | Weight logging with trend chart, body measurements, progress photos, compliance stats |
The center + button opens a quick-action drawer with six shortcuts:
| Action | What it does |
|---|---|
| Log a meal | Jump to the food diary |
| Mark meal done | Jump to the meal plan |
| Log water | Jump to the home page water tracker |
| Log weight | Jump to the stats page |
| Recipes | Browse recipes from the active meal plan |
| Shopping list | View the auto-generated grocery list |
Home screen layout
The home screen is designed around a "dashboard-first" pattern — the most important information is visible without scrolling:
- Daily Summary Card — A calorie ring showing consumed vs target calories, with macro progress bars (protein, carbs, fat) and quick stats (meals completed, water intake)
- Water Tracker — Quick-add buttons for logging water intake throughout the day
- Up Next — The next unlogged meal shown as a full card with food items, portions, and action buttons (Done, Log, Skip)
- Later Today — Remaining meals as a compact list, tappable to expand
- Completed — Collapsed section showing how many meals are done, expandable to review
- Next Appointment — Upcoming follow-up date
The calorie target resolves automatically: it uses the meal plan's target first, then falls back to the client profile's target calories, and finally uses the day's planned nutrition total as an implicit target.
Recipe previews in meal cards
When a meal contains a recipe (like "Paneer Tikka" or "Oats Smoothie"), the recipe name appears as a tappable link in the meal card. Tapping it opens a bottom drawer with:
- Recipe image, description, and meta info (prep time, servings, difficulty)
- Per-serving nutrition breakdown (calories, protein, carbs, fat, fiber)
- Ingredient list with quantities
- Quick links to the full recipe page and cooking mode
Editing diary entries
After logging a meal as "Done" or "Skipped", clients can tap Change to re-log it with a different status, add a photo, or update notes. The diary entry is updated in place — no duplicates are created.
Feature toggles
You control exactly which features each client can access. Open a client → Portal tab → expand Portal Features.
| Feature | Default | What it controls |
|---|---|---|
| Meal Plan | On | View assigned meal plans |
| Food Diary | On | Log meals and compliance |
| Water Tracking | On | Log daily water intake |
| Weight Logging | On | Track weight and measurements |
| Shopping List | On | Auto-generated grocery list |
| Recipes | On | View recipes with cooking mode |
| Progress Photos | Off | Upload before/after photos |
| Nutrient Details | Off | Show macro breakdown per meal |
| Messaging | On | Chat with practitioner (coming soon) |
| Goals & Habits | On | Track goals and daily habits (coming soon) |
| Appointments | On | View and request follow-ups (coming soon) |
| Fasting Timer | Off | Intermittent fasting tracker (coming soon) |
| Payments | On | View invoices and pay online (coming soon) |
When a feature is disabled, the client sees a locked screen with a message to contact their dietitian. They can't access the feature at all.
Engagement dashboard
The Portal tab in the client hub shows a real-time engagement dashboard so you can monitor how actively each client is using the portal.
Metrics shown
| Metric | What it tells you |
|---|---|
| Streak | Consecutive days with at least one diary entry |
| Compliance | Percentage of planned meals marked as done or modified — toggleable between 7-day and 30-day periods |
| Days Logged | How many days in the selected period had any diary activity |
| Portal Activity | Total portal events (meal logs, weight entries, photo uploads) in the last 7 days |
| Water chart | Daily water intake bar chart for the last 7 days with goal-met indicator |
| 30-day summary | Monthly compliance percentage and days logged |
Compliance trend
A weekly bar chart showing compliance percentage over the last 8 weeks. Color-coded:
| Color | Meaning |
|---|---|
| Green | 80%+ compliance — client is following the plan well |
| Amber | 50–79% — needs attention |
| Red | Below 50% — client may need a check-in |
| Gray | No diary data for that week |
If a client's compliance drops below 50% for two consecutive weeks, consider scheduling a check-in call. The compliance trend makes this pattern easy to spot.
Weight trend
The Portal tab shows all weight entries — both practitioner-logged and client self-logged — in a single timeline. Each entry shows:
- Weight in kg with BMI
- A Self-logged or Practitioner badge showing who recorded it
- Delta from the previous entry (green for loss, orange for gain)
- Date of the entry
Progress photos
Client-uploaded progress photos appear in the Portal tab with date and angle labels (front, left side, right side, back). Photos require client consent before upload.
Daily compliance browser
Browse any day's diary entries using the date navigator at the bottom of the Portal tab. Each entry shows:
- Meal type (breakfast, lunch, dinner, etc.)
- Status (done, modified, skipped, extra)
- Mood emoji and hunger level (if the client logged them)
- Time the entry was logged
- Meal photo (if uploaded)
- Macro breakdown (if available)
Activity timeline
Every action the client takes on the portal — logging a meal, recording weight, uploading photos, reaching their water goal — automatically appears in the client's Timeline tab with a "via portal" badge. This gives you a complete picture of client engagement without asking them.
Portal activity events use the same timeline as practitioner actions (consultations, notes, billing). Filter by category to see only portal events, or view everything together for the full picture.
Plans tab compliance
The Plans tab in the client hub shows per-plan compliance data:
- Compliance percentage
- Meals followed vs total
- Skipped meals count
- Days the client was active on the plan
- Last diary activity date
This helps you see which plans are being followed and which ones the client may have abandoned.