Last Modified On: November 4, 2026
The custom action menu item adds one entry to the Gantt task right-click menu. It hands the task to a Lightning web component that your org builds, and that component's reply lands in the Gantt as a new task row or as changes to the task. Nothing is written to Salesforce until the user clicks the Gantt's Save button.
Use it when tasks must be created from controlled values, for example a picklistdriven window that fills the task name, category and custom fields from a standard catalogue. Users can still create and edit tasks the usual way; the menu item adds a path, it does not replace one.
The menu item runs in one of two modes, set by the Menu Item New Task checkbox:
The menu item shares its configuration and message channel with the existing custom action column. The column always works in update-task mode; the menu items adds the new-task mode and the right-click entry point.
In update-task mode the same round trip changes the right-clicked task instead of adding a row. The channel's API name is inspire1__ganttCustomActionChannel__c.
You need four things in place before the menu item does anything useful.
Who can configure it: an admin with the Customize Application permission, which covers both the custom setting data and placing the component in Lightning App Builder.Who sees it: in new-task mode, users who can edit the project. In update-task mode, users with read-only access see it too, and the message tells your component so it can open a view-only window.
The menu item is controlled by one hierarchy custom setting, Project Gantt Custom Action Config (inspire1__ProjectGanttCustomActionColumn__c). The setting changes only what the Gantt shows; it does not change any project or task data, and unchecking Menu Item Enabled turns the item off again.
Checked: new-task mode
Unchecked: update-task mode
*The three column fields were previously labeled Enabled, Column Name and Action Icon Name. Their API names are unchanged, so the existing configuration keeps working.
Enter Font Awesome class names separated by spaces, each starting with fa-: a style class and an icon class, such as fa-solid fa-clipboard-list. Classes that do not start with fa- (including a bare fa) are ignored. If the icon renders blank, the name is not in the Gantt's icon set; try another icon.
The label is free text, so Salesforce translation tools do not reach it, and the blank-label fallback Custom Action is English only. Because the setting is a hierarchy setting read for each user, you can give each language group its own label:
The Gantt reads the setting when the project page loads, and the response is cached in the browser. After a change, users must reload the project page; if the old label persists, clear the browser cache for the Salesforce domain and reload.
Your component talks to the Gantt through one Lightning message channel: it listens for the Gantt's message, opens its own window, and publishes a reply on the same channel. Inspire Planner places no constraint on the window's size or design, because your component opens it.
Message channel Import @salesforce/messageChannel/inspire1__ganttCustomActionChannel__c. Subscribe with the default scope. With APPLICATION_SCOPE, copies of your component in background console tabs receive the message too and each opens a window.
Numbers can be sent as numbers or as numeric text. A reply cannot set Assigned To (resource assignments), the parent task or the indent level.
A new row follows the same rules as a task typed into the Gantt, so a reply only needs to send what it knows.
In backward-scheduled projects the automatic start constraint is Start No Later Than. Task List projects get no automatic constraint or date defaults.
A reply gets the same sync as editing these cells in the Gantt, on new and existing tasks alike. If a reply sends both, % Complete wins.
Moving to In Progress stamps today as the actual start, and a completed status stamps today as the actual finish. Actual start and finish dates in the reply override the stamped ones.
inspire1__Predecessors__c and inspire1__Successors__c take entries separated by ; or ,. Each entry names the other task by the number the Gantt's Predecessors column uses for it, or by its Salesforce Id, followed by an optional type and lag.
Types are FS (the default), SS, FF and SF; the stored codes ES, EE and SE also work. For lag units, only d (days) is supported.
A minimal listener, with the picklist window in a separate LightningModal(c/taskPickerModal) that closes with the chosen values keyed by API name:
Expose the component for lightning__RecordPage (and lightning__UtilityBar if you place it there). It needs no visible markup on the page.
For a project manager, the menu item is one right-click and one window; the task is saved with the rest of their changes.
Until step 5, the new row behaves like any other unsaved change: it can be edited, undone, or discarded by leaving the project without saving.