Progressive Profiling in Okta
Nobody likes a form with twenty questions on the first day. Progressive profiling asks a few questions now and a few more later, at the moments when they make sense. A first-principles guide to collecting user information gradually, respectfully and safely with Okta.
Maple Harbour Outfitters sells hiking boots, tents and jackets online. Its first sign-up form asked for name, email, phone, birthday, home address, shoe size, favourite trails, preferred activities and how the customer heard about the shop. It had seventeen fields. Out of every hundred visitors who clicked “Create account,” sixty-one gave up before the last field. Of the thirty-nine who finished, many typed “none” or “abc” into the fields they did not understand. The shop had lost most of its customers and gained a database full of nonsense.
The marketing team wanted rich profiles. The design team wanted a short form. Both were right. The way out was to stop treating a profile as something collected in one sitting. Ask for an email and a password on day one. Ask for a name when the customer first checks out. Ask for shoe size when they look at boots a second time. Ask for favourite trails after they have bought something and feel at home. Each question arrives with a reason, at a moment when the answer is easy to give and obviously useful. That is progressive profiling.
Okta offers several building blocks for this idea, including its user profile store, self-service registration policies, sign-in pages that can be customised, automation with Workflows and hooks that run at key moments. Product names, features and editions change over time, so every Okta-specific statement in this guide is guidance to confirm against current official documentation. What does not change is the thinking: which questions to ask, when, how often, with what promise, and how to keep the answers true. We start from zero and assume no earlier knowledge.
1Why Asking Everything at Once Fails
A long first form is like a stranger who asks your age, salary and address before saying hello.
People arrive at a sign-up page with a small goal: get in, buy the boots, read the article. Every extra field is a small cost, and the cost is paid before any benefit is received. Customers do not know yet whether they trust the shop, so they hesitate to share private details. They also do not know yet why the shop wants those details, so each field feels like a trap.
Long forms fail in three ways. First, people leave, so the shop loses sales it has already paid to attract. Second, people lie or fill in rubbish to get past the field, so the data is poor. Third, people remember the annoyance, and the shop begins its relationship with a small act of friction.
- Each required field lowers the share of visitors who finish. The exact drop varies by business, but the direction is reliable.
- Questions asked before trust is earned receive guarded or false answers.
- A field asked at the wrong time feels pointless, even if the answer would have been useful at another time.
The mistake is not wanting the data. The mistake is asking for all of it at the one moment when the customer has the least reason to give it. Progressive profiling moves each question to the moment of highest willingness.
There is a second, quieter reason. Data goes stale. A phone number given at sign-up may be wrong in two years. A shoe size given at sign-up is useless if the customer has since had a child and bought boots for the child. Gathering information over time lets you refresh it.
Think of meeting a new neighbour. You say your name and wave. Over weeks you learn about their dog, their job, their garden. If they handed you a questionnaire on the doorstep, you would avoid them. Friendship, like a good profile, is built a little at a time.
2What Progressive Profiling Is, and Is Not
A clear definition keeps the project from drifting into something creepier or something smaller.
Progressive profiling means collecting information about a user in small steps over time, instead of all at once during registration. Each step asks for a few pieces of information that are relevant to what the user is doing now.
What it is
- A staged approach to filling a user profile.
- A way to earn data by offering value first.
- A design discipline that asks what do we need now and leaves the rest for later.
What it is not
- It is not tracking. Tracking watches behaviour without asking. Progressive profiling asks, openly, and the user answers.
- It is not a trick to collect more data. Good programmes often collect less, because they stop asking for things they never use.
- It is not only for marketing. Identity teams use it to add recovery phone numbers, extra sign-in factors and verified emails at the right moment.
- It is not a single Okta switch. It is a design built from several parts working together.
A helpful test: if you can explain to the user, in one sentence, why you are asking right now, you are doing progressive profiling. If you cannot, you are probably just asking.
A good waiter does not ask your allergies, favourite wine and birthday at the door. He seats you, takes the drinks order, and asks about the dessert only after the main course. Each question fits the moment.
3Core Concepts: The Vocabulary of Progressive Profiling
A handful of words appear again and again. Learn them once and the rest of the guide reads easily.
| Term | Plain meaning |
|---|---|
| Profile | The collection of facts a system holds about a person, such as name, email and preferences |
| Attribute | One fact in the profile, such as shoe size |
| Required attribute | A fact the user must give before going further |
| Optional attribute | A fact the user may give or skip |
| Progressive attribute | A fact requested later, at a chosen moment, not at sign-up |
| Trigger | The moment or event that decides it is time to ask |
| Prompt | The screen, card or message that asks the question |
| Frequency cap | A limit on how often or how many times you ask |
| Consent | The user’s clear agreement to a stated use of their data |
| Verified data | A fact that the system has proven true, such as an email that was confirmed |
| Self-asserted data | A fact the user typed and nobody checked |
| Data minimisation | Collecting only what you need for a stated purpose |
Keep two ideas apart from the start. Identity data is what the system needs to recognise and protect the person: email, password, phone for recovery. Preference data is what makes the experience better: sizes, interests, favourite trails. They have different rules for how strictly to ask, how carefully to store and how long to keep.
A library card has two parts: the number that proves who you are, and the list of authors you like. The librarian will not lend you a book without the first, but she will happily live without the second.
4The Profile: Required, Optional and Progressive Attributes
Before anything can be staged, each attribute needs a home in one of three groups.
Go through every field in your current sign-up form and sort it. Ask three questions. Does the system break without it? Does it help the user now? Does it only help us later?
| Group | Test | Maple Harbour example |
|---|---|---|
| Required at registration | The account cannot work without it | Email address, password |
| Asked at first need | Needed for a specific action | Name and delivery address, asked at first checkout |
| Progressive | Useful later, not needed now | Shoe size, favourite trails, activity types |
| Never asked | We would not use it | Birthday of customers who never receive birthday offers |
Most shops discover that their registration form contains four or five fields that belong in the second or third group, and two or three that belong in the fourth. Removing the fourth group is the cheapest improvement in the whole project.
Write the sort down in a table with an owner for every attribute. When somebody later asks to add a field, the table forces the same three questions.
When packing for a trip, you divide the bag into things you need on the plane, things you need at the hotel and things you leave at home. Putting everything in your pocket would make the airport unbearable.
5The Friction Trade-off: Short Forms Versus Rich Data
Every field trades a little conversion against a little knowledge. Progressive profiling tries to win both.
Picture two roads to the same goal. The first road is a single long form: high friction, one moment, many drop-offs. The second is a short sign-up followed by several small asks over weeks: low friction at each step, spread across time.
flowchart LR
A["Visitor clicks Create account"] --> B["Short form: email and password"]
B --> C["Account created"]
C --> D["First checkout: name and address"]
D --> E["Second visit to boots: shoe size"]
E --> F["After first order: favourite trails"]
F --> G["Rich profile built over weeks"]
A -.-> X["Long form: seventeen fields"]
X -.->|"Many leave"| Y["Lost customers"]
The staged road is not free. It needs design, logic to decide who sees what, and care to avoid pestering. It also means you will never have the full profile for every user on day one, so reports and campaigns must work with partial data. That is a trade-off, and the later chapters show how to manage it.
A toll road that charges the full fare at the first gate makes drivers turn back. A road with small tolls along the way gets everyone to the end.
6Where Progressive Profiling Lives in Okta
Okta is not one box. Several parts cooperate, and it helps to know which part does which job.
Okta keeps a user’s attributes in its universal directory, a central profile store with a base set of fields and room for your own custom ones. People can create an account themselves through self-service registration, which is governed by a policy deciding which attributes are asked at that moment. After sign-up, the sign-in experience, apps and automation can request more.
| Part | Job in progressive profiling |
|---|---|
| User profile store | Holds every attribute and its type |
| Registration policy | Decides which attributes are asked at sign-up |
| Sign-in pages and widget | Show screens and can be customised to ask more |
| Authentication policies | Can require extra steps, such as adding a factor |
| Workflows automation | Reacts to events and updates attributes or sends messages |
| Hooks | Run your own logic at certain moments, such as registration |
| Event stream and System Log | Record what happened for measurement and audit |
Verify: Which attributes can be collected after registration, and by which mechanism, depends on your Okta product line and edition. Confirm what your organisation has before designing a flow that depends on it.
A useful habit is to separate where the question is asked (your app, the Okta pages, an email link) from where the answer is stored (always Okta’s profile store, so there is one source of truth).
A hotel has a front desk, a restaurant, a spa and a concierge. They all write guest notes into one guest book so nobody asks the same thing twice.
7Okta User Profile Attributes: Designing the Store
The profile store is the memory of the whole system. Design it before you design a single question.
A user profile in Okta has a built-in set of attributes, such as name and email, and allows you to add custom ones. Each attribute has a type (text, number, true-or-false, list), may have limits (such as maximum length), and may be marked required or optional. Types matter because they decide what a question can look like: a list becomes a drop-down, a true-or-false becomes a tick box.
Design rules for attributes
- Use clear names that a colleague can understand in a year, such as shoe size, not attr7.
- Prefer lists of fixed choices over free text when answers will be counted or compared.
- Store one fact per attribute. Do not stuff three facts into one text field.
- Record where and when an answer came from, if your design allows it, so you can judge freshness.
- Decide which attributes apps may read and which stay private to the identity team.
- Check limits on the number and size of custom attributes for your edition.
Verify: Attribute types, maximum counts, and rules about who can read or change each attribute are product details that change. Confirm them in current documentation.
A small, well-named attribute set beats a large, vague one. Every extra attribute needs an owner, a purpose, a retention rule and a question that fills it. If you cannot name those four things, do not create the attribute.
A filing cabinet with labelled drawers is a pleasure to use. One with a drawer called Misc soon holds everything and tells you nothing.
8Architecture and Components
A progressive profiling system has a handful of moving parts. Seeing them together makes the later chapters easier.
flowchart TD
U["User on web or mobile app"] --> APP["Maple Harbour app"]
APP --> SI["Okta sign-in and registration"]
SI --> UD["User profile store"]
APP --> RULE["Profiling rules: who is asked what, when"]
RULE --> UD
RULE --> PR["Prompt: card, page or email link"]
PR --> U
UD --> WF["Workflows automation"]
WF --> MK["Marketing and shop systems"]
SI --> LOG["System Log and metrics"]
RULE --> LOG
| Component | Responsibility |
|---|---|
| Profile store | Keeps every attribute, with types and rules |
| Rules engine | Decides who is asked what and when. Can be your app, Workflows or both |
| Prompt surfaces | Where the question appears: app card, sign-in step, email link |
| Automation | Updates attributes, notifies other systems, sets reminders |
| Measurement | Counts asks, answers, skips and drop-offs |
Keep the rules in one place. If three teams each write their own “ask for shoe size” logic, customers will be asked three times.
A restaurant has one kitchen, one order book and several waiters. The waiters can be many, but the order book must be one.
9Internal Working: One Return Visit, Step by Step
Follow Priya, a returning customer, from sign-in to a single new question.
sequenceDiagram
participant U as Priya
participant A as Shop app
participant O as Okta
participant R as Profiling rules
U->>A: Opens app and signs in
A->>O: Authenticate Priya
O-->>A: Signed in, profile returned
A->>R: What is missing for Priya
R-->>A: Shoe size, because she viewed boots twice
A->>U: Shows a small card with a reason
U->>A: Chooses size 38
A->>O: Update shoe size on profile
O-->>A: Saved and logged
A->>U: Boots filtered to size 38
Sign-in
Priya proves who she is. Nothing about the profile question blocks her.
Profile check
The app asks the rules: what do we not know that we need now?
Choice
Only one question is picked, because Priya has seen two cards this month.
Display
A small card explains why: “Tell us your size and we will show boots that fit.”
Answer
Priya chooses a size or taps Not now.
Save
The answer is written to the profile store, and the event is logged.
Reward
The shop uses the answer immediately, so the value is visible.
Notice that step seven matters as much as step four. When the benefit appears at once, customers learn that answering is worthwhile.
A tailor measures your sleeve when you are being fitted for a jacket and uses the number at once. You never feel the questions were wasted.
10Choosing Which Question to Ask First
When there are twenty possible questions, the order decides whether the programme feels helpful or nosy.
Score each candidate attribute on three things. Value to the user now. Value to the business. Effort and sensitivity for the user to answer. Ask first what is high on the first two and low on the third.
| Attribute | User value | Business value | Effort and sensitivity | Order |
|---|---|---|---|---|
| Name | Medium | High | Low | First, at checkout |
| Delivery address | High | High | Medium | At checkout |
| Shoe size | High | High | Low | After boot views |
| Favourite trails | Medium | Medium | Low | After first order |
| Phone number | Medium | Medium | High | When useful, like delivery alerts |
| Birthday | Low | Low | Medium | Only if birthday offers exist |
- Ask for identity data first only when it protects the user, such as a recovery phone.
- Ask for sensitive data last, and only with a clear promise.
- Ask for what you will use within a week. Old promises fade.
Review the order with real customers. A short interview with five people often shows which questions feel natural and which feel pushy.
When making new friends, you share your favourite film before you share your worries. The order is part of the respect.
11Triggers: Deciding When to Ask
A trigger is the event that makes a question suddenly sensible.
Triggers fall into a few families. Choose the ones your business can actually detect.
| Trigger family | Example | Question that fits |
|---|---|---|
| Count of visits | Third sign-in | Preferred activities |
| Action | Added boots to basket | Shoe size |
| Milestone | First order delivered | Favourite trails, delivery notes |
| Time | 30 days after joining | Communication preferences |
| Gap | Profile missing a recovery phone | Add a phone for account safety |
| Life event | Moved house, noticed by a changed address | Confirm the new delivery address |
Prefer action triggers. They connect the question to something the customer is already doing. A visit count is a weaker trigger because it says nothing about interest.
Careful: A trigger must be something the customer would reasonably expect you to know. Using hidden behaviour to pick a question can feel like surveillance. Explain the reason on the prompt.
Write each trigger as a plain sentence: When X happens, ask Y, because Z. If the sentence sounds odd read aloud, the design needs work.
A shop assistant who says “What size?” after you pick up a shoe is helpful. One who says it as you walk in the door is guessing.
12Question Fatigue and Frequency Caps
Even good questions become bad when they arrive too often.
Imagine a friend who asks you something new every time you meet. After a month you dread meeting. Apps behave the same way. Set clear limits and keep to them.
- One question per visit at most, unless the user is in the middle of a task that needs more.
- No more than a few asks per month for optional data.
- Cool-down after Not now: wait a set number of days before the same question returns.
- Stop after repeated skips: after three skips of the same question, retire it for that user.
- Never ask during a purchase unless the question is needed for that purchase.
- Global quiet periods after sensitive events, such as a failed payment.
| Rule | Example setting |
|---|---|
| Max asks per visit | 1 |
| Max optional asks per 30 days | 3 |
| Cool-down after skip | 14 days |
| Retire after skips | 3 |
These numbers are illustrations. Pick yours by testing, and write them in the standard so everyone agrees. Count asks in the same place you count answers; otherwise you will not know when the cap is working.
A good radio presenter plays an advert break, then music. Five breaks in a row empties the room.
13Consent, Purpose and Honest Promises
People give data when they know why and trust the answer. The prompt must say both in simple words.
Each prompt should state three things: what you are asking, why you want it, and what happens if the user says no. Keep the language short and free of legal jargon.
- “Tell us your shoe size so we can show boots that fit. You can change this any time.”
- “Add a phone number to recover your account if you forget your password. We use it for nothing else.”
- “Not now” and “Never ask again” buttons that are as easy to find as the Save button.
Distinguish consent for a purpose from acceptance of terms. If you collect shoe size to filter boots, you cannot quietly use it to sell shoe data to a partner. Using data for a new purpose needs a new, honest ask.
Keep a record of what the user agreed to and when. If you change a purpose later, ask again. This record is also a gift to your future self when someone asks, “Why do you have this?”
Lending a neighbour your ladder for the fence is fine. Finding out later that he lent it to a cousin feels like a broken promise, even if nothing was damaged.
14Privacy, Law and Responsibility
Collecting data gradually does not change the rules about collecting it. It only changes the timing.
General orientation only. This chapter is not legal advice. Privacy and consumer laws differ by country, state and sector, and they change. Ask your privacy or legal team which rules apply to your customers.
Most privacy laws share a few ideas that apply directly to progressive profiling.
- Purpose limitation: use data only for the purpose you stated.
- Data minimisation: collect only what the purpose needs.
- Transparency: tell people what you hold and why.
- Access and correction: let people see and fix their data.
- Deletion: remove data when asked or when the purpose ends.
- Special categories: health, children’s data and similar need extra care or may be off-limits.
Progressive profiling can help you meet these rules, because it makes you decide, question by question, whether you really need something. It can also hurt if you treat “later” as a licence to ask for everything eventually.
Keep a short data map: each attribute, its purpose, who may see it, where copies go and when it is deleted. Review it every quarter.
A good librarian knows which books are on the shelves, who borrowed them and when they are due. A good data map gives you the same calm control.
15Data Minimisation: The Question You Choose Not to Ask
The best field is the one you decided you did not need.
It is easy to add fields and hard to remove them. Make removal part of the routine. Once a quarter, list every attribute and check when it was last used for a real decision.
| Attribute | Last used | Decision |
|---|---|---|
| Phone number | Delivery alerts, daily | Keep |
| Favourite trails | Used in one email campaign | Keep, review in six months |
| Birthday | Never used | Stop asking; delete after notice |
| Company name | Never used for customers | Remove from forms |
- Ask: if we did not have this, what would we do differently? If nothing, stop collecting.
- Remove unused fields from forms and delete old values where the law or good manners require.
- Prefer derived facts over raw ones. “Over 18” may be enough where an exact birth date is not needed.
Data you do not hold cannot leak, cannot be subpoenaed, and does not need a retention rule. Minimisation is the cheapest security control there is.
A traveller with a light bag moves quickly through the airport and cannot lose what she did not pack.
16Verified Versus Self-Asserted Data
Some facts are proven. Others are only claimed. Treating them the same causes mistakes.
When a customer types “priya@example.com”, you know only that she typed it. When she clicks a link sent to that address, you know she can read it. That is verification. Keep the two states separate.
| Attribute | Typical state | How to verify |
|---|---|---|
| Self-asserted until confirmed | Send a link or code | |
| Phone | Self-asserted | Send a code by text or voice |
| Name | Self-asserted | Usually not verified for shopping |
| Address | Self-asserted | Check format; delivery success proves it over time |
- Do not use unverified email or phone for account recovery or sensitive alerts.
- Mark attributes so that apps can see whether a value is verified.
- Re-verify when a user changes an identity attribute.
An attacker who has taken over a session may try to change the recovery phone to their own. Treat changes to identity attributes as higher risk than changes to preferences, and ask for a fresh strong sign-in first.
A hotel clerk who takes your name from the booking has a claim. One who checks your passport has proof. Both have uses, but they are not the same.
17Email and Phone Capture as a Progressive Step
Many programmes start with only an email address, then add a phone number when it gives clear value.
Email is the natural first identifier. A phone number arrives later and usually serves two purposes: account recovery and delivery or security alerts. Neither is needed on day one.
Day one
Email and password only.
First order
Offer delivery text alerts if the user wants them. Phone number optional.
After a password reset
Suggest adding a recovery phone, explaining it would have helped.
After 60 days
If still missing, a gentle reminder, with a clear benefit.
Verify the phone with a one-time code before storing it as trusted. Remember that text messages are not the strongest sign-in factor, so treat the phone as a recovery aid and a convenience, not as the only line of defence.
Verify: Which phone and email verification options exist in your Okta setup, and how they interact with recovery policies, depends on your configuration. Confirm in current documentation.
A spare key given to a neighbour is a sensible step, but you do it after you have lived somewhere long enough to know the neighbour.
18Progressive Enrolment of Sign-In Factors
Profiling is not only about marketing. Asking a customer to add a stronger way to sign in is progressive profiling of security.
A new customer should not face a wall of security steps. Yet an account that holds saved payment details deserves more than a password. Progressive enrolment bridges the two: start simple, then invite stronger protection when the stakes rise.
Registration
Password only, plus a verified email.
First saved card
Suggest adding a second factor, such as an authenticator app or a passkey.
High-value order
Ask for the second factor before confirming.
After a risky sign-in
Require it, and explain why.
- Explain the benefit in the customer’s terms: “Protect your saved cards.”
- Offer several options and show the easiest first.
- Allow a short delay for low-risk accounts but not for high-risk actions.
Verify: The factors Okta supports, how enrolment can be prompted after sign-up, and how policies treat users who have not enrolled yet differ by product and edition. Check current documentation and test with a sample account.
A bank gives a new account holder a basic card. The chequebook and the large-transfer limit come after the customer has shown the account is in regular use.
19Social Sign-In and Partial Profiles
Customers who arrive through a social account bring a few facts and leave many gaps.
When a person signs in with a social provider, the shop usually receives a name, an email and perhaps a picture. It does not receive shoe size, address or preferences. Treat this as a ready-made first step of progressive profiling: you already have something, and you ask for the rest as the need arises.
- Do not request every possible permission from the social provider. Ask only for what you use.
- Mark which values came from the provider so you can tell them from values the customer typed.
- If the provider email is not verified, verify it before treating it as a trusted identifier.
- Provide a way to add a password or another sign-in method later, so the customer is not locked to one provider.
| Arrives with | Missing | Ask when |
|---|---|---|
| Name, email | Delivery address | First checkout |
| Name, email | Phone | Delivery alerts offered |
| Name only (no email shared) | Immediately, because it is needed for receipts |
Keep the language friendly: “We already know your name. Just one more thing.”
A guest who arrives with a friend of the family is half-known. You still need to learn their tea preference.
20Merging Profiles and Avoiding Duplicates
Gradual collection raises a trap: the same person may appear twice with half a profile each.
Priya signs up with her work email, then another day with her personal email. Two partial profiles exist. Each has different questions answered. Marketing now sees two people and sends two emails.
- Choose a stable identifier, usually verified email, and treat it as the key.
- On a match, link the sign-in methods to one profile rather than creating another.
- Never merge two profiles on an unverified match; an attacker could use that to take over an account.
- When merging, decide which value wins for each attribute: the newest, the verified or the one the user confirms.
- Keep a record of merges, so a wrong one can be undone.
Ask the user to confirm: “Is this the same person as your account at the other email?” A confirmed link is safer than a clever guess.
Two filing cards for the same patient may each hold half the history. A careful clerk combines them only after checking the patient is the same person.
21Web, Mobile and In-Store Prompts
The same question looks different on a phone, a laptop and a shop counter.
| Surface | Strength | Watch for |
|---|---|---|
| Website | Room for explanation and links | Pop-ups that cover content |
| Mobile app | Quick taps, push messages | Tiny screens, interruptions |
| Email link | Reaches the person away from the app | Phishing look-alikes; keep wording consistent |
| In-store tablet | Staff can explain | Privacy of the screen; do not read answers aloud |
| Call centre | Human warmth | Verify identity before editing the profile |
- Use inline cards in the app rather than blocking pop-ups.
- On mobile, ask with tap-friendly choices, not typing.
- Keep the question identical in meaning across surfaces, so answers are comparable.
- Save the answer to the same attribute no matter where it was given.
Careful: Teach customers that you will never ask for a password or a code in a profile prompt. A profile prompt that asks for either is a sign of fraud.
A shop uses a window display, a counter sign and a leaflet. Each looks different, but all say the same price.
22Customising the Sign-In Experience
Where the question appears is as important as what it says.
Okta lets you place your own look and feel on sign-in and registration pages, and in some editions to change the widget that renders the steps. This is where a first, short sign-up screen and some later prompts can match the shop’s brand.
- Keep branding and tone consistent with the shop so customers recognise the page as real.
- Make prompts accessible: clear labels, keyboard navigation, good contrast.
- Use a custom domain so the address in the browser looks like the shop, not a stranger.
- Keep any custom code small and tested, because a sign-in page is critical infrastructure.
- Provide language options for every prompt.
Verify: The level of customisation available for registration and sign-in pages, and which parts you can change, depends on your product version. Confirm current limits before planning designs that depend on it.
Many profile prompts are better placed inside the shop app than inside the sign-in pages. The sign-in page is a doorway; people want to pass through it quickly. Use it for identity steps and use the app for preference questions.
The entrance of a theatre sells tickets and checks them. The programme seller and the ice-cream stand sit inside, where people are ready to browse.
23Using Workflows and Automation
Automation is the quiet worker that notices and reacts, so people do not have to.
Okta Workflows, and similar tools, can react to events without anyone writing a full application. In a profiling design they handle housekeeping.
| Event | Automatic reaction |
|---|---|
| New user created | Tag with the registration date and source |
| Shoe size saved | Tell the shop system to update filters |
| Profile skipped three times | Mark the question as retired for that user |
| Email verified | Move user to the verified group |
| Address changed | Ask the customer to confirm by a message |
| User deleted | Remove copies in connected systems |
- Give each flow an owner and a short description.
- Make flows safe to run twice, because events sometimes repeat.
- Log flow failures and review them.
- Test flows with a sample user before using them on real customers.
Verify: Workflows availability, supported events and limits by edition should be checked in current documentation.
A caretaker who locks doors at night, switches off lights and logs the temperature saves everyone from remembering. The building stays tidy while people get on with their day.
24Using Hooks to Add Logic at Key Moments
Sometimes the standard rules are not enough, and a small piece of your own logic needs to run at a specific moment.
Okta supports hooks, which let it call your service at set points. One example is during registration, when your service can check a value or reject a bad one. For progressive profiling, hooks are useful for validation and enrichment.
- Validation: reject a postcode that does not match the country.
- Enrichment: fill a region from a postcode so the customer types less.
- Blocking: stop sign-ups using a disposable email domain.
- Tagging: mark the source campaign.
Remember that a hook runs in the middle of a customer’s action. If your service is slow or down, the customer waits or fails. Keep hook logic short, set sensible time limits, and decide in advance what happens on failure: let the person through, or stop them. For optional data, letting them through is usually kinder.
Verify: Which hook types exist, their time limits and failure behaviour are product details that change. Check current documentation.
A doorman can check a name on the guest list. If he is slow, the queue grows; if he is asleep, you must decide whether to let people in anyway.
25Events and Downstream Systems
A profile that nobody else sees is only half useful. The answer must travel to where it is used.
When a customer shares a shoe size, the product catalogue, the email system and the support desk may all want to know. Okta can send events when a profile changes, and automation can pass those events on.
| System | What it should receive | What it should not receive |
|---|---|---|
| Shop catalogue | Shoe size, activity | Phone number |
| Email platform | Name, email, consented preferences | Delivery address |
| Support desk | Name, email, order ids | Preferences used only for marketing |
| Analytics | Pseudonymous ids and counts | Names and emails |
- Send each system only what it needs.
- Choose one source of truth for each attribute. Avoid two-way copies that can disagree.
- Handle deletion: when a profile or answer is removed, tell downstream systems.
- Keep a map of who receives what.
If a downstream system keeps its own copy, set a refresh schedule. Stale copies are a quiet cause of embarrassing mistakes, like sending a boot offer in size 42 to a customer who changed to 38.
A newspaper prints the same story in many editions. A correction must reach every edition, not only the first.
26Validation, Formats and Clean Answers
A question is only useful if the answer can be trusted and compared.
- Use drop-downs and tick boxes for known sets such as sizes and activities.
- Check format for phone numbers, postcodes and dates, and tell people what is expected in plain words.
- Allow common variations, such as spaces in phone numbers, then store one tidy form.
- Offer Other with a text box, and review what people write there regularly. Popular answers become new choices.
- Never block someone for an optional field that fails a strict rule. Offer help instead.
- Avoid asking people to re-type what you already know.
| Bad question | Better question |
|---|---|
| Shoe size? | What size do you usually wear in boots? (drop-down, with a size guide link) |
| Activities? | Which of these do you do? (tick any) |
| Birthday? | Month and year only, if birthday offers are really offered |
| Phone? | Mobile number for delivery alerts (optional) |
Clean answers make segments accurate and reports honest. Messy answers make every later step weaker.
A form with tick boxes is like a multiple-choice quiz: quick to answer, easy to mark. A blank page is an essay no one wants to read.
27Skippable Versus Mandatory Prompts
Some questions must be answered. Most can wait. Knowing which is which protects trust.
| Type | When it is fair | Example |
|---|---|---|
| Mandatory | The action cannot proceed without it | Delivery address at checkout |
| Strongly encouraged | Protects the customer | Add a second sign-in factor after saving a card |
| Optional | Helps the shop, not required | Favourite trails |
- Mark optional fields clearly, so people know they may skip.
- Never make an optional field mandatory by stealth, such as a disabled Continue button.
- For strongly encouraged steps, allow a short delay but keep reminding.
- Record whether the person skipped, was never asked or answered. These are three different states.
Respecting a skip is itself a form of profiling. Someone who skips the phone request twice is telling you something. Listen.
A doctor must ask for your name. She may ask about your hobbies, but if you prefer not to say, she carries on with your treatment.
28Handling Skips, Dismissals and Silence
What happens after a person says Not now is where a programme earns or loses trust.
flowchart TD
A["Prompt shown"] --> B{"What did the user do?"}
B -->|"Answered"| C["Save and thank"]
B -->|"Not now"| D["Start cool-down timer"]
B -->|"Never ask again"| E["Mark question closed for this user"]
B -->|"Ignored the card"| F["Count as a soft skip"]
D --> G{"Skipped three times?"}
F --> G
G -->|"Yes"| E
G -->|"No"| H["Ask again after cool-down at a fitting moment"]
- Store the state of each question per user: unasked, asked, answered, skipped, closed.
- Honour Never ask again permanently for that purpose.
- Do not penalise people who skip. Their experience must remain full.
- Review the questions with the highest skip rate; they may be badly timed or badly worded.
If most people skip a question, the fault is rarely the people.
If you offer a friend a biscuit and they say no, you do not hold the tin under their nose every ten minutes.
29Customers Versus Employees: Two Different Worlds
The same idea behaves differently when the people are your customers and when they are your staff.
| Aspect | Customers | Employees |
|---|---|---|
| Source of truth | The customer, plus consent | HR system, usually |
| Tone | Invitation | Policy, with reasons |
| Optional data | Common | Rare; many fields are set by HR |
| Skipping | Freely allowed | Often not for required items |
| Main risk | Annoyance and privacy | Wrong data driving access |
| Changes | User edits own profile | Controlled by owners or HR |
For employees, much of the profile should come from the HR system, not from the person. Progressive profiling still has a place: asking staff to add a mobile number for security, confirm a manager, or enrol a sign-in factor. But attributes that decide what someone can access must never be self-edited.
- Separate self-service attributes from system-owned attributes.
- Prevent users from changing anything that grants access, such as department or role.
- Ask staff for what only they know: preferred name, pronouns they choose to share, emergency contact, with clear privacy limits.
Careful: An attribute that feeds an access rule is a security control. If a user can edit it, the user can grant themselves access.
A company badge is printed by the front desk, not by the employee. A name tag on the lunch table can be written by anyone.
30Segmentation and Personalisation From Partial Data
Partial profiles are the normal state, so every use of the data must cope with gaps.
A segment is a group of people who share something, such as “hikers who own boots in size 38.” With progressive profiling, only some customers will have answered. The segment is therefore smaller than the true group.
- Design campaigns that work without the answer and improve with it.
- Use behaviour you can see openly, such as purchases, alongside what the customer told you.
- Never imply you know what you do not: “For your size 38 feet” to someone who never told you is creepy.
- Treat unknown as a valid value in reports.
- Measure the lift from the answered group against the unanswered group, to prove the questions are worth asking.
| Profile state | Experience |
|---|---|
| Nothing beyond email | Show popular boots, plus a gentle size prompt |
| Shoe size known | Filter boots by size |
| Size and activity known | Recommend boots for that activity and size |
Personalisation is a reward for sharing. If sharing brings no visible benefit, people stop sharing.
A good baker remembers that you like seeded loaves, and when she does not know you yet, she still sells you a good loaf.
31Aligning With Marketing and Lifecycle Programmes
Profiling questions and marketing messages are the same conversation, and they should not argue.
- Plan a single calendar of customer touches: welcome, first order, review request, profile question. Collisions annoy.
- Make the profile question part of the lifecycle journey, not an extra.
- Share frequency caps across teams. A customer who received three offers should not also receive three profile cards.
- Agree on definitions: what counts as an active customer, a known customer, a complete profile.
- Use profile completeness as a measure of relationship quality, not as a target to force.
Welcome week
Thank, confirm email, show what the shop offers.
First order
Request delivery preferences.
After delivery
Ask for a review, then for activities.
Month three
Invite communication preferences.
Month six
Refresh sizes and addresses if orders show change.
When marketing and identity teams meet once a month to look at the same dashboard, most conflicts disappear.
An orchestra works because every player follows the same conductor. Solo enthusiasm from each section would be noise.
32Data Quality, Staleness and Re-Asking
Data begins to go wrong the moment it is saved.
People move house, change phone numbers, outgrow shoes and change interests. Every attribute has a shelf life. Decide how long each one stays fresh and what you do when it expires.
| Attribute | Shelf life | Refresh method |
|---|---|---|
| Delivery address | Until a delivery fails or an order ships elsewhere | Confirm at checkout |
| Phone | A year or two | Ask when sending an alert fails |
| Shoe size | A year for adults; shorter for children | Ask before a boot purchase |
| Interests | Months | Infer from purchases and confirm |
| Communication preferences | Until changed | Remind annually |
- Record a last confirmed date alongside important attributes.
- Re-ask using a confirm style: “Still size 38?” Not a blank form.
- Use failures as triggers: a bounced email should prompt a request for a new one.
- Retire values nobody has confirmed in a long time, if the purpose allows.
A refresh question should be shorter than the first question. The customer already did the work once.
A gardener walks the garden each season. Some plants need watering, some pruning, some replacing, but none can be left alone for years.
33Account Recovery and Profile Prompts
Recovery is where profile data stops being marketing and starts being protection.
When a customer forgets a password, the shop must decide how to let them back in safely. Recovery uses the phone, email or other methods stored in the profile. If those were never collected, or collected wrongly, recovery fails or becomes risky.
- Prompt for recovery methods early, after the first order or the first saved card.
- Offer at least two independent recovery methods where possible.
- Confirm recovery methods periodically: “Is this still your number?”
- Notify the customer on old contact details when a recovery method changes.
- Rate-limit and monitor recovery, because attackers use it.
Verify: How recovery methods are stored, which are allowed by policy and how changes are notified are Okta configuration details. Confirm against your policies and current documentation.
An account with no recovery method will end up in a support queue. Support staff then become the weakest link, so strengthen the front door instead.
A spare key hidden in a flower pot is only useful if you remember which pot, and only safe if strangers do not.
34Security Risks of Profile Prompts
Any place that asks for information can be copied by someone who wants to steal it.
- Phishing look-alikes: a fake “complete your profile” email that leads to a fake page. Defence: consistent wording, official domain, never ask for passwords or codes in prompts.
- Account takeover through attribute change: an attacker with a stolen session changes the recovery phone. Defence: require fresh strong sign-in for identity attributes and notify the old contact.
- Injection: a text field filled with harmful content. Defence: validate and escape every value wherever it is shown.
- Data scraping: bots filling registration with fake profiles. Defence: bot protection and rate limits.
- Over-sharing: profile data exposed to apps that do not need it. Defence: share only what is needed.
- Self-edited access attributes: a user changes a field that grants rights. Defence: lock those attributes.
Careful: Any attribute shown to staff or other customers, such as a display name, can be used to carry malicious text. Treat all answers as untrusted input.
Teach customers a simple rule: the shop will never ask for a password or a one-time code in a profile card.
A bank prints on every letter: we will never ask for your PIN. The sentence is cheap, and it stops many thefts.
35Access Decisions Based on Profile Completeness
Some teams are tempted to lock features until the profile is complete. Think carefully before doing so.
| Approach | Result |
|---|---|
| Block until complete | Fast data, high drop-off, resentment |
| Nudge with benefits | Slower data, willing customers |
| Gate only what truly needs it | Fair; protects both sides |
- Gate features only when the missing data is truly required: a delivery needs an address.
- Do not gate by optional marketing data.
- Where data confirms eligibility, such as age for age-limited products, explain clearly and offer a route.
- Avoid using self-asserted profile values as the only basis for access decisions.
A rule such as “profile complete means premium discounts” sounds harmless but teaches people to fill in rubbish. Better: “answer to see boots that fit you,” which rewards accurate answers.
A library does not refuse to lend you a book because you left your hobbies blank. It does need your address to lend an expensive one.
36Accessibility and Language
A prompt that some people cannot use is a prompt that excludes them.
- Label each field in words, not only with an icon or colour.
- Support keyboard and screen reader use.
- Keep contrast strong and text sizes adjustable.
- Do not rely on time-limited prompts that vanish quickly.
- Write in plain language, avoiding slang and cultural assumptions.
- Offer translations for each prompt and check they mean the same thing.
- Respect local formats for dates, addresses and phone numbers.
- Do not assume a binary choice for gender or a fixed pattern for names; ask only if you truly need it, and allow open answers.
Test prompts with people who use assistive technology. One short session reveals more than a checklist.
A building with only stairs is built for some visitors only. A ramp costs little and invites everyone.
37Testing the Flow Before Launch
A profile prompt is a small piece of software; test it like one.
| Test | Question | Pass looks like |
|---|---|---|
| Happy path | Does a normal answer save and appear everywhere? | Value in Okta and downstream |
| Skip path | Does Not now start the cool-down? | No repeat inside the window |
| Never ask | Is the question closed forever? | No repeat |
| Invalid input | Is a bad value refused politely? | Clear message |
| Double submit | Is the data safe when sent twice? | One saved value |
| Slow service | What if a hook or service is slow? | Customer not trapped |
| Language | Does every language show properly? | Same meaning |
| Accessibility | Can it be used with keyboard and screen reader? | Yes |
| Deletion | Does removal reach all copies? | Gone everywhere |
- Use a test tenant or preview environment and sample users.
- Test with users in different states: new, returning, many skips, no email.
- Run a pilot with a small share of real customers before the full launch.
Verify: Whether you have a separate preview or test environment, and how settings are moved between environments, depends on your Okta plan and process.
A theatre holds a rehearsal before opening night. Mistakes found there cost nothing.
38Experimentation: Learning What Works
You will not guess the best question order. Test it.
- Change one thing at a time: the wording, the timing or the placement.
- Run A and B versions to similar groups at the same time.
- Measure answer rate, skip rate, drop-off and complaints.
- Run long enough to include weekday and weekend behaviour.
- Stop a test early if it harms trust, for instance if complaints rise.
| Test | Version A | Version B |
|---|---|---|
| Wording | Tell us your size | Find boots that fit you |
| Timing | After second view | After add to basket |
| Placement | Inline card | Banner at top |
Be honest about what the results mean. A rise in answer rate with a rise in nonsense answers is not a win. Check quality as well as quantity.
Careful: Do not test ways to trick people into sharing more. Test ways to make the ask clearer and better timed.
A cook tastes the soup with a little more salt in one spoon and a little less in another. Small comparisons beat guesses.
39Monitoring, Logging and Metrics
What you do not measure you cannot improve, and what you do not log you cannot defend.
| Metric | What it tells you |
|---|---|
| Prompt shown | How often you ask |
| Answer rate | Whether the question is wanted |
| Skip and dismiss rate | Whether timing or wording is off |
| Profile completeness by attribute | How rich the profile is, where it matters |
| Drop-off at registration | Whether the first step is short enough |
| Time to first order | Whether friction is hurting sales |
| Complaints and unsubscribes | Whether trust is slipping |
| Data freshness | Share of key values confirmed in the last year |
| Errors in saves and flows | Whether the plumbing works |
- Use one dashboard shared by identity, product and marketing.
- Log who changed which attribute, when, and from which surface, for audit and for dispute handling.
- Alert on sudden spikes in profile changes, which can indicate abuse or a bug.
- Review the numbers monthly, and change a rule only on evidence.
Verify: Which Okta events record profile changes, how long logs are kept and how they can be streamed to other tools depend on your plan. Confirm in current documentation.
A ship’s captain reads the compass, the depth and the weather every hour, not only when a storm arrives.
40Failure Scenarios and Recovery
Things will go wrong. Plan the response before the day it happens.
flowchart TD
A["A profile prompt misbehaves"] --> B{"What kind of failure?"}
B -->|"Asks too often"| C["Pause the rule and check caps"]
B -->|"Saves wrong value"| D["Stop the flow, find affected users"]
B -->|"Service slow or down"| E["Let customers continue, skip the prompt"]
B -->|"Data sent to wrong system"| F["Stop sync, notify privacy team"]
C --> G["Fix, test, resume"]
D --> G
E --> G
F --> G
G --> H["Write a short review and update the standard"]
| Failure | Effect | Recovery |
|---|---|---|
| Rule loop asks same question every login | Annoyance, complaints | Turn rule off, fix the cool-down, apologise if needed |
| Bug writes size in wrong field | Wrong recommendations | Find affected users, restore from logs or ask again |
| Hook provider down at registration | Sign-ups fail | Fail open for optional checks |
| Sync failure to email platform | Stale preferences | Retry, then reconcile |
| Consent record missing | Cannot prove permission | Stop using the data until re-consented |
| Fake accounts flood sign-up | Polluted profiles | Rate limits, bot checks, clean-up |
Keep a kill switch for every prompt rule. Being able to stop a misbehaving question in one minute is worth more than any amount of design polish.
A fire drill is boring until the day it is not. The people who practised walk out calmly.
41Performance, Scale and Limits
A design that works for a thousand customers may fail for a million.
- Check rate limits on the profile and user APIs. Bulk updates and busy sale days can reach them.
- Prefer event-driven updates to repeated polling.
- Avoid heavy logic in the sign-in path. Do rich work after sign-in.
- Plan for peak days, such as big sales, when sign-ups and profile saves surge.
- Know the limits on attribute counts, group sizes and automation runs for your edition.
- Cache read-only profile data in the app for short periods, with care for freshness.
| Load | Question to ask |
|---|---|
| Sign-ups per minute at peak | Can registration and hooks keep up? |
| Profile saves per minute | Do downstream flows queue or fail? |
| Daily flow runs | Within edition limits? |
| Log volume | Can your log store keep it? |
Verify: Rate limits, quotas and attribute limits are published by Okta and vary by product and plan. Confirm numbers for your tenant before sizing.
Run a load test before the first big sale, not during it.
A lift works well with four people and stops at ten. Check the weight limit before the party.
42Costs, Effort and the Business Case
Someone will ask whether this is worth doing. Prepare a plain answer.
| Cost | Notes |
|---|---|
| Design and research | Interviews, journey maps, wording |
| Build | Rules, prompts, automation, hooks |
| Testing and accessibility | Not optional |
| Run | Monitoring, tuning, support |
| Licences | Depends on products and editions in use |
| Privacy review | Legal and data protection time |
| Benefit | How to measure |
|---|---|
| More sign-ups completed | Registration conversion |
| Richer, truer data | Completeness and freshness |
| Better personalisation | Click and order lift for answered group |
| Fewer recovery tickets | Support volume |
| Lower risk | Less unused data held |
Use cautious, illustrative numbers when you present. For instance, if registration conversion rises from 39 percent to 62 percent on 100,000 monthly visitors, that is 23,000 more accounts a month. If a tenth of them order once at an average of 80 dollars, that is 184,000 dollars in extra revenue a month. Replace these with your own measured figures.
Be fair in the case: include effort and risk, not only the upside.
A new oven costs money and space. You buy it if the bread you will bake pays for it and tastes better.
43Advantages, Disadvantages and Trade-offs
No design is perfect. Say plainly what you gain and what you pay.
Advantages
- Higher sign-up completion
- More honest, relevant answers
- Better trust, because asks are timed and explained
- Fresher data over time
- Supports security steps at the right moment
- Reduces unused data
Disadvantages
- More design and logic than one big form
- Profiles are partial for a long time
- Reports must handle gaps
- Risk of over-asking if rules are weak
- Needs cross-team coordination
- Prompts add surfaces attackers can imitate
| Trade-off | Choose X when | Choose Y when |
|---|---|---|
| Fewer asks vs richer data | Trust is fragile | Value is clear and visible |
| Own rules vs platform features | Needs are unusual | Standard features suffice |
| Speed vs checking | Low-risk data | Identity data |
State the downsides when you propose the project. Leaders trust plans that name their own risks.
A bicycle is cheaper and quieter than a car, and slower on a long trip. The honest answer is it depends where you are going.
44Design Patterns and Anti-Patterns
Patterns are habits worth repeating. Anti-patterns are traps others have already fallen into.
What it looks like
Show a benefit (a size filter) the moment the answer is given, and explain the benefit on the prompt.
Why it works
Customers see answering pays off, so answer rates and quality rise.
What it looks like
A single question tied to the customer’s current action, with a clear reason and an easy Not now.
Why it works
It feels like help rather than a form, and caps stop fatigue.
What it looks like
Each question per user is stored as unasked, asked, answered, skipped or closed.
Why it works
Rules can respect choices, and reports show real behaviour.
What it looks like
Splitting the seventeen-field form into seventeen pop-ups on the first day.
Why it hurts
Staging only helps when questions are spread over time and tied to need. Spreading across one session is the same pain in smaller pieces.
What it looks like
Asking the same question at every sign-in until the customer gives in.
Why it hurts
People learn to tap Not now without reading, then learn to dislike you.
What it looks like
Letting users edit a department or role field that drives permissions.
Why it hurts
A self-edited field that grants access is a gift to attackers.
What it looks like
Using shoe size given for filtering to feed an advertising partner.
Why it hurts
It breaks the purpose promised and, in many places, the law.
45Common Myths About Progressive Profiling
Some ideas sound sensible but lead teams astray.
| Myth | Reality |
|---|---|
| More data always means better personalisation | Accurate, used data helps. Unused data is a cost and a risk. |
| Staged questions always raise conversion | They help only when each step is short, timed and explained. |
| It is a feature you switch on | It is a design made from several parts and decisions. |
| Skipping means the customer is uninterested | It may mean the timing or wording was wrong. |
| Required fields guarantee good data | They guarantee something is typed, not that it is true. |
| Profile prompts belong on the sign-in page | Preference questions belong in the experience; identity steps belong at sign-in. |
| Privacy law forbids asking later | Law cares about purpose, consent and minimisation, not timing as such. |
| Once collected, data stays correct | Everything ages. |
| Marketing owns the profile | Identity, product, marketing and privacy share it. |
| Employees and customers can be profiled the same way | Access attributes and consent rules differ sharply. |
Printing this table and pinning it where the team works is a cheap way to stop the same arguments returning.
Old sailors’ tales about the weather can be charming and wrong. Checking the barometer takes a minute.
46Best Practices Checklist
A short list to read before every launch and every quarterly review.
- Registration asks only for what the account needs to work.
- Every other attribute has a purpose, an owner, a retention rule and a question.
- Each question has a trigger, a reason shown to the user and a benefit.
- Frequency caps and cool-downs are written down and tested.
- Skips and closes are honoured and stored per question.
- Identity attributes are verified, and changes need fresh strong sign-in.
- Access-granting attributes are not editable by users.
- Prompts never ask for passwords or one-time codes.
- Consent and purpose are recorded; new purposes need new consent.
- Downstream systems receive only what they need and are told of deletions.
- Prompts are accessible, translated and tested with real users.
- A kill switch exists for each rule.
- Metrics are shared and reviewed monthly.
- Unused attributes are removed every quarter.
- A privacy or legal review has seen the design.
A pilot reads a checklist before every flight, however many hours she has flown. The list is short because it matters.
47A Design Exercise: Maple Harbour’s Programme From Start to Finish
Let us solve the problem from the start of this guide, step by step.
List every field
Seventeen fields on the old form, each with who uses it.
Sort into groups
Two required (email, password), four at first need, seven progressive, four never used.
Remove the unused
Birthday, company, how you heard of us and a second phone number go.
Choose triggers
Name and address at checkout, shoe size after a second boot view, trails after the first delivery, communication preferences at day thirty.
Write the prompts
One sentence of reason, one clear benefit, Not now and Never ask again.
Set the limits
One ask per visit, three optional asks a month, fourteen-day cool-down, retire after three skips.
Wire it up
Profile store holds answers, rules in one place, Workflows updates the shop and email systems.
Secure and test
Verified email, recovery phone after first saved card, locked access attributes, accessibility and load tests.
Launch to ten percent
Watch answer rate, skips and complaints for two weeks, then widen.
Review monthly
Retire weak questions, add new ones with evidence.
flowchart LR
R["Short registration"] --> V["Verified email"]
V --> CH["Checkout: name and address"]
CH --> BV["Boot views: shoe size"]
BV --> DL["Delivered: favourite trails"]
DL --> D30["Day thirty: communication preferences"]
CH --> SEC["First saved card: recovery phone and second factor"]
D30 --> REF["Yearly refresh: confirm key values"]
Six months later the shop sees registration completion rise, a richer profile for active customers, and fewer password-recovery tickets. The shop also holds less data than before, because four fields were retired.
Redesigning a kitchen starts with taking everything out, deciding what is used every day, and putting only that within reach.
48Real-World Scenarios and Worked Numbers
Numbers make the stakes visible. All figures are illustrative and meant to show the thinking, not to predict your results.
Scenario 1: The Long Form Versus the Short Form
With 100,000 visitors a month reaching the sign-up page, a seventeen-field form completes for 39 percent, giving 39,000 accounts. A two-field form completing for 62 percent gives 62,000 accounts. The extra 23,000 accounts will have little data at first, but each can be enriched later.
Scenario 2: The Enrichment Over Time
Of 62,000 new accounts, suppose 40 percent place an order within a month, and 55 percent of those answer the shoe-size card. That is 13,640 verified-useful sizes, answered by people who wanted them used. The old form had collected 39,000 sizes, but perhaps a third were nonsense.
Scenario 3: The Cost of a Nag
If a bad rule asks the same question at every sign-in for a week, and 5 percent of 20,000 weekly active users unsubscribe in annoyance, that is 1,000 customers lost. A cool-down and a kill switch would have prevented it.
A farmer counts the seeds sown and the shoots that come up. The ratio shows whether the field is worth the work.
49A Maturity Path and a 90-Day Plan
You do not need to solve everything at once. Small steps beat grand promises.
| Level | What it looks like |
|---|---|
| 1. Ad hoc | Long form, scattered questions, no records of consent |
| 2. Trimmed | Registration shortened; every attribute has an owner |
| 3. Staged | Triggers, caps and cool-downs for key questions |
| 4. Connected | Answers flow to shop, email and support; skips honoured |
| 5. Governed | Metrics, experiments, privacy reviews, kill switches, regular clean-up |
The first 90 days
Days 1 to 20: Discover
List fields, who uses them, completion rates and complaints.
Days 21 to 45: Trim and design
Cut unused fields, sort the rest, write prompts and caps.
Days 46 to 70: Build and pilot
Implement for two or three questions and test with a small group.
Days 71 to 90: Launch and measure
Widen, start the dashboard, plan the next questions.
Learning to cook starts with scrambled eggs, not a banquet. Confidence comes from repeating small successes.
50A Troubleshooting Playbook
When someone says “it keeps asking me” or “my size was wrong,” follow the same steps each time.
| Symptom | Likely cause | First check |
|---|---|---|
| Same question keeps returning | Skip state not saved | Question state record for that user |
| Prompt never appears | Trigger never met, or rule paused | Trigger conditions and rule status |
| Answer saved but not used | Downstream sync failed | Flow run history |
| Wrong value shown | Two sources overwriting each other | Source of truth for the attribute |
| Duplicate accounts | Unverified match or different emails | Linking rules |
| Registration fails | Hook slow or rejecting valid input | Hook logs and time limits |
| Complaints rising | Caps too loose or wording confusing | Asks per user per month |
| Recovery fails | Phone missing or unverified | Recovery method state |
- State the exact problem: who, which question, which time.
- Look at the user’s question states and the log of changes.
- Compare Okta’s value with the downstream value.
- Fix the case, then the cause, then check for others with the same pattern.
A mechanic listens, checks fuel, then spark, then air. A fixed routine finds the fault with less luck.
51A Quick Decision Guide: Should We Ask This Question?
Before adding any new profile question, run through the same short list.
flowchart TD
A["Proposal: ask a new question"] --> B{"Will we use the answer within a few weeks?"}
B -->|"No"| C["Do not ask"]
B -->|"Yes"| D{"Is it needed for identity or safety?"}
D -->|"Yes"| E["Ask at the first sensible moment, verify, explain"]
D -->|"No"| F{"Can we show a benefit straight away?"}
F -->|"No"| G["Wait until we can"]
F -->|"Yes"| H{"Is it sensitive?"}
H -->|"Yes"| I["Optional, clear purpose, privacy review"]
H -->|"No"| J["Optional card at a natural trigger with caps"]
- If you cannot name the person who will use the answer, do not ask.
- If you can get the fact from a source the customer already trusts, such as a verified delivery, do not ask.
- If the answer will change over time, plan how to refresh it.
Before buying another tool for the shed, ask whether you already own one that does the job.
52Small Details That Decide Success
Most programmes stumble on small details nobody wrote down.
Wording
“Help us fit you” works better than “Complete your profile.”
Button names
Say what happens: Save my size, Not now, Never ask.
Timing of day
Avoid prompting during checkout payment steps.
Saved confirmation
A quiet thank you tells people the answer was received.
Edit access
Make it easy to see and change answers in a profile page.
Time zones
Cool-down timers must use one standard time.
Child accounts
Do not ask children for data. Check local rules for age-limited services.
Test accounts
Mark test users so they do not appear in reports.
Vendor updates
Re-test prompts after any change to sign-in pages or policies.
A restaurant is judged by the warmth of the napkin and the speed of the water. Little things are what guests remember.
53Common Mistakes in the First Year
Teams repeat the same early errors. Knowing them is a cheap kind of experience.
| Mistake | What it causes | Cure |
|---|---|---|
| Starting with tools, not a field audit | Prompts for data nobody uses | Audit first |
| Doing everything at once | Thin quality, tired team | Start with two or three questions |
| No cool-down | Nagging | Caps and timers from day one |
| Ignoring recovery data | Support queues and risky resets | Prompt for recovery early |
| Letting users edit access fields | Self-granted rights | Lock system-owned attributes |
| No kill switch | Slow reaction to a bad rule | Build one per rule |
| Measuring completion only | Rubbish answers go unnoticed | Measure quality, freshness and complaints |
| Skipping privacy review | Late rework | Involve privacy at design |
New drivers repeat the same few errors: following too close, forgetting mirrors. Hearing about them shortens the learning.
54Getting Colleagues on Board: Change Management
A careful design that people work around protects nothing. Colleagues must see the point and find the new way workable.
- Start with a story. A shop that lost sixty-one of every hundred visitors is more persuasive than any theory.
- Show a prototype. One real prompt on a phone beats ten slides.
- Involve marketing, product, support and privacy early. People defend what they helped design.
- Share the dashboard. Everyone sees the same numbers.
- Agree on caps together. Marketing may want more; the shared limit protects everyone.
- Train support. Agents should know what customers see and how to change answers.
- Celebrate trimming. Removing a field is a win.
When a town opens a new bridge, it also puts up signs and closes the old crossing. A road no one knows about stays empty.
55Progressive Profiling and Zero Trust
Zero trust means never assuming a request is safe just because of who sends it. Profile prompts are one place to practise that idea.
A profile prompt asks the user to hand over or change information. Each time, the system should still ask: who is this, is the session healthy, is the change normal for this person, and how much harm could it do? A change to a favourite colour needs little checking. A change to a recovery phone number needs a great deal.
| Change | Risk | Check |
|---|---|---|
| Preference such as trails | Low | Normal session |
| Delivery address | Medium | Normal session, confirmation message to the old contact |
| Recovery phone or email | High | Fresh strong sign-in and notice to old contact |
| Sign-in factor | High | Fresh strong sign-in, wait period for new factors |
- Treat every answer as untrusted input until validated.
- Re-check the session before identity changes, even in the middle of a long visit.
- Let risk, not habit, decide how strong the check is.
- Record every change so odd patterns can be seen later.
A bank clerk will change your mailing address on a quick check, but will want your passport before changing the name on the account.
56Owners and Stewards: Who Looks After Each Attribute
Every attribute needs a person who answers for it. Without one, the profile becomes a junk drawer.
Give each attribute a steward: a named person or team who knows why it exists, how it is collected, where it goes and when it is deleted. Stewards do not do all the work; they make the decisions.
| Role | Duty |
|---|---|
| Attribute steward | Purpose, quality, retention, requests to change |
| Identity team | Platform, policies, security of the profile store |
| Product owner | Prompts and customer experience |
| Marketing lead | Uses of preference data and campaigns |
| Privacy officer | Consent, purpose and legal questions |
| Support lead | Handling customer edits and complaints |
- Keep a register of attributes with steward names and review dates.
- Hold a quarterly review where each steward defends why the attribute should stay.
- When a steward leaves, reassign before the leaving date.
A building has a caretaker for each floor. When something breaks, someone knows whose it is.
57Documentation That Survives Staff Changes
People move on. The programme must keep working without them.
- An attribute register: name, type, purpose, steward, retention, who reads it.
- A trigger catalogue: each question, its trigger, its cap and its reason text.
- A decision log: short notes on why choices were made, with dates.
- Runbooks: steps for pausing a rule, fixing wrong data and handling deletion requests.
- A flow map: which automations touch the profile, with owners and last test dates.
- A review calendar: dates for metric reviews, clean-ups and privacy checks.
Test the documents. Ask a new colleague to follow a runbook while you watch silently. Where they stumble, the document is wrong, not the colleague.
Keep documents short and in one place. A long manual nobody reads is worse than three honest pages.
A lighthouse keeper leaves a logbook for the next keeper. The light stays on because the knowledge is handed over with the keys.
58Retiring Attributes, Deleting Data and Honouring Requests
A good programme knows when to stop holding something.
Retire a question
Stop asking. Leave existing answers for now if the purpose still holds.
Decide on old values
Delete, archive or keep, according to purpose and rules.
Tell downstream systems
Remove copies in the shop, email and support tools.
Update documents
Mark the attribute retired in the register.
Confirm
Check that nothing still reads it.
When a customer asks to see or delete their data, the profile store should make that easy. Know in advance which systems hold copies and who is responsible for each. A request that takes weeks because nobody knows where the data lives is a sign of a missing map.
- Offer a self-service page where customers see and edit what you hold.
- Set automatic expiry for data with a short useful life.
- Keep logs of deletions, not the deleted data itself.
- Test deletion by following one test customer through every system.
Cleaning out a cupboard is not a punishment. It makes room for what you use and makes it easy to find.
59Partners, Agencies and Third-Party Tools
Customer data rarely stays in one house.
Agencies run campaigns, vendors host forms, partners sell your products. Each may want profile data. Each is a place where the promise you made to the customer can break.
- Share the minimum, and only for the purpose agreed.
- Use written agreements that say what the partner may do with the data and what happens at the end.
- Prefer pseudonymous identifiers where a name is not needed.
- Do not let partners run their own profile prompts under your brand without review.
- Ask partners to delete data when the contract ends, and ask for confirmation.
- Review the list of partners yearly.
| Partner | Needs | Should not get |
|---|---|---|
| Delivery firm | Name, address, phone for alerts | Preferences |
| Email agency | Name, email, consented preferences | Address |
| Analytics tool | Pseudonymous id, event counts | Name, email |
When you lend your car, you say where it can go and when it must be back. A friend who passes it to a stranger has broken more than a rule.
60Keeping Up With Okta and Platform Changes
Products change. A design that was right last year can quietly become incomplete.
- Read release notes on a schedule. Thirty minutes a month is usually enough.
- Test changes in a preview environment before they reach customers.
- Re-test prompts and sign-in pages after updates to branding, widgets or policies.
- Keep a list of assumptions, for example “optional fields can be skipped,” and retest them when a change touches one.
- Watch for renamed products and edition changes, which may affect what you can use.
- Plan time each quarter for small upgrades rather than one big project every few years.
Write down which features each part of your design depends on. When Okta announces a change to one of them, you will know within minutes whether it matters.
A ship’s navigator checks the chart against the sea every watch. The coast looks the same, but sandbanks move.
61A Week in the Life of the Programme
A concrete picture shows how the pieces behave together.
Monday
The dashboard shows the shoe-size card answered by 52 percent. The product owner notes a drop on the Android app and opens a ticket.
Tuesday
Support reports a customer who keeps seeing the trails card. The identity engineer finds the skip state was not saved on one surface and fixes it.
Wednesday
Marketing asks to add a birthday question. The steward asks who will use it. No one can answer, so the request is declined.
Thursday
A workflow failure sends a size to the email platform twice. The flow is already safe to repeat, so there is no harm, and the cause is noted.
Friday
The privacy officer reviews a new partner request and agrees to share only name and delivery address.
Nothing dramatic happens. That is the sign of a healthy programme: small problems found early, decisions made by named people, and customers who barely notice.
A well-run kitchen sounds calm during service because the shouting happened in the rehearsal.
62Supporting the Support Team
When a customer is puzzled by a prompt, the first person they meet is a support agent.
Agents need to see what the customer saw. Give them a plain view of which questions the customer has answered, skipped or closed, with dates, and a simple way to help the customer change an answer. Do not give agents more access to private fields than their job needs.
- Write a one-page guide with screenshots of every prompt.
- Give agents a script for common questions: why am I asked this, how do I stop it, how do I delete my data.
- Let agents pause prompts for one customer who is upset, with a record of why.
- Require identity checks before an agent edits any recovery detail.
- Pass patterns of complaints to the product owner every week.
Agents also notice problems first. A rise in calls about one card is a free early warning, so make it easy for them to report it.
The person at the information desk hears every confusion in the building first. Listen to what they say.
63Peak Days, Sales and Seasonal Care
The busiest days are the worst days to experiment.
- Freeze prompt changes before big sales, and pause low-value cards during the rush.
- Keep the checkout free of optional questions on peak days.
- Load test registration and profile saves a few weeks ahead.
- Plan extra monitoring and a named person on call.
- After the sale, resume prompts gently. A customer who just bought is a good moment for a delivery preference, not a long survey.
Quiet periods are the best time to try new questions, because a mistake affects fewer people and you have the attention to watch the results.
A farmer does not rebuild the barn at harvest. Repairs happen in winter.
64Glossary of Terms
Quick plain-language meanings for the words used in this guide.
| Term | Meaning |
|---|---|
| Attribute | One fact stored in a profile |
| Cool-down | A waiting period before asking again |
| Consent | Clear agreement to a stated use of data |
| Data minimisation | Collecting only what is needed |
| Frequency cap | A limit on how often you ask |
| Hook | A point where Okta calls your own logic |
| Kill switch | A way to stop a rule quickly |
| Profile | The facts held about a person |
| Progressive profiling | Collecting profile data in steps over time |
| Prompt | The screen or card that asks a question |
| Purpose limitation | Using data only for the stated purpose |
| Registration | The first creation of an account |
| Self-asserted data | A fact typed by the user and not checked |
| Source of truth | The one place a fact is held authoritatively |
| Trigger | The event that makes a question sensible |
| Universal directory | Okta’s central user profile store |
| Verified data | A fact the system has proven |
| Workflows | Okta’s automation tool for reacting to events |
A traveller’s phrasebook does not make you fluent but stops misunderstandings at the market.
65Frequently Asked Questions
Short answers to questions that come up in almost every project.
A good help desk answers the same ten questions every day with the same calm sentences. Writing them down keeps a team consistent.
66Summary and Key Takeaways
Progressive profiling replaces the long first form with a conversation: small, timed, honest and useful.
Key Takeaways
- Ask less, earlier. Registration should collect only what the account needs.
- Ask at the right moment. Tie each question to something the user is doing, with a reason and a benefit.
- Respect the answer Not now. Keep a state per question, use cool-downs and retire what people decline.
- Protect identity data. Verify email and phone, lock access attributes and never ask for passwords or codes.
- Minimise and explain. Collect only what you will use, record consent and honour the purpose you stated.
- Keep one source of truth. Store answers in Okta, send others only what they need and refresh data as it ages.
- Measure and review. Share a dashboard, test changes, keep a kill switch and trim unused fields every quarter.