Aayush Visualscpgrams.fig
cpgrams.fig
1AayushOpen to new projects, say helloSelected work

CPGRAMS

Product Design · 2026

CPGRAMS is how a citizen of India formally complains to their own government. It handles over 20 lakh grievances a year across 90+ ministries, and until now it did it through a 15-field form in English or Hindi. This is a conversational layer over that system: you speak your problem in your own language, and a chatbot turns it into a correctly routed, correctly categorised grievance without you ever seeing the form.

Role
Product Design · Conversational UX
Category
Product Design
Year
2026
Client
DARPG, Government of India
Delivered with
KPMG India
Languages
22 scheduled Indian languages
Scope
Conversational architecture, voice UX, UI, mascot, design system
Surfaces
Web chatbot, mobile web
Live at
cpgramsaichatbot.com
Tools
FigmaConversational UXPrototyping
Visit Live Chatbot
Highlights
  • Speech-to-text intake in 22 languages, so filing needs no reading or writing
  • Grievances auto-filled and routed to the correct ministry from plain speech
  • Samadhan Didi, a lip-synced mascot who teaches the interface as you use it

A promise the state already makes

Most products begin by inventing a reason to exist. This one did not. CPGRAMS is already a constitutional-grade commitment: any citizen of India can lodge a grievance against any central government department, and an officer is obliged to answer it, usually inside 30 to 60 days, with automatic escalation to senior officers and a route to the Prime Minister's Office if they do not.

It is not a pilot or a portal somebody is trying to get adopted. It runs across more than 90 ministries and handles over 20 lakh grievances a year, and it disposes of 93% of them. The machinery works.

So this project was never about designing a service. The service exists. It was about the fact that the door into it could only be opened by people who least needed it.

20L+grievances filed every year
90+central ministries and departments covered
30-60days an officer has to respond, by mandate

The door

To use that machinery, a citizen has to fill in a form. One page, fifteen or more fields, written in departmental language, on a layout built for a desktop computer.

The hardest field is the second one. Before describing anything, you must name the ministry and the category your problem belongs to. That is a filing decision. Ask a person whose pension has stopped which of ninety departments owns that, and the conversation is already over.

  1. You must already know the answer to use itMinistry and category are required before the complaint is written. The people most in need of the system are least able to classify their own problem inside it.
  2. Built for a machine most users do not ownDesktop-first, in a country where roughly three quarters of internet users are mobile-first. Small targets, dense text, and a CAPTCHA that defeats exactly the age group filing the most grievances.
  3. Two languages out of twenty-twoEnglish and Hindi only. More than 550 million citizens communicate in a regional language and the portal has nothing to say to any of them.
  4. One mistake and the work is goneSession timeouts wipe everything entered. No autosave, no drafts, no recovery path, and error messages that explain nothing.
Abandon the grievance form partway through
60%
Find government websites confusing to navigate
52%
Of rural India uses the internet regularly
31%
Three numbers from the audit, and the first one is the whole indictment. Six in ten people who start a grievance never finish it, which means the state never hears from them at all.

Who it actually serves

2 of 22 scheduled Indian languages supported by the portalEnglish and Hindi. Every other cell is a language the Constitution recognises and the interface does not.

Language is the clearest exclusion but not the only one. A quarter of the country cannot read or write at all, which makes any text interface a closed door regardless of which language it is written in. The 60-plus age group files the most grievances and has the lowest digital literacy, so their complaints get filed by somebody else, or filtered, or delayed, or never made.

Put those together and 78% of grievances arrive from urban, educated users.

A channel built for 1.4 billion people was, in practice, being used by the top 15%.

That is not a usability score. It is a democratic problem. The feedback loop between a government and its citizens was quietly sampling only the citizens who were already doing fine.

People were not failing to file grievances. They were failing to fill in a form. Only one of those is the citizen's problem.

That reframe is the entire project. It moves the work from redesigning the portal to building a translation layer over it.

Nothing about the government changes. Same ministries, same categories, same statutory clock. What changes is who is required to understand any of it. The citizen describes what happened to them, in whatever language they think in, out loud if they cannot write. The system does the filing.

The portal asks the citizen to8

Every step is a chance to give up, and six in ten people take it.

  1. Register an account
  2. Read the interface in English or Hindi
  3. Identify the correct ministry
  4. Identify the correct category
  5. Write the grievance in formal language
  6. Attach the right documents
  7. Clear a CAPTCHA
  8. Complete it all before the session expires
The chatbot asks the citizen to2

Everything else is inferred, filled and routed by the system that already knows how it is organised.

  1. Say what happened
  2. Check that it got it right
The same grievance, the same destination, the same legal weight. The difference is who carries the knowledge of how government is organised, and the redesign moves that from the citizen to the software.

Samadhan Didi

A chat window is still an interface, and to somebody who has never used one it is still an exam. So the product has a face.

Samadhan Didi is a government worker in a saree with a departmental lanyard, and every part of that is a decision. Didi means elder sister. She is the person you already ask for help with a form, the one at the counter who does not make you feel stupid for asking. She is lip-synced to the spoken reply, so the answer is watched as well as heard, which matters when the person listening may not be able to read the same words on screen.

She is not an ornament on the product. She is the onboarding.

Samadhan Didi, an illustrated Indian government worker in a cream and orange saree with a departmental ID lanyard, smiling and gesturing.The mascotAn alternate pose of Samadhan Didi used for other conversational states.Expression set
Built as a set of states rather than a single illustration, because a guide who holds one expression through a complaint about a missing pension reads as indifferent.

First run: teaching the interface

This is the flow a citizen sees once, the first time they ever open the chatbot, and it carries more weight than anything else in the product. Everything after it assumes the person knows they can press a button and speak. Nothing in their experience of government websites has ever suggested that.

So the tutorial does not describe the interface. It points at it. The screen dims except the one control being discussed, Samadhan Didi stands beside it and says what it does in plain language, and the whole thing can be skipped from the first frame by anyone who does not need it.

Demo 01

Arriving with nothing to read

The chatbot opens from the CPGRAMS portal with no account, no install and no setup. The first thing on screen is a greeting and the two ways forward, speaking or typing, rather than a form or a login wall. The illustrated rural background is deliberate: it signals who this is for before a single word is read.

The CPGRAMS chatbot opening screen with a welcome message and the option to register a grievance by speaking or typing.
Demo 02

The guide introduces herself

Samadhan Didi appears full-height and speaks. Establishing her before she starts giving instructions matters, because the tutorial that follows is a stranger telling you what to press. Coming from a recognisable figure in a government saree and lanyard, it reads as being helped rather than being tested.

Samadhan Didi introduced at full height beside the CPGRAMS chatbot interface.
Demo 03

Spotlight on one control at a time

Everything dims except the element under discussion. Only one thing is ever lit, so there is no question about which control the sentence refers to. This is the pattern that carries the whole tutorial, and it is why the tutorial can be short.

The CPGRAMS chatbot with the interface dimmed and a single control spotlit during the tutorial.
Demo 04

The microphone, explained in one sentence

The most important control in the product gets the clearest instruction: press it and speak in your preferred language. No mention of transcription, languages supported, or accuracy. The promise is small enough to be believed and complete enough to act on.

The CPGRAMS chatbot tutorial spotlighting the microphone with Samadhan Didi explaining to press it and share concerns in a preferred language.
Demo 05

Handing over, with an exit

The tutorial ends by returning control, and Skip Tutorial is present from the first frame rather than appearing at the end. A confident user is never trapped inside an explanation of something they already understand, which is what keeps the tutorial from being a cost imposed on everyone to help some.

The final tutorial screen of the CPGRAMS chatbot with a skip tutorial control visible.

Voice: the path for people who cannot type

For a quarter of the country, reading and writing is the barrier. Voice is not a convenience feature layered on top of this product. It is the accessibility strategy, and the typed flow is the alternative rather than the default.

Press once, speak, and the system does the rest. Speech-to-text runs through Bhashini across all 22 scheduled languages, the language is detected rather than selected, and the reply comes back spoken as well as written. Filing a grievance becomes about as difficult as making a phone call, which for this audience is the correct level of difficulty.

Voice 01

One obvious thing to do

The resting state gives the microphone the centre and the visual weight. There is no language picker, no category dropdown and no form preview, because every one of those would be a decision demanded before the citizen has said anything.

The CPGRAMS voice flow resting state with a large central microphone control.
Voice 02

Press to speak

A single press starts recording. Press and hold was rejected early: it is a gesture that fails for users with tremors or arthritis, and the 60-plus group files the most grievances of anyone.

The CPGRAMS voice flow with a press to speak prompt on the microphone.
Voice 03

Proof that it is listening

A live waveform responds to the voice. For a user who is not confident the machine can hear them, a static recording indicator is not enough reassurance, and stopping to check kills the sentence they were in the middle of.

The CPGRAMS voice flow recording with a live waveform responding to speech.
Voice 04

Their words, kept

The recording lands in the thread as a playable message with its own waveform rather than being silently converted to text and discarded. The citizen can hear back exactly what they said, which matters when the system is about to act on it.

A user voice message in the CPGRAMS chat thread with a waveform audio player.
Voice 05

Transcription, shown not hidden

The speech-to-text result is displayed alongside the audio. If Bhashini has misheard a place name or a scheme, this is the first moment it can be caught, and catching it here is far cheaper than catching it after the grievance has been routed.

The CPGRAMS voice flow showing the transcribed text alongside the recorded audio.
Voice 06

Language detected, not requested

The interface adapts to the language it heard. A language picker is a reading test administered to people who may not read, and it is the same trap as the ministry dropdown: asking someone to classify themselves before they are allowed to speak.

The CPGRAMS voice flow with a detected regional language reflected in the interface.
Voice 07

Answered out loud

Every response is playable, not just readable. Voice input with text-only output solves half the literacy problem and then abandons the user at the reply, which is the half that actually contains the answer.

Samadhan Didi responding in the CPGRAMS chat with both written text and a voice response player.
Voice 08

Filling the gaps by asking, one at a time

Where the grievance is missing something the form requires, the bot asks for it as a single conversational question. This is the fifteen-field form, disassembled into the smallest possible units and delivered only where a human answer is genuinely needed.

The CPGRAMS chatbot asking a single follow-up question to complete a grievance.
Voice 09

The form, filled without being seen

Ministry, category, location and urgency are inferred from what was said. The citizen never encounters the dropdown that stops most people at the portal, because the system carries that knowledge instead of demanding it.

The CPGRAMS chatbot with an auto-filled grievance derived from the spoken complaint.
Voice 10

Read back before it counts

This is the screen the entire system exists to reach. The interpretation is shown in the citizen's own words with the detected state and category visible, and nothing is submitted until they agree. Auto-filing a legal document on somebody's behalf without showing them what it says is not assistance, it is a liability with their name on it.

The CPGRAMS pre-submission review card showing the interpreted grievance, a detected state tag and a submit control.
Voice 11

A way out when the routing is wrong

If the state-level categorisation is wrong, escalation to the Central Authority is one tap rather than a fresh grievance. The system is allowed to be wrong; it is not allowed to be wrong with no exit.

The CPGRAMS review card with a link to register with the Central Authority if the state categorisation is incorrect.
Voice 12

Submitted, and traceable

Confirmation returns the registration ID, which is the object that makes the statutory clock start and the only thing the citizen needs to keep. It is repeated in the thread so it survives a closed tab.

The CPGRAMS chatbot confirming a submitted grievance with a registration identifier.

Text: the same architecture, typed

Voice is the priority, not the requirement. Plenty of citizens can type and would rather, and speaking a complaint out loud is not always possible in a shared house, an office, or a queue.

The typed path reaches the same destination through the same architecture. Describe it in plain language, let the system infer the classification, review before submitting. It is a conversation, never a form, and the difference from the portal is that the burden of knowing how government is organised never moves onto the person typing.

Text 01

An empty field and a prompt

The typed flow opens on the same greeting with the input focused. No category selection, no ministry list, no required fields visible, because the first thing asked has to be something the citizen can actually answer.

The CPGRAMS text flow opening screen with the message input ready.
Text 02

The complaint in their own words

The grievance is typed the way it would be said out loud, with no formal structure required. Everything the portal would have demanded up front gets extracted from this sentence instead.

A typed grievance in the CPGRAMS chat written in plain conversational language.
Text 03

Understood and acknowledged

The reply restates the problem before doing anything with it. This is not politeness, it is the earliest and cheapest place to catch a misunderstanding, and it tells the citizen they were heard by something that followed the meaning rather than matched a keyword.

The CPGRAMS chatbot restating the citizen's grievance back to them.
Text 04

One question at a time

Missing details are collected as single questions in sequence rather than as a block of fields. The fifteen-field form still gets filled; it just never appears as fifteen fields.

The CPGRAMS chatbot asking a single follow-up question in the typed flow.
Text 05

Answering with structure when structure helps

Where the answer is genuinely a small closed set, the bot offers options rather than an open field. Free text is the right default, but forcing someone to type an exact scheme name they may not know is a trap dressed as flexibility.

The CPGRAMS chatbot offering selectable options for a question with a closed set of answers.
Text 06

Documents, when they are needed

Attachments are requested at the point they become relevant, not listed as a requirement at the start. On the portal, an unmet document requirement at step two ends the session; here it arrives once the citizen is already invested and knows why it is being asked for.

The CPGRAMS chatbot requesting a supporting document within the conversation.
Text 07

History that survives the session

Conversations persist in the left rail. The portal loses everything to a session timeout, which on a slow connection is a routine event, and losing a half-written grievance is usually the end of that grievance forever.

The CPGRAMS chat with recent conversations listed in the left sidebar.
Text 08

Classification, done quietly

Ministry, department and category are resolved from the conversation. This is the single highest-friction field on the original portal, removed entirely from the citizen's job and handed to the system that already holds the taxonomy.

The CPGRAMS chatbot resolving the ministry and category for a typed grievance.
Text 09

Location and jurisdiction

State and jurisdiction are inferred and then shown, because routing a grievance to the wrong state is the failure most likely to waste the statutory clock before anyone notices.

The CPGRAMS chatbot showing the detected state and jurisdiction for a grievance.
Text 10

The complete picture, assembled

Everything gathered across the conversation is brought together in one place: the complaint, the classification, the location and the attachments. The citizen sees the whole grievance for the first and only time as a single object.

The CPGRAMS chatbot presenting the assembled grievance with all collected details.
Text 11

Read it back

The same pre-submission review as the voice flow, and for the same reason. Nothing becomes a legal submission until the person it belongs to has seen what the machine decided on their behalf.

The CPGRAMS review card in the typed flow showing the interpreted grievance before submission.
Text 12

Submit, or escalate

Submit Grievance and New Chat sit together, with the Central Authority escalation underneath for when the state-level categorisation is wrong. Three outcomes, all reversible except the one the citizen explicitly chooses.

The CPGRAMS review card with submit grievance, new chat and a central authority escalation link.
Text 13

Filed, with a number

Confirmation and the registration ID. From this moment the grievance is inside the same machinery as one filed by a lawyer on a desktop, with the same clock and the same escalation path, which was the entire point.

The CPGRAMS confirmation screen with a grievance registration identifier.

The decisions

  1. Never ask for the ministryThe highest-friction field on the original portal and the one a citizen is least equipped to answer. Inferred from what they said, confirmed at review, never asked.
  2. Detect the language, do not offer a listA language picker is a reading test given to people who may not read. Detection removes the test and the interface adapts to what it heard.
  3. Speak every answer, not just accept speechVoice in with text out solves half the literacy problem and then abandons the user at the half containing the answer.
  4. Press, do not press and holdHold-to-record fails for tremor and arthritis, and the 60-plus group files more grievances than anyone else on the platform.
  5. Show the interpretation before submittingAuto-filing a legal document for somebody requires their consent to what it says. The review screen is where the system admits what it assumed.
  6. Give a wrong answer somewhere to goWhen state-level routing is wrong, escalation to the Central Authority is one tap rather than starting again.
  7. Keep the state's own visual authorityThe saffron, the emblem, the departmental masthead, the ministers. A grievance tool that looks unofficial does not get trusted with a grievance.

The system underneath

A component set built for a conversation rather than a page: message bubbles by speaker, audio players with waveforms, state and language tags, the review card, tutorial spotlights, and the mascot in each of her states.

Saffron
#FE6700Primary action, government identity
Deep
#9F2D00Pressed and emphasis
Warm
#FFC196Surfaces and user bubbles
Cream
#FFFBEFChat canvas
Ink
#333333Body copy
Slate
#4A505BSecondary text and labels
Interface
InterChat, controls, labels
Supporting
General SansHeadings
Script
RobotoDevanagari and regional coverage
A Figma component set for the CPGRAMS chatbot showing message bubble and input variants.Message and input componentsA Figma component set showing state variants for the CPGRAMS chatbot controls.State variants
Roboto is in the stack for one specific reason: it carries Devanagari and most regional scripts. A product claiming 22 languages cannot ship a typeface that renders two of them.

What changed

It is live at cpgramsaichatbot.com, running against the real grievance system rather than standing as a concept.

For a citizen, the qualification required to complain to their own government dropped from reading English or Hindi and knowing how ninety ministries are organised, to being able to speak. For DARPG, grievances now arrive pre-categorised and correctly routed, which is work that previously landed on an officer before the statutory clock had even started.

The work was scoped against projections of 3x more grievances filed, a 40% reduction in incomplete submissions and 85% satisfaction. Those are targets rather than results, and post-launch numbers sit with the department.

What I learned

Designing for government taught me that accessibility is not a layer applied to a finished product. Here it was the product. Remove voice and you have not built a slightly less inclusive chatbot, you have rebuilt the thing that was already failing.

It also changed how I think about automation. The instinct with a form this painful is to remove it completely and let the system handle everything silently. But the moment software files a legal document on somebody's behalf, hiding its reasoning stops being convenience and becomes exposure. The review screen is the least clever thing in this project and almost certainly the most important.

And working at national scale reframed what a design decision costs. A dropdown that confuses 5% of users is a usability issue in most products. On a system serving 1.4 billion people it is tens of millions of citizens who never get heard, which is a different kind of number to be responsible for.