One field-force platform, powering pharma sales across 53+ countries

Nanostuffs built Hetero Drugs a unified Medical Representative and pharmacy field-force platform, replacing a patchwork of Excel sheets, WhatsApp reporting, and local third-party MR apps across different countries. It covers DCR, tour planning, doctor and pharmacy master data, and a centralized HQ reporting dashboard, and it runs as a React-based Progressive Web App built to keep interactive e-detailing working offline, something default browser caching couldn't be trusted to do on its own.

When your product demo is an interactive e-detailing package, a dead zone doesn't just slow a rep down. It kills the pitch mid-sentence in front of a doctor. Hetero needed one app that behaved identically in a well-connected metro clinic and a rural pharmacy with no signal at all.

Hetero Drugs logo
Pharmaceuticals · React PWA Field Platform · 53+ Countries
Tap to play, with sound

At a glance

53+
countries live on one platform
25+
local languages, English as secondary
1,000+
active MRs, 350+ managers
1M+
DCR calls logged & synced to HQ

Client

Hetero Drugs, one of the world's largest generic-medicine & API producers

Challenge

Countries logging DCR on Excel, WhatsApp or local 3rd-party apps, with no unified visibility for HQ

Solution

One field-force platform with local-language + English access and a centralized HQ dashboard, unified across 53+ countries

Result

One unified platform live across 53+ countries, with 1M+ DCR calls synced and full visibility for HQ

The Challenge

One field force, 53+ countries, and no two running the same way

Hetero Drugs is one of the world's largest producers of generic medicines and active pharmaceutical ingredients. Its commercial engine is a field force of 1,000+ medical representatives, supervised by 350+ regional managers, calling on doctors, pharmacies and key accounts across 53+ countries, each market with its own language, regulatory context, and way of working.

The way that field force reported its work, though, differed country by country. Some markets logged daily call reports (DCR) in Excel. Others coordinated over WhatsApp. Several ran local third-party MR applications built in the local language: tools that worked well enough locally but created a bigger problem upstream, because India HQ and senior management had no consistent way to pull insight out of any of it. Several of those local tools also lacked features needed to properly manage MR activity, and some even priced the MR-facing app and the admin/reporting tools separately, adding cost and complexity on top of the fragmentation.

The mismatch went deeper than tooling. Country teams didn't even describe the same things the same way. Customer classification is one example: some markets ranked accounts A, B and C, others used Gold, Platinum and Silver. None of it was wrong locally, but none of it rolled up into anything HQ could compare across markets.

The objective was to unify all of it into one portal: visibility across every country, local-language access for every field team with English as a shared secondary language, and a common data model underneath the country-specific terminology. Within that unified platform, the field team still needed the one thing none of the legacy tools handled well, which was reliable, offline-capable e-detailing.

Engagement Snapshot

Industry
Pharma manufacturing & distribution
Geography
53+ countries
Languages
25+ local, English as secondary
Field users
1,000+ MRs · 350+ managers
Accounts managed
115K+ doctors · 50K+ pharmacies · 5,500+ key accounts
Field client
React-based PWA
HQ reporting
Centralized dashboard, country filters
Why React PWA Field Platform

Why a React PWA, not a native app, for 53+ countries

Rolling out a field app to 1,000+ reps across 53+ countries rules out a lot of otherwise-reasonable choices. A native app means two codebases (iOS and Android), app-store approval cycles in every market before an update reaches reps, and device-management overhead in countries where app-store access is restricted or reps carry older hardware. None of that scales well when you're also trying to move fast on rollout.

A React-based PWA sidesteps most of that: one codebase, installable straight to a rep's home screen without an app-store gate, and updates that reach every country the moment they ship rather than waiting on staggered store approvals. The trade-off is the one thing browsers don't do well by default, which is reliably running rich content offline, so that had to be engineered deliberately rather than assumed.

What React PWA Field Platform handles natively

  • A single React PWA codebase for every market: one build pipeline for 53+ country rollouts instead of separate builds per region or platform
  • Installable to a rep's home screen with no app-store approval step, so updates and market-specific fixes ship immediately
  • A durable, rep-controlled offline store built on IndexedDB: PDFs, videos, and interactive HTML content are saved as complete local copies with one tap, so they don't depend on the browser's default cache surviving a low-storage eviction
  • In-app analytics on detailing sessions: page views, time-on-content, and engagement per asset, captured locally while offline and synced automatically the moment connectivity returns

Where custom engineering was needed

The gap a PWA doesn't close on its own is reliable offline delivery of interactive content, since browsers weren't built to guarantee that by default. That's where the custom offline storage architecture was engineered, and it's the subject of the Hard Problem section below.

The Platform

What we built

01 · Layer

Doctor & pharmacy master data

Unified master data for 115K+ doctors, 50K+ pharmacies and 5,500+ key accounts across 53+ countries, normalizing country-specific classifications (e.g. A/B/C in one market, Gold/Platinum in another) into one comparable account model.

Field CRM

02 · Layer

DCR & tour planning

Daily Call Reports, visit logging and tour planning, structured, auditable, and reportable to regional and global leadership.

Field Force Automation

03 · Layer

HQ analytics dashboard

A live overview of customers, users and DCR calls for HQ, filterable by country, year and month: visibility that used to depend on manual roll-ups from every country.

Analytics Dashboard
The Hard Problem

Making a browser behave like it has a filesystem

The platform's toughest requirement wasn't CRM. It was making rich, interactive e-detailing content work with zero connectivity. E-detailing content comes in three formats: PDF, video and interactive HTML. Reps needed to run any of them in full, in front of a doctor, whether or not there was any signal in the room.

Left to default browser behaviour, this doesn't hold up. Browsers evict cached files unpredictably when they need to reclaim storage. Content that worked in the office could silently disappear the moment a rep walked into a low-connectivity area, with no warning until they were already standing in front of a physician. For a sales tool a rep is about to open mid-pitch, “usually loads” isn't good enough.

The fix wasn't abandoning the browser. It was taking caching out of the browser's hands: building a deliberate storage and sync architecture on top of it instead of trusting its defaults.

Nanostuffs engineered a custom offline store for Hetero's field PWA, built directly on IndexedDB rather than the browser's default cache. Reps save the PDF, video, or HTML content they need with a single tap before heading out, and the app persists the full asset locally, so it survives exactly the kind of storage-pressure eviction that would otherwise silently clear it. Once connectivity returns, the app detects the change in network state and automatically pushes queued DCR entries and content-engagement data back to HQ, which means Hetero can now see how doctors actually engaged with detailing content, something the old tools never captured.

Before

  • DCR logged on Excel, WhatsApp, or local third-party MR apps, depending on the country, with no consistent way for HQ to get insight across markets
  • Inconsistent terminology between countries (e.g. A/B/C account tiers in one market, Gold/Platinum in another), so nothing rolled up cleanly
  • Some legacy tools priced the MR app and admin/reporting tools separately, adding cost on top of fragmentation
  • No engagement data on how doctors interacted with detailing content

After

  • One field-force platform for CRM, DCR, tour planning & e-detailing, live across 53+ countries, in local language with English as secondary
  • One common account model underneath country-specific terminology, so HQ gets comparable data regardless of what a market calls its account tiers
  • Custom PWA offline store (IndexedDB): e-detailing content saved as a durable local copy with one tap, independent of the browser's default cache
  • The app detects when connectivity returns and pushes queued DCR and engagement data to HQ automatically
The Approach

How we delivered it

A scoped, phased delivery, proving the platform in Indonesia before scaling to 53+ countries, so risk stayed contained at every step.

01

Discovery & migration planning

Mapped field workflows and data out of Excel, WhatsApp and local country apps; reconciled country-specific terminology into one model; defined the offline e-detailing and PWA caching architecture.

02

Core build

Built the field-force core (DCR, tour planning, master data) along with the custom PWA offline store (IndexedDB) and automatic sync-on-reconnect for offline-first e-detailing.

03

Indonesia pilot

Rolled out the platform in Indonesia first, validating DCR, tour planning, master data and offline e-detailing in a live market before scaling further.

04

Country-by-country rollout

Once the Indonesia pilot proved out, rolled out to each remaining country as planned, with local-language support built in from the start rather than retrofitted.

The Outcomes

What changed for Hetero Drugs

Real numbers only — pending metrics await client-approved data.

1M+

DCR calls logged & synced to HQ

115K+

doctor accounts unified into one record

50K+

pharmacy accounts unified into one record

Near real-time

visibility into MRs' day-to-day activity via the admin portal

Replaced Excel, WhatsApp and country-specific local apps with one platform Hetero HQ can actually see across: 53+ countries, in local language with English as secondary, near real-time visibility into MR activity through the admin portal, and over a million field interactions logged in one comparable data model.

Stack
React (PWA)Node.jsPostgreSQLIndexedDB (Offline Store)Automatic Sync-on-ReconnectAnalytics Dashboard
Questions & Answers

React PWA Field Platform — common questions

Running field ops across multiple countries on fragmented systems?

We build field-force platforms that hold up in the real world, across languages, regulations, and the offline last mile. Let's map where yours should start.