From 93df64b9b0cf3fd28ecc468d81775b477aa27ac6 Mon Sep 17 00:00:00 2001
From: Abdul Rahman <81605929+abdulrahmancodes@users.noreply.github.com>
Date: Tue, 12 May 2026 11:16:56 +0530
Subject: [PATCH] Show logic function label instead of technical name in
workflow UI (#20470)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
### Before
### After
---
.../components/SidePanelWorkflowSelectAction.tsx | 4 ++--
...rkflow-version-step-operations.workspace-service.ts | 10 ++++++----
.../tools/list-logic-function-tools.tool.ts | 1 +
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/packages/twenty-front/src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx b/packages/twenty-front/src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
index f11ddaa430..4f51147c7b 100644
--- a/packages/twenty-front/src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
+++ b/packages/twenty-front/src/modules/side-panel/pages/workflow/action/components/SidePanelWorkflowSelectAction.tsx
@@ -1,5 +1,5 @@
-import { WorkflowActionMenuItems } from '@/side-panel/pages/workflow/action/components/WorkflowActionMenuItems';
import { logicFunctionsSelector } from '@/logic-functions/states/logicFunctionsSelector';
+import { WorkflowActionMenuItems } from '@/side-panel/pages/workflow/action/components/WorkflowActionMenuItems';
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
import { type WorkflowActionType } from '@/workflow/types/Workflow';
import { SidePanelStepListContainer } from '@/workflow/workflow-steps/components/SidePanelWorkflowSelectStepContainer';
@@ -103,7 +103,7 @@ export const SidePanelWorkflowSelectAction = ({
size={16}
/>
)}
- text={fn.name}
+ text={fn.workflowActionTriggerSettings?.label ?? fn.name}
onClick={() => handleFunctionClick(fn.id)}
/>
))}
diff --git a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts
index f974697117..e318eec74c 100644
--- a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts
+++ b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-version-step/workflow-version-step-operations.workspace-service.ts
@@ -19,7 +19,6 @@ import { getFlatFieldsFromFlatObjectMetadata } from 'src/engine/api/graphql/work
import { type WorkflowStepPositionInput } from 'src/engine/core-modules/workflow/dtos/update-workflow-step-position.input';
import { AiAgentRoleService } from 'src/engine/metadata-modules/ai/ai-agent-role/ai-agent-role.service';
import { AgentService } from 'src/engine/metadata-modules/ai/ai-agent/agent.service';
-import { AUTO_SELECT_SMART_MODEL_ID } from 'twenty-shared/constants';
import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service';
import { LogicFunctionFromSourceService } from 'src/engine/metadata-modules/logic-function/services/logic-function-from-source.service';
import { findFlatLogicFunctionOrThrow } from 'src/engine/metadata-modules/logic-function/utils/find-flat-logic-function-or-throw.util';
@@ -28,20 +27,21 @@ import { RoleTargetEntity } from 'src/engine/metadata-modules/role-target/role-t
import { GlobalWorkspaceOrmManager } from 'src/engine/twenty-orm/global-workspace-datasource/global-workspace-orm.manager';
import { buildSystemAuthContext } from 'src/engine/twenty-orm/utils/build-system-auth-context.util';
import { WorkspaceCacheService } from 'src/engine/workspace-cache/services/workspace-cache.service';
-import { CodeStepBuildService } from 'src/modules/workflow/workflow-builder/workflow-version-step/code-step/services/code-step-build.service';
import {
WorkflowVersionStepException,
WorkflowVersionStepExceptionCode,
} from 'src/modules/workflow/common/exceptions/workflow-version-step.exception';
import { type WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
import { WorkflowCommonWorkspaceService } from 'src/modules/workflow/common/workspace-services/workflow-common.workspace-service';
+import { CodeStepBuildService } from 'src/modules/workflow/workflow-builder/workflow-version-step/code-step/services/code-step-build.service';
import { type BaseWorkflowActionSettings } from 'src/modules/workflow/workflow-executor/workflow-actions/types/workflow-action-settings.type';
import {
- type WorkflowAction,
WorkflowActionType,
+ type WorkflowAction,
type WorkflowEmptyAction,
type WorkflowFormAction,
} from 'src/modules/workflow/workflow-executor/workflow-actions/types/workflow-action.type';
+import { AUTO_SELECT_SMART_MODEL_ID } from 'twenty-shared/constants';
const BASE_STEP_DEFINITION: BaseWorkflowActionSettings = {
outputSchema: {},
errorHandlingOptions: {
@@ -223,7 +223,9 @@ export class WorkflowVersionStepOperationsWorkspaceService {
return {
builtStep: {
...baseStep,
- name: flatLogicFunction.name,
+ name:
+ flatLogicFunction.workflowActionTriggerSettings?.label ??
+ flatLogicFunction.name,
type: WorkflowActionType.LOGIC_FUNCTION,
settings: {
...BASE_STEP_DEFINITION,
diff --git a/packages/twenty-server/src/modules/workflow/workflow-tools/tools/list-logic-function-tools.tool.ts b/packages/twenty-server/src/modules/workflow/workflow-tools/tools/list-logic-function-tools.tool.ts
index 1731c4ae83..d5f0ed4f1c 100644
--- a/packages/twenty-server/src/modules/workflow/workflow-tools/tools/list-logic-function-tools.tool.ts
+++ b/packages/twenty-server/src/modules/workflow/workflow-tools/tools/list-logic-function-tools.tool.ts
@@ -40,6 +40,7 @@ export const createListLogicFunctionToolsTool = (
logicFunctions: workflowActionFunctions.map((fn) => ({
id: fn.id,
name: fn.name,
+ displayName: fn.workflowActionTriggerSettings?.label ?? fn.name,
description: fn.description,
})),
};