Submit Headcount

Auto-selects the nearest slot within 90 minutes based on Memphis time. You can still change it.

Dashboard

Loading...

Admin Panel

Teams
🔑 Admin password is set via ADMIN_PASSWORD in your .env file.
Locations & Jobs
Team Location Access
Loading...
Export & Integrations
Google Sheets

📊 Google Sheets

Each submission auto-updates a row in your sheet (one row per company per shift per day). Needs a Google Service Account JSON key.

Saved ✓
SharePoint / Excel Online

📁 SharePoint / Excel Online

Pushes data to your SharePoint Excel file via Microsoft Graph API. Register an Azure App to get credentials.

Saved ✓
Signal Notifications

📡 Signal Notifications

Sends team reminders via each team's saved Signal contact. The optional global group ID is only used for the separate global test message.

▶ Register a phone number
Step 1 — Request verification code

If Signal asks for captcha, paste the full signalcaptcha://... link here and send the code again.

Alternative setup: link this container as a device from the Signal app on your phone.
Step 2 — Enter verification code
Step 3 — Get your group ID

Copy the Id: value and paste it into the Group ID field below, then save.

Saved ✓

📲 Team Signal Contacts

Assign a Signal phone number or group ID to each team per shift. The system automatically sends a reminder 15 minutes before each 3-hour time slot if that team has not submitted yet.

Loading teams...

Error Reporting

Send an alert to a phone number or Signal group ID when important failures happen, such as failed reminders, failed manual sends, or failed update reports.

Saved ✓

If you set an Update Channel Group ID, the system will also post a short submitted/missing team breakdown one hour after each slot.

On-Site Signal Monitoring

Monitors a Signal group chat for headcount messages from external teams on site. Messages are auto-parsed every 15 minutes and saved directly — no manual approval needed. Only messages where a total couldn't be found will appear in the On-Site Teams tab for manual entry.

The group chat you want to monitor for on-site headcounts. Use List Groups in the Signal setup above to find this.
Created to the right of existing tabs. Default: OnSite_Teams.
Saved ✓
Contact → Team Mapping

For contacts who don't include their company name in their messages, map their phone number to a team name here. E.g. David Rymes' number → DARANA.

Admin Audit Log
Loading audit log...
Loading audit log...

Messages

Signal Number
Loading...
Update Group
Loading...
Global Group
Loading...
Message Log
Loading...
Loading...
Pending Reminders
Loading...
Compose Message
Preview

Announcements

On-Site Teams

Confirmed On-Site Headcounts
Loading...

Shift Notes

Team Handover Note
Recent Team Notes
Loading notes...

Analytics

Loading analytics...

Submission Trend

Daily headcount totals for the selected filters.

Top Tasks

The busiest submitted job areas by headcount.

Headcount By Time Slot

Which reporting slots carried the most people.

Role Mix

Overall leads and technicians in this view.

Team Headcount

Team totals across the selected period.

First-Pass Quality

Accepted submissions compared with retry attempts.

Submission Completion

Submitted slots compared with expected slots.

Shift Split By Team

Day and night headcount split by team.

Daily Work Plan

Submits to the Contractor Daily Work Plan Google Form. Fields with a green border are auto-filled.

Alignauto
Yesauto
Macroharderauto
auto
auto
Schedule Send

Submission Detail

Working...
Confirm