Unlock the full power of the browser's Developer Tools directly inside Service Studio.
The Console Web API component is designed to be the comprehensive bridge between OutSystems logic and the native console interface. Its goal is to eliminate the need for custom JavaScript nodes for debugging, logging, and profiling, providing a seamless, low-code experience for frontend development.
console
Whether you are debugging complex reactive flows, analyzing performance loops, or enforcing code quality with assertions, this library translates the standard Web API methods into easy-to-use Client Actions.
Why use Console Web API?
True Low-Code Debugging: Stop writing repetitive console.log() JavaScript nodes. Drag and drop native actions directly into your logic.
console.log()
Complete Control: Designed to eventually cover the entire spectrum of the Console API, from simple logging to complex grouping, timing, and tracing.
Clean Architecture: Keep your flows readable and maintainable. Replace "spaghetti" scripts with standardized, self-documenting actions.
Internal rewrite plus API cleanup. All JavaScript is consolidated into a single script that registers window.ConsoleWebAPI; every client action is now a one-line delegate over it, replacing 17 independent inline implementations. Four private helpers were removed.
Breaking — consuming apps must be updated before promotion
Behaviour changes
ConsoleDebug now marshals arguments like the other log levels — a single value is unwrapped rather than nested. An empty Values list contributes no argument where it previously logged a visible []. Labels are trimmed for ConsoleGroup, ConsoleGroupCollapsed, ConsoleCount, ConsoleCountReset, ConsoleTime, ConsoleTimeEnd and ConsoleTimeLog.
New
ConsoleConfigure(IsEnabled) — required, see above.
ConsoleDirXmlById(ElementId) — resolves an element by id and dumps it in one call.
Fixed
Timer labels now pair across ConsoleTime / ConsoleTimeLog / ConsoleTimeEnd, which previously keyed on different strings and silently lost the measurement. 0 and false are treated as labels rather than as absent. console.profile, profileEnd, timeStamp and dirxml are feature-detected instead of throwing on browsers that lack them. Group and timer open/close pairs stay balanced when output is toggled, so the page's console can no longer be left permanently indented. No action can throw into the client action that called it. ConsoleTable warns again on malformed Columns JSON; ConsoleDir no longer warns on blank options.