From 637ae65e9fb529d62c9f16ef03bd4aeea2a50f08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Bosi?=
<71827178+bosiraphael@users.noreply.github.com>
Date: Tue, 16 Jun 2026 16:24:12 +0200
Subject: [PATCH] Hide Input and Test tabs for app logic function nodes
(#21671)
When opening a logic function node that comes from an app (e.g. "Enrich
Company" from People Data Labs), the node detail panel was showing
**Input** and **Test** tabs. App-sourced functions should only expose
their input fields, with no test surface.
This hides the tab list when the logic function has an `applicationId`,
rendering the input fields directly. The test tab is also never treated
as active for these nodes, which guards against a stale "test" tab state
leaking in from a previously-opened custom function (the tab list shares
one component instance id).
## Before
## After
---
.../WorkflowEditActionLogicFunction.tsx | 31 ++++++++++++-------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
index b64423e5cc..ebc9dcc638 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx
@@ -1,3 +1,4 @@
+import { useIsThirdPartyApplication } from '@/applications/hooks/useIsThirdPartyApplication';
import { LogicFunctionExecutionResult } from '@/logic-functions/components/LogicFunctionExecutionResult';
import { LogicFunctionLogs } from '@/logic-functions/components/LogicFunctionLogs';
import { LogicFunctionTestInputInitEffect } from '@/logic-functions/components/LogicFunctionTestInputInitEffect';
@@ -75,6 +76,10 @@ export const WorkflowEditActionLogicFunction = ({
id: logicFunctionId,
});
+ const isThirdPartyApp = useIsThirdPartyApplication(
+ logicFunction?.applicationId,
+ );
+
const activeTabId = useAtomComponentStateValue(
activeTabIdComponentState,
WORKFLOW_LOGIC_FUNCTION_ACTION_TAB_LIST_COMPONENT_ID,
@@ -183,6 +188,8 @@ export const WorkflowEditActionLogicFunction = ({
const hasInputFields = Object.keys(functionInput).length > 0;
+ const isTestTabActive = !isThirdPartyApp && activeTabId === TEST_TAB_ID;
+
const tabs = [
{
id: INPUT_TAB_ID,
@@ -199,17 +206,19 @@ export const WorkflowEditActionLogicFunction = ({
return (
<>
-
-
-
+ {!isThirdPartyApp && (
+
+
+
+ )}
- {activeTabId === TEST_TAB_ID ? (
+ {isTestTabActive ? (
<>