diff --git a/web/app/components/workflow/block-selector/start-blocks.tsx b/web/app/components/workflow/block-selector/start-blocks.tsx
index a2819c67cc..12447875ee 100644
--- a/web/app/components/workflow/block-selector/start-blocks.tsx
+++ b/web/app/components/workflow/block-selector/start-blocks.tsx
@@ -68,7 +68,12 @@ const StartBlocks = ({
className='mb-2'
type={block.type}
/>
-
+ {block.type === BlockEnumValues.TriggerWebhook
+ ? t('workflow.customWebhook')
+ : t(`workflow.blocks.${block.type}`)
+ }
+
@@ -87,7 +92,7 @@ const StartBlocks = ({
type={block.type}
/>
- {block.title}
+ {t(`workflow.blocks.${block.type}`)}
{block.type === BlockEnumValues.Start && (
{t('workflow.blocks.originalStartNode')}
)}
diff --git a/web/app/components/workflow/nodes/trigger-schedule/constants.ts b/web/app/components/workflow/nodes/trigger-schedule/constants.ts
index 22507e2142..5dc6741237 100644
--- a/web/app/components/workflow/nodes/trigger-schedule/constants.ts
+++ b/web/app/components/workflow/nodes/trigger-schedule/constants.ts
@@ -1,6 +1,5 @@
import type { ScheduleTriggerNodeType } from './types'
-// Unified default values for trigger schedule
export const getDefaultScheduleConfig = (): Partial => ({
mode: 'visual',
frequency: 'weekly',
diff --git a/web/app/components/workflow/nodes/trigger-schedule/types.ts b/web/app/components/workflow/nodes/trigger-schedule/types.ts
index c32089b59b..bec5486b60 100644
--- a/web/app/components/workflow/nodes/trigger-schedule/types.ts
+++ b/web/app/components/workflow/nodes/trigger-schedule/types.ts
@@ -5,16 +5,16 @@ export type ScheduleMode = 'visual' | 'cron'
export type ScheduleFrequency = 'hourly' | 'daily' | 'weekly' | 'monthly'
export type VisualConfig = {
- time?: string // User timezone time format: "2:30 PM"
- weekdays?: string[] // ['mon', 'tue', 'wed'] for weekly frequency
- on_minute?: number // 0-59 for hourly frequency
- monthly_days?: (number | 'last')[] // [1, 15, 'last'] for monthly frequency
+ time?: string
+ weekdays?: string[]
+ on_minute?: number
+ monthly_days?: (number | 'last')[]
}
export type ScheduleTriggerNodeType = CommonNodeType & {
- mode: ScheduleMode // 'visual' or 'cron' configuration mode
- frequency: ScheduleFrequency // 'hourly' | 'daily' | 'weekly' | 'monthly'
- cron_expression?: string // Cron expression when mode is 'cron'
- visual_config?: VisualConfig // User-friendly configuration when mode is 'visual'
- timezone: string // User profile timezone (e.g., 'Asia/Shanghai', 'America/New_York')
+ mode: ScheduleMode
+ frequency: ScheduleFrequency
+ cron_expression?: string
+ visual_config?: VisualConfig
+ timezone: string
}
diff --git a/web/app/components/workflow/nodes/trigger-webhook/default.ts b/web/app/components/workflow/nodes/trigger-webhook/default.ts
index 1d54fa15fd..d1ad6e8af6 100644
--- a/web/app/components/workflow/nodes/trigger-webhook/default.ts
+++ b/web/app/components/workflow/nodes/trigger-webhook/default.ts
@@ -30,7 +30,7 @@ const nodeDefault: NodeDefault = {
if (!payload.webhook_url) {
return {
isValid: false,
- errorMessage: t('workflow.nodes.webhook.validation.webhookUrlRequired'),
+ errorMessage: t('workflow.nodes.triggerWebhook.validation.webhookUrlRequired'),
}
}
@@ -45,7 +45,7 @@ const nodeDefault: NodeDefault = {
if (!isValidParameterType(param.type)) {
return {
isValid: false,
- errorMessage: t('workflow.nodes.webhook.validation.invalidParameterType', {
+ errorMessage: t('workflow.nodes.triggerWebhook.validation.invalidParameterType', {
name: param.name,
type: param.type,
}),
diff --git a/web/i18n/en-US/workflow.ts b/web/i18n/en-US/workflow.ts
index 01fa083644..7bb7b40dc1 100644
--- a/web/i18n/en-US/workflow.ts
+++ b/web/i18n/en-US/workflow.ts
@@ -280,6 +280,7 @@ const translation = {
'trigger-webhook': 'Webhook Trigger',
'trigger-plugin': 'Plugin Trigger',
},
+ customWebhook: 'Custom Webhook',
blocksAbout: {
'start': 'Define the initial parameters for launching a workflow',
'end': 'Define the end and result type of a workflow',
@@ -1028,6 +1029,10 @@ const translation = {
responseBody: 'Response Body',
responseBodyPlaceholder: 'Write your response body here',
headers: 'Headers',
+ validation: {
+ webhookUrlRequired: 'Webhook URL is required',
+ invalidParameterType: 'Invalid parameter type "{{type}}" for parameter "{{name}}"',
+ },
},
},
triggerStatus: {
diff --git a/web/i18n/ja-JP/workflow.ts b/web/i18n/ja-JP/workflow.ts
index 69cdfbf558..01af166341 100644
--- a/web/i18n/ja-JP/workflow.ts
+++ b/web/i18n/ja-JP/workflow.ts
@@ -253,7 +253,7 @@ const translation = {
'start': '始める',
},
blocks: {
- 'start': '開始',
+ 'start': 'ユーザー入力',
'originalStartNode': '元の開始ノード',
'end': '終了',
'answer': '回答',
@@ -280,6 +280,7 @@ const translation = {
'trigger-webhook': 'Webhook トリガー',
'trigger-schedule': 'スケジュールトリガー',
},
+ customWebhook: 'カスタムWebhook',
blocksAbout: {
'start': 'ワークフロー開始時の初期パラメータを定義します。',
'end': 'ワークフローの終了条件と結果のタイプを定義します。',
@@ -1028,6 +1029,10 @@ const translation = {
responseBody: 'レスポンスボディ',
responseBodyPlaceholder: 'ここにレスポンスボディを入力してください',
headers: 'ヘッダー',
+ validation: {
+ webhookUrlRequired: 'Webhook URLが必要です',
+ invalidParameterType: 'パラメータ"{{name}}"の無効なパラメータタイプ"{{type}}"です',
+ },
},
},
tracing: {
diff --git a/web/i18n/zh-Hans/workflow.ts b/web/i18n/zh-Hans/workflow.ts
index 296b9edc0d..0b79673c92 100644
--- a/web/i18n/zh-Hans/workflow.ts
+++ b/web/i18n/zh-Hans/workflow.ts
@@ -253,7 +253,7 @@ const translation = {
'start': '开始',
},
blocks: {
- 'start': '开始',
+ 'start': '用户输入',
'originalStartNode': '原始开始节点',
'end': '结束',
'answer': '直接回复',
@@ -280,6 +280,7 @@ const translation = {
'trigger-schedule': '定时触发器',
'trigger-plugin': '插件触发器',
},
+ customWebhook: '自定义 Webhook',
blocksAbout: {
'start': '定义一个 workflow 流程启动的初始参数',
'end': '定义一个 workflow 流程的结束和结果类型',
@@ -1028,6 +1029,10 @@ const translation = {
responseBody: '响应体',
responseBodyPlaceholder: '在此输入您的响应体',
headers: 'Headers',
+ validation: {
+ webhookUrlRequired: '需要提供Webhook URL',
+ invalidParameterType: '参数"{{name}}"的参数类型"{{type}}"无效',
+ },
},
},
tracing: {