App logic function as step (#17525)

- Add logic function as step
- Rename previous one as Code

<img width="494" height="573" alt="Capture d’écran 2026-01-28 à 16 15
29"
src="https://github.com/user-attachments/assets/82f7e720-20da-4926-b5bc-94a33cd1f53a"
/>
<img width="494" height="264" alt="Capture d’écran 2026-01-28 à 16 15
39"
src="https://github.com/user-attachments/assets/a0444ae9-8c50-418d-8c5f-68c4da08fce7"
/>
<img width="494" height="264" alt="Capture d’écran 2026-01-28 à 16 15
58"
src="https://github.com/user-attachments/assets/3025db09-4e59-421e-8dc5-f3a7a7326554"
/>

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This commit is contained in:
Thomas Trompette
2026-01-29 11:59:24 +01:00
committed by GitHub
parent 22c7e207e3
commit 3ad7a9ac94
42 changed files with 551 additions and 90 deletions
@@ -41,6 +41,8 @@ export {
} from './schemas/if-else-action-settings-schema';
export { workflowIteratorActionSchema } from './schemas/iterator-action-schema';
export { workflowIteratorActionSettingsSchema } from './schemas/iterator-action-settings-schema';
export { workflowLogicFunctionActionSchema } from './schemas/logic-function-action-schema';
export { workflowLogicFunctionActionSettingsSchema } from './schemas/logic-function-action-settings-schema';
export { workflowManualTriggerSchema } from './schemas/manual-trigger-schema';
export { objectRecordSchema } from './schemas/object-record-schema';
export { workflowSendEmailActionSchema } from './schemas/send-email-action-schema';
@@ -0,0 +1,9 @@
import { z } from 'zod';
import { baseWorkflowActionSchema } from './base-workflow-action-schema';
import { workflowLogicFunctionActionSettingsSchema } from './logic-function-action-settings-schema';
export const workflowLogicFunctionActionSchema =
baseWorkflowActionSchema.extend({
type: z.literal('LOGIC_FUNCTION'),
settings: workflowLogicFunctionActionSettingsSchema,
});
@@ -0,0 +1,10 @@
import { z } from 'zod';
import { baseWorkflowActionSettingsSchema } from './base-workflow-action-settings-schema';
export const workflowLogicFunctionActionSettingsSchema =
baseWorkflowActionSettingsSchema.extend({
input: z.object({
logicFunctionId: z.string(),
logicFunctionInput: z.record(z.string(), z.any()),
}),
});
@@ -10,6 +10,7 @@ import { workflowFormActionSchema } from './form-action-schema';
import { workflowHttpRequestActionSchema } from './http-request-action-schema';
import { workflowIfElseActionSchema } from './if-else-action-schema';
import { workflowIteratorActionSchema } from './iterator-action-schema';
import { workflowLogicFunctionActionSchema } from './logic-function-action-schema';
import { workflowSendEmailActionSchema } from './send-email-action-schema';
import { workflowUpdateRecordActionSchema } from './update-record-action-schema';
import { workflowUpsertRecordActionSchema } from './upsert-record-action-schema';
@@ -17,6 +18,7 @@ import { workflowDelayActionSchema } from './workflow-delay-action-schema';
export const workflowActionSchema = z.discriminatedUnion('type', [
workflowCodeActionSchema,
workflowLogicFunctionActionSchema,
workflowSendEmailActionSchema,
workflowCreateRecordActionSchema,
workflowUpdateRecordActionSchema,