Skip to main content
Configuration for the in-sheet AI Assistant, in three layers: project context properties that decide whether the button exists, one sheet configuration key that points at an action configuration, and the action configuration itself. For the task-oriented walkthrough, see Configure the AI Assistant.

Project context properties

Set in the project’s com.polarion.context.properties. All are booleans and all default to true. nextedy.powersheet.aiAssistant and nextedy.powersheet.promotions are read from the project configuration and returned to the client together with the sheet configuration JSON.

Sheet configuration key

Availability statuses

Powersheet probes the Nextedy AI plugin’s health endpoint for the current project and resolves one of three statuses. The toolbar button is clickable only when the status is ok and at least one AI action is defined for the sheet. When the status is ok but the sheet defines no actions, the tooltip reads AI Assistant — configure AI actions for this powersheet to enable it.

Action configuration

An action configuration is a YAML file in the project’s own repository at .polarion/nextedy/ai/<name>.yaml, where <name> is the value of assistantConfig. It holds a globals block and an actions block. actions is a map keyed by action id — the key identifies the action in the request the sheet sends, and is not repeated inside the action body. Each action supports the following keys.
apply.field is what binds an action to a columnAn action configuration may also carry a scope.columns list, but nothing in Powersheet reads it — the column an action searches, filters and writes against is resolved from apply.field throughout. Setting scope.columns has no effect. The same applies to contextSources.document.fields and contextSources.user.fields: both are accepted by the schema but neither is sent as context. Only row and project reach the model.

Globals interpolation

${globals.<key>} references inside discover.keywordPrompt and discover.rankPrompt are replaced from the configuration’s globals block before the prompt is sent. The globals block is a flat map of string values whose key names you choose; a reference to a key the block does not define resolves to an empty string. Write a phrase once in globals and refer to it as ${globals.<key>} from every prompt that needs it, rather than repeating it in each action.

Candidate query

The query sent to Polarion is built as:
with discover.search.query appended when present. <types> comes from discover.search.type, or is derived from the entity type bound to the apply.field column when that key is absent. When neither resolves any type, the type: clause is omitted and the query is just project.id:"<projectId>". Whatever the model returns is re-checked against the apply.field column’s own candidate filter, and any recommendation falling outside it is dropped. When every recommendation is dropped, the assistant reports “No suggestions match this column’s allowed values.”

Applying a recommendation

The linked child row is inserted under every rendered instance of the parent the action ran against — deduplicated by upstream id — not only the one instance in view. This applies to every cardinality. Editing a link cell by hand is undoable through the same Changed link entry.

Conversation storage

See Also

Last modified on September 17, 2026