| Name | Roles | Status | CORE | Pre-Core | ||
|---|---|---|---|---|---|---|
| Loading… | ||||||
Edit User
| Code | Name | Plain-language access | |
|---|---|---|---|
| Loading roles… | |||
| Code | Name | Plain-language access | Members | |
|---|---|---|---|---|
| Loading… | ||||
Sentry Error Tracking
Frontend and backend report to separate Sentry projects, each with its own DSN — test them independently below. Useful for confirming the pipeline (capture → dashboard → email alert) is still working end-to-end without waiting for a real bug.
Maintenance Mode
When enabled, the public maintenance endpoint returns true and the frontend can display a banner. Changes take effect on next request — no restart needed.
Site Measurements Tab
The Site Measurements tab is hidden in production while it's still being finished, but always shown in sandbox for testing. Enable this to show it in production too.
Gmail BCC Address
Blind-copied on every outbound Gmail send (project @mention notifications). Leave blank to send with no BCC.
Settings PIN
PIN required to unlock the Settings panel inside CORE (project workspace → gear icon). Checked server-side — never shipped to the browser. Keep it 4 characters — the unlock screen's input won't accept more.
Uniformat Code → CSI Division Mapping
Powers CSI-division auto-tagging when a SqFt Model is uploaded (project Takeoffs tab). Uploading a revised workbook replaces the entire mapping.
Record a Database Clone
Log that you just refreshed this database from another environment. Updates the “Last DB Clone” status above and appends a db_clone event.
The catalog behind each study's Document Follow-up checklist — one row per objective, with a Best (●) and Acceptable (○) document and, optionally, the project inputs it can verify. Only PPA / Acquisition is seeded today; add rows here to cover New Construction and Improvement.
| Study | Objective | Best (●) | Acceptable (○) | Condition | Sort | Active | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
The project fields the checklist tracks (Entity Name, Purchase Price, etc.). Labels, formula descriptions, sort order, and visibility are editable here. A newly added input has no built-in CORE data source — its value stays blank unless a developer wires one up — but it can still be tracked and verified against documents like any other input. The key is fixed once created.
| Key | Name | Computed | Formula Description | Auto-Verify | Sort | Active | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Same catalog as the Documents tab (core_followup_requirements) — one row per requirement — edited
through the simpler v9 model: a single Name and Tip instead of separate Best/Acceptable documents. Saving here
sets both Best and Acceptable to the same Name, so the two tabs stay compatible; project inputs are managed on
the Documents tab.
| Study | Name | Tip | Kind | Associated Property Types | Sort | Active | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Same core_followup_input_fields table as the Documents tab — add, rename, reorder, or retire the
project fields the checklist tracks. A newly added input has no built-in CORE data source (its value stays
blank until a developer wires one up), but it can still be tracked and confirmed against documents like any
other input, and immediately appears in the "Confirms these project inputs" list above.
| Key | Name | Computed | Formula Description | Sort | Active | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Zoho Pipeline Stages
Manage the CRM pipeline stages shown as filter buttons in Pre-Core. Stage Name must exactly match the Zoho CRM value. Display Label is the shorter text shown on the button — leave blank to use the full stage name.
| # | Stage Name | Display Label | Pipeline | Color | Active | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Zoho CRM Stage Backfill
Fetches the current Stage from Zoho CRM for every Pre-Core EOB record that has a Deal ID. By default only fills in records with a blank Stage; enable Force to overwrite all. Processing runs in the background — if the Pre-Core history tab is open it will update live via the stage SSE stream.
Zoho Deal Notes Backfill
Fetches all notes from Zoho CRM for every Pre-Core EOB record that has a Deal ID and syncs them into the core_zoho_notes table. Always does a full replace per deal — any deleted Zoho notes will be removed. Processing runs in the background at ~700ms per record to stay within Zoho's rate limit.
Backhaul Zoho Notes to Chat
For every CORE project linked to a Zoho deal, refreshes that deal's notes live from Zoho, then copies each note into the project's Chat feed as a "Zoho Notes" message (with the original author/date preserved in the message body). Safe to re-run — already-backfilled notes are skipped. Does not remove or modify the existing Zoho Notes popup.
SegStream Historical Study Import
Imports completed cost-segregation studies from the legacy SegStream platform's Excel/Word exports (now stored in Google Drive) into CORE as "SegStream Import"-tagged projects, usable as Comparable Studies matches. Safe to re-run — studies already imported (matched by filename) are skipped. If a study's property type can't be confidently determined, it's imported with property type "Unknown" and flagged in Needs Review below — the run itself never stops. Fix the property types afterward whenever you're ready.
Recent Activity
Last 30 studies processed by the current or most recently viewed run.
| Study | Outcome | Property Type | Notes |
|---|---|---|---|
| No runs yet. | |||
Needs Review
Studies imported with property type "Unknown" because it couldn't be confidently determined from the study. Pick the correct type below whenever you're ready — these are already imported, so there's no rush.
| Study | Address | Current Guess | Actions |
|---|---|---|---|
| None. | |||
Backfill Drive Folder IDs
SegStream-imported projects were never linked to a Pre-Core record, so they never picked up a Drive folder ID the normal way. This crawls the client-folders Shared Drive and matches each project missing one by street address + zip. Only matches with both a confirmed zip and address-text match are auto-assigned — anything less certain lands in Needs Review below for you to resolve by pasting in the correct folder link.
| Project | Outcome | Folder |
|---|---|---|
| No runs yet. | ||
Drive Folder — Needs Review
Projects the backfill couldn't confidently match. Paste the correct Drive folder link or ID to resolve — it's validated before saving.
| Project | Address | Candidates Found | Actions |
|---|---|---|---|
| None. | |||
Recent System Events
Append-only audit log. Most recent 100 events shown; filter by type to drill in.
| When | Event | By | Details |
|---|---|---|---|
| Loading… | |||
Audit Log
Changes shows exactly what was added, changed or removed in each project, field by field, and who did it. Activity lists every save and action in CORE and Pre-Core (GrokBot included), with whether it went through and the time zone it came from. Times are shown in your local time.
| When | User | Action | Project | Outcome | User time zone |
|---|---|---|---|---|---|
| Loading… | |||||
QC1 Submission Requirements
Every project must satisfy all of these before it can advance to QC1. Enforced in code today — not yet individually toggleable.
- Site Inspection completed or waived (only checked for study types that have one seeded)
- Every document requirement Received or Waived — none still Pending
- Every project input confirmed or waived
Study Marked Complete
Sent automatically when a study is moved to Completed. Recipients are resolved per project — Sales Rep from the linked Pre-Core record, Project Coordinator from that project's Assign Users modal.
Merge fields:
{{projectName}} {{clientName}} {{projectAddress}} {{completedBy}} {{driveLink}}
{{finalBasis}} {{precoreBasis}} {{basisDelta}}
{{fiveYearPct}} {{fifteenYearPct}} {{longLifePct}}
{{precoreFiveYearPct}} {{precoreFifteenYearPct}} {{precoreLongLifePct}}
{{comparisonTable}}
{{comparisonTable}} renders a full Pre-Core vs. Final Study table (basis + all three allocation percentages) — drop it on its own line rather than mixing it into a sentence.
{{clientName}} is the client/individual name (good for a greeting, e.g. "Hi {{clientName}},") — distinct from {{projectName}}, which prefers the entity/LLC name. Falls back to the entity or project name if no client name was entered.
Send Test
Sends the currently saved template (Save first if you've made changes) to whichever user you pick, using a real completed project's data, clearly marked as a test. Doesn't require the rule to be active — shows up in Recent Sends below, flagged as a test in the Reason column.
Recent Sends
Most recent 50 attempts, sent or not.
| When | Project | Recipient | Sent | Reason | |
|---|---|---|---|---|---|
| Loading… | |||||
Notification Triggers
Define exactly who gets notified — by email, text, or both — when a specific CORE event happens. The event itself (the trigger) is fixed in code; everything else here — recipients, wording, on/off — is fully admin-editable with no code changes.
New Trigger
Merge fields:
Each recipient can get Email, SMS, or both. SMS requires a phone number on file (Users tab).
Send Trigger Test
Sends the currently saved template for a chosen trigger to one user over one channel, using the most recently created project's data.
Recent Trigger Sends
| When | Project | Recipient | Channel | Sent | Reason |
|---|---|---|---|---|---|
| Pick a trigger above. | |||||
Send Test SMS
Sends a real text message via Twilio to the selected user's phone number on file (Users tab), or to a custom number. Only active users with a phone number set are selectable below.
Twilio Configuration
Read-only — set via the TWILIO_ACCOUNT_SID / TWILIO_AUTH_TOKEN / TWILIO_NUMBER environment variables. The Auth Token is masked; nothing on this page ever shows the full secret.