International Clinical Laboratories — Concept Paper #01Auto-saved locally
The ICL Super-App for Microsoft Teams
One destination inside Teams. Many ICL workflows. Editable as you grow.
Prepared for · Tamrat, CEOFormat · Personal app, multi-tabTenant · ICL EthiopiaStatus · Draft v1
§ 01 — Vision
One app to open. Everything ICL inside.
Instead of asking ICL staff to install ten different Teams apps — or worse, juggle ten browser bookmarks — we build a single "ICL" personal app that lives in the Teams left rail. Click it once, and a vertical tab list reveals every internal tool: Admin Facilities, Admin Logistics, HR Analytics, Lab Operations, Sales & BD, Pricing, Reports, Help Desk.
Each tab is a focused mini-app: some are read-only dashboards, some are forms for submitting requests, some are workflows for approvals. They share ICL branding, ICL single sign-on, and ICL data. Staff in Addis and abroad open Teams in the morning, click ICL, and have the whole company in one pane.
This document is editable. Add modules, change priorities, mark things built, export to share — all changes save to your browser automatically.
§ 02 — What it looks like
The ICL hub, opened.
This is a low-fidelity sketch of the experience. The red square on the Teams left rail is the ICL app. Inside it, the column of tabs is your ICL modules. The right pane is whichever module the user has selected — here, the Executive Dashboard.
A
⌂
💬
👥
📅
ICL
+
ICL · Internal
📊 Executive Dashboard
🏢 Admin Facilities
📦 Admin Logistics
🧑🔬 Lab Operations
👥 HR Analytics
💼 Sales & BD
💰 Pricing Engine
📄 Reports
🎫 Help Desk
🤖 Ask ICL (AI)
Executive Dashboard
Last refreshed: this morning · Period: November 2026
Revenue MTD
ETB 184M
+12% vs LY
Patients
28,410
+8% vs LY
Gross Margin
58.4%
+1.2 pp
Active Clients
1,247
+43 this mo.
Daily Revenue Trend
§ 03 — Modules
What lives inside the hub.
Each card below is one tab inside the ICL super-app. Click Edit to change a module, ✓ to mark it built, or + Add Module to add new ones. Use the filters to focus on a phase.
§ 04 — Phased rollout
Don't build everything. Build the painful things first.
A realistic ICL sequence over roughly twelve months. Each phase produces a working app users can actually open; nothing waits for "the whole thing" to be done.
Phase 0 · MVP
The shell + 2 dashboards
Get the ICL super-app deployed to Teams with a working tab structure. Wire in the Executive Dashboard and one read-only operational view. Proves the deployment pipeline works.
Weeks 1–6
Phase 2 · Forms
Self-service requests
Add the request-style modules: Admin Facilities tickets, Admin Logistics requests, IT help desk. These remove email back-and-forth and create an audit trail.
Weeks 7–14
Phase 3 · Workflows
Approvals + cross-team
Pricing approvals, HR actions, procurement sign-offs. These are workflows with multiple steps and multiple actors. Higher value, higher complexity.
Weeks 15–28
Backlog
AI & advanced
The "Ask ICL" assistant powered by Claude, predictive analytics, client-facing extensions. Built only after the core hub is loved and used.
Weeks 29+
§ 05 — How to build it
Three technical paths. Use the right one per module.
Different modules deserve different tools. Don't pick one approach for everything.
A · Web app + wrap
Fastest · Best for dashboards
Existing React dashboards become Teams tabs in days
One developer can ship modules weekly
Single sign-on via Microsoft Entra
Limited to what a web page can do
B · Power Platform
Citizen dev · Best for forms
Business users (not just devs) can build modules
Native integration with SharePoint, Excel, Outlook
Approval workflows out of the box
Per-user Premium licensing if it scales
C · Full custom
Powerful · Best for complex workflows
Total control over UX and data model
Best for Pricing Engine, Lab Ops, AI features
Can call Claude API on the backend
Slower, more expensive, needs dev team
§ 06 — How concrete this is
The manifest is just a small JSON file.
To prove this isn't abstract: the Teams manifest that defines the ICL super-app and its tabs looks like this. Each staticTabs entry is one ICL module. Adding a module = adding ~8 lines to this file and a new hosted URL.