Forgot password?
Upload Photos (no login needed) →
Invalid credentials. Please try again.
Facility Photo Upload
⏰ Upload deadline: 4:00 PM. Verification deadline: 5:00 PM. Verification is done after logging into the main app — not here.
Who are you?
Enter your 4-digit kiosk PIN — sent to your WhatsApp. No password needed for this page.
← Back to normal login
Dashboard
?
—
—
My Shift Today
Today's Shifts — All
Unassigned Alerts
Department Overview
DepartmentBuildingEmployeesThis Month ShiftsStatus
build: dept-lock-v4
Loading...
Loading...
Building: —
With employees · excludes holidays & leave
Mon → Fri
Mon → Sat
Mon → Sun
Loading…
Roaster Management
Building: —
With employees · excludes holidays & leave
Mon → Fri
Mon → Sat
Mon → Sun
Loading roster...
⏰ Shift Types
Users & Roles
NameUsernamePhoneRoleDepartmentBuildingSub DeptWork DaysStatusActions
Departments
NameCodeBuildingColorStatusActions
Sub Departments
NameCodeParent DepartmentColorStatusActions
Buildings
NameAddressCityStatusActions
Public Holidays
DateNameDayApplies ToYour DeptActions
Applied Leaves
EmployeeTypeFromToStatusActions
Saturday Off
EmployeeDateNotesActions
Leave Cover Swaps
Rollback handled from Leave List
Pending Swapper Accepted Manager Approved
ProgressRequesterTheir ShiftSwap WithTarget ShiftNotesActions
Direct Swap Requests
Pending Swapper Accepted Manager Approved
ProgressRequesterTheir ShiftSwap WithTarget ShiftNotesActions
Saturday Leave Swaps
Have a Saturday off assigned but need leave on a different Saturday? Pick your assigned off-date and the Saturday you want leave on — only eligible swap partners are shown.
ProgressRequesterTheir Off DateWants Leave OnSwap PartnerNotesActions
Public Holidays
DateHolidayDayTypeApplies To
My Sunday Shifts
DateShiftStatus
My Saturday Offs
DateNotes
Public Holidays
DateHolidayType
My Leave History
TypeFromToDaysStatus
My Swap Requests
DateShiftWithStatus
Sunday Duty
▾
Sunday Duty Pool — All Buildings (only employees with "Can work Sundays" enabled in their profile)
Public Holiday Duty
▾
🇮🇳 PH Duty Pool — India (covers India-only and shared holidays)
🇺🇸 PH Duty Pool — United States (covers US-only and shared holidays)
Auto Assignment
▾
Configure which days each employee works, their building and shift — then assign for a month. Existing shifts on those days are replaced. Public Holidays and approved leaves are always skipped.
Assign For Month
Day Preset
Assign For Year
Assigns selected days for the entire year using per-employee presets below. Replaces existing shifts. PH & leaves skipped.
Clear Shifts For Month
Clear Shifts For Year
Deletes all auto-assigned shifts on the selected days (Mon–Fri / Mon–Sat / Custom). Public Holidays are always excluded.
Employee Presets — Building & Shift Per Person
Saturday Rotation
▾
Set which employees get Saturday Off each week. Months with 4 Saturdays use the 4-week plan; months with 5 Saturdays use the 5-week plan.
4-Week Plan — months with exactly 4 Saturdays
5-Week Plan — months with 5 Saturdays
6-Week Plan — months with 6 Saturdays (rare)
Click "Preview Year" to see the Saturday rotation for each month.
Custom Alerts
▾
Set minimum staff thresholds for Sunday duty and Public Holidays, then add any extra custom rules below. Dashboard alerts fire when conditions are not met.
Sunday / Shuffle Day Alert
Minimum total staff across all buildings
Set 0 to disable alert
Configured in Sunday Duty section above
Public Holiday Alert
Minimum total staff across all buildings on PH days
Set 0 to disable alert
Also used when generating PH shifts
Additional Custom Rules
Add rules for specific buildings, days, or shift patterns.
Organization
Roaster Preferences
Mandatory Shift Alerts
Highlight unassigned dates in red
Email Notifications
Send shift reminders via email
Department Access for Tools
Restrict each tool below to one department — DMs, managers, and employees outside that department won't see it in their sidebar at all. Leave as "All Departments" for a tool everyone should keep seeing.
Checklist Tools
Checklist Tracker isn't limited to one department — spin up a fully independent copy for another team. Each one gets its own sidebar entry, its own services, branches, verifiers and employees, starting completely empty and ready to configure.
Loading…
ERP Connector
Lets ERPNext (or another external system) read who sent their daily duty report — read-only, no user login or MFA involved. Each key can be revoked on its own without affecting anything else.
Connector
Loading…
My Security
Email OTP on Login
Send a one-time code to your email each time you log in
Authenticator App (TOTP)
Use Google Authenticator or similar app for login
Email Configuration (SMTP)
Use SSL/TLS
Enable for port 465
Email Notification Preferences
Choose which events trigger email notifications
Global MFA Enforcement
Force all employees to use MFA when logging in
Enforce Email OTP for All
Every user must verify via email OTP on each login — overrides individual settings
Enforce Authenticator App for All
Every user must have TOTP authenticator set up — overrides individual settings
Enabling these will affect all users on next login. Users without MFA set up will be prompted to configure it.
Server Info
Loading…
Audit Log
TimeUserActionEntityDetailsIP
Email Notifications
Scheduled roster and daily report emails, sent automatically or on demand
Weekly Full Roaster Email
Disabled
Send the full next-week roster to all employees every week
Daily Roaster Emails
E.g. "Every Friday → send Saturday roster", "Every Saturday → send Sunday roster"
Public Holiday Roaster Alert
Disabled
Send the holiday roaster to all employees N days before each public holiday
Daily Reports Digest Email
Disabled
Every tracked employee's status for the previous day in one email — on time / late / on leave / missed — including the full transcript for any voice reports. Same content as the "Preview All" view on the Daily Reports page and the WhatsApp digest alert.
Send Log
Click Refresh to load send history.

Report Config

Configure the mailbox integration for Daily Reports and manage which employees are required to send reports.

Mail Provider
Microsoft 365 — Azure App Credentials
Register an app in portal.azure.com → App Registrations → API Permissions → Microsoft Graph → Mail.Read (Application)
Setup Steps — How to register the Azure App
  1. Go to portal.azure.com → search App registrations
  2. Click + New registration → Name: DutyPulse Reports → Single tenant → Register
  3. Go to API permissions → Add a permission → Microsoft Graph → Application permissions → search Mail.Read → Add
  4. Click Grant admin consent → Yes
  5. Go to Certificates & secrets → New client secret → Copy the Value
  6. Go to Overview → Copy Application (client) ID and Directory (tenant) ID
Report Settings
Exclude Employees from Daily Reports
Excluded employees will not appear in the Daily Reports grid and won't be counted as missed.

Server Room Photos

Upload today's server room photo for each building, then get it verified. Verification is only possible once a photo is uploaded.

Daily
Reports
Loading…

Firewall Screenshots

Upload today's firewall screenshot for each building, then get it verified. Verification is only possible once a screenshot is uploaded.

Daily
Reports
Loading…

Checklist Tracker

Complete today's checklist items before their deadline, then get them verified. Each item has its own schedule — daily, weekly, monthly, or a one-off date.

Daily
Reports
Readings Log
Loading…

Crimping Tracker

Each week, tracked employees upload a photo + the number of cables crimped, then get it tested and approved.

Weekly
Reports
Loading…

Server Backup Screenshots

Each server has its own cadence — some daily, some weekly. This always shows the live status for right now, not a specific date to browse.

Loading…

WhatsApp Notifications

Configure which alerts get posted to your WhatsApp group, and when. Requires the WhatsApp bridge service to be running.

WhatsApp Accounts

Each account is one linked WhatsApp number (its own bridge process). Alerts use the Default account unless a department rule below, or the "Send from" picker on an alert, says otherwise.

Checking…
Department → WhatsApp Account

Use a different WhatsApp number for just a few departments. A rule applies to that department's own alert versions and to event messages about its people (leave, swaps, crimping, kiosk PIN). Pick "Only these alerts" to move just some processes. Priority: "Send from" on a department version → these rules → "Send from" on the alert's main card → Default account. The chosen number must be a member of the groups those alerts post to.

Loading…
Bridge Auto-Restart

The WhatsApp bridge can occasionally go stale over a long uptime — it still shows "Connected" but silently stops sending. Cycling the process fixes it without needing to re-scan the QR code. Optionally schedule this daily so it doesn't need to be caught manually.

: (IST)
Send Queue & History

Every scheduled alert and instant message for the day — sent, failed, missed or still to come — with per-recipient results. Use Send now on any row to send it immediately. History is kept for the last 5 days. Failures caused by a number being disconnected auto-send when it reconnects.

Loading…
Disconnect Email Alert

WhatsApp can't notify about its own disconnection — this emails you the moment it goes down, so it's not discovered only when someone happens to check. Sends once per disconnection, not repeatedly.

Alert Recipients

Anyone or any group who should get tailgating alerts.

Add Recipient
For a group: paste its invite link and click Resolve — the Label and Target fill in automatically.
Recipients
Label Target Type Active
Loading…
Loading…
Backup Configuration
Auto Backup
Automatically create backups
Create Backup

Create a full snapshot of all DutyPulse data (users, roster, leaves, swaps, settings).

Local backups stored in: /opt/duty-roaster/backups/
Restore from File
Restoring will overwrite all current data. A safety backup is automatically created before restore.
Backup History
FilenameDateTypeSizeActions
—
—
Click a day to assign shifts
Week
Actions:
Clipboard ready
Select a day above