GalenDesk Pro

Intelligent pharmacy management.


App Manual

Every screen, step by step. GalenDesk Pro runs the shelf, the till, the dispensary and the books for a pharmacy — one counter or several branches — and this covers every function it has, from setting the premises up on a device to reading a year of history, in the order you would actually meet them.

Anyone signed in Owner only Changes records Cannot be undone
GALEN AFRICA Technologies Ltd.

GalenDesk Pro is built and published by Galen Africa Technologies Limited, its parent company. The shared mark above is the family it belongs to, alongside GalenDesk.

Start here

How GalenDesk Pro thinks

Six rules explain most of what the app does. Knowing them first makes every screen below read as obvious rather than surprising.

Day one Set up the premises Name, address, owner account, recovery answer.
Then Fill the shelf Add products, then receive a batch against each one.
Every day Work the counter Search, cart, tender, done. Stock moves when the sale is completed.
Every month Read the business Reports, Assistant, History. All of it from the same records.

The six rules

  1. Your records live on your devices. The pharmacy is a database file on the machine in front of you, not an account on somebody else's server. The app works with the internet off, the power flickering, and the network down — because in the markets it is built for, that is a Tuesday.
  2. A product is not stock. A product is the thing you sell — a name, a strength, a form. A batch is a consignment of it, with its own cost, its own price and its own expiry date. You add a product once and receive batches against it for years. Selling takes from the batch that expires first.
  3. Nothing is deleted, things are hidden. A customer who stops coming, a payment method you no longer take, a product you have stopped stocking — all are deactivated, not removed, because last year's sales through them are still on the books and a report that quietly changes is worse than one that shows an old name.
  4. Roles are data, not code. Eight roles ship with the app, but what each one may do is a table you can edit. A pharmacy that wants its senior technician approving purchase orders changes a row; nobody has to ship a new version.
  5. Every change is recorded, with its before and after. Not just "the price changed" but "1,200 to 900", who did it and when. That is what makes History evidence rather than a list.
  6. Money is exact. Amounts are held as whole units of the smallest coin, never as decimals that drift. Currencies without a minor unit — the CFA franc, for one — are handled as themselves rather than being divided by a hundred that does not exist.
The sidebar is shorter for some people, and that is deliberate. Screens you have no permission for are not shown at all — a cashier sees four links, not four headings over one link each. Nothing is hidden as a trick: the service refuses the work as well, so a hidden screen is a screen that would have said no.

Start here

Getting in

The first screen a device ever shows asks one question: does this pharmacy already exist somewhere else? Answering it wrongly is the one mistake that is genuinely annoying to undo, so it is asked first and asked plainly.

The first thing a new device shows: a short tour of what the app is for, and the two ways in — set up a new premises, or join one that already exists.
The first thing a new device shows: a short tour of what the app is for, and the two ways in — set up a new premises, or join one that already exists.

Set up a brand new premises

Owner only
  1. Open the app on the machine that will be the pharmacy's first device. Choose Set up a new premises.
  2. Enter the premises name and address. These print on every receipt and head every report, so spell them the way you want customers to see them.
  3. Create the owner account: full name, username, password. The username is how you sign in; it is not shown to customers.
  4. Choose a recovery question and answer it. This is not optional, and the reason is on the screen: there is no server behind your password. Nobody at Galen Africa can reset it, because there is nothing to reset it from.
  5. Finish. The pharmacy opens on the dashboard, empty and ready.
Answer the recovery question with something you will still know in two years. It is lower-cased before it is checked, so capitals do not matter — but a forgotten answer and a forgotten password together mean a pharmacy nobody can open.

Bring this device into a pharmacy that already exists

Do this instead of setting up again

If a phone or another till already has this pharmacy, join it. Setting up again makes a second, separate pharmacy that shares nothing with the first — the commonest and most expensive mistake there is with software like this.

  1. On the first screen, choose Join a pharmacy already running.
  2. Enter the server address and the pharmacy key — the same ones already entered on the pharmacy's other device, under Settings → Synchronisation.
  3. Press Join this pharmacy. The records and the staff accounts are copied across. On a pharmacy with a year of trading this takes a minute or two.
  4. Sign in with an account that already exists in that pharmacy. You are not creating a new one.
Simpler still: on a device with nothing on it, you can just type the username and password of an existing account into the sign-in screen. The app asks the server which pharmacy those details belong to, pulls it down and signs you in. The password is checked again on this device afterwards, against the record that travelled with it — so the local check is always the one that decides.
"No accounts came across." The pharmacy was reached, but nobody could sign in on this device. It means the other device has never synchronised. Open the app there, let it sync, then try again.

Sign in, day to day

Anyone
  1. Type your username and password and press Sign in.
  2. If you have set a PIN on this device, the screen offers Unlock instead — four digits, no username, because a PIN belongs to a device and a person rather than to a name somebody types. Asking for both would make it slower than the password it exists to skip.
  3. Forgotten it? I forgot my password asks your recovery question and lets you set a new one.
Five wrong attempts on one username hold that account for fifteen minutes, and a PIN is destroyed after five wrong tries — after that the password is the only way back in. Both are recorded and visible under Settings → Security.
Signing in. A device that holds no pharmacy yet can use the credentials of an account on another one, and the pharmacy is copied across before the password is checked again here.
Signing in. A device that holds no pharmacy yet can use the credentials of an account on another one, and the pharmacy is copied across before the password is checked again here.

Main menu

Dashboard

The first screen after signing in, and the one an owner should be able to read in thirty seconds.

The dashboard for a month’s trading. Takings, profit and what needs attention are the first things on the page; the quick actions above them are the four jobs a counter does most.
The dashboard for a month’s trading. Takings, profit and what needs attention are the first things on the page; the quick actions above them are the four jobs a counter does most.

Read the figures for a period

Anyone
  1. Pick the period at the top — today, this week, this month, or a range you choose. Every tile, chart and list below reads the same period.
  2. The tiles cover what came in and what is left of it: takings, profit, sales made, what is owed, and what needs attention on the shelf.
  3. Under them sit the trend and the recent sales, so a figure that looks wrong can be traced to the sale behind it without leaving the page.
  4. Anything coloured is a link. Press a tile to land on the screen that explains it.
"Today" means today where you are. Days are cut at your device's own midnight, not at a server's. A sale rung up at 11pm belongs to that day, and the hour on the receipt is the hour on the clock behind the counter.

Choose what the dashboard shows

Changes records

Settings → Dashboard decides which tiles appear and in what order. An accountant and a storekeeper want different first screens, and this is where that is arranged.

Main menu

Sell

The counter. The whole screen is built around one measurement: how many actions a sale takes. Scan or type, Enter, tender, Enter. Everything else — a customer, a discount, splitting the payment — is there and out of the way until it is wanted.

The counter, waiting. One field has the focus, and a barcode scanner types into it exactly as a keyboard would.
The counter, waiting. One field has the focus, and a barcode scanner types into it exactly as a keyboard would.

Ring up a sale

Anyone who may sell
  1. Scan a barcode, or type a product name into the box at the top. Only sellable stock is offered — anything out of stock, expired, or already spoken for by a prescription is not.
  2. Press a result to add one unit. Press again to add another, or set the quantity on the line in the cart.
  3. Add a discount on the whole sale if you are giving one.
  4. Enter a coupon code if the customer has one, and press Apply.
  5. Attach a customer if this is an account you invoice or a loyalty member. Most sales are walk-ins and need nobody.
  6. Choose how they are paying. Cash asks what you were handed and works out the change; less than the total is refused. Transfer, card and mobile money settle elsewhere and are recorded as taken. Customer credit posts to an account and needs a customer attached.
  7. Press Complete sale. Stock leaves the shelf, first-to-expire first, and a receipt number is issued.
  8. On Sale complete, the change due is shown large. Print or share the receipt, then press Next sale.
The screen never does the arithmetic. Pricing, stock, permissions and the minimum price are all decided once, in one place, and this screen only shows the answer. What you see and what the till charges cannot drift apart.

Park a sale and come back to it

Anyone who may sell
  1. Press Hold this sale and give it a name — whose it is, so you can find it again.
  2. The counter is free for the next customer.
  3. Open Held sales and press Continue to pick it back up.
A held sale has touched nothing. Stock is checked and taken when the sale is completed, so a cart parked for an hour cannot quietly hold packs off the shelf from somebody else.

Sell something that is not on file yet

Changes records

If the search finds nothing, the screen offers Add it to the catalogue — but only when the cart is empty. Adding a product mid-sale would lose the sale, so it says so and asks you to finish first.

Three lines in the cart and the cash counted. The change is worked out as you type the amount handed over, and less than the total is refused rather than accepted quietly.
Three lines in the cart and the cash counted. The change is worked out as you type the amount handed over, and less than the total is refused rather than accepted quietly.

Main menu

Sales

Every sale the pharmacy has ever made, newest first, and the place a receipt gets reprinted.

Every sale, newest first. The receipt number, what it came to and who served it — and any sale here can be reopened and reprinted.
Every sale, newest first. The receipt number, what it came to and who served it — and any sale here can be reopened and reprinted.

Find a sale and reprint its receipt

Anyone who may see sales
  1. Search by receipt number or customer name, or narrow by period.
  2. Open the sale. It shows the lines as they were sold, the prices actually charged, how it was paid and who served it.
  3. Press Print receipt for another copy. The receipt is sized for a 72 mm till roll and prints the same on the counter machine and a phone.
Prices on an old sale never change. The price charged is copied onto the line at the moment of sale, so re-pricing a product next month does not rewrite what a customer actually paid last month.

Void a sale and put the stock back

Cannot be undone
  1. Open the sale and press Void.
  2. Give a reason. It is required, and it is kept.
  3. The stock returns to the batches it came from, the takings drop, and the sale stays visible, marked as voided.
A voided sale is never erased. It stays in the list, in the reports and in History, with the reason and the person who voided it — which is exactly what makes the figures trustworthy.

Main menu

Prescriptions

A queue, oldest first, because the prescription that has waited longest is the one somebody is standing at the counter about. The status chip is the whole navigation.

The prescription queue, oldest first. The status chip is the whole navigation: what has just come in, what is being prepared, and what is ready to collect.
The prescription queue, oldest first. The status chip is the whole navigation: what has just come in, what is being prepared, and what is ready to collect.

Take in a prescription

Changes records
  1. Press New prescription.
  2. Choose the patient. A patient is a customer record — if they are new, add them here without leaving the screen.
  3. Record the prescriber and the prescription's own details.
  4. Add each item: the product, the quantity, and the directions as written.
  5. Save. It joins the queue and the stock it needs is marked as spoken for, so the counter cannot sell it out from under the patient.

Check, dispense and hand over

Clinical work
  1. Open the prescription from the queue.
  2. Work through the clinical check. Interactions, duplication and dose warnings are raised against what the patient is already on.
  3. Dispense the items. Stock moves at this point, from the batches reserved for it.
  4. Mark it ready. If the patient's device notifications are on, that is one of only two things the app will interrupt somebody about.
  5. Hand it over and mark it collected.
Clinical wording stays in English. The rest of the app translates; dispensing and clinical copy does not, because a mistranslated dose instruction is a different order of mistake from a mistranslated button. It will be translated when a pharmacist who speaks the language has reviewed it.

Stock

Inventory

What the pharmacy holds. The column that matters is Sellable, not "quantity" — expired packs and packs reserved for a prescription are left out, so the list answers "what can I sell" rather than "what is somewhere in the building".

What is on the shelf. The column that decides everything is Sellable — expired packs and packs reserved for a prescription are already left out of it.
What is on the shelf. The column that decides everything is Sellable — expired packs and packs reserved for a prescription are already left out of it.

Add a product

Changes records
  1. Press New product.
  2. Start typing the generic name. The built-in catalogue offers matches with the strength, form and class already filled in — take one and the work is done.
  3. Nothing matching? Fill it in yourself: generic name, brand, strength, form, class, and whether it is prescription-only.
  4. Save. The product now exists, but there is no stock yet. That is the next step, and it is a separate one on purpose.

Receive stock

Changes records
  1. Press Receive stock, on the product or from the top of the inventory.
  2. Enter the quantity, what it cost you, and what you will sell it for. Cost and price belong to the consignment, not to the product: the same item bought twice at different prices is two batches, and pretending otherwise is what makes profit figures untraceable.
  3. Enter the expiry date. It is required, and a date already in the past is refused — a batch received expired is always a typo or a supplier problem, and the counter is the right place to notice it.
  4. Record the supplier and the invoice number if you keep them.
  5. Save. The packs are on the shelf and sellable.

Import a stock list from a spreadsheet

Owner only
  1. Go to Settings → Import data.
  2. Choose your file. Columns are matched by name, and you are shown what was understood before anything is written.
  3. Read the summary. Rows that could not be understood are listed with the reason rather than skipped silently.
  4. Confirm.
Imported stock often arrives with no expiry date. Those packs cannot raise an expiry warning until one is recorded, so they are collected in their own list on Needs attention rather than being left to look fine.

Retire a product, or remove it

Cannot be undone
  1. Tick the products in the list and press Remove.
  2. The app sorts them into two piles and tells you which is which:
    • Products nothing refers to are deleted completely.
    • Products that appear in past sales, orders or prescriptions are kept but hidden, because deleting them would rewrite history.
  3. Hidden products come back with Show retired, and Restore puts one back on the shelf.
Receiving a consignment. Cost, price and expiry belong to the batch rather than to the product, which is what keeps profit traceable to the packs it came from.
Receiving a consignment. Cost, price and expiry belong to the batch rather than to the product, which is what keeps profit traceable to the packs it came from.

Stock

Needs attention

The state of the shelves right now — not a list of things you have not been told yet. Someone who dismissed a warning last week still needs to see the stock is still low.

Three lists, and each one is a job: what to reorder, what is going out of date, and stock that arrived with no date on it at all.
Three lists, and each one is a job: what to reorder, what is going out of date, and stock that arrived with no date on it at all.

Work the lists

Anyone who may see stock
  1. Running out — at or below its reorder level. This is the order you should be placing.
  2. Expiring and expired — inside the warning window you set, or past the date. Expired packs are already excluded from what the counter can sell.
  3. Stock with no expiry date — usually imported. Record a date and they join the list above; until then they cannot warn anybody.
The windows are yours. A pharmacy selling fast-moving generics wants a different reorder window from one dispensing chronic medication quarterly, and neither is wrong. Set both under Settings → Alert thresholds; every screen and badge in the app reads them.

Stock

Purchases

Orders placed with suppliers. Opens on what is still owed rather than a year of closed paperwork.

Orders with suppliers, opening on what is still owed rather than on a year of closed paperwork.
Orders with suppliers, opening on what is still owed rather than on a year of closed paperwork.

Raise an order

Changes records
  1. Press New order and choose the supplier.
  2. Add the products and quantities. What is running out is the obvious place to start — see Needs attention.
  3. Save it. The order is open, and the quantities show as on order in reports.

Receive against an order

Changes records
  1. Open the order when the delivery arrives.
  2. Record what actually came, line by line — a short delivery is recorded as short, not quietly closed.
  3. Each line received becomes a batch, with its cost, price and expiry date, exactly as if you had received it by hand.
  4. The order closes when everything on it has arrived.

Stock

Suppliers

Who you buy from, and what you have bought from them.

The supplier book. Open one to see what has been ordered from them and what actually arrived.
The supplier book. Open one to see what has been ordered from them and what actually arrived.

Keep the supplier book

Changes records
  1. Press New supplier and record the name, contact and terms.
  2. Open a supplier to see the orders placed with them and the batches that came in.
  3. A supplier you have stopped using is deactivated rather than deleted, because last year's orders still point at them.

People

Customers

Accounts, patients and anybody you want to see a history for. The same record is a customer at the till and a patient in the dispensary.

Customers and accounts. The same record is a customer at the till and a patient in the dispensary.
Customers and accounts. The same record is a customer at the till and a patient in the dispensary.

Add a customer

Changes records
  1. Press New customer.
  2. Enter the name and choose the category — a walk-in retail customer, a wholesale buyer, or a hospital or institution. Business categories require a phone number; a retail customer does not.
  3. Set a credit limit if you will invoice them.
  4. Save.

Read an account

Anyone who may see customers
  1. Open the customer. Their balance, what they have bought, and what is owed are all on one page.
  2. Their prescriptions and their loyalty points, if any, are here too.
  3. Record a payment against the account when they settle.

People

Campaigns

Messages to a group of customers — a refill reminder, a health day, a new service.

Campaigns, with the caveats before the numbers: until a messaging provider is connected, messages wait in the outbox rather than being marked failed.
Campaigns, with the caveats before the numbers: until a messaging provider is connected, messages wait in the outbox rather than being marked failed.

Send to a group

Changes records
  1. Press New campaign.
  2. Choose who it goes to and write the message.
  3. Send. Messages queue in the outbox and go out through your own server once a messaging provider is connected to it.
Delivered, opened, clicked and responded are not shown, and that is deliberate. Those are facts only a messaging provider observes. Showing them as zero would read as "nobody opened it" rather than "nothing was measured", which is the wrong thing to teach an owner about their customers. Until a provider is connected, messages wait in the outbox rather than being marked failed.

People

Loyalty

Points and coupons — and, at the top of the page, what they are costing you.

Points and coupons, with the outstanding liability at the top — unredeemed points are money owed, and it is the figure an owner is least often shown.
Points and coupons, with the outstanding liability at the top — unredeemed points are money owed, and it is the figure an owner is least often shown.

Run a points scheme

Owner only
  1. Set what a point is worth and what earns one.
  2. Points accrue when a sale is attached to a customer, and are spent at the counter.
  3. Issue coupon codes here; they are entered on the Sell screen and recorded as used.
The liability is the first thing on the page. Unredeemed points are money owed, and an owner who has never been shown the figure is one who will be surprised by it.

People

Clinical

Two things a pharmacist arrives here to do: find a patient, or clear the interventions still open. Open work comes first, because an intervention nobody closed is a job outstanding rather than a historical note.

The clinical front door. Open interventions come before the patient search, because an intervention nobody closed is a job outstanding rather than a note.
The clinical front door. Open interventions come before the patient search, because an intervention nobody closed is a job outstanding rather than a note.

Open a patient record

Clinical work
  1. Search for the patient — the same record as the customer at the till.
  2. Their medication history, allergies and conditions are on the page, with the prescriptions that produced them.
  3. Record an intervention when you act on something: what you found, what you did, and whether it is resolved.
Clinical screens are in English only, for the reason given under Prescriptions.

People

Delivery

Orders going out to doorsteps, and — first on the page — the cash your drivers are holding.

The delivery board. Cash held by drivers sits at the top: money collected at a doorstep and not yet handed in is in neither the till nor the bank.
The delivery board. Cash held by drivers sits at the top: money collected at a doorstep and not yet handed in is in neither the till nor the bank.

Send an order out and close it off

Changes records
  1. Press New delivery, attach the sale or prescription, and record the address.
  2. Assign a driver. The order moves to out-for-delivery.
  3. When the driver returns, mark it delivered and record the money collected.
Cash held by drivers is the first figure on the page for a reason. Money collected at a doorstep and not yet handed in is neither in the till nor in the bank, and the only way to notice it drifting is to look at it every day.

Manage

Reports

Arranged around one question: can an owner understand the business in thirty seconds? So the order is what came in and what was left of it, then the trend, then the detail behind it.

A month of trading. Gross and net profit sit side by side rather than as one figure — healthy margins with rent eating the difference is a different problem from selling too cheap.
A month of trading. Gross and net profit sit side by side rather than as one figure — healthy margins with rent eating the difference is a different problem from selling too cheap.

See what the shop actually made

Owner and managers
  1. Choose the period at the top.
  2. Gross and net profit sit side by side, not as one "profit" figure. Margins being fine while rent eats the difference is a completely different problem from selling too cheap, and one number hides which you have.
  3. Below: discounts given, what customers owe, stock on hand and stock on order.
  4. Then the detail — most profitable products, fastest moving, what has been running out, and stock that is not moving at all.
  5. How hard the stock is working shows stock turns and days of supply at this period's rate.
  6. How customers paid breaks the takings down by method.
  7. Export any of it to work on elsewhere.
Reports are never switched off by a lapsed subscription. Your records are yours to read whatever the licence says.

Manage

Expenses

What the pharmacy spends that is not stock — rent, diesel, wages, licences. Deliberately kept off the reports page: reading a report and recording a diesel purchase are different jobs, done by different people, at different times.

What the pharmacy spends that is not stock. It comes straight off net profit in Reports.
What the pharmacy spends that is not stock. It comes straight off net profit in Reports.

Record what you spent

Changes records
  1. Press New expense.
  2. Choose a category, enter the amount and the date, and say what it was for.
  3. Save. It comes straight off net profit in Reports.

Manage

Assistant

Three questions a pharmacist would otherwise answer by feel: what to order, what is going to expire on the shelf, and whether anything odd happened this week.

The Assistant. Every number carries the reasoning behind it in the row it explains, always visible — the failure to avoid is not being wrong but being believed.
The Assistant. Every number carries the reasoning behind it in the row it explains, always visible — the failure to avoid is not being wrong but being believed.

Read the three answers

Owner and managers
  1. What to order — a suggested quantity per product, from how fast it has actually been selling.
  2. What will expire unsold — packs whose date will arrive before the shelf clears at the current rate.
  3. What looks unusual — a week that does not match the weeks before it.
Every number carries its reasoning, in the row, always visible. The failure this screen exists to avoid is not being wrong — it is being believed while extrapolating from one unusual fortnight. There is no chat box: the answers are arithmetic you can check by hand, and wrapping them in generated prose would add a confident register to figures whose whole point is knowing how far to trust them.

Manage

Branches

The one screen that deliberately ignores the branch you are working in, and shows every branch at once.

The one screen that ignores the branch you are working in, because nothing scoped to a single branch can answer which branch is performing.
The one screen that ignores the branch you are working in, because nothing scoped to a single branch can answer which branch is performing.

Work in a branch, and compare them

Owner and managers
  1. The switcher in the header sets the branch you are working in. Stock, sales, expenses and orders everywhere else follow it.
  2. This screen ignores it. Nothing scoped to one branch can answer which branch is performing, so the comparison is the whole point of the page.
  3. Add a branch here when you open one. Each device works as one branch, which is what keeps two tills from ever writing the same stock row.

Manage

Staff and roles

Who works here is one screen; what a role may do is another. Keeping them apart matters — putting a permission matrix in front of somebody adding a cashier is how the matrix gets changed by accident.

Who works here, and what role each of them holds.
Who works here, and what role each of them holds.

Add somebody, or take them off

Owner only
  1. Press New staff member. Name, username, first password.
  2. Give them a role. Eight ship with the app: Owner, Administrator, Manager, Pharmacist, Pharmacy technician, Cashier, Storekeeper and Accountant.
  3. When somebody leaves, deactivate them. Their sales and their entries in History stay exactly where they are.

Change what a role may do

Cannot be undone lightly
  1. Open Roles from the staff screen.
  2. Choose one role. It is deliberately one at a time, not a grid: eight roles across twenty-four subjects is over fifteen hundred checkboxes, and a grid that size is one nobody reads before clicking.
  3. Tick and untick. It saves as you go.
Two rules the app will not bend on, stated on the page rather than left to be discovered by a refusal: the Owner role cannot be edited, and nobody can grant a permission they do not hold themselves. This is the one screen that can quietly hand somebody the cost prices.
The permission editor: one role at a time, never a grid. Eight roles across twenty-four subjects would be over fifteen hundred checkboxes, and nobody reads a grid that size before clicking.
The permission editor: one role at a time, never a grid. Eight roles across twenty-four subjects would be over fifteen hundred checkboxes, and nobody reads a grid that size before clicking.

Manage

History

Everything anybody has done to the pharmacy's records, with the value before and the value after.

Every change, with the value before and the value after. “Price changed” answers nothing; the old figure beside the new one answers the question somebody came with.
Every change, with the value before and the value after. “Price changed” answers nothing; the old figure beside the new one answers the question somebody came with.

Check who did what

Owner and managers
  1. Filter by person, by kind of change, or by date.
  2. Read the row. "Price changed" answers nothing; "1,200 to 900" answers the question you actually came with — so the before-and-after is on the row, not behind a detail page.
  3. It is paginated, because this is the one table that only ever grows.
Voids, price changes, permission grants, stock adjustments and sign-ins all land here. It is the record you would want if money ever went missing, which is why nothing in the app can edit it.

Manage

Settings

Everything about how this pharmacy runs, in one place. Some of it changes what customers see; some of it changes what the app does.

Settings. Everything about how this pharmacy runs, including the thresholds every alert in the app reads.
Settings. Everything about how this pharmacy runs, including the thresholds every alert in the app reads.

What is in here

Mostly owner only
  1. Premises — name, address and registration number. These appear on receipts and reports.
  2. Receipt footer — what prints under the totals on every receipt.
  3. Alert thresholds — how many days before an expiry counts as a warning, when it becomes urgent, and what counts as running out.
  4. Payment methods — a pharmacy in Lagos takes bank transfer and POS; one in Accra takes mobile money. Add what you take. A method is switched off rather than removed, because last year's payments through it are still on the books.
  5. Dashboard — which tiles appear, and in what order.
  6. Import data — bring a product or stock list in from a spreadsheet.
  7. Security — the devices this pharmacy has been opened on, and recent sign-ins.
  8. Synchronisation — see More than one device.
  9. Notifications — see Notifications.
  10. Subscription — see Subscription & payment.
  11. Sharing — partners you have allowed to read this pharmacy's data through the API. Nothing is readable until you enable it here.
Roles that may see settings but not change them get the screen read-only, with a line saying so, rather than a screen full of controls that refuse.

Check the devices on your pharmacy

Owner only
  1. Open Settings → Security.
  2. Every machine the pharmacy has been opened on is listed, with when it was first and last seen. A device you do not recognise is the signal worth acting on.
  3. Read the recent sign-ins, successful and failed.
  4. Mark a device as not trusted if you need the record.
Marking a device as not trusted is a record, not a remote wipe. This software cannot reach out and erase a machine, and saying otherwise would be a dangerous thing to believe. If a device is lost, change the passwords.

Around the app

Subscription & payment

What it costs to keep trading, and how long is paid for.

The subscription screen. It says what is paid for and until when, and what would stop if it were not — reading, reports and export never do.
The subscription screen. It says what is paid for and until when, and what would stop if it were not — reading, reports and export never do.

The free sales, and what happens after them

Everyone should know this
  1. A new pharmacy gets five sales — one to test the till, and four more — with everything working.
  2. After that, a subscription is needed to sell, receive stock, take in a prescription or dispense one.
  3. Everything else keeps working: reading, reports, history and export are never switched off.
Your records are never held hostage. A lapsed subscription stops new trade. It does not lock a pharmacy out of its own books, and it never will.

Pay for a year

Owner only
  1. Open Settings → Subscription.
  2. The price is set for you: ₦150,000 a year for a pharmacy in Nigeria, $120 a year for one outside it. There is no monthly option.
  3. Enter an email for the receipt. Paystack sends it there and it is used for nothing else.
  4. Press the pay button. Paystack opens in the same tab — not a popup, because a popup is what a blocker eats, and a pharmacist who sees nothing happen presses the button again, which starts a second payment.
  5. Pay. You are brought back to the app and the year is applied automatically. There is nothing to copy.
Renewing early loses nothing — a year is added to the date you already have, not to today.

How it works when the internet is down

Worth knowing

The licence is a signed file held on your device, not a check made over the network. The till works out for itself whether the pharmacy may trade, so a shop that cannot reach the internet on a Tuesday morning still opens and still sells. The only moment a connection is needed is the payment itself.

Around the app

More than one device

One counter needs nothing here. A pharmacy with a phone at the counter and a machine in the office, or with two branches, needs this page.

Synchronisation. It says whether this device is in step, how many changes are still waiting to be sent, and keeps anything that was overwritten.
Synchronisation. It says whether this device is in step, how many changes are still waiting to be sent, and keeps anything that was overwritten.

Connect a pharmacy to its server

Owner only
  1. Open Settings → Synchronisation.
  2. Enter the server address and the pharmacy key you were given when the pharmacy was registered.
  3. Save. The page then shows whether this device is up to date, and how many changes are still waiting to be sent.
  4. Do the same on every other device, with the same key.
Leave both empty and everything still works. A single-counter pharmacy is a complete product, not a crippled one.

How synchronising actually behaves

Worth knowing
  1. It happens by itself. A few seconds after this device changes something — a sale, a delivery received, a price edited — it sends. It also does one round when the app opens, so what the other till did overnight is there before you look.
  2. Nothing polls the server while the counter is quiet, which matters on a phone paying for its own data.
  3. Synchronise now is still there for when you want to be sure. One press sends everything queued and brings down everything waiting, however much that is.
  4. No signal is not an error. Changes stay on the device, the page keeps showing how many are waiting, and the next attempt sends them.
Two tills cannot lose each other's work. Stock, sales and orders belong to the branch that made them, so two devices never write the same row. For the things that are shared — the product list, customers, suppliers — the newer edit wins and the older one is kept under Overwritten changes, so "the price changed and nobody knows why" has an answer.

Overwritten changes

Anyone who may see sync

The list at the bottom of the synchronisation page. Each row says what happened and keeps the version that lost, in full, so you can read it or put it back. Press Seen to clear one once you have looked.

One entry you may see is a renumbered receipt. If two tills both sold while neither could see the other, they can issue the same receipt number; when they meet, one sale keeps the number and the other has four characters added to it. Both sales are kept — the renumbering is recorded here so nobody is left wondering why a receipt looks unusual.

Around the app

Notifications

The bell inside the app, and the two things worth interrupting somebody about when it is closed.

Notifications on this device. Two things are ever pushed — a product running out, and a prescription ready to collect — and the screen says so rather than offering switches that do nothing.
Notifications on this device. Two things are ever pushed — a product running out, and a prescription ready to collect — and the screen says so rather than offering switches that do nothing.

Be told when the app is closed

Per device
  1. Open Settings → Notifications on this device.
  2. Press Turn on and allow it when the browser asks.
  3. Only two things are ever pushed: a product runs out of stock, and a prescription is ready to collect.
Nothing else is pushed. Expiring batches, low stock and everything else stay in the app, where they can be read without interrupting anybody. A phone that buzzes about everything is a phone people stop looking at.
This is set per device. Turning it on here does not turn it on for the counter machine or anybody else's phone. If the browser has already refused notifications for the site, only your browser settings can allow them again — look for the padlock beside the address. The desktop app cannot show them at all, and says so rather than pretending.

Choose what the bell shows

Yours alone

Settings → Notifications controls what appears in the bell on this device. It is yours — other staff keep their own. Security and subscription warnings cannot be switched off.

Around the app

Theme, language, phone

Setting up your own till the way you like it.

Make it yours

Anyone
  1. Light and dark follow the machine. A phone that goes dark at night takes the app with it.
  2. Language — English, French and Arabic, with Arabic laid out right-to-left throughout. Clinical and dispensing wording stays in English.
  3. On a phone, the sidebar is a drawer: the button at the top left opens it, tapping beside it or pressing Escape closes it.
  4. On a wide screen, the sidebar scrolls on its own and stays put while the page moves. Fold the groups you do not use; it remembers per device.
  5. Set a PIN for this device if you unlock it often. Four digits, and it is destroyed after five wrong tries.
At the bottom of the sidebar is the forum — a WhatsApp group of other pharmacies running GalenDesk and GalenDesk Pro. Often the fastest answer to a question about how a shop actually uses it day to day.

Around the app

When something looks wrong

The handful of things that actually come up, and what they mean.

Common messages

What you seeWhat it means
The free sales are used up Five sales have been made and no subscription is paid. Reading and reports still work. See Subscription.
Your role cannot … Not a fault. Someone with the Owner or Administrator role can grant the permission under Staff and roles.
Changes waiting to be sent This device has work the server has not taken yet — usually no connection. Nothing is lost. It sends itself when the connection returns.
Not connected to a server No synchronisation is set up. Correct and expected for a single-counter pharmacy.
A product does not appear when selling It has no sellable stock: none received, all expired, or all reserved for a prescription. Check it in Inventory.
Storage is not persistent The app is running somewhere it cannot save — a private window, or a browser blocking site data. Use the installed app, or a normal window.
This browser is blocking notifications Permission was refused for the site once. Only the browser can allow it again — the padlock beside the address.

Habits worth keeping

  • Receive stock as it arrives, not at the end of the week. Every figure in the app is downstream of this one.
  • Put a real expiry date on every batch. A batch without one cannot warn anybody.
  • Void rather than delete. A voided sale with a reason is a record; a deleted one is a hole.
  • Give people their own account. History is only worth reading if the names in it are real.
  • Open the app on the second device now and then, even if nobody sells on it, so it stays in step.

Around the app

Getting help

If the table above does not cover it, there is a person at the other end of all of these.

Email contact@galen.africa General questions about GalenDesk Pro.
Email admin@galen.africa Accounts, licences and anything to do with your subscription.
App galendesk-pro.web.app GalenDesk Pro in a browser, and where the apps are downloaded.
Company galen.africa Galen Africa Technologies Limited, who build it.
There is also a Forum link at the bottom of the sidebar inside the app. It opens a WhatsApp group of other pharmacies running Galen software — often the fastest answer for a question about how a shop uses it day to day.

When you write in, say what you were doing and what the screen said. A receipt number, a product name, or the exact wording of a message gets to an answer far quicker than “it is not working”.