How to Pick Your Organization
A complete training guide for Stafferin users: what the Select Organization screen does after sign-in, why it appears, how auto-select works, what each loading state means, and every error message you might see — with the fix for each one.
Before you start
The Select Organization screen appears right after you sign in to Stafferin. Most users never think about it — you sign in, you tap your org, you're at work. But because the screen also handles membership-status guards, token refreshes, and FCM (push-notification) registration, when something goes wrong, the messages can be a little dense. This guide unpacks all of it.
Why this screen exists. Stafferin is built to host many organizations. One person can be a guard at Company A on weekdays, a supervisor at Company B on weekends, or even a client manager at Company C. The Select Organization screen is the moment your session locks into one workspace — your dashboard, your shifts, your alarms all come from the org you pick here.
Open Select Organization
You don't navigate to this screen — Stafferin shows it automatically the first moment after you sign in. The page title is "Select Organization", and the subtitle reads "Choose your organization to continue".
The Select Organization screen — a logo, a dropdown, an info banner, and a Proceed button.
What you should see
- A large blue gradient logo at the top — the Stafferin building icon. It's your visual marker that you're on the org-picker screen and not somewhere else.
- The page title "Select Organization" directly under the logo.
- The subtitle "Choose your organization to continue" — a one-line reminder of what to do.
- A card in the middle with the label Organization (a small blue-purple gradient bar marks it).
- A dropdown showing the placeholder "Select your organization..." and a building icon. It is empty until the server returns your org list.
- A small info banner with an icon: "Your dashboard will be customized for the selected organization".
- A blue-purple gradient Proceed button with a forward arrow at the bottom of the card.
Three loading states. The card body changes shape depending on what the server returns. While loading: a spinner. On success: the dropdown of orgs. On error: a red error block with a Retry button. On empty: an orange "No organizations found" block. We'll cover all four shortly.
You can't go back from here. The Select Organization screen has no back arrow — it's a forced step between sign-in and your home page. To go back to sign-in, you'd have to sign out (close the app or use the "Logout" path on a different screen). Picking the wrong org? See Switching organizations.
How it works at a glance
The whole flow takes about six steps. The animated track below shows the order — sign-in, list loads, you pick, you proceed, you land. Watch the indicator move through each step.
Decision flowchart
Here's what the app actually does behind the scenes. The orange diamonds are decision points — places where the app or you decide which way the flow goes.
Contact admin
alert — block
Client Dashboard
Clock-In screen
Plain-English version: You sign in, the app asks the server "which orgs is this person allowed in?", you pick one, the app double-checks your membership is approved, then it grabs a fresh token tagged with that org, registers your phone for push notifications, saves enough info to skip this whole screen next time you sign in with biometrics, and routes you to the right home page. Quite a lot — but if everything's right, you'll just see two taps.
Watch the full Select Organization flow
Six frames. Each one is a real screen state from the app. Tap a step on the right to jump there, or use Pause / Restart.
Step-by-step demo
- Sign in. The list of your orgs starts loading.
- List loads. Dropdown shows "Select your organization...".
- Tap the dropdown — your orgs appear.
- Pick one. Tap Proceed.
- Loading spinner runs while the app refreshes your token.
- "Organization selected successfully" — you land on home.
The Proceed button is disabled while it's loading. While the spinner runs, the button label changes to "Loading..." and tapping does nothing. Don't worry if it doesn't react — the app is busy. Wait for the green toast.
Reading the org list — what each row tells you
The dropdown lists every organization tied to your account. Each row is one org you have a membership in. The rows are simple — an icon, a name. But there's a hidden filter you should know about.
The dropdown menu — each row is an organization name with a building icon.
How to read a dropdown row
- Building icon on the left — fixed glyph for every org. The selected row's icon turns blue with a white building glyph.
- Organization name — comes from the server (the
organizationNamefield). If the name is long, it wraps with an ellipsis at the end. - No status hint — you can't tell from the dropdown whether your membership is APPROVED, PENDING, or REJECTED. The check happens after you tap Proceed.
- No sort order documented — the order is whatever the server returns. Often that's "newest membership first" but don't rely on it.
The list shows orgs you might not be able to enter. If your membership at Acme Security Co. is still PENDING, Acme will still appear in the dropdown — but the app will block you with an "Access Restricted" alert after you tap Proceed. The dropdown is a list of orgs you have any kind of relationship with, not a list of ones you can enter today.
Two API surfaces. Stafferin has two account types — Employee and Client. The Employee path uses one API endpoint to load the org list; the Client path uses a different one. Either way, the screen looks identical to you. The difference shows up at the end: employees land on Clock-In, clients land on Client Dashboard.
What the server sends
For the curious — here's the shape of the data the dropdown reads from. Each org also has more fields hidden from you (employee ID, time-zone, role flags, approval status). They get used after you pick one.
| Field | What it is | Used for |
|---|---|---|
organizationName |
The display name shown in the dropdown. | The text you tap. |
organizationId |
Numeric org ID. | Locked into your session after Proceed. |
employeeId |
Your numeric employee record at this org. | Tied to all your shifts, alarms, and check-ins. |
employeeName |
Your display name as the org has it. | Shown in greetings ("Hi, Sarah!") and reports. |
actualEmployeeId |
The org's own employee code (often non-numeric). | Reports, badges, audits. |
orgTimeZone / timezoneOffset |
Your org's time zone. | Time displays (shift starts, check-ins). |
admin / manager |
Boolean role flags. | Decide which menu items you see — admin tools, schedule editor, etc. |
approvalStatus |
Membership status: APPROVED, REQUESTED, PENDING, REJECTED, DEACTIVATED, or other. | The guard between Proceed and home. Only APPROVED gets through. |
Switching organizations after you've already picked one
Once you've chosen an org and landed on home, your session is locked into it — your shifts, your alarms, your dashboards all reflect that org. To switch to a different one, you have two options.
Don't try to "back-button" your way here. Going back from home through the device back button is unreliable — your session may still be locked into the previous org even though you've returned to the org-picker. Always go through Logout.
What happens to your data when you switch?
-
Your session token is replaced
The new org gets a fresh JWT token tagged for it. Your old org's token is dropped from app memory.
-
Your org-scoped state is cleared
The previous org's
organizationId,employeeId, time zone, role flags — all replaced. None of the previous org's data leaks into the new one. -
Push notifications re-register
FCM (Firebase Cloud Messaging) registers your phone again with the new org's token. From now on, push notifications come from the new org. Old org's pending notifications won't reach you.
-
Quick-login data updates
If you have biometric or PIN login set up, the saved org data updates to point at the new org. Next biometric sign-in goes straight to the new org's home.
You can switch as many times as you like. There's no daily limit, no cooldown, no "you must wait 24 hours". Switch as often as your work needs.
Single-org, no-org, and membership-restricted states
The Select Organization screen has a few distinct shapes depending on what the server returns. Two are about the count (one org, zero orgs); the other is about the membership status of the org you pick.
The single-org auto-select state
If you only belong to one organization, Stafferin auto-fills the dropdown with that org's name as soon as the list loads. You'll see the name already in the dropdown when the spinner stops. The card looks the same — info banner, Proceed button — but you don't have to pick anything. Just tap Proceed.
Why doesn't it just skip the screen? Even when there's one org, Stafferin pauses at this screen so you can confirm the choice. If you ever sign in by accident at a friend's phone or from the wrong account, the screen is your moment to notice "wait, that's not my org" before the membership-status check fires.
The "No organizations found" empty state
If the server returns an empty list — you have an account but no organization memberships — the card shows an orange-tinted block with a building icon, the title "No organizations found", and the subtitle "Please contact your administrator". There's no Retry button on this state because retrying would not change the result; you genuinely have no memberships.
"No organizations found" — you have an account but no memberships yet.
What it means
- The server confirms you have an account, but you're not linked to any organization.
- Most often this happens to brand-new users whose admin hasn't completed the onboarding step yet.
- It can also happen if your last membership was deactivated and no new one was created.
- You're not stuck — but you can't go further until your admin links you to an org.
What to do: Call or message your admin, ask them to add you to the right organization. Once they confirm, sign out and sign back in — the dropdown should populate.
The membership-status guard
After you tap Proceed, the app checks your approvalStatus for the picked org. Only APPROVED gets through. Anything else triggers a blocking alert.
Approved
Your membership is active and good to go. The app proceeds — token refresh, FCM registration, navigation to home.
Pending
Your admin hasn't approved your membership yet. Alert message: "Your membership is pending approval. Please contact your administrator." No way through until they approve.
Rejected
Your admin reviewed and rejected your membership request. Alert message: "Your membership request was rejected. Please contact your administrator." Talk to your admin to find out why.
Deactivated
Your account at this org has been deactivated (left the company, manual deactivation, etc.). Alert message: "Your account has been deactivated. Please contact your administrator." Reactivation is an admin task.
Other
If the status is anything else (unknown to the app), the fallback alert is "Your membership status does not allow access. Please contact your administrator." Take a screenshot if you see this — it likely means a server-side data issue.
Access Denied (token)
Your status was APPROVED but the token-refresh call returned a 403. Could be a permissions mismatch or a timing race. Alert message: "You do not have access to this organization. Please contact your administrator."
The guard is client-side, not server-side. The app reads approvalStatus from the org's record and decides whether to proceed. The server also enforces it for downstream calls — so even if the client guard is bypassed somehow, you still wouldn't be able to take any action. But the guard is there to fail early with a clear message instead of with a cryptic "401" later.
Errors & how to fix them
Every error message you can see during Select Organization, with what it actually means and what to do.
Loading-time errors (fetching the org list)
| If you see… | It means | Do this |
|---|---|---|
| "Unable to connect. Please check your internet connection." | The org-list request failed before reaching the server (no network, server unreachable). | Check Wi-Fi or cellular data. Tap Retry. |
| "Session expired. Please login again." | HTTP 401 — your sign-in token expired (rare on a fresh sign-in, more common after a long pause). | Sign out, sign back in. You'll go through this screen again. |
| "You do not have permission to view organizations." | HTTP 403 — server denied the org-list request. Account may be suspended. | Contact your admin or support. |
| "No organizations found for your account." | HTTP 404 — server says there are no org records associated with your user. | Contact your admin to confirm you're added to an org. Sign in again after they confirm. |
| "Server is temporarily unavailable. Please try again later." | HTTP 500 / 502 / 503 — the server hit an error or is restarting. | Wait 30 seconds, tap Retry. If it persists for several minutes, ping your admin. |
| "Failed to load organizations. Please try again." | Generic fallback — the server returned something the app didn't recognize. | Tap Retry. If the same error repeats, sign out and sign back in. |
Empty / single-org states (not strictly errors)
| If you see… | It means | Do this |
|---|---|---|
| "No organizations found" / "Please contact your administrator" | The list loaded but is empty — you're not a member of any org yet. | Contact your admin to add you. Sign in again after. |
| Dropdown auto-filled with one name | You have exactly one membership — auto-select kicked in. | Confirm the name is right, then tap Proceed. |
Proceed-time errors (after you pick an org)
| If you see… | It means | Do this |
|---|---|---|
| "Organization Required — Please select an organization to continue. Choose from the dropdown above." | You tapped Proceed without picking an org. Most often happens if the auto-select didn't trigger and you tapped fast. | Tap the dropdown, pick your org, tap Proceed. |
| "Failed to load organization data. Please try again." | The picked-org's record couldn't be parsed (or the response was missing critical fields). | Try a different org, or sign out and back in. Report it if it repeats — likely a server-side data issue. |
| "Invalid organization data. Please contact support." | The org record is missing employeeId or organizationId. Server data corruption. |
Contact support — give them the org name. They'll check the record. |
| "Access Denied — You do not have access to this organization. Please contact your administrator." | Token-refresh call returned 403. Your membership says APPROVED but your role token has no access to the org's resources. | Contact your admin — they may need to re-grant your role at the org. |
| "An error occurred. Please try again." | Generic catch-all — something inside the Proceed flow threw an unhandled error. | Tap Proceed again. If it persists, sign out and back in. If still stuck, contact support. |
Membership-status alerts
| If you see… | It means | Do this |
|---|---|---|
| "Your membership is pending approval. Please contact your administrator." | Your approvalStatus is REQUESTED or PENDING. Admin hasn't acted yet. |
Wait for your admin to approve. Once they do, sign in again. |
| "Your membership request was rejected. Please contact your administrator." | Status is REJECTED. Your admin declined the request. | Talk to your admin. They'll explain or undo the rejection if it was a mistake. |
| "Your account has been deactivated. Please contact your administrator." | Status is DEACTIVATED. Your access at this org is suspended. | Talk to your admin. Reactivation is an admin action. |
| "Your membership status does not allow access. Please contact your administrator." | Status is something other than the four explicit ones — likely an unknown enum the app hasn't been updated for. | Take a screenshot. Send it to your admin — and to support if your admin can't resolve. |
If you're stuck on this screen for more than a few minutes, sign out (close the app, reopen) and try again. A clean restart fixes most transient issues — stale tokens, retry loops, weird network states.
FAQ
Why do I have to pick an org every time I sign in?
Because Stafferin is multi-tenant — one user account can belong to many organizations. Picking the org is what locks your session into one workspace. If you've only got one org, the dropdown is auto-filled and you just tap Proceed.
Can I skip this screen if I only have one org?
Not currently. Even with one membership, you still have to tap Proceed to confirm. The pause is intentional — gives you a moment to spot if you've signed in to the wrong account. Some future builds may auto-skip; for now, two taps.
I got "Your membership is pending approval" — how long do I wait?
Depends on your admin. Most approve within a business day. If it's been more than that, message them directly. The app can't tell you when they'll act — only that they haven't yet.
The dropdown is empty even though I should have an org. What's wrong?
Two possibilities: (1) the server hasn't created the membership record yet — wait, ping your admin. (2) Your sign-in account is different from the one your admin invited — sign out, double-check the email you used, sign in with the right one.
Why does the Proceed button say "Loading..." for so long?
It's running through several steps: validating the org, fetching a fresh JWT token tagged for that org, registering your phone with FCM (push notifications), and saving quick-login data. On a slow connection that can take 5–10 seconds. Wait for the green toast.
What's the difference between "Loading your organizations..." and "Loading..." on the button?
Two different stages. "Loading your organizations..." is the initial fetch right after sign-in — getting the list of orgs to populate the dropdown. "Loading..." on the button shows after you tap Proceed, while the app does the org-switch handshake.
Can I switch organizations later without signing out?
The supported path is: Logout → Sign back in → Pick a different org. Some builds add a "Switch Organization" shortcut in the profile menu that takes you back here without signing out. If you don't see it, fall back to the logout/login path.
I tapped Proceed and nothing happened. The button just shows "Loading..." forever.
Wait 30 seconds. If still stuck, force-close the app and re-open. Sign in fresh. If the loop repeats, your network may be intermittently dropping packets — switch to Wi-Fi or cellular and try again. If still stuck after that, contact support.
Why did I land on the Client Dashboard instead of Clock-In?
Because your account is flagged as a Client at the org you picked. Employees go to Clock-In; clients go to the Client Dashboard. If you think the routing is wrong, contact your admin — they may have set up your account as the wrong type.
The screen shows my old org name even though my admin moved me to a new one.
The list might be cached. Sign out, then sign back in — the dropdown re-fetches every sign-in, so the new org should appear. If it still doesn't, your admin may not have completed the move; ask them to confirm.
Why is there an "info" banner under the dropdown?
It's a reminder that your home screen, dashboards, and notifications get customized for the org you pick. It's not an action — just orienting copy. If you don't read it, no harm.
Can my admin see which org I picked?
Yes, in the activity log — every sign-in records which org you entered with. They can also see when you last signed in, from which device, etc. Standard audit trail.
I got "Access Denied" but my admin says my membership is approved. What's going on?
Could be a token-refresh race. Your approvalStatus is APPROVED but the org-scoped token call returned 403. Sign out, sign back in. If the alert still fires, your admin needs to confirm your role permissions at the org level — not just the membership status. Often "approved member with no role" causes this.
Why isn't there a "Search" box on the dropdown? My company has 50+ orgs.
The dropdown lists only orgs you are linked to — typically 1–5 max. If you genuinely have 50+ memberships, scroll. The dropdown supports a 50% screen-height max scroll. Some future builds may add search; for now, scroll.
What if I have biometric / PIN login set up — do I still see this screen?
Usually no. Quick-login restores your last-used org from saved data, so you skip straight to home. But if the saved data is invalid (org deleted, membership revoked), the app falls back to this screen and you'll have to pick again.
Why does the screen have a building icon as the logo?
It's the universal "organization" glyph. You're picking an organization — a building represents a workplace. Stafferin has organization-level branding elsewhere, but at this stage the app doesn't yet know which org's brand to apply, so it falls back to a generic mark.
Quick reference card
Print this section and keep it handy for the first few sign-ins. After three or four runs, you won't need it.
Two taps and you're at work. Once you've signed in once and picked your org, biometric or PIN sign-in usually skips this whole screen on later sign-ins. The first time is the long one.