The other day, we were struggling to fit a lot of information on a page in BC when I suddenly realized that my app is also “just” a web page and that I shouldn’t be afraid of thinking about the app as a webpage. Check out the video:

In this video, Erik shares a simple but easy-to-forget insight: your Business Central app runs in a web browser, which means you can leverage standard web patterns — like hyperlinks — to improve the user experience. What starts as a real-world challenge with the Simple Object Designer leads to an elegant solution that’s surprisingly easy to implement in AL.
The Problem: Too Much Text, Too Little Space
Erik and the team at hogarth.com were working on their Simple Object Designer extension. Through telemetry, they noticed that some users were having trouble downloading symbols — a process similar to what happens in Visual Studio Code when you need to download symbols to understand the fields, tables, and other objects in an environment.
The symbol download process is handled entirely in AL, connecting from within Business Central to the dev endpoints. For most users, it works fine, but depending on permissions and other factors, some users were running into issues.
The team wanted to provide better guidance. They had already added explanatory text to the page, but there was simply too much information to convey in the limited space available on a Business Central page. They considered writing a small description, but it would have been too much text crammed into too little space.
The “Aha” Moment: Your App Is Just a Web Page
Then the realization hit: our app is also just a web page. Since Business Central runs in the browser, why not simply add a hyperlink that takes the user to a documentation page with a full explanation?
In the old days, with other types of clients (not the web browser client), opening a browser was more cumbersome. But now, it’s just a link on a web page that opens another web page. There’s nothing special about it — and yet, for some reason, the idea of adding a link inside the app wasn’t at the forefront of the team’s thinking when brainstorming solutions.
How to Add a Clickable Link in AL
The implementation is surprisingly straightforward. The trick is to use a Label variable as a field on the page, hide its caption, and then use the OnDrillDown trigger to call the Hyperlink function. Here’s the complete example:
pageextension 50123 CustomerCardExt extends "Customer Card"
{
layout
{
addlast(General)
{
field(HelpLinkCtl; HelpLink)
{
ApplicationArea = all;
ShowCaption = false;
trigger OnDrillDown()
begin
Hyperlink('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
end;
}
}
}
var
HelpLink: Label 'Get more help, we really need help!';
}
Let’s break down the key elements:
- Use a
Labelvariable — Not a text field on a table, but aLabelvariable. This gives you the clickable, link-styled text on the page. - Set
ShowCaption = false— This removes the leading caption that would otherwise appear next to the control, keeping the display clean. - Set
ApplicationArea = all— Even in version 22 and later when working on a page extension, you still need to specify the application area. - Use the
OnDrillDowntrigger — This is where the magic happens. When the user clicks the label, theHyperlinkprocedure opens the specified URL in a new browser tab.
A Fun Copilot Surprise
In a humorous twist during the demo, Erik let GitHub Copilot suggest the URL for the hyperlink. The AI helpfully filled in a YouTube URL — which turned out to be a Rick Roll. As Erik put it: “That’s actually kind of funny that you’re getting Rick Rolled by Copilot.” The AI has a sense of humor, apparently.
Conclusion
The takeaway is simple but powerful: remember that your Business Central app runs in a web browser. This means you can use web-native patterns like hyperlinks to enhance the user experience. Instead of cramming lengthy instructions into a small page area, add a link that takes users to a full documentation page, a knowledge base article, or a help video. The Hyperlink procedure combined with a Label field and the OnDrillDown trigger makes this trivially easy to implement. Sometimes the best solutions are the ones hiding in plain sight.