Customer action when a reservation is lost during activation
Stop and contact Hatz Support. If the coordinated reservation expires or disappears after the initial provider is created, or before secondary-domain registration or postflight completes, do not remove or full-disable the provider yourself and do not infer destructive recovery steps from this article. Leave the current provider state unchanged while contacting the staffed Hatz Support and Identity Engineering team; they will use the internal prevalidated first-time recovery control, verify local and external cleanup, restore the recorded account-creation state, and confirm approved recovery access before retrying. The leave-unchanged rule applies without this staffed recovery branch only when failure is detected before activation starts. Established providers use the scoped established-provider recovery path.
If the reservation is lost during activation
Do not leave an activated provider half-configured. If the namespace reservation expires or disappears after the initial provider is created, or before secondary-domain registration or postflight completes, stop the operation and use the documented prevalidated first-time recovery procedure to remove the initial provider or full-disable first-time SAML enforcement, then verify local connection removal, external provider/domain cleanup, restored account-creation state, and approved recovery access before retrying. The “leave the provider unchanged” rule applies only to failures detected before activation starts. Never use this first-time recovery procedure for an established provider; use the scoped established-provider recovery path instead.
SSO (SAML) + SCIM Provisioning
SAML SSO lets users authenticate via your organization’s Identity Provider (IdP) such as Okta or Microsoft Entra ID.
SCIM provisioning automates user lifecycle management from your IdP into Hatz AI (create users, update user attributes, deactivate users when removed/unassigned).
Key distinction:
SAML = how users sign in (authentication)
SCIM = how users are created/updated/disabled (provisioning)
When SAML SSO is enabled for a tenant, Email/Password login is disabled tenant-wide and authentication is controlled by the IdP.
Before enabling SSO for users on multiple email domains: List every current or planned Hatz user who needs access and every domain sent by the SAML email claim or SCIM userName mapping. Make sure each value matches the user's Hatz email and that each user is assigned to the identity-provider application. Contact Hatz Support before completing the setup wizard: the wizard registers only the domain entered, and DNS verification alone does not add another domain to the SSO connection. After Support confirms the complete domain set, open /sso-login in a fresh session and test one active, assigned Hatz user from every domain. Test the Launch URL separately if your users rely on it.
Configuration Guides
Login to the Admin Dashboard.
Navigate to the Settings Tab and select the SAML Tab in the sidebar.
3. You will see the tenant SSO list. Tenants with access to SSO will show a clickable Configure button, while those without access will remain disabled.
4. When you click the Configure button, you will be prompted to select your Identity Provider (IdP).
Okta Setup
Please also refer to the Okta Docs
Choose Okta as an IdP and you will be taken to this configuration screen
Login to the Okta Admin, go to Applications → Create App Integration
3. Select SAML 2.0.
4. Set the App Name and Optional App Logo
5. Set Single sign on URL to the ACS URL shown.
6. Set Audience URI (SP Entity ID) to the Entity ID / Metadata URL shown.
7. Set Name ID Format to EmailAddress and Application username to Email.
8. Select "This is an internal app that we have created" - Click "Finish"
9. Map attributes: email → email, firstName → given_name, lastName → family_name.
10. Assign the app to your users/groups.
11. Copy the IdP metadata URL from the Sign On tab for the next step.
Click Continue
12. After you finish the Hatz SAML wizard, create a separate Bookmark App in Okta and set its URL to the Launch URL / Sign-on URL shown in Hatz. Assign the Bookmark App to the same users or groups. To keep users from starting the tenant-less IdP-initiated flow, hide the SAML application tile and direct users to the Bookmark App instead. This step is required — see Launch URL (IdP app tile or bookmark) below.
Verify your Domain
Access DNS records to verify a domain with most common providers (like GoDaddy, Namecheap, Cloudflare, etc. users generally need to copy a unique code from the service requesting verification and paste it into a specific "TXT Record" in your domain's settings.
The Typical Steps:
Log In: Sign in to the account where you purchased your domain.
Locate DNS Settings: Look for a menu option labeled DNS, DNS Management, Zone Editor, or Advanced DNS. This is often found next to the specific domain name in your dashboard.
Add a New Record: Click the button to add a record and fill in the following:
Type: Select TXT.
Host (or Name): Enter _hatz
Value (or Content): Paste the verification string/code provided to you.
TTL: Leave as default or select "Automatic" (or 1 Hour).
Save: Click Save or Add Record.
Verify: Go back to the Hatz click the "Verify Domain" button.
Note: While many providers update instantly, it can technically take up to 24–48 hours for these changes to be recognized across the internet. Please note Hatz support can not assist with domain verification and it is a required step.
Okta SCIM setup
Authentication via Secret/Bearer Token
Create a SCIM Authentication Token in the Hatz Platform
Navigate to https://admin.hatz.ai/settings/saml and authenticate with an account with the role “Primary Admin"
2. Select “Manage” next to the selected tenant
Note: SCIM and SAML are set by the tenant listed as the default company. This is the tenant associated with the admin MSP
2. In the Configure SCIM Provisioning section, scroll down to the “Copy your SCIM Credentials” and generate a SCIM bearer token. Copy it securely. You will paste this into Okta as the Secret Token.
3. Configure the SCIM Provisioning Endpoint in Okta
Okta admin center → Applications → select your app → General.
Within App Settings edit Provisioning to SCIM.
4. Navigate to the Provisioning tab and set the values to the below:
SCIM version: 2.0
SCIM connector base URL: https://admin.hatz.ai/api/scim/v2
Unique Identifier field for users: userName
Supported provisioning actions:
Push New Users
Push Profile Updates
Push Groups
Authentication Mode: HTTP Header
Please Note: "Import New Users and Profile Updates" and "Import Groups" are not currently supported.
Authorization: paste the SCIM bearer token from Step 1.
5. Test the Connection
Click Test Connector Connection.
Confirm Okta reports success (“authorized” / connection validated)
6. Click Save to finalize credentials.
Microsoft Entra Setup
Please use our in-depth help document for SSO and SCIM setup for Microsoft Entra: https://docs.hatz.ai/en/articles/14471591-microsoft-entra-sso-scim
Generic SAML Setup
Please also refer to the SAML 2.0 Docs
Use the configuration URLs shown to set up your SAML provider.
Step-by-step
Create a new SAML 2.0 application in your provider.
Set the ACS URL (also called Reply URL or Single Sign-On URL).
Set the Entity ID (also called Audience URI or Identifier). When Hatz shows one combined Entity ID / Metadata URL value, paste that value in this field. Do not enter your IdP metadata URL or XML here; use that separately when Hatz asks for IdP metadata.
Map attributes: email (required), first name, last name.
Assign users/groups who should access the app.
Download or copy the IdP metadata URL or XML.
Launch URL (IdP app tile or bookmark)
Once a tenant's SAML connection is configured, Hatz shows a Launch URL / Sign-on URL in the Configuration URLs section of the SAML wizard. Copy that exact value and use it as the link behind the app tile or bookmark your users click in your Identity Provider:
Okta: create a separate Bookmark App whose URL is the Hatz Launch URL, assign it to the same users or groups, and hide the SAML application tile as appropriate. Okta generates the SAML application's App Embed Link; it is not a field where you can paste the Hatz Launch URL.
Microsoft Entra: the Sign on URL in Basic SAML Configuration, which is what the My Apps tile (the application's user access URL) opens.
Other providers: whichever field sets the application's launch, home, or start URL.
The Launch URL is not the ACS URL. Leave the ACS URL (Reply URL) and Entity ID set to the values used in the setup steps above. The Launch URL only controls where the app tile, bookmark, or sign-on link sends the user.
Why this step is required
A sign-in that starts at your Identity Provider does not tell Hatz which tenant the user belongs to. If the tile points at anything other than the Launch URL, users can land on the MSP admin sign-in page instead of their own workspace, even when the SAML configuration itself is correct. Starting from the Launch URL sends them into the right tenant's sign-in.
What the Launch URL looks like
Always copy the value Hatz shows rather than typing one by hand. It takes one of two shapes:
If the tenant has its own workspace domain:
https://your-workspace-domain/api/auth/sso/startIf the tenant signs in on its parent MSP's domain, Hatz appends a tenant-specific identifier:
https://msp-domain/api/auth/sso/start?entity_id=tenant-entity-id
The entity_id value is specific to one tenant. Do not reuse one tenant's Launch URL for another tenant.
If Hatz shows Launch URL unavailable instead of a URL, add a workspace domain for that tenant first, then return to this step.
SSO Configuration FAQ
How many SSO login domains does a tenant support? The Hatz setup wizard registers one login domain at a time. If users need access from multiple email domains, contact Hatz Support before enabling SSO so Support and Identity Engineering can coordinate registration of the complete verified domain set. For
/sso-logindiscovery, each intended email domain must be registered before users from it are routed through the SSO connection. A tenant Launch URL selects the tenant/provider directly, but it does not replace IdP assignment or valid SAML email-claim and SCIMuserNamemapping checks; coordinate any unregistered-domain case with Hatz Support and Identity Engineering.Social Auth (Microsoft OAuth login)
User provisioning (manual user management)
Enforced MFA (multi-factor authentication)
Understanding Authentication
What's the difference between Social Auth and SSO?
Social Auth: Direct login through Microsoft using OAuth. This is a simpler authentication method that allows users to sign in with their Microsoft account without complex configuration. This is available for all packages.
SSO (Single Sign-On): SAML-based SCIM authentication through your organization's Identity Provider (IdP) such as Okta or Microsoft Entra. This provides centralized authentication control, allowing your team to manage all user access from one place.
Key benefit of SSO: Users can access multiple applications with one set of credentials managed by your organization's IdP, and IT administrators have centralized control over access, MFA policies, and offboarding.
Which tenants have access to SSO?
MSPs and End Customers on SMB, Professional, and Business packages can configure SSO.
Can I use SSO on a smaller package?
No, SSO configuration requires SMB tier or higher. However, all users on any package tier can use:
Email + Password login (native)- Users can sign in with a Hatz AI username/email and password managed in Hatz AI. User accounts are created and managed in Hatz AI (invites, role changes, deactivation).
Best for: smaller teams, quick setup, no IdP required.
Enforced MFA (multi-factor authentication) - Admins can require users to complete MFA when signing in (for example, a one-time code or authenticator app), adding an extra layer of security.
Important: MFA is a policy, not a separate login provider. It can apply alongside Email + Password login and (depending on your configuration) may also be enforced through your Identity Provider when using SSO.
Social Auth (Microsoft 365 OAuth)- Users can sign in with Microsoft using OAuth (“Sign in with Microsoft”). This is a simpler Microsoft-based login flow and does not require configuring SAML.
Important: Social Auth is not SSO (SAML) and does not provide the same centralized enterprise controls (like SAML connections and SCIM lifecycle management).
Best for: teams who want Microsoft login without full enterprise SSO setup.
If you need SSO capabilities, consider upgrading your package tier.
Tenant Configuration
How is SSO configuration handled for different tenants?
Each tenant operates as an independent entity with its own SSO configuration. Tenants do not share SSO settings, which means:
Each tenant must configure SSO separately
Users in one tenant cannot access another tenant via SSO without separate configuration
Identity Provider connections are tenant-specific
This isolation ensures security and prevents cross-tenant authentication issues
Domain Verification
Why is domain verification required?
Domain verification confirms ownership and prevents serious security issues such as:
Unauthorized authentication routing: Prevents malicious actors from configuring SSO for domains they don't own
Accidental routing to public domains: Stops accidental configuration with domains like gmail.com or outlook.com, which would allow unauthorized access
Authentication hijacking: Ensures only legitimate domain owners can configure SSO for their users
Security note: This step is critical and cannot be skipped. It protects both your organization and the platform.
How do I verify my domain?
Enter your domain name in the platform (e.g., yourcompany.com)
Generate TXT record: The platform will create a unique TXT record for verification
Add to DNS: Log into your DNS provider (e.g., Amazon Route 53, Cloudflare, GoDaddy) and add this TXT record to your domain's DNS settings
Verify: Return to the platform and click verify
Example DNS record:
Type: TXT Name: @ (or your root domain) Value: hatz-verify=abc123xyz789 TTL: 3600
This confirms you control the domain and can safely configure authentication for it.
My domain verification failed. What should I do?
Wait first. DNS propagation can take 15-30 minutes (sometimes up to 48 hours) depending on your DNS provider and global DNS cache refresh times.
Troubleshooting steps:
Wait 30 minutes after adding the TXT record before retrying
Check your DNS settings: Verify the TXT record was added correctly (no typos)
Use DNS checker tools: Tools like whatsmydns.net can show if your record is propagating globally
Check TTL settings: Lower TTL values (e.g., 300 seconds) can speed up propagation
Contact your DNS provider: If verification still fails after 48 hours
Common mistakes:
Adding the record to the wrong subdomain
Including extra quotation marks or spaces
SCIM (Automated User Provisioning)
What is the benefit of setting up SCIM?
SCIM (System for Cross-domain Identity Management) enables automated user and group syncing from your Identity Provider, providing significant operational benefits:
With SCIM enabled:
New users are automatically created when assigned in your IdP
User attribute changes (name, email, role) sync automatically
Users are automatically deactivated when unassigned or deleted in IdP
Group memberships sync automatically
Reduces manual work and human error
Ensures access is revoked immediately when employees leave
Without SCIM:
All user additions must be done manually in the platform
User updates require manual intervention
User removals must be handled manually
Group management is manual
Can I add the same user to multiple tenants via SCIM?
No. Do not assign the same user to different tenants through SCIM.
The system cannot handle this configuration and may result in:
Silent failures that are difficult to diagnose
Unpredictable user account states
Authentication errors
Synchronization conflicts
User access being granted to the wrong tenant
Correct approach:
If a user needs access to multiple tenants, add them manually to additional tenants
Use SCIM for only one tenant per user
Document which users have multi-tenant access for your records
Why this limitation exists: SCIM uses unique identifiers that assume one-to-one mapping between users and tenants. Multi-tenant assignment breaks this assumption.
Operational Impact
What happens to user login methods when SAML is enabled?
When SAML is activated for your tenant, the authentication flow changes significantly:
Disabled features:
Standard email/password authentication is disabled tenant-wide for all users
"Forgot Password" functionality is disabled
Password reset emails will not be sent
Direct login bypass is not possible
New authentication flow:
Users must authenticate through their Identity Provider
All authentication policies (MFA, password complexity, session length) are now controlled by your IdP
Users see your organization's branded login page (if configured in IdP)
Single sign-on works across all SAML-enabled applications
Important considerations:
Ensure all users are properly set up in your IdP before enabling SAML
Before enabling SAML, reconcile every current and planned user and email domain that must retain access. After staffed confirmation that the complete registered domain set is ready, test one active, assigned user from every registered domain.
Have an emergency contact with IdP admin access in case of issues
Document your SSO configuration for disaster recovery
What happens if I delete a SAML connection?
Deleting a SAML connection has immediate and significant impacts:
Immediate effects:
⚠️ Users remain in the platform database but immediately lose SAML login access
⚠️ Users cannot log in until authentication is restored
⚠️ Active sessions may be terminated (depending on configuration)
To restore access:
Manual intervention is required to restore email/password authentication
Each user must be reset individually or through bulk action
Users will need to set new passwords via password reset flow
This process can be time-consuming for large user bases
Important notes:
Deletion does not remove users from the system (they remain as inactive login accounts)
User data, permissions, and history are preserved
Do not disable SAML temporarily as a troubleshooting shortcut. For an existing provider, stop and use Hatz Support's approved scoped restore path; reserve deletion/full-disable for first-time activation rollback with owner approval and a verified recovery path.
Troubleshooting
Why are users seeing "Okta user is not assigned to this application"?
This error indicates the user has not been assigned to the application within Okta (or your specific Identity Provider).
Common causes:
User was not assigned to the SAML application in Okta
User was removed from the application assignment
User is in a group that's not assigned to the application
The application is assigned to specific groups, and the user isn't in any of them
Resolution steps:
Log into your Identity Provider (e.g., Okta admin console)
Navigate to Applications → Find your platform's SAML app
Go to Assignments tab
Check if the user or their group is assigned
Add the user/group if missing:
Individual assignment: Click "Assign" → "Assign to People" → Select user
Group assignment: Click "Assign" → "Assign to Groups" → Select group
Save changes and have the user try logging in again
Verification:
User should see the application tile in their Okta dashboard
If they don't see it, assignment didn't complete properly
For administrators: Regularly audit application assignments to ensure proper access control and avoid these errors.
Before completing multi-domain SSO setup
Use a staffed coordinated setup. Before starting, wait for Hatz Support to confirm that the Support and Identity Engineering change window is open, every intended domain has been verified, and the rollback path is approved. The wizard creates the provider with only the domain entered; during that staffed window, submit the initial verified domain, immediately register the remaining verified domains through the approved support path, then confirm the complete set and test one active, assigned user from every registered domain and the Launch URL if used. Do not leave the setup unattended while secondary-domain registration or verification is outstanding.
Can I finish the SSO wizard before the complete domain set is registered?
The provider must first be created with the initial domain. Do that only in the staffed change window, then have Support and Identity Engineering immediately register and verify the remaining intended domains before treating tenant-wide setup as active. If the coordinated update cannot be completed safely, use the approved first-time rollback path rather than proceeding unattended.
Established-provider outage recovery
The first-time rollback rule above applies to a failed first-time activation. If an established provider has a provider-wide outage that is not the result of a domain-only update, Hatz Support and Identity Engineering may approve removing the Hatz SAML connection only after verifying an approved non-SSO recovery path, recording the affected tenant and authorization, and confirming the recovery steps. Do not delete or full-disable an established provider as an unapproved troubleshooting shortcut.
Authorized established-provider cleanup
For an established-provider-wide outage, connection removal is an exceptional recovery action, not a general troubleshooting step. It requires approval from the verified tenant owner or authorized tenant admin plus Hatz Support and Identity Engineering, a named privileged operator, a prevalidated non-SSO recovery path tested in a fresh session, and a written record of the provider state, affected tenant, authorization, and verification steps. If those controls are unavailable, do not remove the connection; escalate through the approved owner runbook. Domain-only failures must use the scoped restore path instead.
Verify both sides after established-provider removal
After an approved established-provider removal, verify both the local Hatz SAML connection and the external Auth provider/domain census. Do not declare recovery complete when either side is unknown or still present: an external provider delete failure can coexist with a successful local connection-row deletion. Stop authentication changes, preserve the current state, and route the orphan to Identity Engineering for approved remediation and reverification. Resume recovery only after the local connection is absent, the external provider and its domain registrations are confirmed absent or intentionally reconciled, and the approved access path is tested.
Atomic reservation prerequisite
The multi-domain flow is unavailable until an atomic namespace reservation exists. For a multi-domain operation, before any provider or domain write, Hatz Support and Identity Engineering must confirm that the approved atomic reservation mechanism is available and that the complete normalized domain set is actively reserved for this tenant/provider through census, write, and postflight. A manual change record or provider-scoped window is not sufficient. If the mechanism or reservation is unavailable, do not start or complete the multi-domain wizard; leave the current provider state unchanged and wait for Identity Engineering to provide or reconcile the reservation. This prerequisite does not change the existing single-domain setup path; do not add secondary domains without the coordinated multi-domain process.















