End-to-end walkthrough in the SFO production org. Contractors receive an automated intake email, submit their resource plan on the public Stakeholder Portal, and CAS and Document Control are notified right away. CAS then reviews and locks the plan in Salesforce, and leadership tracks progress and variance on the dashboards.
Each project has an internal record link (requires a Salesforce login) and a project-specific guest link (no login). Guest links are single-project and expire 90 days after they are generated. These links were generated on Sep 29, 2026 and are valid until about Dec 28, 2026.
There are three automated emails. All of them come from demo@citiri.com, the organization-wide address. Check that the From line shows demo@citiri.com and that the message isn't flagged in the recipient's spam folder. That confirms DKIM signing is working.
| Trigger | To | CC | What it contains | |
|---|---|---|---|---|
| Resource Plan Intake Request template |
Automatic, 3rd Friday of each month, 6:00 AM Pacific. Opens the new cycle and unlocks locked months in the guest window. | Contractor Stakeholder primary and secondary contacts, plus project-role users with role type Commissioning Manager or Construction Manager. | cas.documentcontrol@sfoconsultant.com | Project name, the month being requested, and a fresh 90-day guest intake link. |
| Resource Plan Intake Reminder template |
Automatic, 4th Friday, 6:00 AM Pacific. Sent only for projects whose cycle is still Not started or In progress. | Same contractor recipients as the intake request. | cas.documentcontrol@sfoconsultant.com | "Reminder:" subject, project name, month label, and a fresh intake link. |
| Resource Plan Submission Notice template |
Immediately, when a contractor clicks Submit on the guest page. | The project's SFO Project Manager, PDP Construction Manager, PDP Cx Manager, and Commissioning Coordinator; additional SFO PM contacts; and cas.documentcontrol@sfoconsultant.com. | — | Project name, submitter name, the months submitted, and a direct link to the Salesforce project record. |
The contractor opens the link from the intake email (or one of the guest buttons above). No Salesforce login is needed. They enter their contact details and plan weekly resources for the rolling window, one month tab at a time. Then they certify that their ACS worksheet is current and submit.
What you should seeOpen the project record, or the internal Resource Plan Intake page, and select the project. The internal view shows the previous month, the current month, and the months ahead, so CAS can check the numbers against the ACS worksheet.
What you should seeEach chart covers one activity type, so trips, inspections, and tests are never added together. Dashboards refresh when opened. Click Refresh after a live submission to pick up new values.
| Dashboard / report | Use it to answer |
|---|---|
| Resource Tracker Dashboard — 18-Month Lookahead | What demand is planned across the full rolling window, by metric and project? |
| Resource Tracker Dashboard — 6-Week Lookahead | What is coming in the next six weeks? Use this for staffing and scheduling. |
| Resource Tracker Dashboard — 3-Week Lookahead | What is happening in the next three weeks? Use this in the weekly coordination meeting. |
| Projects Missing Resource Submission | Which projects haven't submitted this cycle? It's grouped by cycle status, and it's who to chase before the 4th-Friday reminder. |
| ASO Trips Matrix by Project | ASO trips per project per week, laid out as a matrix. Export it to Excel for distribution. |
Variance shows how much a contractor's forecast moved between submissions. The first value saved for a given week and metric is the baseline, and no variance is recorded for it. Each later submission that changes that week's value records one variance row:
Variance = New Value − Prior Value
| Metric | What the contractor enters per week | Allowed values |
|---|---|---|
| ASO Trips | Number of ASO trips the work will need | whole number ≥ 0 |
| BICE Inspections — Mechanical | Number of BICE mechanical inspections | whole number ≥ 0 |
| BICE Inspections — Electrical | Number of BICE electrical inspections | whole number ≥ 0 |
| BICE Inspections — Plumbing | Number of BICE plumbing inspections | whole number ≥ 0 |
| RR & Network Lives | Number of RR / network go-lives | whole number ≥ 0 |
| SFFD Inspections | Number of SFFD inspections | whole number ≥ 0 |
| Boundary Changes | Number of boundary changes | whole number ≥ 0 |
| FIT Tests | Number of FIT tests | whole number ≥ 0 |
| Wayfinding Support | Level of wayfinding support needed (sliding scale; higher means more support) | 0–3 |
| Metric | Changed weeks | Net variance | How to read it |
|---|---|---|---|
| ASO Trips | 6 | +8 | Six weeks were revised, and the net is 8 more trips than first planned. |
| BICE Inspections — Electrical | 1 | +3 | One week gained three inspections. |
| BICE Inspections — Mechanical | 1 | −3 | One week dropped three inspections. |
| FIT Tests | 1 | −3 | Three FIT tests were removed or pushed out. |
| SFFD Inspections | 2 | 0 | Two weeks moved in opposite directions (rescheduled, net unchanged). |
| Wayfinding Support | 1 | +1 | The support level went up one step for one week. |
SFO_ResourceTracker_Sender_Email.https://sfo-citiri.my.site.com/stakeholder.| Date | What happens automatically |
|---|---|
| Fri Oct 16, 2026 (3rd Friday) | The monthly batch runs for every project with a deadline. It unlocks locked months in the guest window, opens a new intake cycle (cycle status: Not started), and emails the Intake Request to each project's contractor recipients, CC Document Control. |
| Fri Oct 23, 2026 (4th Friday) | The reminder batch emails projects whose cycle is still Not started or In progress. |
| Fri Nov 20 / Nov 27, 2026 | Next intake and reminder. |
scripts/apex/send-resource-tracker-emails.apex sends the real Intake Request, Reminder, and Submission Notice
templates to a fixed list of named recipients only. It never emails contractors, project CAS contacts, or Document
Control. The sender is demo@citiri.com. Intake and Reminder emails each contain a fresh, working 90-day guest link for that project.
sf apex run --target-org SFO --file scripts/apex/send-resource-tracker-emails.apex
By default it sends 9 emails: 3 projects × 3 email types, each addressed to all six people. To narrow the send, edit the three lists at the top of the script:
List<String> RECIPIENTS = ...; // who receives the emails (max 10)
List<Id> PROJECT_IDS = ...; // G7, Electrical, Safety
List<String> EMAIL_TYPES = new List<String>{ 'Intake', 'Reminder', 'Submission' };
a3Fiv00000001LLEAY in PROJECT_IDS.{ 'Reminder' }.