A few years ago, creating an efficient on-the-road medical sales team with the right information wasn’t easy. Armed with a map book, a yellow pages and a sales catalogue you could get the job done, but it wasn’t always pretty. Until of course, the mobile app was created.

What it does

ACME MediSupply Co - a mobile app for medical sales professionals - offers geolocation of current and future leads along with mobile CRM synchronization. Sales reps can locate leads on a map, then filter them based on different attributes. They can also employ route planning and as they visit current customers and set appointments for new local leads.

How I built it

Languages: Java, XML

API’s: BetterDoctor , Google Play Services

Hosts: Linx, Amazon Web Services

UI Kits and Framework: Android SDK

Designed for tablet Android devices on version 6 (Marshmallow) and higher

Features & Benefits

1) Sales reps visualize their sales territory allowing them to see both current customers and prospects within their territory.

2) Visualize contacts, connect and get one-touch driving directions. ACME MediSupply’s maps can be filtered by doctor type, tags, distance, city etc.

3) Connect with customers and prospects on the go with easy access to doctor’s details and phone number.

4) Optimize navigation to and from customer locations.

5) Accurate information - reps don’t have to spend time worrying about whether they’re using the right information - it is always current and available on the app.

6) Adding Customers - Add customers at a click of button, reducing paperwork and eliminating transcription errors between sales reps, managers and head office staff.

7) Realtime sales management alerts managers (via email) whenever a new customer is added.

Note: The sample application uses information provided by the Betterdoctor API, providing data for the state of California only.

How it works

1) Android (tablet only) app provided to each sales person at ACME MediSupply Co.

2) Via API calls to Xero and BetterDoctor APIs, the app provides real-time data of who is / who is not a customer within a defined radius of the rep’s current location. Additional customer segmentation is provided via breaking up contacts into medical speciality.

3) The results are displayed on a map with corresponding text listings, showing location (on map), contact details and customer status (existing or prospect).

4) Sales persons can access the doctor’s location, view if current customer or prospect, and contact them via phone call (button) to book or confirm an appointment.

5) New prospects - as to when they are signed up by the rep - can have their details added to the by a touch of a button (Add Contact).

6) By adding a new contact (i.e. a new customer has been been acquired),

a) An automatic email is triggered to the sales manager. The manager can then use this information in reporting, commission reports, etc b) the doctors information will be pushed into ACME’s Xero CRM automatically populating the correct contact detail information such as name, address, etc.


Not included in this version of the app but can easily added by integrating several other API resources.

1) Order Taking and Invoicing - combining access to your catalogue make it easy for sales reps to collate, create and send orders.

2) Content - Whether you need sleek sales presentations or proposals, this can be added in seconds via online sharing tools such as Box, Google Drive etc

3) Expense and Travel Management - Tweaking the current maps API for reporting, sales managers and staff can easily track travel expenses such as mileage.


This app was created to show the versatility of Linx and Xero working together in a real world example. Although applied to the medical sales industry, the app itself can be re-created for nearly any industry that provides access to a supplier API.

To do so, one would need to change the unique identifier (in this case the NPI - National provider identifier number - the unique code for practicing doctors in California). We chose to use this number as the Account Number in Xero, but ostensibly, this could be a company registration number / organizational body practice number etc for any industry.

Should the Xero API provide the ability to create custom API fields, the information pushed to the app can be further segmented to include both Account Number and Unique Practise ID / Company Registration Number etc.

Using the app

1) Open app by clicking on icon

2) “Who do you want to visit today” page opens opening screen

Define your search options and click the Search button:

Selecting medical specialty from the drop down Linx: Process GetSpecialties

Enter a specific address to start your search from (Currently defaults to center of L.A)

Enter radius in miles (defaults to 100)

On Submit - Customer Search Results Page opens Linx Process: GetNearbyAddresses_1

3) Customer Search Results Page Functionality search results

Existing customers are identified by comparing the results from the BetterDoctor API and the Xero contacts

Contact existing customer to place order or book appointment

Contact potential customer to place order or book appointment

Add potential customer as Xero customer if places order Linx Process: AddDoctorToXERO

Plot route to visit customer via Google maps

Go back to “Who do you want to visit today” page to re-define search

Visual Overview

1) Starting the app, selecting a doctor and route see visual

2) Adding a new customer see visual

Share this project: