Prompting using a floating action bar

With Business Central 2024 release wave 1 and runtime 13, you can create prompt actions to promote AI capabilities in Business Central. A prompt action is a standard action that is rendered in a floating action bar on your pages, and it nudges users to use relevant Copilot built-in features.

The following image shows what the floating action bar can look like.

Example of a floating action bar for Copilot feature

To create a floating action bar with one or more prompt actions, you must create a new area in the actions section of the page object. The area must be set to area(Prompting). You can then create one or more new actions in the area and run a PromptDialog object that you want to activate when the action is clicked. Only objects of the PromptDialog page type can be run from a prompting area.

Note

The floating action bar will only show if you have specified a RunObject property to the page.

The following example shows the syntax for how to create a prompt action that runs the Copilot Marketing Text page. This piece of AL code can be added to a page where you want to promote the Copilot Marketing Text functionality. When the action is clicked, the Copilot Marketing Text page is opened in a dialog.

...
actions
{
    area(Prompting)
    {
        action(MyPromptAction)
        {
            Caption = 'Copilot Marketing Text';
            RunObject = page "Copilot Marketing Text";
        }
    }
}
...

The user will see a floating action bar on the page that this code is implemented on. If the user selects Hide, the floating action bar will be placed in the action bar instead. It can easily be brought back by clicking Show in page.

The next code is part of a code sample taken from the aka.ms/BCTech repo; the Job Planning Lines Copilot page extension. This code sample illustrates how to create two prompt actions that run the SuggestResourceCopilotAction and SuggestItemCopilotAction actions. The SuggestResourceCopilotAction action is used to suggest a resource to be assigned to a job planning line, and the SuggestItemCopilotAction action is used to suggest an item to be assigned to a job planning line. The SuggestResourceWithAI and SuggestItemWithAI functions aren't implemented in this code sample.

...
actions
    {
        addlast(Prompting)
        {
            action(SuggestResourceCopilotAction)
            {
                Caption = 'Suggest resource';
                ToolTip = 'Asks Copilot which resource can be assigned to the job planning line. You will have to confirm the suggestion from Copilot.';
                Visible = Rec.Type = Rec.Type::Resource;
                ApplicationArea = All;

                trigger OnAction()
                begin
                    SuggestResourceWithAI(Rec);
                end;
            }
        }
        addlast(Prompting)
        {
            action(SuggestItemCopilotAction)
            {
                Caption = 'Suggest item';
                ToolTip = 'Asks Copilot which item can be assigned to the job planning line. You will have to confirm the suggestion from Copilot.';
                Visible = Rec.Type = Rec.Type::Item;
                ApplicationArea = All;

                trigger OnAction()
                begin
                    Message('not implemented');
                end;
            }
        }
    }
...

See also

The PromptDialog page type
Prompting using a prompt guide