CVG · Command Center V2

Routing & Notifications — Test Walkthrough

Script for showing and testing the new Elevate Yes/No intake path, config-driven people, assignment emails, and the 1-business-day SLA. Use production. Follow the scenarios in order; write down tracking numbers as you go.

Environment: CVG production · Site: Command Center Submittal Form (Live) · Org: citiri-cvg.my.salesforce.com

Scenarios

0Pre-flight checks

Confirm once. V2 is already deployed and the guest site was published.

#CheckOpenStatus
1 Guest site is Live and the form shows Is this related to the Elevate Program? Report page ↗ Verify
2 Routing Default exists, Active, Elevate Assignee = Michael Metz, SLA = 1 day / New Default ↗ Seeded ✓
3 Four routing people rows: Adam + Lisa (create/SLA), Alonzo + Kenza (ops) People list ↗ Seeded ✓
4 Scheduled job Command Center SLA is WAITING, cron 0 0 8 * * ?, timezone America/New_York Scheduled Jobs ↗ Scheduled ✓
5 Flow Command Center Assignee Changed is Active (needed for Scenario F) Flows ↗ Activate if Draft
6 Org-wide email orat@cvgairport.com (ElevateCVG ORAT) is verified — mail sends as ORAT, not the guest OWEA ↗ Verify
Do not use pre-V2 sample rows for routing assertions. REQ-0070–0075 were created before the Elevate flag existed, so Elevate_Program_Related__c is blank on them. Use the two new guest submissions from Scenarios A and B.

1Configuration — show this first Config · Demo

V2 people and SLA live on custom objects so Citiri can change them without a deploy. Custom metadata still holds the Elevate CVG Project Id and the org-wide from-address.

Settings record (Default)

  1. Open the Default routing record. Name must be Default and Active must be checked — Apex loads this row by name.
  2. Under Assignment, confirm Elevate Assignee is Michael Metz (active CCPL, not the inactive Metz user).
  3. Confirm Ops Queue Developer Name is blank. Request is not queue-enabled in this org, so Owner stays the guest default owner; ops still get email and work the board.
  4. Under SLA, confirm SLA Enabled, SLA Business Days = 1, SLA Status Value = New, and both include-assignee / include-ops flags are checked.

People related list

On the same Default record, open the related Command Center Routing People. Each row is one User plus notify flags.

PersonNotify on createNotify on opsNotify on SLA
Adam StudtYesYes
Lisa MarrlettYesYes
Alonzo AllenYes
Kenza KhettouchYes

Metz is not a people-row for Elevate assign — he is the Elevate Assignee lookup on Default. That is intentional so swapping the Elevate owner is one field change.

Program Id + from-address (CMDT)

  1. Open Custom Metadata Type records and find Command Center Config → Phase_1A.
  2. Confirm Program Id is Elevate CVG and Org-Wide Email Address is orat@cvgairport.com.
Expected: you can explain the whole dispatch table from this one Default record + related people, without opening Apex. Changing a User lookup here is how CVG would replace Lisa or Metz later.
Pass / Fail — notes: __________________________________

Reference people & inboxes

Use a recognizable reporter email you can open (or plus-address). Staff inboxes to watch during A/B/D/F:

RoleUserWatch this mailboxRecord
Create + SLA Adam Studt astudt@cvgairport.com User ↗
Create + SLA Lisa Marrlett lmarrlett@cvgairport.com User ↗
Ops (No path) Alonzo Allen aallen@cvgairport.com User ↗
Ops (No path) Kenza Khettouch kkhettouch@cvgairport.com User ↗
Elevate assignee Michael Metz michael.metz@skanska.com User ↗

Values to type on the guest form

FieldUse this
Company / TenantAmerican Airlines (free text)
Your name / EmailYour name + an inbox you can open
FacilityConcourse B (then any enabled Level / Zone)
Type of impactNoise / Vibration
Short summaryV2 walkthrough — jackhammering near Gate B12

AGuest Yes → Elevate CVG + Metz Guest · Incognito

Open Report page ↗ Incognito / private window
  1. Open the Report page. Header is the Work Request Portal with the Elevate CVG logo.
  2. Fill company, name, email, facility, impact type, and short summary (table above).
  3. Set Is this related to the Elevate Program? = Yes. Help text: Elevate CVG construction / ORAT vs other airport work.
  4. Submit. Confirmation should say “Elevate CVG has your report” and show a tracking number (e.g. REQ-00xx).
  5. Write down tracking number + email — this is Request A.
  6. In Salesforce, open Requests and find Request A.
Expected on the record: Elevate Program Related = Yes; Project = Elevate CVG; Assignee = Michael Metz; Status = New; record type Construction Impact. Reporter got a confirmation email. Adam and Lisa got “New work request.” Metz got “Work request assigned.”
Pass / Fail — notes: __________________________________

BGuest No → ops mail, Project blank Guest · Incognito

  1. Submit a second report with the same location/type, but Elevate = No.
  2. Confirmation copy should say “CVG has your report” (not Elevate CVG).
  3. Write down tracking number + email — this is Request B.
  4. Open Request B in Salesforce.
Expected on the record: Elevate = No; Project is blank (not Elevate CVG); Assignee is blank; Owner is still the guest default owner (Request is not queueable). Reporter confirmation still sends. Adam and Lisa still get create mail. Alonzo and Kenza get the ops “not Elevate” mail. Metz does not get an assignment email for this row.
Queue fallback: Ops_Queue_DeveloperName__c is blank on purpose. Show that on Default if someone asks why Owner is not a queue.
Pass / Fail — notes: __________________________________

CElevate question is required Guest

  1. Fill company, email, facility, and short summary but leave Elevate on Select….
  2. Confirm Submit stays disabled / will not send.
  3. Choose Yes or No — Submit enables.
Expected: guests cannot skip the Elevate flag. That is the whole routing fork.
Pass / Fail — notes: __________________________________

DEmail chrome — tracker + Lightning record Mail

Open the confirmation for Request A (reporter inbox) and one internal create/assignment mail (Adam or Metz).

  1. Confirm the Elevate/ORAT logo, Arial body, and signature pointing to ORAT@cvgairport.com.
  2. Confirm two buttons: Track request (green/primary) and Open request (gray).
  3. Click Track request — it should land on the guest tracker (no Salesforce login).
  4. Click Open request while logged in — it should open the Lightning Request record.
  5. If you view plain text, both URLs are still present.
Expected URLs in every V2 mail (HTML buttons and plain text):
Tracker: https://citiri-cvg.my.site.com/command/tracker
Record: https://citiri-cvg.my.salesforce.com/lightning/r/CITIRI__Request__c/{Id}/view
Tenants without a Salesforce user still use the tracker (tracking number + the email they submitted). Open request is for staff / CCPL.
Pass / Fail — notes: __________________________________

EBoard shows Elevate Yes/No PMO

  1. Open the Command Center console as a PMO user (Adam / Lisa / Alonzo / Kenza).
  2. Find Request A and Request B in the New column.
  3. Confirm each card shows Elevate: Yes or Elevate: No.
  4. Request A should also show Metz as assignee.
Expected: one board still shows all Construction Impact rows. The Elevate badge is how reviewers see the path without opening the record.
Pass / Fail — notes: __________________________________

FTriage override + assignee-changed email PMO

Flow must be Active. Search Flows for Command Center Assignee Changed. If it is Draft, Activate it before this scenario, then change Assignee on a request that already exists (not the create itself — create-time Metz mail is separate so this Flow does not double-send).
  1. Select Request B on the board (or open the record). The triage panel includes Elevate Program Related so PMO can correct a guest’s Yes/No.
  2. Optionally flip Elevate if you are demonstrating a correction; Save.
  3. Change Assignee to another active user (for example Adam). Save.
  4. That user should receive a Work request assigned email with the same two buttons, even if they are not on the routing people list.
  5. Set Status to Under Review so this row will not be picked up by the SLA job.
Expected: triage can override Elevate and Assignee. Changing Assignee after insert emails only the new assignee. Create-time mail is not sent again.
Pass / Fail — notes: __________________________________

GTracker still works (ref + email) Guest

  1. Look up Request A with the tracking number and the email you submitted.
  2. Try the same tracking number with the wrong email.
Expected: matching lookup shows status (and PMO response if you entered one). Wrong email returns not-found. V2 did not change tracker security — still no guest list of all requests.
Pass / Fail — notes: __________________________________

HSLA job — still New after 1 business day Config

SLA is assignee-agnostic: any Construction Impact still New after 1 org business day (America/New_York) gets one reminder, then SLA_Reminder_Sent__c is stamped.

  1. Find job Command Center SLA. Cron is 0 0 8 * * ?, timezone America/New_York, next fire 08:00 Eastern. Class is CommandCenterSlaScheduler.
  2. On Default routing, point at SLA Enabled / 1 business day / status New.
  3. Leave Request A in New if you want it to be a real SLA candidate tomorrow morning (or move it to Under Review if you do not want mail tomorrow).
  4. Recipients when it fires: Adam + Lisa (SLA flags) plus current Assignee if set (Metz on a Yes row).
Do not run CommandCenterSlaScheduler.processDue() in Execute Anonymous during a live demo unless you intend to email SLA for every Construction Impact that is still New and older than one business day (including pre-V2 REQ-0070 / 0071 / 0072). The job stamps those rows so they will not get a second reminder.
Expected to show: the clock is config + Business Hours, not hardcoded “if Metz skip SLA.” Path does not turn SLA off.
Pass / Fail — notes: __________________________________

IChange people without a deploy Config

  1. Show that replacing Metz is editing Elevate Assignee on Default (active-user lookup filter).
  2. Show that adding a reviewer is a new Routing Person with Notify on Create (and SLA if needed).
  3. Show that turning SLA off is unchecking SLA Enabled — no Apex change.
  4. Put the seeded values back before leaving the demo (Metz, Adam/Lisa create+SLA, Alonzo/Kenza ops, SLA Enabled = true, 1 day).
Expected: stakeholders see that dispatch is data, not a code release. User Ids are not in Apex classes.
Out of scope for this walkthrough: Hexagon / HxGN work orders, SMS, extra tenant status emails, and making Request queue-owned. After Citiri triage, CVG still files the work request on their portal.
Pass / Fail — notes: __________________________________