Import Safeguards in Okta
The circuit breaker that stops one bad import from quietly locking thousands of people out of their jobs. A complete guide to how safeguards work, how to tune them, how to secure and monitor them, and what to do when one trips.
It is early on a Monday morning. A company with twelve thousand employees runs its usual scheduled import, the routine job that copies the list of people from the company directory into Okta. Nobody is watching, because this job has run smoothly every night for years. But over the weekend, someone changed a setting on the directory server, and the server now answers every request with an empty list. Okta asks, “Who works here?” The directory replies, “Nobody.” Okta, doing exactly what it was designed to do, concludes that every employee has left the company.
Within minutes, thousands of accounts could be deactivated. People would arrive at their desks and find that email, chat, payroll, and the building badge system all refuse to let them in. Support lines would melt down. Nothing was hacked. A computer simply believed a wrong answer and acted on it with full confidence.
Import safeguards exist to stop exactly this story. They are a safety check inside Okta that looks at the size of the changes an import is about to make and says, “Wait. That is far more than normal. Let a human look at this first.” This guide explains the idea from the very beginning. We will cover what an import is, what the safeguard watches, how the decision is made, how to set it up sensibly, how it fits with security and monitoring, which mistakes teams make, and what to do at two in the morning when a safeguard trips.
1What Are Import Safeguards?
A plain-language definition, a simple picture, and the one sentence worth remembering.
Okta is an identity platform. In simple words, it is the service that keeps the official list of who your people are, which tools each person may open, and how they prove it is really them. That list is stored in a place called Universal Directory. But your company probably did not type thousands of names into Okta by hand. Names usually come from somewhere else, such as Microsoft Active Directory, an LDAP directory, or a human resources system like Workday. Okta copies them in using a process called an import.
An import is Okta reading a list from another system and then updating its own records to match. New people on the list are created in Okta. Changed details are updated. And, importantly, people who are no longer on the list can be deactivated or removed from the app that the import belongs to. That last part is powerful, and powerful things need brakes.
Import safeguards are those brakes. They are a protective setting that compares the size of the changes an import is about to make against a limit, called a threshold. If the changes stay below the limit, the import carries on as normal. If the changes go above the limit, Okta pauses the import, tells the administrators, and waits for a person to decide whether to continue or cancel.
Imagine a nightclub where the bouncer works from a guest list. One evening, the person who prints the list accidentally hands over a blank page. A careless bouncer would throw out every guest because “nobody is on the list.” A smart bouncer would notice that the list has gone from three hundred names to zero and call the manager before doing anything. The safeguard is that smart bouncer. It does not refuse to follow the list. It simply refuses to follow a list that looks suspiciously different from yesterday’s without a second opinion.
What it is not
Import safeguards are not antivirus software, a firewall, or a way to detect hackers. They do not judge whether a single user’s data is correct. They look at the volume of change, not the meaning of each change. Think of them as a seatbelt rather than a steering wheel. They do nothing during a normal drive and matter enormously in the one moment something goes wrong.
Import safeguards turn a possible mass-deactivation disaster into a small, reviewable pause that a human can resolve in minutes.
2The Problem: When an Import Goes Wrong
To feel why this feature matters, look at the ways a perfectly healthy import can turn harmful.
Automation is wonderful because it never gets tired. It is also dangerous for the same reason: it never gets suspicious. A script that runs every night does exactly what it was told, even on the one night when the information it receives is wrong. Imports have several classic ways of receiving wrong information, and none of them involve a villain.
Cause 1: The source returns an empty or partial list
A directory server restarts, a network link drops halfway through, or a search filter is edited by mistake. The source then answers with nothing, or with only a slice of the real list. Okta sees many people missing and treats them as departures. This is the most common story and the one in our opening.
Cause 2: A configuration change at the source
Someone moves a group of employees into a different folder, called an organizational unit, that the import is not set to read. Or an administrator renames a field that the import used for matching. From Okta’s point of view, those people vanished, even though they are still sitting happily at their desks.
Cause 3: A broken connector
Okta often talks to on-premises directories through a small program called an agent that runs on a server inside your company network. If the agent loses its permissions, its password expires, or its host machine is rebuilt, its answers can become incomplete in confusing ways.
Cause 4: Human error in a bulk edit
An administrator runs a bulk update in the source system to fix one department and accidentally selects too many rows. The import faithfully copies the mistake into Okta.
Cause 5: A real but unexpected event
Sometimes the data is correct. A company really does shrink a division, or sells a subsidiary, and hundreds of people really should lose access. Here the safeguard is not catching a bug. It is asking for a deliberate confirmation of a very big decision, which is also valuable.
Saturday: a quiet change
An engineer edits a directory search filter during maintenance. It looks harmless and nobody tests the nightly import afterward.
Sunday night: the import runs
The import reads the source and gets back almost no people. Without a safeguard, Okta starts deactivating the “missing” users.
Monday morning: the damage lands
Thousands of people cannot sign in. Downstream apps, which trust Okta, begin removing their licenses and data access too.
Monday afternoon: slow recovery
Accounts must be reactivated, group memberships rebuilt, and trust restored. Even when it works, it takes hours or days.
Now replay the same timeline with a safeguard. On Sunday night the import reads the source, sees that a huge share of users would be removed, and pauses. An administrator receives a notice, checks the source, spots the filter mistake, cancels the import, and fixes the filter. By Monday morning nobody noticed that anything happened. That difference, from a company-wide outage to a quiet note in a ticket queue, is the entire value of the feature.
3Core Concepts and Vocabulary
Eight terms unlock the rest of the topic. Each one is explained with what it is, why it exists, and where you will meet it.
Source System
The place a list of people comes from, such as Active Directory, LDAP, or an HR system. It is the “master copy” for that data. Okta only reads from it during an import.
Import
The act of Okta reading the source’s list and updating its own records to match. Imports can run on a schedule or be started by an administrator.
Full Import
An import that reads the whole list. Because Okta sees everybody, it can notice who is missing. This is where mass-removal risk lives.
Incremental Import
An import that reads only what changed since the last time. It is faster, but it is a different kind of operation from a full import.
Matching
The step where Okta decides whether an incoming person is the same as someone it already knows, usually by comparing a field such as username or email.
Deactivation or Unassignment
The removal side of an import. A person who disappears from the source may be deactivated in Okta or unassigned from the app, depending on how the integration is set up.
Threshold
The limit that separates normal change from suspicious change. It is often expressed as a share of the user population, and in some setups as a count of users.
Review and Decision
When a threshold is crossed, the import waits. An authorized administrator reviews the situation and chooses to let it proceed or to cancel it.
The two directions of an import
Every import does two kinds of work. The first is adding and updating: people who appear in the source are created or refreshed in Okta. The second is removing: people who no longer appear are deactivated or unassigned. Adding mistakes are usually easy to undo. A hundred extra accounts can be deleted. Removing mistakes are harsh, because people lose access immediately, and downstream systems react to that loss. For that reason safeguards care most about the removing direction.
Why percentages instead of fixed numbers
A company with fifty users and a company with fifty thousand users should not share the same definition of “too many removals.” Losing ten people is a disaster for the first and a normal week for the second. Percentages scale with size, which is why they are the usual way to describe a threshold. Where a count-based option is available, it is useful for very small or very stable populations.
Consider a school teacher taking attendance. If two children are absent from a class of thirty, that is a normal day. If twenty-five children are absent, the teacher does not assume that twenty-five families quit school overnight. The teacher suspects a bus breakdown, a snowstorm, or a mistake in the list. The threshold is the teacher’s gut feeling about what counts as normal, written down as a rule.
Which integrations support safeguards, where the setting sits in the Admin Console, and which threshold styles are offered can differ between Okta releases and plans. Treat this guide as the mental model, and confirm the exact screens and options in the current Okta documentation for your org.
4How an Okta Import Works
Before we add the brake, let us watch the car move. Here is an ordinary import from start to finish.
Understanding safeguards is easy once you can picture a normal import. The steps below describe a typical full import. Real products add detail, but the shape stays the same.
Trigger
A schedule fires, or an administrator clicks the button to import now. Many organizations run a full import once a day and rely on faster incremental updates in between.
Read the source
Okta asks the source system for its users and groups. For on-premises sources, the request travels through an agent. Large lists arrive in pages, a few hundred at a time, like a book delivered chapter by chapter.
Match
For each incoming person, Okta uses matching rules to decide whether it already knows them. A match means “update this existing person.” No match means “this looks like a new person.”
Work out the change list
Okta compares what it just read with what it already holds. The result is a to-do list: create these, update those, and deactivate or unassign the ones that are gone.
Apply
Okta carries out the to-do list. Each change may trigger further automation, such as removing the person’s app assignments or notifying other systems.
Record
Okta writes the results to its import history and to the System Log, so that people can later see what changed and when.
Where the safeguard fits
Notice step four. At that moment Okta holds a complete to-do list, but has not yet touched anything. That is the perfect point for a safety check. The list is finished, the consequences are known, and nothing irreversible has happened. A safeguard sits between steps four and five. It reads the finished list, measures how big the removing part is, and decides whether to continue to step five or to stop.
Why the removing side is special
Creating and updating users is forgiving. If a wrongly created account appears, an administrator can delete it. Deactivating users is different. It is fast, it is visible to people immediately, and it fans out to every connected application. Many apps respond to a deactivated Okta user by deleting sessions, revoking licenses, or archiving data. That chain reaction is what makes a mass deactivation so expensive to clean up, and it is why the safeguard focuses on the moment before step five.
Think of a librarian updating the catalog from a delivery list. The librarian compares the list with the shelves, writes a note of which books to add and which to remove, and only then walks the aisles. A safety rule might say, “If the note says to remove half the library, call the head librarian before touching a single shelf.” The safeguard is that rule, applied after the note is written and before the walking begins.
A safeguard works because the plan is known before the action starts. It judges the plan, not the damage. That is far cheaper than fixing damage afterward.
5Full Imports, Incremental Imports and Why the Difference Matters
Two kinds of import behave very differently. Knowing which one you are running tells you where the risk is.
When people say “the import,” they often mean one of two quite different operations. Understanding the difference explains why safeguards care so much about one of them, and why a quiet day of incremental updates can hide a loud problem waiting inside the next full run.
The full import: counting everyone
A full import reads the complete list of users, and usually groups, from the source. Because Okta receives the whole list, it can compare that list with everyone it already manages and spot the people who are no longer present. That ability to notice absence is exactly what makes a full import capable of deactivating or unassigning users. It is also what makes it capable of catastrophe if the list is wrong.
Full imports are heavier. They take longer, they touch every record, and for very large directories they can run for a long time. For that reason most organizations schedule them less often, perhaps nightly or even weekly, and rely on lighter updates between runs.
The incremental import: reading the changes
An incremental import asks the source only for what has changed since the last time. It is faster and gentler, so it can run frequently, often every few minutes for sources that support it. Because it receives only changes, it generally learns about new people, updated details, and in some sources explicitly flagged departures. It does not do the same “who is missing from the whole list” comparison that a full import does.
The exact behavior varies between source types and between Okta releases. Some sources can report deletions in their change feed. Others cannot. Check how your specific integration behaves, because it affects where your risk sits.
| Question | Full import | Incremental import |
|---|---|---|
| What does it read? | The whole list | Only changes since last time |
| How heavy is it? | Heavier, longer | Lighter, quicker |
| How often does it typically run? | Less often, such as daily | More often, such as every few minutes where supported |
| Can it notice who is missing? | Yes, by comparing complete lists | Generally not in the same way |
| Biggest risk | A bad or empty list looks like mass departure | Missed or delayed changes, and small wrong updates |
| Where do safeguards matter most? | Here, because removals can be large | Less directly, but check your integration |
Think of a shopkeeper managing stock. A full import is the yearly stock count, where every shelf is checked and missing items are discovered. An incremental import is reading the day’s receipts: three cartons arrived, two were sold. The receipts are quick and useful, but only the full count can discover that a whole shelf has vanished. And if the person doing the count writes down zero for every shelf by mistake, the books will say the shop is empty. That is the failure the safeguard protects against.
Why the schedule matters for risk
Imagine a source that is broken on Tuesday afternoon. If you only run full imports nightly, the damage window opens at the next full run, and you can prepare the safeguard and alert path around that time. If you run full imports every hour, the exposure is more frequent, but a problem is also noticed sooner. Neither is automatically better. What matters is that each schedule has a matching monitoring plan, so someone is awake when the risky run happens.
Partial reads and timeouts
Another subtle trouble is the partial read. A large list arrives in pages. If the connection drops at page forty of one hundred, a poorly behaving connector may deliver only forty percent of the people. Okta may then see sixty percent of the population as missing. Well-built integrations try to detect an incomplete read and fail the import instead of acting on it, but you should not assume perfection. The safeguard is the second line of defense when the first line fails.
Make a short note for each integration: which source it uses, whether it runs full or incremental imports, how often, and when the next full run happens. That one page answers most questions during an incident.
6Matching, Profile Mastering and Attribute Surprises
Some of the biggest import surprises come from how Okta decides who is who, not from the size of the source.
Every import must answer a deceptively simple question for each incoming record: is this person someone I already know? The way that question is answered, and the way each attribute is assigned, can create large unexpected changes even when the source is perfectly healthy.
How matching decides identity
Okta uses matching rules to connect an incoming record to an existing user. A rule might compare username, email address, or an employee identifier. When the rule finds a match, the existing user is updated. When it finds no match, the person is treated as new. Good matching depends on a field that is stable, unique, and present in both places.
The double change problem
Suppose the source team changes the format of a field that your matching rule uses. Maybe every email address moves to a new company domain after a rebrand. On the next full import, Okta looks for the old addresses and cannot find them, so it concludes that thousands of people have left. At the same moment it sees thousands of unfamiliar addresses and concludes that thousands of new people have arrived. The result could be a large wave of removals and a matching large wave of creations, even though nothing about the people changed.
This is a perfect example of a case in which the safeguard earns its keep. The number of apparent removals jumps above the threshold, and the import pauses. The administrator sees both numbers climbing together and recognizes the signature of a matching problem rather than a staffing event.
Employee identifier
Usually the best matching field, because it rarely changes when a person’s name, email, or department changes.
Email address
Common, but it changes with marriages, rebrands, and domain moves. A change across the whole company can break matching at once.
Display name
Not unique and often edited. Avoid it as a matching field.
Username format
Reasonable when controlled centrally, but any change to the naming convention must be coordinated with the import.
Profile mastering: who wins when two sources disagree
Profile mastering means deciding which system is the authority for each attribute. Perhaps the HR system is the authority for job title and manager, while the directory is the authority for the login name. If the rules for mastering change, an import can overwrite many profile values at once. That does not remove anyone, so a removal-focused safeguard may not pause it. The impact, however, can still be wide: wrong departments, wrong managers, and broken group rules that depend on those attributes.
Attribute mapping changes
Mappings describe how a field in the source becomes a field in Okta. If someone edits a mapping, for example swapping the source field that feeds the department attribute, the next import will rewrite the department for everyone. Group rules that grant access based on department could then move many people in or out of groups, which in turn changes their application access. The chain of consequences can be long, even though the original change looked tiny.
Imagine a school that identifies students by locker number. If the school renumbers every locker over the summer, the front office may conclude that every old student left and every locker holds a brand new student. The fix is to identify students by a student ID that does not change when lockers move. Matching rules are the front office’s way of recognizing students, and they work best when based on something that stays still.
Treat any change to matching rules, attribute mappings, or mastering settings as a high-risk change. Test it with a small group first, and expect a pause on the next full import if the change is large.
7Architecture and Components
The moving parts, from the source system all the way to the administrator’s inbox.
The diagram below shows a simplified model of an import with a safeguard. It is a teaching picture rather than an exact internal blueprint of Okta, but it captures the roles every part plays.
flowchart LR
SRC["Source System such as Active Directory, LDAP or an HR App"] --> CONN["Connector or On-Premises Agent"]
CONN --> IMP["Okta Import Engine"]
IMP --> MATCH["Matching Rules"]
MATCH --> PLAN["Change Plan: create, update, deactivate"]
PLAN --> SAFE{"Import Safeguard Check"}
SAFE -->|"Within threshold"| APPLY["Apply Changes"]
SAFE -->|"Over threshold"| HOLD["Import Paused for Review"]
HOLD --> ADMIN["Authorized Admin Approves or Cancels"]
ADMIN -->|"Approve"| APPLY
ADMIN -->|"Cancel"| DISCARD["Changes Discarded"]
APPLY --> UD["Okta Universal Directory"]
SAFE --> LOG["System Log and Notifications"]
APPLY --> LOG
Walking through the boxes
Source system. The origin of the list. It could be a directory your IT team runs, or an HR platform your people team owns. Okta never changes the source during a normal import. It only reads.
Connector or agent. The bridge between Okta in the cloud and the source. For cloud applications it is an integration using their APIs. For on-premises directories it is an agent installed on a server in your network that makes an outbound connection to Okta. If the bridge is unhealthy, answers can be missing or late, which is a leading cause of suspicious imports.
Import engine. Okta’s own machinery that runs the schedule, requests the data, and pages through results.
Matching rules. The logic that connects “a person in the source” to “a person in Okta.” Good matching prevents duplicates. Bad matching can make existing people look like strangers, which is another way for large numbers of surprising changes to appear.
Change plan. The to-do list from the previous chapter. It is the object the safeguard inspects.
Safeguard check. The decision point. It reads the plan and compares the size of the removals with the configured threshold.
Paused state and review. If the threshold is crossed, the import waits instead of failing. Nothing is lost. The plan is held until an authorized administrator approves or cancels it.
Universal Directory. Okta’s user store, where approved changes land.
System Log and notifications. The record keeping and the alarm bell. They make sure that the pause is noticed, and that the final decision is traceable.
Picture an airport baggage system. Bags arrive on a belt (the source), pass through a scanner (the safeguard), and either continue to the plane (apply) or get pulled aside for a person to open (review). The scanner does not slow down normal bags. It only intervenes when something looks unusual.
Most safeguard incidents are traced back to the connector or the source, not to Okta itself. When you investigate, start at the left side of the diagram and work rightward.
8Internal Working: How the Safeguard Decision Is Made
Inside the check there is nothing mysterious. It is counting and comparing, followed by a pause or a green light.
When a full import finishes reading the source, Okta builds its change plan. The safeguard then asks one core question: how many people would this plan remove, compared with how many people the import currently manages? If the answer is a small share, the import continues without any human involvement. If the answer is a large share, the import stops and waits.
flowchart TD
A["Full import finishes reading the source"] --> B["Compare the list with users currently managed by the import"]
B --> C["Count users that would be deactivated or unassigned"]
C --> D{"Is the count above the threshold?"}
D -->|"No"| E["Proceed and apply the change plan"]
D -->|"Yes"| F["Pause the import and notify administrators"]
F --> G{"Administrator decision"}
G -->|"Approve"| E
G -->|"Cancel"| H["Discard the plan and leave users unchanged"]
E --> I["Record the outcome in import history"]
H --> I
A worked example with real numbers
Suppose an import manages ten thousand people and the threshold is twenty percent. Twenty percent of ten thousand is two thousand. The safeguard will allow up to two thousand removals without asking anyone. Anything beyond that triggers a pause.
| Situation | People who would be removed | Share of 10,000 | Result at a 20% threshold |
|---|---|---|---|
| A normal week with some leavers | 40 | 0.4% | Proceeds automatically |
| A planned quarterly staff reduction | 600 | 6% | Proceeds automatically |
| A company sells a subsidiary | 2,500 | 25% | Pauses for review, then approved |
| The source returns an empty list | 10,000 | 100% | Pauses for review, then cancelled |
| A filter mistake hides one big department | 3,200 | 32% | Pauses for review, then cancelled |
Look closely at the middle of the table. A planned reduction of six hundred people goes through without a pause, because it is below the limit, even though it may be a painful event for those people. The safeguard is not a judge of whether a change is wise. It is a detector of changes that are unusually large compared with the normal rhythm of the organization.
Why a pause rather than a rejection
A design that simply refused big imports would be harmful. If a company truly sold a subsidiary, the import would be stuck forever. By pausing and asking, the system keeps the human in charge. The administrator can approve a legitimate large change in one click, and can cancel a faulty one just as easily. The safeguard converts a silent automatic decision into an explicit human decision, which is the real purpose.
What counts as a removal
Depending on how an integration is configured, a person who is missing from the source might be deactivated in Okta, or unassigned from the application the import belongs to, which may in turn deactivate them if they have no other assignments. The safeguard counts the people who would lose standing through the import. Check your integration’s settings to see which action applies, because that determines how serious a mistake would be.
An electrical fuse in your home does not decide whether you should be using the oven. It only notices that too much current is flowing and cuts the circuit until someone checks. Once you see that the toaster was the problem, you reset it. The safeguard works the same way: it does not judge the cause, it just refuses to continue past a dangerous level until a person looks.
Okta decides which operations the safeguard counts and what its default limits are. Those rules can change between releases, so test the behavior in a non-production org before you depend on it for a critical import.
9Data Flow and Lifecycle of a Safeguarded Import
Follow one import through all of its possible states, including the unhappy ones.
Every import lives through a short life. It begins when something triggers it and ends when its changes are applied or discarded. The safeguard adds one extra branch to that life: a waiting room where the import sits until a human decides.
sequenceDiagram
participant Trigger as Schedule or Admin
participant Okta as Okta Import Engine
participant Src as Source System
participant Admin as Okta Administrator
Trigger->>Okta: Start a full import
Okta->>Src: Request all users and groups
Src-->>Okta: Return the user list
Okta->>Okta: Build the change plan and run the safeguard check
Okta-->>Admin: Safeguard tripped so send a notification
Admin->>Okta: Review the pending change plan
Admin->>Okta: Approve or cancel
Okta->>Okta: Apply the plan or discard it
Okta-->>Admin: Outcome recorded in import history
The states, step by step
Scheduled or requested
The import is queued because a timer fired or an administrator started it by hand.
Reading
Okta is pulling pages of users and groups from the source. A slow or broken connector shows up here.
Planning
Okta matches records and builds the change plan. No user has been touched yet.
Safeguard check
The plan is measured against the threshold. This takes moments and produces one of two outcomes.
Applying
If the plan is within limits, the changes are carried out and the import completes.
Waiting for review
If the plan is over the limit, the import waits, administrators are notified, and the plan is held safely.
Resolved
The administrator approves, in which case the held plan is applied, or cancels, in which case it is discarded. Either way, the outcome is recorded.
What data moves where
Three kinds of information flow through this lifecycle. First is the source data: names, identifiers, group memberships, and attributes, traveling from the source to Okta over an encrypted connection. Second is the change plan, a temporary summary Okta builds internally. Third is the audit trail: notes in the import history and System Log about who triggered what and who approved it. The safeguard touches only the second kind, but it creates a valuable new entry in the third.
What happens while an import waits
While an import is paused, the users in question keep their current status. Nobody is deactivated. This is the whole point. The cost of waiting is that legitimate changes in that batch, such as new hires or real leavers, are also delayed. For that reason it matters to review a paused import promptly. An import that sits unreviewed for days is a quiet source of stale data.
Think of an online store that holds a very large order for manual review before charging a card. The goods are not shipped and the money is not taken. The customer’s cart is simply parked until a person confirms that the order is real. Parked is safer than shipped wrongly, but a parked order should not sit forever.
Later imports can run while an earlier one is still waiting. Decide in your runbook whether a new run should be allowed, and make sure whoever resolves the pause also understands the newer state of the source.
10Choosing and Tuning Thresholds
A threshold that is too tight cries wolf. A threshold that is too loose sleeps through the fire. Here is how to find the middle.
The threshold is the single most important decision you make when using safeguards. Every organization has a natural rhythm of people leaving and joining, and the right threshold sits comfortably above that rhythm but far below the size of a catastrophe.
Step 1: Measure your normal
Look at several months of import history. How many people typically leave in a single import cycle? Note the busiest days, such as the end of a quarter or the day after a company event. That busiest ordinary day becomes your baseline.
Step 2: Add headroom
Set the threshold comfortably above the baseline, so normal busy days do not trigger a pause. A common approach is to allow several times the busiest ordinary day while staying well under the point where a mistake would be devastating.
Step 3: Think about the worst day
Ask what the largest mistake you could survive looks like. If losing five percent of staff for an hour would be tolerable but twenty percent would be a crisis, that tells you where the ceiling is.
Step 4: Revisit regularly
Companies grow, merge, and reorganize. A threshold chosen for a small startup becomes wrong at ten times the headcount. Add a review of the threshold to your quarterly checklist.
| Population | Typical situation | Threshold thinking |
|---|---|---|
| Very small, around 40 users | A single resignation is 2.5% of the whole population | A percentage alone is awkward. Prefer a small absolute count if available, and expect occasional manual approvals. |
| Mid-size, around 2,000 users | A handful of leavers per week | A modest percentage works well and leaves comfortable room for normal turnover. |
| Large, around 50,000 users | Dozens of leavers per day, occasional reorganizations | A percentage covers ordinary change. Consider temporary adjustments around planned large events. |
| Seasonal workforce | Hundreds of contractors end on the same date | Plan for a known spike. Either raise the limit temporarily or expect and approve the pause. |
Planned big events
If you know a large removal is coming, such as a divestiture or the end of a seasonal contract, you have two sensible choices. You can leave the threshold alone, let the safeguard pause the import, and have an administrator approve it knowingly. Or you can raise the threshold for exactly that one run and lower it again afterward. The first choice is safer because it keeps the safety net in place and creates a clear approval record. The second is quicker but easy to forget to undo.
Cries wolf
Normal days trigger pauses. Administrators learn to click approve without looking. The safeguard becomes background noise and loses its value.
Sleeps through trouble
A disaster stays under the limit and proceeds. The safeguard exists on paper but protects nothing meaningful.
Quiet and alert
Normal days pass silently. Rare, truly unusual days produce a pause that deserves attention.
Out of date
A good threshold from three years ago no longer fits a company that has doubled in size. Review it on a schedule.
A car alarm that goes off every time a leaf falls on the hood teaches the whole street to ignore it. A car alarm set so insensitive that it stays silent while the window is smashed protects nothing. The goal is an alarm that stays quiet through ordinary life and speaks up only when something genuinely different happens.
Write down why you chose each threshold and who approved it. When someone asks a year later, “Why twenty percent?”, the answer should be in a document, not in a departed employee’s memory.
11What Safeguards Protect Against, and What They Do Not
An honest map of the coverage. Good engineers know the edges of their tools.
A safeguard is a specific tool for a specific job. If you expect it to solve every identity problem, you will be surprised. The table below states plainly where it helps and where it does not.
| Risk | Does a safeguard help? | Why |
|---|---|---|
| Source returns an empty list | Yes | The removal count is huge, so the threshold is crossed. |
| Source returns a large partial list | Yes, if the missing share exceeds the limit | The number of apparent leavers is above the threshold. |
| A small number of wrong removals | No | Small changes stay under the limit by design. |
| A wrong attribute value for one person | No | The safeguard counts volume, not the correctness of each field. |
| An attacker adds a fake account in the source | No | That is a creation, not a mass removal. Other controls apply. |
| An administrator edits users manually in Okta | No | Safeguards apply to imports, not to manual actions. |
| Duplicate accounts from poor matching | Not directly | Matching rules and review steps handle this, not the threshold. |
| A legitimate large reorganization | It pauses for confirmation | You decide knowingly instead of automatically. |
Three important limits
Small changes slip through. If a bug removes only a few users, no threshold will notice. For those, you rely on good monitoring, careful change control at the source, and quick support response.
Correct but harmful changes slip through. If the source is wrong in a believable way, such as marking a single executive as terminated by mistake, the safeguard cannot tell. It has no way to know the truth about any individual.
It only guards imports. Changes made by hand in the Admin Console, through the API, or by other automation do not pass through the import safeguard. Those paths need their own protections, such as limited administrator roles and approval processes.
Think in layers
Safety experts talk about layers of defense, sometimes called the Swiss cheese model. Each layer has holes, but if you stack several layers, the holes rarely line up. Safeguards are one useful layer. Others include change control on the source system, careful agent permissions, test imports before production changes, monitoring dashboards, alerts, and a rehearsed recovery plan. Together they make a mass-deactivation incident extremely unlikely.
A hospital double-checks a dangerously large drug dose with a second nurse. That check catches wild mistakes such as a misplaced decimal point. It does not catch a subtle error that looks plausible. The hospital also uses labels, barcode scans, and pharmacist review. No single check carries the whole load, and neither should the import safeguard.
12Safeguards Compared with Other Okta Protections
Okta offers several tools that sound related. Knowing which one answers which question saves a lot of confusion.
Import safeguards are part of a family of controls around the identity lifecycle. They are often confused with neighbors. Here is how they differ.
Matching rules
Decide whether an incoming person is the same as an existing one. They prevent duplicates. Safeguards decide whether the total volume of change is acceptable.
Deprovisioning settings
Decide what happens to an account when a person leaves, such as deactivate or suspend. Safeguards decide whether to allow a large batch of such actions to proceed unreviewed.
Admin roles
Decide who may change settings or approve decisions. Safeguards produce the decisions that those roles then approve.
Event hooks
Send a notification to your own system after something happens. They can alert you about activity, while safeguards stop a risky import before it applies.
Workflows
Automate follow-up tasks inside Okta, such as ticket creation or messaging. They react to events, whereas safeguards protect the import itself.
System Log
The diary that records what happened. Safeguards both write to it and benefit from it, but the log itself blocks nothing.
Prevention, detection, and response
A useful way to sort these tools is by the job they perform. Prevention stops harm before it occurs: safeguards, careful matching, and limited admin roles belong here. Detection notices that something unusual is happening: System Log searches, dashboards, and alerts belong here. Response repairs what went wrong: runbooks, reactivation procedures, and restoring from the source belong here. A healthy design uses at least one tool from each group.
| Tool | Main job | When it acts |
|---|---|---|
| Import safeguards | Prevention | Before an import applies its changes |
| Matching rules | Prevention | While building the change plan |
| Admin role design | Prevention | Whenever someone tries to change settings |
| System Log and alerts | Detection | After events are recorded |
| Event hooks | Detection and automation | Shortly after an event occurs |
| Runbooks and reactivation | Response | After a problem is discovered |
In a building, a sprinkler system tries to stop a fire from spreading, a smoke detector tells you a fire has started, and the fire department puts it out. Nobody asks which of the three is the real fire protection. You need all three, and each does a different job at a different moment.
If your team only has detection (alerts after the fact), add prevention. If your team only has prevention, add a rehearsed response. The weakest layer sets the real level of safety.
13Advanced Topics: Cascades, Scale and Edge Cases
Once the basics feel comfortable, these deeper ideas explain the odd situations you will meet in large environments.
The cascade effect
An import never acts alone. When a user changes status in Okta, other automation reacts. Group rules might remove the person from groups. Group membership might remove their application assignments. Application assignments might trigger provisioning actions in downstream tools such as email, chat, or ticketing systems. A single deactivation can therefore ripple outward through many systems within minutes.
flowchart LR
SRC["Source System"] --> IMP["Okta Import"]
IMP --> UD["User Status in Universal Directory"]
UD --> GR["Group Rules and Memberships"]
GR --> APPS["Application Assignments"]
APPS --> DS["Downstream Apps and Licenses"]
UD --> SESS["Active Sessions and Tokens"]
IMP -.->|"Safeguard check stops the chain at its start"| UD
This is why it is so much cheaper to stop a bad import than to repair its effects. Stopping at the first link prevents every later link from moving. Repairing afterward means undoing each link separately, often in systems you do not own.
Multiple sources for the same person
Some people appear in more than one source. A contractor might exist both in an HR system and in a directory. Removal from one source does not necessarily mean the person should be deactivated overall. How Okta treats this depends on how the integrations are set up, particularly whether the import unassigns the person from an application or deactivates the account entirely. Design these relationships on purpose and write them down, because the safeguard counts what the import would do, not what you intended.
The slow drip
A threshold looks at one import at a time. A fault that removes two percent of users on each of twenty nights never crosses a ten percent limit, yet it quietly empties a large share of your workforce. This pattern is sometimes called the boiling frog problem. The defense is trend monitoring: chart the removal percentage across many runs and alert on sustained abnormal levels, not only on single spikes.
Scale and duration
In very large organizations, an import may take hours. During that time the source may change under your feet. People are hired and fired while the pages are being read. This is normal, and the next import will reconcile it. It does mean you should schedule heavy full imports for quiet periods and avoid running two overlapping imports against the same source.
Restoring a source from backup
A sneaky scenario happens during disaster recovery. Suppose the directory fails and is restored from last week’s backup. People who joined this week are missing from the restored copy. The next full import will see them as gone. A safeguard may or may not pause it depending on how many people are affected. Add a line to your recovery plan: after any source restore, pause scheduled imports until the data is verified.
Multiple forests and domains
Large companies often have several directory forests after mergers. Each connection can have its own import settings and its own safeguard behavior. Keep a map of which agent serves which domain, who owns it, and what its threshold is. When one forest has trouble, you want to know instantly which part of the workforce is exposed.
Case: The overlapping imports
Two imports against the same directory start within minutes of each other, because a manual run was launched during the scheduled one. The source is slow, and one run reads an incomplete list. The team’s runbook says to avoid launching a manual full import while a scheduled one is running. Writing that single rule prevented a repeat of the incident.
A row of dominoes shows the cascade. Placing a hand to stop the first domino is easy and quick. Trying to stand up forty fallen dominoes in a dark room is slow and frustrating. The safeguard is the hand on the first domino.
14Security Considerations
Safeguards are a safety feature, but they sit in the middle of a security-sensitive path. Treat the whole chain with care.
Import safeguards protect against accidents. Security thinking asks a harder question: what if someone is doing this on purpose? The identity list controls who can enter your company’s digital doors. Anyone able to tamper with that list, or with the safeguard that watches it, holds a lot of power.
Threat 1: Using imports as a weapon
An attacker who gains control of the source directory, or of the connector agent, could try to make many people disappear on purpose. The goal might be disruption, a distraction while something else happens, or pressure for a ransom. A safeguard raises the cost of this attack, because a huge sudden removal would pause and alert administrators. A patient attacker might remove people in smaller slices across many days, so detection and source-side controls remain important.
Threat 2: Weakening the safeguard
If someone can raise the threshold to a very high number or turn the safeguard off, the protection quietly vanishes. Restrict who can change safeguard settings, require strong sign-in for those people, and record every change in an audit log. Treat a change to a safeguard setting as an important event that deserves its own alert.
Threat 3: A compromised approver
The review step relies on a person clicking approve or cancel. If an attacker takes over that person’s account, they could approve a harmful import. Strong multi-factor authentication for administrators is essential. For high-risk environments, consider a process in which a second person must agree to approve very large removals, a pattern known as separation of duties.
Threat 4: Poisoned or tampered source data
Okta trusts the source. If an attacker edits records in the source, the import will copy those edits. Safeguards cannot detect a believable but malicious edit to a few accounts. Protect the source system with the same seriousness as Okta itself, including strong administrator controls and change logging.
Threat 5: The agent host
For on-premises directories, the agent runs on a server you manage. If that server is compromised, the attacker sits next to your directory credentials. Give the agent only the permissions it needs, which for an import is read access. Patch the host, limit who can sign in to it, and monitor it like any sensitive server.
Least privilege
Give people and service accounts only the permissions needed. A read-only agent cannot damage the source, and a narrow admin role cannot change safeguard settings.
Strong admin sign-in
Require phishing-resistant multi-factor authentication for anyone who can approve imports or edit safeguards.
Separation of duties
Make sure the person who changes a setting is not the only person who can approve its consequences.
Audit everything
Record who changed thresholds, who triggered imports, and who approved or cancelled paused ones. Review those records on a schedule.
Group notifications
Send safeguard alerts to a shared team mailbox or channel, not to one person who may be on vacation or may have left.
Protect the source
Apply change control and logging to the directory or HR system. The import is only as trustworthy as its source.
An alert that reaches nobody is the same as no alert. Test your notification path. Confirm that safeguard emails arrive at a monitored address and that the people on that list know what to do.
A bank vault has a thick door, but it also has rules about who holds the keys, cameras that record every opening, and a requirement that two managers turn their keys together. The door alone is not security. The safeguard is a thick door, and the surrounding habits are what make it a vault.
15Governance, Change Management and Compliance
Technology works best when people agree who owns it, who may change it, and how decisions are remembered.
Safeguards are a technical setting, but they live inside a human organization. Several teams touch the chain: the people who manage the source, the identity engineers who run Okta, the security team who watch for abuse, and the business leaders whose employees are affected. Without clear agreements, even a perfect setting can fail through confusion.
Who owns what
| Role | Typical responsibility |
|---|---|
| Identity engineering | Configures imports and safeguards, tunes thresholds, runs the runbook |
| Source system owner | Keeps the directory or HR data healthy, announces changes that could affect imports |
| People or HR team | Announces planned large changes such as divestitures and seasonal contract ends |
| Security team | Reviews settings changes, watches for abuse, owns incident response |
| Service desk | First to hear from affected users, needs a clear message and a contact path |
| Business owner | Accepts the risk trade-offs between speed and safety |
Change management for safeguard settings
Treat any change to a threshold, or any decision to switch a safeguard off, as a controlled change. A sound process requires a ticket that states the reason, a named approver, a planned end date for temporary changes, and a check afterward that the setting returned to normal. This tiny amount of paperwork prevents the quiet drift that causes most safeguard failures.
Joiner, mover, leaver
Identity teams describe the employee life as joiner, mover, and leaver. Joiners are new hires who need accounts. Movers change roles and need access adjusted. Leavers depart and need access removed quickly. Imports serve all three, and safeguards guard the leaver step. A well-run organization can show an auditor that leavers lose access promptly and that large automated removals are reviewed by a human before they take effect.
Evidence for auditors
Frameworks such as SOC 2, ISO 27001, and financial control regimes commonly expect organizations to demonstrate that access removal is timely and that changes to access controls are approved and logged. Safeguards help produce that evidence. Each pause and each approval leaves a trail of who decided, when, and why. Keep tickets linked to the corresponding entries in the import history and System Log so an auditor can follow the story from alert to decision.
Approval records
Who approved each large import, when they did it, and what they checked first.
Setting history
Every change to thresholds or safeguard status with a reason and an owner.
Test results
Proof that safeguards were tested on a schedule and that alerts reached a monitored place.
Runbook and drills
The written procedure and a record that the team rehearsed it.
A restaurant passes a health inspection not because the kitchen is clean on one day, but because it keeps temperature logs, cleaning schedules, and training records that show cleanliness is a habit. Governance records do the same for identity controls. They prove the safety is routine rather than lucky.
Create one shared page that lists every import integration, its owner, its threshold, the reason for that threshold, and the date of the last review. It becomes the first thing opened during both audits and incidents.
16Monitoring, Logging and Metrics
A safeguard that trips silently is just a delay. The value comes from people noticing and acting.
Monitoring turns the safeguard from a private mechanism into a team habit. There are three layers of things to watch: the live state of imports, the historical record, and the numbers that show trends.
Where to look inside Okta
Okta keeps an import history for each integration. It shows when each import ran, how many users were read, and how many were created, updated, or removed. The System Log records events related to imports and administrative changes. Search it for import-related activity and for changes to integration settings. Learn what the events look like on a quiet day, so that an unusual one stands out.
Where to send alerts
Email notifications are useful but easy to miss. Many teams forward them to a chat channel or a ticketing system, so someone owns each one. If your org allows it, event-driven tools such as Okta Event Hooks or Okta Workflows can react to relevant events and open a ticket or page an on-call person. Check the event type catalog to see which import-related events are available to subscribe to.
Numbers worth tracking
Removal percentage per run
Plot it over months. You will see your normal rhythm, and you will see the spikes that deserve questions.
Import duration
A sudden jump in run time often means a slow connector or a growing source. A sudden drop may mean the source is returning too little.
Users read per import
This number should be steady. A sharp fall compared with yesterday is the clearest early warning of a source problem.
Time to review
Measure the gap between a pause and its resolution. Long gaps mean the alert path or the on-call habit is weak.
False alarm rate
What share of pauses were approved without any problem? A high share suggests the threshold is too tight.
Settings changes
Count and review every change to thresholds or safeguard settings. Each one should have a known reason.
A simple weekly routine
Once a week, someone should spend ten minutes on the import dashboard. They check that every scheduled import ran, glance at the number of users read, scan for any paused imports, and note any unusual removals. This small habit catches slow problems that thresholds can never catch, such as a gradual trickle of removals caused by a source misconfiguration.
Think of a car’s dashboard. You rarely look at the temperature gauge, but if the needle creeps upward over a week, you notice before the engine fails. The warning light is like the safeguard, bright and rare. The gauge is like your trend charts, quiet and steady and the thing that prevents the light from ever coming on.
Create a regular test that you can recognize. For example, keep a dedicated test integration in a non-production org and intentionally trip its safeguard once a quarter. This proves the alert path still works and keeps everyone’s skills fresh.
17Testing Safeguards Safely
A safety net you have never tested is only a hope. Here is how to rehearse without risking real people.
Most teams discover how their safeguard really behaves during an emergency, which is the worst possible time. A better approach is to rehearse in a safe place, so that when the real alert arrives, every person already knows what the screens look like and what each button does.
Build a safe practice area
Use a non-production Okta org, such as a development or preview environment, so that nothing you do can touch real employees. Connect it to a small test source. A tiny directory, a spreadsheet-based source, or a test instance of a cloud application with a few dozen fake users is enough. Because the population is small, you can make the threshold crossing happen easily by removing only a few test people.
Scenarios worth rehearsing
The empty source
Make the test source return no users. Confirm that the import pauses, that nobody is deactivated, and that the alert arrives in the right place.
The partial source
Hide a large slice of test users. Confirm that a removal share above the threshold triggers the pause.
Just below the line
Remove a number of users that sits just under the threshold. Confirm that the import proceeds, so you understand the edge precisely.
Just above the line
Remove one more user than the limit. Confirm that this tips the import into a pause.
Approve path
Approve a paused import and confirm that the held changes are applied as expected and recorded.
Cancel path
Cancel a paused import and confirm that users remain unchanged and that the next import behaves correctly.
What to observe
During each scenario, look at four things. Did the import pause or proceed as predicted? Did the right people receive the alert, and how quickly? Are the entries in the import history and System Log clear enough for someone new to understand? Did the approver have all the information they needed to decide, or did they need to hunt for it? Every gap you find is a free improvement to your runbook.
Make it a regular drill
Schedule a drill every quarter or after any major change to the integration. Rotate who plays the on-call role, so more than one person gains confidence. Keep the drill short, ideally under an hour, and finish with a few written notes about what to improve. Teams that practice resolve real pauses in minutes, while teams that never practice take hours.
| What to check | Healthy sign | Warning sign |
|---|---|---|
| Alert delivery | Arrives within minutes at a team channel | Arrives late, or only in one person’s inbox |
| Pause behavior | No user status changes while paused | Any user changes appear before approval |
| Approval clarity | Approver can see counts and compare with history quickly | Approver cannot tell what is being changed |
| Audit trail | Decision and approver clearly recorded | Missing or confusing entries |
| Team confidence | Anyone on call can follow the runbook | Only one expert knows what to do |
A fire drill in a school is not held because fires are common. It is held so that on the rare real day, children walk calmly to the right door without thinking. A safeguard drill gives your team the same automatic calm.
Do not trip a safeguard on a real integration just to see what happens. Use a test environment. Real people should never be the practice dummies.
18Design Patterns That Work
Patterns are shapes that many teams have found reliable. Borrow them freely.
Pattern: Safeguard on, always
Treat the safeguard as a default that must be justified when turned off, rather than an option that must be justified when turned on. Keep it enabled for every production integration that can remove users. Document any exception with an owner and an end date.
Pattern: Staged rollout of new imports
When connecting a new source, start in a test org or with a small group. Review the first several change plans by hand. Only after the behavior is predictable should you enable full scheduled imports in production.
Pattern: Pre-announced large changes
Require the people team or IT to announce planned large removals, such as a divestiture, in advance. The identity team then expects the pause and approves it knowingly, with a ticket as evidence.
Pattern: Source health check before import
Where you control the schedule, verify that the source looks healthy before the import starts. A quick check that the source answers and holds a plausible number of records prevents many pauses before they begin.
Pattern: Two-person approval for big pauses
For removals above a high bar, require a second administrator to confirm the approval. This reduces the chance that one tired or compromised person approves a harmful import.
Pattern: Recovery rehearsal
Practice what you would do if a mass deactivation did happen. Time how long it takes to reactivate users in a test org. A rehearsed plan is dramatically faster than an improvised one.
How the patterns fit together
No single pattern is enough. Staged rollout reduces surprises when a new source appears. Pre-announcements make legitimate large changes boring instead of scary. Health checks reduce false alarms. Two-person approval protects the final decision. Rehearsal keeps recovery fast. Together, they form a lifecycle that wraps around the safeguard itself.
Pilots use checklists before every flight, even though the plane is usually fine. The checklist is a pattern that turns care into a habit. These patterns do the same for identity imports. They are boring on a good day and priceless on a bad one.
19Anti-Patterns to Avoid
Mistakes that many teams make, so you do not have to.
What It Looks Like
An administrator is annoyed by pauses and turns the safeguard off, or sets the threshold to the maximum, “just for now.”
Why It Hurts
“Just for now” quietly becomes permanent. The protection disappears at the exact moment nobody is looking, and the next faulty import runs unchecked.
Do This Instead
Fix the cause of the false alarms by tuning the threshold sensibly. If a temporary change is truly needed, record an owner, a reason, and a date to restore it.
What It Looks Like
Pauses are always approved quickly because “it is probably fine.”
Why It Hurts
An approval given without checking is the same as no safeguard at all. This habit is called alert fatigue, and it wears down every safety system over time.
Do This Instead
Require a short checklist before approving. Compare the number of users read today with yesterday, confirm with the source owner, and note the reason in a ticket.
What It Looks Like
Alert emails go to one person’s inbox.
Why It Hurts
That person goes on vacation, changes roles, or leaves. The pause sits unseen while users wait for updates and stale data builds up.
Do This Instead
Send alerts to a monitored team mailbox or chat channel with a clear on-call owner.
What It Looks Like
Believing the safeguard makes testing unnecessary, so changes to the source or the agent go straight to production.
Why It Hurts
Safeguards only catch big problems. Smaller faults, such as a wrong mapping affecting a few hundred people, can slip beneath the limit.
Do This Instead
Test source and connector changes in a non-production org first, and treat the safeguard as the last line of defense, not the first.
What It Looks Like
A set-and-forget threshold that nobody has reviewed since the system was first configured.
Why It Hurts
The company changes size and shape, and the original number no longer fits. It becomes too tight or too loose without anyone noticing.
Do This Instead
Put a threshold review on a quarterly or twice-yearly calendar, tied to headcount changes and reorganizations.
20Advantages, Disadvantages and Trade-offs
Every safety feature has a price. An honest ledger helps you decide how much to lean on it.
Advantages
- Stops mass deactivation caused by a bad source answer before any user is touched
- Keeps a human in charge of very large changes
- Costs almost nothing to run on a normal day
- Creates a clear approval record for big changes
- Protects downstream applications from chain reactions
- Reduces the pressure on support teams during the worst possible incidents
Disadvantages
- Delays legitimate changes in the same batch until a person reviews the pause
- Can create false alarms when the threshold is too tight
- Does not catch small or believable errors
- Only guards imports, not manual or API changes
- Depends on a person actually reading and acting on the alert
- Needs periodic tuning as the company changes
Trade-offs to think through
Safety versus speed. A tighter threshold catches more mistakes but pauses more often. A looser threshold is quieter but riskier. The right balance depends on how harmful a mass removal would be in your organization. A hospital or a bank usually leans toward safety.
Automation versus oversight. The whole reason to import automatically is to avoid manual work. Each pause reintroduces some manual work. A good design keeps pauses rare, so the automation benefit remains.
Central control versus team autonomy. If many teams own different integrations, you must decide who sets each threshold and who approves each pause. Too much central control slows the teams down. Too little leaves safeguards inconsistent.
Simplicity versus precision. A single percentage is easy to explain and operate, but crude. Count-based limits, or different values per integration, are more precise but demand more care to maintain.
Ask how bad a wrong removal would be. If the answer is “a few annoyed people,” a loose threshold is fine. If the answer is “a stopped hospital ward or trading floor,” keep the threshold tight and the review path fast.
21Best Practices and Common Mistakes
A checklist to read before every launch and every incident review.
Best practices
- Keep safeguards enabled on every production integration that can deactivate or unassign users.
- Choose thresholds from data. Study several months of import history, find the busiest normal day, and set the limit comfortably above it.
- Route alerts to a team, not a person. Test the route regularly.
- Write a short runbook that explains who reviews a pause, what to check, and who can approve.
- Limit who can change safeguard settings, and protect those accounts with strong multi-factor authentication.
- Test connector and source changes in a non-production org before touching production.
- Announce big organizational changes early so a pause is expected instead of surprising.
- Track trends, not just alerts. Chart the share of users removed per import and the number of users read.
- Review thresholds at least twice a year or whenever headcount shifts significantly.
- Keep a rehearsed recovery plan in case a harmful import slips through anyway.
- Document ownership. Every integration should have a named technical owner and a business owner.
Common mistakes
Approving without looking
Clicking approve out of habit defeats the purpose. Always compare the numbers with a normal day first.
Leaving it disabled
A temporary disable becomes permanent because nobody owns the reminder to switch it back on.
Wrong threshold for small orgs
A percentage that suits a large company trips on a single resignation in a tiny one, causing endless noise.
Ignoring the source
Teams tune Okta endlessly while the real fault is an unstable directory, agent, or HR export.
No owner for alerts
Everyone assumes someone else is watching the mailbox. Nobody is.
Forgetting the delay
A pause also delays new hires and real changes in the batch. Review quickly so people are not left without accounts.
Treating it as complete security
The safeguard catches large volume swings. It does not replace access reviews, monitoring, or admin controls.
Never testing it
A safeguard that has never been tripped in a test is a guess. Practice in a safe environment so you know the alerts and approval screens work.
22Real-World Usage Scenarios
Five stories showing how safeguards behave in practice. These are illustrative designs built to teach the idea, not descriptions of any named company’s real setup.
Scenario 1: The directory restart that returned nothing
Imagine a global retailer with roughly forty thousand employees and an on-premises directory. After a weekend patch, the directory service starts slowly and answers the nightly import with an empty list. The import calculates that forty thousand people appear to have left, and the safeguard pauses it. The on-call administrator sees the alert, notices that the import read zero users compared with forty thousand yesterday, restarts the agent, and cancels the paused import. Nothing was deactivated. The only evidence is a ticket.
Scenario 2: The legitimate divestiture
Picture a technology company selling a business unit of three thousand people. The people team warns the identity team two weeks ahead. On the transfer date, the import reports three thousand removals, and the safeguard pauses it as expected. Two administrators verify the list against the transfer agreement and approve the import. The pause did not block the change. It turned it into a deliberate, documented decision.
Scenario 3: The filter edit
A company with eight thousand users has a directory team that tidies the folder structure and moves the entire finance department into a new folder that the import does not read. Okta sees nearly eight hundred people vanish. Because the threshold is set at a tighter percentage for this integration, the import pauses. An administrator spots that the missing people all share one department, contacts the directory team, and the folder is added to the import scope before any account is touched.
Scenario 4: The tiny nonprofit
A nonprofit with thirty-five staff finds that its percentage threshold pauses the import every time two volunteers end their service. The administrators realize that a percentage on a very small population is too sensitive. They switch to a small absolute count, document the reason, and review it again when the organization grows.
Scenario 5: The seasonal workforce
A logistics company hires several thousand temporary workers each autumn and releases them in January. The identity team knows the January import will remove a large share of users. They keep the safeguard on, expect the pause, and have a pre-approved ticket template. An administrator verifies the list against the contract end dates and approves within minutes. The approval trail is exactly what auditors later ask for.
Across all five stories the safeguard behaves like a thoughtful colleague who says, “That is a big change. Are you sure?” Sometimes the answer is “No, thank you for catching that.” Sometimes it is “Yes, I am sure, and here is why.” Both answers are better than no question at all.
23Runbook: What to Do When a Safeguard Trips
A calm, step-by-step routine for the moment an alert arrives.
When an alert lands, the right feeling is calm curiosity, not panic. Nothing has been deactivated yet. You have time to investigate, and the steps below keep you organized.
Acknowledge
Tell the team you are looking at it, so nobody duplicates the work. Open a ticket or incident channel to keep notes in one place.
Read the numbers
Look at how many users the import read, and how many it plans to remove. Compare with a normal day from your history.
Ask the key question
“Did the world change, or did the data change?” Did a real event cause this, such as a divestiture, or does the source look broken?
Check the source and connector
Confirm the source system is healthy, the agent is running, and nothing was changed recently. Ask the source owner and the people team whether any planned change happened.
Sample the affected users
Pick a few people from the removal list and confirm with their managers or the source whether they have really left. A quick sample often settles the question.
Decide
If the changes are real and expected, approve, with a second approver for large numbers. If they look wrong, cancel. If you are unsure, leave the import paused while you gather more facts. Waiting is safe.
Fix the cause
Repair the source, the filter, or the connector. Then run another import and confirm that the numbers look normal.
Write it down
Record what happened, who decided, and what you changed. If the threshold was wrong, adjust it and note why.
When in doubt, do not approve. A paused import costs a little time. A wrongly approved import can cost a whole workforce its access.
24Frequently Asked Questions
Short answers to the questions that come up most often.
25Summary and Key Takeaways
If you remember nothing else, remember the box below.
Import safeguards are a simple idea with a large payoff. Automation is excellent at doing routine work and terrible at noticing when the world has gone strange. A safeguard adds that missing sense of suspicion at the one moment it matters most: after the plan is built and before the changes are applied. Used well, with a sensible threshold, a monitored alert path, protected approvers, and a calm runbook, it turns a possible company-wide outage into a quiet ticket.
Key Takeaways
- Imports can remove people. When a source returns bad data, Okta may treat everyone as missing, which is why the removal side needs a brake.
- Safeguards judge the size of the plan. They compare the number of planned removals with a threshold, and pause the import for human review when it is exceeded.
- Pause, not fail. The held plan is applied only if an authorized administrator approves, and is discarded if they cancel.
- Tune the threshold from your own data. Set it above your busiest normal day, review it regularly, and prefer counts for very small populations.
- Know the limits. Safeguards miss small or believable errors and do not cover manual or API changes, so layer them with monitoring, change control, and admin controls.
- Secure the whole chain. Protect the source, the agent, the approvers, and the safeguard settings with least privilege, strong sign-in, and audit trails.
- Make it a team habit. Route alerts to a monitored channel, follow a runbook, and when in doubt, leave the import paused. Confirm exact product behavior in current Okta documentation.