Best practice for a dynamic progress tracker (chevrons) on a record form (Classic UI)?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
I’m trying to replace a set of static chevrons on a record form with a dynamic progress tracker in the classic form UI (not Workspace).
What I need
- A visual, chevron‑style progress indicator rendered directly on the record form.
- Each step should show one of several statuses (Action Needed, Waiting/Pending, Complete for Now, Complete, Not Applicable).
- Status is driven primarily by phrases in a field on the record (e.g., a “Sign‑Off Status” string generated by server logic), not just by the record state.
What I’ve tried
- Formatter UI Macro
- Plain HTML renders fine.
- Client‑side scripts (
<script>, GlideAjax, etc.) are unreliable or stripped. - Jelly (
<j:script>,<j:jelly>) consistently fails at runtime with
“The prefix ‘j’ for element ‘j:script’ is not bound”, even though the macro saves.
- UI Pages
- Work when accessed directly.
- Fail or render blank when embedded via iframe on a form (likely scope / ACL / rendering context issues).
- GlideAjax + Script Includes
- Server‑side evaluator logic exists and works.
- Getting the results reliably into a formatter without hitting XML/Jelly issues has been the blocker.
The roadblocks
- Formatter macros seem limited to HTML with no reliable server or client scripting.
- Jelly works in some contexts but not consistently in formatter macros.
- UI Pages introduce iframe and scope complications.
My question
- Is there a recommended or simpler pattern for building a dynamic, multi‑step progress tracker on a classic form?
- Am I fighting the platform by trying to do this in a formatter, and should this be done another way (UI Builder, Workspace, related list override, etc.)?
- Are there known limitations or best practices for dynamic visual components like this on classic forms?
Any guidance on the right architectural approach (even if it means rethinking where/how this renders) would be hugely appreciated.
And yes, Microsoft Copilot wrote this question for me. I've been trying to use it and our internal version of chat GPT to help, but I feel like I'm going in circles.
0 REPLIES 0

