Kontakt.io holds two separate records for one staff member:
- A staff profile — the badge wearer the system observes. Room visits, dispenser activations, and compliance are counted against it. It is identified by its Staff ID.
- A user account — the login someone signs in with to open the Kio Nurse Assistant mobile app or the web app. It is identified by its Unique Ext. ID.
Until the two are linked, the platform has no way to know that the staff member signing in is the staff member wearing the badge. Linking them is what lets staff see their own results, in both apps:
- Team Dashboard in the web app shows their own department's standings and rewards.
- Kio Nurse Assistant on their phone shows their own journey, race, and rewards.
Note: Compliance measurement does not depend on this. Badges are attributed to staff profiles regardless, so department and campus reporting works from day one. Linking adds the individual, self-service layer on top — it can be done at go-live, or introduced later for one unit first.
What a staff member needs to see their own results
A nurse who uses both Kio Nurse Assistant and the web Team Dashboard needs:
- A staff profile in Hand Hygiene with an assigned Smart Badge and an Assigned Home Location that includes a department.
- A user account in the Users app whose Unique Ext. ID matches their Staff ID exactly.
- The Nurse role under Hand Hygiene, to see their department on Team Dashboard in the web app.
- The Hand Hygiene User role under Kio Nurse (Mobile), to see their own results in Kio Nurse Assistant.
The web and mobile roles are assigned separately. Someone who uses only one app needs only that app's role. One link between the staff profile and the user account covers both apps.
How the match works
There is no mapping table to maintain and no integration to build. The two records are treated as the same staff member when they carry the same value:
| Record | Field | Where you see it |
|---|---|---|
| User account | Unique Ext. ID | The Users app |
| Staff profile | Staff ID | Hand Hygiene |
The values must match exactly. They are compared as plain text, so case and leading zeros both matter — E4417250 and e4417250 are two different staff members as far as the system is concerned.
Choose the identifier
Pick the identifier you already use to identify a staff member. For most organizations this is the employee number.
It has to be:
- Unique. No two staff members share it.
- Stable. It does not change when someone changes name, unit, role, or badge.
- Populated for everyone you want to measure.
- Not sensitive. An identifier is needed, not a national ID number or anything clinical.
Important: Whatever you choose becomes the Staff ID shown in Hand Hygiene and included in every data export. Your own managers read it on screen when they look at a staff member. Choose a value that still means something to a person — an employee number or a payroll ID. A directory GUID will match perfectly and make your reports unreadable.
Set the Unique Ext. ID for managed users
If your organization does not use single sign-on (SSO), enter the identifier yourself. In the Users app, type it in the Unique Ext. ID field when you add the user, or on their user profile later. A user with the User Management Administrator role can do this. Each value can belong to only one user. If you enter a value another user already has when editing a user profile, the change isn't saved and the Users app shows Unique Ext. ID is already used by another user. See Add a user.
For SSO users, the field is read-only in the Users app. Its value comes from your identity provider, as described in the next section.
What your identity team configures (SSO accounts)
This section is written to be forwarded to whoever administers your identity provider. The work on your side is releasing one additional attribute. There is no new integration or endpoint to build.
- Confirm the attribute that will identify a staff member, against the four criteria above.
- Release it to Kontakt.io in the sign-in response. Add it to the SSO connection you already have with us — a SAML attribute statement or an OIDC claim, depending on how the connection is set up. It travels with the sign-in the staff member is already performing.
- Tell Kontakt.io two things: the exact attribute or claim name you are sending, and one sample value so the format can be confirmed.
Kontakt.io then adds an attribute mapper in your identity realm that writes the value you send into the account's Unique Ext. ID. It populates on the user's next sign-in and is then visible in the Users app.
Match the staff profiles
The staff profiles have to carry the same value.
- At go-live, they are simply named with that identifier from the start. This costs nothing extra — the staff profiles have to be named something regardless.
- If they already exist under a different identifier, they are re-keyed in bulk using the staff export and import. See Import staff in bulk.
Grant app access
Only staff who need to sign in require a user account at all. Everyone else stays as a staff profile and is measured normally.
For someone who needs the Kio Nurse Assistant mobile app, assign the Hand Hygiene User role under Kio Nurse (Mobile) in the Users app. For the web app, assign a Hand Hygiene role. For nurses who only need to see their team's results, the least-privilege role is Nurse, which has access to Team Dashboard only. Assign User or Administrator only to people who manage staff, dispensers, or settings. If someone uses both, they need both.
The link is required for anyone with the web Nurse role or the mobile Hand Hygiene User role. Both show the staff member's own department, which Hand Hygiene finds through the link. Other web roles can open Team Dashboard without it. Administrators who manage Rewards also need the link, because Rewards shows the Raffles for their own home campus.
See About user access to Kio Nurse Assistant and About user access to Hand Hygiene.
Verify with one staff member
Pick one badged staff member and confirm the link on both sides. Open their staff profile in Hand Hygiene: once the Staff ID matches a user, the profile shows Linked User. In the Users app, the matching user profile shows Linked Staff. If neither appears, either the two values do not match or the user's Unique Ext. ID is empty. For SSO users, it populates on the staff member's next sign-in.
Then have them sign in once, to Team Dashboard in the web app or to Kio Nurse Assistant, depending on the role they hold.
- If their own department or activity appears, the link is correct and the same configuration covers everyone.
- If nothing appears, that account is not linked. This is the fastest way to tell a matching problem from an app problem, and it can be confirmed from the Kontakt.io side without involving the staff member again.
For what to check when it does not work, see Troubleshooting: Team Dashboard or the mobile app shows no data.
If your identity provider cannot release that attribute
This happens, often because the directory is owned by a security team with no stake in a clinical application. There is a way around it.
Release what you can, and the staff profiles are matched to it instead. Tell Kontakt.io which attribute your identity provider can expose, and the staff profiles are updated to carry that value. The configuration effort is the same; the value simply flows in the other direction.
The cost: your chosen attribute becomes the Staff ID your own team reads in the web app and in exports. Weigh how identifiable you want staff to be on screen when choosing it.
What Kontakt.io needs from you
- Which identifier you want to use, and whether your identity provider can release it.
- The exact attribute or claim name it will arrive under, plus one sample value.
- Who should have the mobile app, and one staff member to test with.