← Back to home Become a donor

How it works

How Raktify works

Explained from zero — for someone who has never heard of a platform like this before.

When a hospital needs blood, Raktify finds it — first from blood-bank fridges, then from living donors nearby, and it keeps going until someone says yes.

The problem today, without Raktify

A patient needs blood. The hospital’s blood bank doesn’t have that group. The family starts running — calling relatives, posting in WhatsApp groups, driving between blood banks, asking strangers. Hours pass. Nobody has a list. Nobody knows who already said no.

Raktify replaces that panic with a system. Everything below explains how.

The cast Who is in this story?

πŸ€’
The patientIn a hospital bed. Needs blood. Never uses Raktify directly β€” everything happens around them.
πŸ₯
The hospitalBlue in diagrams. Asks for blood. The only one who can start a request.
🧊
The blood bankRed in diagrams. Has fridges with blood bags and a lab that tests blood. The only one who can make a donor "real".
πŸ’ͺ
The donorGreen in diagrams. An ordinary person willing to give blood. Contacted on WhatsApp only when truly needed.
πŸ§‘β€πŸ’Ό
The coordinatorPurple in diagrams. Raktify's human in each district. Watches every request, can override the machine.
🀝
The community leaderAmber in diagrams. A trusted local person (village head, temple committee, alumni group) who brings donors in and hosts camps.
βš™οΈ
Raktify itselfGrey in diagrams. The software. Searches, matches, messages, keeps time, and never sleeps.

Three fixed doors The whole platform has exactly one way in, one gate, and one way out

πŸ₯ β‘ 
THE ONLY ENTRY
A hospital raises a blood request. Nothing starts any other way.
πŸ§ͺ β‘‘
THE ONLY DONOR GATE
A donor becomes "real" only when a blood bank uploads their tested blood report. Signing up alone means nothing.
🩸 β‘’
THE ONLY EXIT
Blood transfused into the patient. That is the only success. Everything else is a step or a safety net.

Keep these three symbols in mind β€” they appear in the diagrams below with thick black borders.

The big picture Two worlds: peace time and emergency time

The secret of Raktify is that it runs two separate machines:

🌱 Peace time β€” quietly, every day: people sign up as donors, camps collect blood, fridges get stocked. Nothing urgent. This is preparation.

🚨 Emergency time β€” when a hospital asks: check the fridges first, wake donors only if fridges can't cover it, deliver.

Emergency time is fast only because peace time already did the hard work. That is the whole idea of the platform in one sentence.

β–’ rounded box = an action β—‡ diamond = a question β–£ thick black border = one of the 3 fixed doors - - β†’ dashed arrow = "feeds into"
🌱 PEACE TIME β€” runs every day, no urgency πŸŽͺ Camps held (Flow 6) πŸ’ͺ People sign up = hand raised, not yet real πŸ§ͺ β‘‘ First donation is tested blood bank uploads the report βœ… Verified donor pool can now be called on 🧊 Fridges get stocked tested bags wait for a patient the tested bag itself camps collect many bags at once only verified donors are ever called stocked fridges = fast answers 🚨 EMERGENCY TIME β€” when a hospital asks πŸ₯ β‘  Hospital asks group Β· units Β· by when βš™οΈ Fridges checked asks the banks β€” never takes Enough blood promised? 🩸 β‘’ Delivered & transfused request closed Β· donor thanked πŸ“± Matching donors woken shortlist only, never broadcast πŸ’ͺβ†’πŸ§ͺ Donor gives, blood tested same gate β‘‘ as peace time YES NO / partly
One line to remember: peace time fills the tank; emergency time empties it carefully. Six small flows below explain each piece β€” with the flow number they hand over to.

Flow 1 β€” Becoming a donor How does an ordinary person enter the system?

Anyone can raise their hand through four doors. But raising your hand does not make you a donor β€” it only means "I'm willing". Raktify will never call an unverified person for an emergency, because nobody has proof of their blood group or health yet.

🌐 Website form πŸ“· QR code at a camp 🀝 Community leader's link πŸ’¬ WhatsApp bot (coming) βœ‹ Signed up (unverified) name Β· mobile (OTP-checked) Β· village/area Β· consent β€” that's all first donation 🧊 Blood bank tests the donated blood in its lab (details in Flow 5) βœ… β‘‘ VERIFIED report uploaded against their mobile number β€” now a real donor Registration is deliberately tiny β€” 2 steps, under a minute. No health questionnaire: the blood bank's lab test is the real health check, so we don't make people fill forms the lab will re-verify anyway.
ConditionWhat happens
Person claims a blood group at sign-upStored as "self-reported", shown with an Unverified badge. Never used for matching. Only the lab-verified group counts.
Same mobile signs up twiceBlocked β€” one donor account per mobile number.
Suspected duplicate (same name + birth date)Flagged for the admin to review; registration still goes through.
Came via a camp QR or community linkThe camp / community leader gets credit for bringing them in β€” that's how we measure grassroots impact.
One line to remember: signing up = raising your hand. Only the blood bank's lab report (β‘‘) makes you a donor. Hands over to: Flow 5 (the testing gate) and Flow 3 (the pool of people who can be called).

Flow 2 β€” The hospital asks What happens the moment a patient needs blood?

A doctor decides the patient needs blood. Hospital staff fill one form on Raktify: blood group, how many units, needed by when, and how urgent. The moment they press submit, three things happen in the same second β€” automatically, before any human moves.

πŸ₯ β‘  Request submitted group Β· units Β· needed-by urgency: Planned / Urgent / Critical same second πŸ§‘β€πŸ’Ό District coordinator assigned Critical β†’ instant WhatsApp to their phone βš™οΈ Fridge search starts every blood bank in the district β†’ Flow 3 ⏱️ A clock starts ticking how long banks get before donors are woken β†’ Flow 4 The urgency decides everything downstream: 🟒 Planned β€” surgery next week. Fridges only, donors are never disturbed. 🟑 Urgent β€” needed today. Banks get 30 min first. πŸ”΄ Critical β€” life at risk. Banks get only 3 min, coordinator is pinged instantly.
UrgencyMeaning in plain wordsWill donors be woken?How long do banks get first?
🟒 Planned"Operation is scheduled, we know in advance."NeverNo timer β€” fridges only. If the date comes close and it's still unfilled, Raktify automatically upgrades it to Urgent.
🟑 Urgent"We need it today."Yes, if fridges can't cover it30 minutes
πŸ”΄ Critical"The patient may not survive the wait."Yes, if fridges can't cover it3 minutes β€” and the coordinator's phone buzzes immediately so a human is watching from second one.
One line to remember: one form, three automatic reactions, zero phone calls by the family. Hands over to: Flow 3 (fridges) with the clock from Flow 4 already running.

Flow 3 β€” Fridges first Why disturb a donor if the blood already exists in a fridge?

Raktify knows what every blood bank's fridge holds. But here is the platform's most important manner: it never takes blood from a fridge β€” it asks. Like asking a shopkeeper "do you have this?", never reaching behind the counter yourself. Each blood bank with matching stock sees the request on its screen and chooses its own answer.

βš™οΈ Request appears on the screen of every matching bank same group first, compatible group next βœ… "Yes β€” take N units" those bags are set aside for this patient πŸ” "Yes β€” but replace it later" bank gives now, asks for donated units back within ~14 days ❌ "No stock" (NS) can't give bags β€” but can still RECEIVE walk-in donors ❌ "Can't handle it" (NC/ND) out completely β€” also removed from donor routing 😢 Silence β€” the clock keeps ticking All units promised before clock ends? YES skip to Flow 7 🚚 NO / partly go to Flow 4 πŸ“± wake the donors special case: if EVERY bank says no β€” don't wait for the clock, wake donors immediately
Bank's answerEffect on this requestEffect on donor routing (Flow 5)
βœ… Yes β€” full amountAll bags set aside. Donors never woken. β†’ Flow 7.β€”
βœ… Yes β€” part of itThose bags set aside; the missing part continues to Flow 4.Bank stays available for donors.
πŸ” Yes with replacementSame as yes, plus a "units owed back" record with a deadline (~14 days). Later, donors get a softer invitation to fill the debt β€” it is not an emergency message.Bank stays available.
❌ No stock (NS)Out of fulfilment.Still listed β€” an empty fridge can still take a fresh donation from a walk-in donor.
❌ No capacity (NC/ND)Out of fulfilment.Removed β€” no staff/machine to receive donors either.
😢 No answerClock decides (3 or 30 min), then Flow 4.Stays listed.
❌ Every bank declinesThe wait is pointless β€” donor alerts fire immediately.NS banks stay listed.
One line to remember: Raktify asks, never takes. The banks stay in control of their own fridges β€” that is why they trust the platform. Hands over to: Flow 7 if covered, Flow 4 if not.

Flow 4 β€” Waking the donors Who gets the message, and why not everyone?

Donors are the platform's most precious resource. Message them too often and they mute you β€” then nobody comes when it truly matters. So Raktify never broadcasts. It builds a shortlist of at most 20 people, chosen by six checks, and messages only them. If they don't respond, the next 20. And before anything fires, the coordinator gets a heads-up with the power to pause.

⏱️ Clock ends with a shortfall remaining (or all banks said no) πŸ§‘β€πŸ’Ό Coordinator check gets a pre-fire WhatsApp: HOLD (a bank promised offline) or FIRE NOW Β· or let it run βš™οΈ Last-second re-check did a bank cover it meanwhile? covered β†’ cancel silently, no donor ever knows πŸ“± Shortlist messaged max 20 people Β· WhatsApp one-tap link Β· β†’ Flow 5 The six checks β€” who makes the shortlist: βœ“ Blood group fits β€” the lab-verified group, never what someone typed at sign-up βœ“ Switched their toggle to "available"    βœ“ Healthy: not paused, last donation β‰₯ 90 days ago βœ“ Lives in the same district (circle widens later if needed β€” Flow 8)    βœ“ Not bothered too often this week, and got a cool-off if recently ignored an alert βœ“ Never asked twice for the same request    ⭐ And: donors brought in by the request's community leader are asked FIRST
One line to remember: spend donors like money β€” carefully, and only on real needs. Hands over to: Flow 5 (the message and the yes). Falls back to: Flow 8 if the shortlist is empty.

Flow 5 β€” The donor says yes What does the donor actually see, and what happens next?

The donor gets one WhatsApp message: which blood is needed, at which blood bank, and how far that is from where they are standing. One tap opens a page β€” no app, no password, no OTP. They pick the blood bank they'll visit, and that bank's screen immediately shows "a donor is on the way".

πŸ“± WhatsApp arrives "Bβˆ’ needed at XYZ Blood Bank, 4 km from you. Can you come?" one-tap button, no login Donor's answer? YES πŸ—ΊοΈ Picks a blood bank list sorted by distance from their location β€” no distance limit, the donor decides how far 🧊 Bank is told "incoming donor" on screen + WhatsApp Β· donor has 48 h to arrive β†’ Flow 6 "not this time" / no reply / changed mind / didn't arrive in 48 h Next shortlist is messaged back to Flow 4's checks, next 20 people still nobody? widen the circle β†’ Flow 8
DetailWhy it's designed this way
No login on the alert pageA 45-year-old farmer at a bus stop will not remember a password. The link itself is the key β€” personal, time-limited, single-purpose.
Distance from current location, not home villagePeople travel. What matters is how far they are right now.
"No stock" banks still appear in the listAn empty fridge is exactly where a fresh donation helps most.
48-hour arrival windowEnough for a working person to plan; short enough that the patient isn't left waiting on a promise nobody will keep. After 48 h it's marked no-show and the next donors are called.
The patient's name is never shownPrivacy both ways: donors never see patient details; hospitals never see donor phone numbers.
One line to remember: one tap for the donor, full visibility for the bank. Hands over to: Flow 6 (arm to bag) β€” or loops back to Flow 4 / escalates to Flow 8.

Flow 6 β€” From arm to usable bag Why can't donated blood be used immediately?

Blood from an arm is never given straight to a patient. Every single bag β€” whether from an alert donor, a camp, or a walk-in β€” passes the same gate: quarantine, then five disease tests, then a second person's sign-off if anything looks wrong. This gate is also the exact moment an unverified person becomes a real donor (door β‘‘). The rules live inside the database itself, so no software bug and no rushed staff member can skip them.

🧊 Donor arrives at the bank looked up by mobile number Β· checks: 90-day gap, health pause, haemoglobin, age 🩸 Unit collected bag goes into QUARANTINE β€” a locked state; it cannot be issued to anyone yet πŸ”¬ Five tests in the lab HIV Β· Hepatitis B Β· Hepatitis C Syphilis Β· Malaria All five clear? ALL CLEAR βœ… β‘‘ THE GATE OPENS β€” two things at once 1. The bag is unlocked β†’ AVAILABLE in the fridge 2. Report uploaded on the donor's number β†’ verified blood group β†’ they are now a REAL donor ANY TEST POSITIVE 🚫 The protection path 1. A second staff member must confirm β€” the one who entered results cannot approve them 2. Confirmed β†’ the bag is destroyed, never used 3. Donor is paused (temporarily or permanently) 4. Their past donations are re-examined (lookback) 5. HIV / Hepatitis B β†’ District Health Officer informed Also from this point: the donation is automatically credited β€” to the alert the donor accepted, or to a bank's "replace it later" debt (Flow 3). Nobody has to remember.
One line to remember: no test, no blood β€” no exceptions, not even in an emergency. Hands over to: Flow 7 (the bag travels) and back to Flow 1 (a newly verified donor joins the pool).

Flow 7 β€” Reaching the patient The last kilometre β€” and the only real finish line

A cleared bag is set aside for this specific patient, sent to the hospital, and checked one final time at the bedside β€” a crossmatch, mixing a drop of the patient's blood with the bag to prove they agree. Only then is it transfused. That transfusion is the platform's only definition of success.

πŸ“¦ Bag reserved for this patient only β€” no one else can take it 🚚 Issued & sent bank hands over, transport to the hospital Bedside crossmatch compatible? YES 🩸 β‘’ TRANSFUSED request closed Β· donor thanked on WhatsApp Β· their 90-day rest starts Β· reliability score goes up incompatible β†’ coordinator finds another bag (back to Flow 3)
One line to remember: the request is not "done" when blood is found β€” only when it is inside the patient. Ends the journey that began in Flow 2.

Flow 8 β€” When things don't go smoothly What if nobody responds? What if plans change?

Real life is messy: donors don't show up, requests get cancelled, bags expire. Raktify has a safety net for each. Two kinds: the widening circle (find help further away) and the janitors (automatic clean-up jobs that run day and night).

The widening circle β€” when the district isn't enough

Ring 1 own district (automatic, instant) Ring 2 whole state, 150 km around Ring 3 neighbouring states (rare groups β†’ all India) Ring 4 District Health Officer personally contacted Ring 5 NGO head gets a phone call (critical) Each ring re-runs Flow 4's shortlist over a bigger map. The machine escalates to humans β€” never the other way round.

The janitors β€” automatic clean-up, day and night

SituationAutomatic response
Hospital cancels (any time before the bag is issued)Every reserved bag instantly released for other patients Β· pending alerts stop Β· request marked cancelled.
A reserved bag isn't collected in timeReservation released β€” the bag goes back to AVAILABLE for others.
A bag crosses its expiry dateMarked EXPIRED. The system physically cannot issue it β€” the block is in the database, not just in the app.
A Planned request comes close to its needed-by date unfilledAutomatically upgraded to Urgent β€” the donor machinery (Flow 4) switches on.
A donor's 90-day rest completesFriendly WhatsApp: "you're eligible to donate again."
A request sits unfulfilled too long at any ringEscalated to the next ring automatically.
One line to remember: no request is ever forgotten and no bag is ever wasted silently β€” something is always watching. Wraps around: Flows 3–7.

Flow 9 β€” Camps Filling the tank before the emergency

Everything above is demand-side: a patient needs blood now. Camps are the supply-side: collect many units on a good day, so that on a bad day the answer is already sitting in a fridge. Camps also bring in new donors β€” someone who donates at a camp walks out as a verified donor without ever visiting a website first.

πŸŽͺ Someone proposes a camp public "host a camp" form, or a community leader's dashboard NGO reviews approve / decline approved πŸ“£ Camp goes public its own web page Β· QR poster Β· share links Β· organiser dashboard βœ‹ People RSVP existing donors: one tap Β· new people: 1-minute sign-up reminder WhatsApp the day before 🩸 Camp day attendance marked Β· a partner blood bank's team collects units Β· each unit tagged to its donor + camp cold-chain to the lab πŸ”¬ Same gate as always β€” Flow 6 every camp bag is quarantined + tested; every camp donor gets verified here (β‘‘) πŸ’ͺ New verified donors join the pool reachable in future emergencies (β†’ Flow 4) 🧊 Cleared units stock the fridges ready before anyone needs them (β†’ Flow 3) Both arrows land back in "peace time" of the big picture β€” camps are how the tank gets filled.
Operations note: today, the blood bank's team + cold-chain availability for a camp date is confirmed offline before approval. Routing that confirmation through the platform itself is a planned next-phase feature.
One line to remember: camps are savings; emergencies are withdrawals. Feeds: Flow 1 (new donors) and Flow 3 (stocked fridges).

How the nine flows connect The dependency map β€” one glance, whole platform

F9 camps F1 become donor brings people F2 hospital asks β‘  F3 fridges first F4 wake donors F5 donor says yes F6 arm β†’ bag β‘‘ F7 to patient β‘’ shortfall fridges covered everything β€” skip straight to F7 stocks fridges verified pool every new donation verifies a donor β†’ pool grows F8 β€” safety nets: watches over F3 β†’ F7 the whole time (widening circle + janitors)

Appendix β€” for the technical team Exact values behind the story above

Story phraseExact system value
"banks get 3 / 30 minutes first"DONOR_ALERT_WINDOW_CR_MIN=3 Β· DONOR_ALERT_WINDOW_UR_MIN=30 (tunable per env)
"max 20 people per shortlist"DONOR_ALERT_POOL_SIZE_CAP=20
"not bothered too often"fatigue cap over trailing 7 days + cool-off after an ignored alert
"90-day rest"next_eligible_date = last donation + 90 days; enforced in pool query AND at BB donation entry
"48 hours to arrive"donor_alert_choices.deadline_at = accept + 48 h β†’ NS on expiry
"replace it later, ~14 days"replacement_obligations, default deadline 14 days, per BB per request
"the widening circle"escalation rings 1–5: district β†’ state 150 km β†’ adjacent states (rare β†’ national) β†’ DHO β†’ NGO-admin voice call (critical, 30 min unresolved)
"the janitors"jobs: donor_alert_gate (1 min), escalate_overdue, stale_reservation_release, auto_expire, planned_request_upgrade, eligibility_reminder
"rules live inside the database"CHECK constraints, triggers, row-level security β€” clinical rules are not application code

WhatsApp messages by moment (all Meta-approved)

FlowMomentTemplateRecipient
F1Sign-up / login codedonor_otpDonor / leader
F2Critical request landscoord_critical_newCoordinator
F4Just before alerts firecoord_prefire_warningCoordinator
F4Donor alert (standard)donor_alert_bb_routed_v2Shortlisted donors (EN/MR/HI)
F4Donor alert (community-first)donor_alert_community_first_v2Community-referred donors
F3Replacement invitation (softer)donor_alert_replacementDonors
F5Donor acceptedbb_donor_incomingChosen blood bank
F4Leader mobilisation askcommunity_leader_mobilise_v2Community leader
F9Camp reminder (day before)camp_reminderRSVP'd donors
F9Organizer access linkcamp_organizer_link_v2Camp organizer
F8Donor eligible again (day 90)eligibility reminderDonor