A Next.js application that automates employee onboarding by creating user accounts across both Google Workspace and Microsoft 365 simultaneously. Streamline your IT onboarding process with a single form that provisions users in both platforms at once.
- Dual Platform Support: Create users in Google Workspace and Microsoft 365 from one form
- OAuth Integration: Secure authentication with both Google and Microsoft
- License Management: Automatically assign Microsoft 365 licenses during user creation
- Organizational Unit Selection: Optional OU placement for Google Workspace users
- Administrative Unit Assignment: Optional AU assignment for Microsoft Entra ID users
- Real-time License Tracking: View available Microsoft 365 licenses in the sidebar
- Unified or Single Platform: Works with just one platform or both together
- Automatic Password Generation: Creates secure temporary passwords for new users
- Error Handling: Detailed error messages and partial success handling
- Rate Limiting: Built-in rate limiting (10 users/hour) to prevent abuse
- Audit Logging: Immutable audit trail of all user creation events
- Session-Only Authentication: Automatic logout when browser closes
- 1-hour Maximum Session: Forces re-authentication after 1 hour
- Automatic Token Refresh: Seamless background token renewal
- HTTP-only Cookies: Protects against XSS attacks
- Suspicious Activity Detection: Alerts when unusual patterns are detected
Optionally specify which Organizational Unit to place new users in:
- Toggle to enable/disable: Hidden by default to avoid clutter
- Custom OU path input: Enter paths like
/Sales,/Engineering/Backend, etc. - Defaults to root: When disabled, users are placed in
/(root OU) - Available in all modes: Works with unified and Google-only onboarding
How to use:
- Enable "Specify Google Workspace Organizational Unit" checkbox
- Enter the full OU path (e.g.,
/Marketing/EMEA) - Ensure the OU exists in Google Workspace Admin Console
Optionally assign new users to Administrative Units:
- Toggle to enable/disable: Hidden by default
- GUID-based selection: Enter the Administrative Unit ID from Entra ID
- Post-creation assignment: User is added to AU after successful creation
- Graceful error handling: Continues even if AU assignment fails
How to use:
- Create Administrative Units in Entra ID (Identity > Administrative units)
- Copy the Administrative Unit ID (GUID format)
- Enable "Assign to Administrative Unit (Entra ID)" checkbox
- Paste the AU ID
Required permission: AdministrativeUnit.ReadWrite.All
npm install-
Copy the environment template:
cp .env.example .env.local
-
Fill in your OAuth credentials (see
docs/for detailed setup instructions)
npm run dev # Start with environment validation
npm run dev:fast # Start without validation (faster)Open http://localhost:3000 with your browser.
npm run build # Build for production
npm start # Start production serverAll documentation is organized in the docs/ directory:
docs/n8n-integration.md- Comprehensive n8n workflow integration guidedocs/n8n-OPTIONAL.md- Alternative n8n setup guidedocs/PERFORMANCE.md- Performance optimization tipsCLAUDE.md- Developer guide for working with this codebase
AutoBoard works great out of the box with its built-in Next.js API routes. For advanced automation needs, you can optionally integrate with n8n:
- Built-in API (Recommended): OAuth-based authentication, integrated dashboard, simple deployment
- n8n Integration (Optional): Visual workflow editor, email triggers, 400+ pre-built integrations, execution history
See docs/n8n-integration.md for comprehensive n8n setup instructions.
- Rate Limiting: 10 user creations per hour (configurable, shared across web UI and n8n)
- Audit Logging: All user creation events logged to
logs/audit.logwith restricted permissions - API Key Authentication: Optional API key support for external integrations
- Session-only Cookies: Authentication expires when browser closes
- HTTP-only Cookies: Protects against XSS attacks
- Automatic Token Refresh: Seamless background token renewal
- Auto Sign-out: Invalid sessions are automatically terminated
Organizations deploying AutoBoard should customize:
- Default Usage Location - Set your country code as default
- Default License SKU - Match your organization's primary Microsoft 365 license
- Default Organizational Unit - Set your preferred Google Workspace OU path
See CLAUDE.md for detailed customization instructions.
Example email templates for testing n8n workflows are available in n8n-migration/examples/:
simple-name.eml.example- Standard two-word namescompound-surname.eml.example- Spanish/Portuguese compound surnamespatronymic-name.eml.example- Hebrew patronymic nameslegacy-format.eml.example- Legacy "Full Legal Name" format
Open source - feel free to customize for your organization's needs.