One of the new features in AL version 10 (aka 2022 Wave 2, aka v21) is the way you promote actions in the actions bar, now it’s “modern”. Check it out:

In this video, Erik walks through the Modern Action Bar feature introduced in Business Central 2022 Wave 2 (version 21). He demonstrates the old way of promoting actions and then shows the new, cleaner approach using actionref — a feature that simplifies how actions are promoted to the action bar on pages.
Enabling the Modern Action Bar
Before you can use the Modern Action Bar, you need to make sure it’s enabled in your environment. Navigate to Feature Management in Business Central and verify that the feature update called Modern Action Bar is set to “Enabled for all users.” If it’s not turned on, you won’t see any of the new behavior.
Setting Up a Simple List Page
Erik starts by creating a simple customer list page using the AL Page Wizard in Visual Studio Code. The page is a basic list based on the Customer table, with fields like Number, Name, Address, City, Postal Code, Country/Region Code, and County (which serves as the State in some regions).
With the page scaffolded, the next step is to add actions and explore how promotion works — both the old way and the new way.
The Old Way: Promoted Actions
Traditionally, promoting an action in AL involved adding several properties directly on the action itself:
actions
{
area(Processing)
{
action(Fancy)
{
Caption = 'Fancy';
Promoted = true;
PromotedCategory = Process;
PromotedOnly = true;
trigger OnAction()
begin
Message('Fancy');
end;
}
}
}
This approach required you to set Promoted = true, specify a PromotedCategory, and optionally set PromotedOnly = true to prevent the action from also appearing in the regular menu. It worked, but it was verbose and managing promoted action categories — especially when you wanted custom group names — was, as Erik puts it, “just a mess.”
One thing Erik notes: with the Modern Action Bar enabled, the old promotion style seems to automatically behave as if PromotedOnly = true, meaning the action only appears in the promoted area and no longer duplicates in the standard action menus.
Another observation from version 21 onward: there’s no longer a need to add ApplicationArea = All to every action, since it can be set at the page level.
The New Way: Action References with actionref
The Modern Action Bar introduces a new area called Promoted and a new construct called actionref. Instead of cluttering your action definition with promotion properties, you define a reference to the action in a separate promoted area:
actions
{
area(Promoted)
{
actionref(PromoFancy; Fancy)
{
}
}
area(Processing)
{
action(Fancy)
{
Caption = 'Fancy';
trigger OnAction()
begin
Message('Fancy');
end;
}
}
}
The actionref takes a name (e.g., PromoFancy) and a target that points to the actual action (e.g., Fancy). Visual Studio Code provides IntelliSense to help you select the target action. The actionref itself has very few properties — mainly Visible and ObsoleteState — keeping things clean and simple.
Erik notes that the default icon also changes: the old promoted action used a generic arrow icon, while the new approach picks up a more appropriate icon automatically.
Grouping Promoted Actions
One of the nicest improvements is how easy it is to create custom groups in the promoted area. Previously, you had to use PromotedActionCategories property at the page level and juggle category names — a painful experience that Erik admits he avoided whenever possible.
With the Modern Action Bar, you simply wrap your action references in a group:
actions
{
area(Promoted)
{
group(FancyGroup)
{
Caption = 'Super Fancy';
actionref(PromoFancy; Fancy)
{
}
}
}
area(Processing)
{
action(Fancy)
{
Caption = 'Fancy';
trigger OnAction()
begin
Message('Fancy');
end;
}
}
}
This creates a custom tab in the action bar labeled “Super Fancy” containing the promoted action — no more fiddling with category indices and names.
Can You Promote the Same Action Twice?
In a moment of playful experimentation, Erik tests whether you can create two action references pointing to the same action:
area(Promoted)
{
actionref(PromoFancy; Fancy)
{
}
actionref(PromoFancy2; Fancy)
{
}
}
And yes — it works! The same action appears twice in the promoted bar. Whether this is useful in practice is another question, but it demonstrates the flexibility of the new system.
Summary
The Modern Action Bar in Business Central version 21 brings a much cleaner approach to promoting actions on pages:
- Separation of concerns: Action definitions stay clean; promotion is handled separately in the
area(Promoted)block. - Action references (
actionref): A simple pointer to an existing action, with IntelliSense support. - Easy grouping: Custom groups with captions replace the old, cumbersome
PromotedActionCategoriesproperty. - Less typing: No more
Promoted = true,PromotedCategory,PromotedOnly = trueon every action. - No duplicate
ApplicationArea: Set it once at the page level instead of on every action.
As Erik summarizes: “There’s actually less typing. I find myself doing the Promoted, PromotedCategory, PromotedOnly all the time, so this is easier. I think this is cool.”