Customer column visibility
Exposure is all or nothing per widget: showing a customer the quality and delivery log also shows them the internal owner and the internal notes. This register is narrower. For each widget that renders rows and columns, it records which columns a customer may see.
Recorded here, not yet read there. Recorded here, not yet read there. A change on this screen is a recorded request: Strategic Account Management keeps behaving the way its own defaults describe until the two are joined. The SA Customer Portal cannot yet receive a column decision at all — its intake accepts an account, a widget and on or off, and carries no column field.
- Widgets with columns
- 8
- Columns declared
- 58
- Hidden from the customer
- 20
- Widgets changed here
- 0
- Widgets opening in app
- 12
- No columns to govern
- 10
The three rules
- An identity column cannot be hidden. The column that makes the row meaningful is always shown, so its control is unavailable rather than offered and refused.
- Every widget keeps at least one column. Hiding them all is the customer exposure ceiling by another route, and two controls meaning one thing is how a screen starts lying. The last removal is refused.
- A hidden column that can still be worked out from the columns beside it is a warning, not a block: the administrator decides knowingly rather than being stopped.
Declared derivations: Recycling — Price per kilo is recoverable from weight and total. Hiding it hides the column, not the figure. No list is declared for that widget yet, so the warning waits for one.
Obsolescence
obsolescence
| Column | Customer sees | Note |
|---|---|---|
| product | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| partNo | Shown | |
| obsolescenceDate | Shown | |
| noticeRequiredMonths | Shown | |
| customerNotifiedDate | Shown | |
| lastPurchasedDate | Shown | |
| lastPurchaseQty | Hidden | |
| notes | Hidden |
Master order index
masterOrderIndex
| Column | Customer sees | Note |
|---|---|---|
| orderNo | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| item | Shown | |
| orderedDate | Shown | |
| dueDate | Shown | |
| status | Shown | |
| previousDueDate | Hidden | |
| topdeskCaseNo | Hidden | |
| escalationStatus | Hidden |
Approval drawings
approvalDrawings
Recorded decision — 10 September 2026. The customer sees neither the CCO tool number nor the customer tool number, which is why those two sit outside the customer's set.
| Column | Customer sees | Note |
|---|---|---|
| drawingNo | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| toolAssembly | Shown | |
| rev | Shown | |
| approved | Shown | |
| source | Shown | |
| approverContactId | Shown | |
| customerComment | Shown | |
| ccoToolNo | Hidden | Outside the customer's set by the recorded decision of 10 September 2026. |
| customerToolNo | Hidden | Outside the customer's set by the recorded decision of 10 September 2026. |
| orderNumber | Hidden | |
| needsModification | Hidden |
Action log
actionLog
| Column | Customer sees | Note |
|---|---|---|
| title | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| dueDate | Shown | |
| status | Shown | |
| completedDate | Shown | |
| notes | Hidden | |
| createdById | Hidden |
Quality & delivery
qualityDelivery
| Column | Customer sees | Note |
|---|---|---|
| supplier | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| item | Shown | |
| requestType | Shown | |
| status | Shown | |
| stockOut | Shown | |
| dueDate | Shown | |
| ownerName | Hidden | |
| notes | Hidden | |
| attachments | Hidden |
Supplier activity
supplierActivity
Draft in Strategic Account Management, pending Jimmy Connor's per-widget confirmation — open question P8-Q2. The columns are transcribed as they stand; none of it is agreed.
| Column | Customer sees | Note |
|---|---|---|
| date | Shown | |
| supplier | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| kind | Shown | |
| hours | Shown | |
| description | Shown | |
| loggedById | Hidden |
Supplier scorecard
supplierScorecard
Draft in Strategic Account Management, pending Jimmy Connor's per-widget confirmation — open question P8-Q2. The columns are transcribed as they stand; none of it is agreed.
| Column | Customer sees | Note |
|---|---|---|
| supplier | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| scores | Hidden | |
| notes | Hidden | |
| isSelf | Hidden |
Activity log
activityLog
Draft in Strategic Account Management, pending Jimmy Connor's per-widget confirmation — open question P8-Q2. The columns are transcribed as they stand; none of it is agreed.
| Column | Customer sees | Note |
|---|---|---|
| date | Shown | This is the column that makes the row meaningful. Hiding it would leave the customer a row they cannot identify, so it is always shown. |
| activity | Shown | |
| type | Shown | |
| status | Shown | |
| notes | Hidden | |
| attachments | Hidden |
In-app widgets with no allow-list
No allow-list is declared for this widget in Strategic Account Management. Nothing is recorded here rather than a column set being guessed on its behalf.
- Recycling — no columns declared
- Pay per part — no columns declared
- Consignment — no columns declared
- Tooling & cut times — no columns declared
No columns to govern
These widgets are absent from the register above for a stated reason rather than silently.
| Widget | Why it carries no columns |
|---|---|
| Safety firstsafetyFirst | Opens as an external link. It has no columns at all — what the customer sees is whatever sits at the other end of the link. |
| Sales dashboardsalesDashboard | Opens as a Power BI embed. The report decides its own fields, so there are no columns here to govern. |
| Market sharemarketShare | Opens as a Power BI embed. The report decides its own fields, so there are no columns here to govern. |
| Top 10 spendtopTenSpend | Opens as a Power BI embed. The report decides its own fields, so there are no columns here to govern. |
| Cost savingscostSavings | Opens as a read across from crm. It renders no governed column set in Strategic Account Management. |
| Reconditioningreconditioning | Opens as an external link. It has no columns at all — what the customer sees is whatever sits at the other end of the link. |
| Innovation Hub projectsihubProjects | Opens as a read across from epms. It renders no governed column set in Strategic Account Management. |
| On-time deliveryotd | Opens as a read across from power bi. It renders no governed column set in Strategic Account Management. |
| Seco time on sitesecoTimeOnSite | Opens as a read across from crm. It renders no governed column set in Strategic Account Management. |
| Custom reportcustomReport | Opens as a Power BI embed. The report decides its own fields, so there are no columns here to govern. |