diff --git a/ui/src/components/access/AccessFormWebhookConfig.tsx b/ui/src/components/access/AccessFormWebhookConfig.tsx
index f05d3097..e393b058 100644
--- a/ui/src/components/access/AccessFormWebhookConfig.tsx
+++ b/ui/src/components/access/AccessFormWebhookConfig.tsx
@@ -1,5 +1,6 @@
 import { useTranslation } from "react-i18next";
-import { Alert, Button, Form, type FormInstance, Input, Select, Switch } from "antd";
+import { DownOutlined as DownOutlinedIcon } from "@ant-design/icons";
+import { Alert, Button, Dropdown, Form, type FormInstance, Input, Select, Switch } from "antd";
 import { createSchemaFieldRule } from "antd-zod";
 import { z } from "zod";
 
@@ -128,8 +129,124 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa
     formInst.setFieldValue("defaultDataForDeployment", initFormModel().defaultDataForDeployment);
   };
 
-  const handlePresetDataForNotificationClick = () => {
-    formInst.setFieldValue("defaultDataForNotification", initFormModel().defaultDataForNotification);
+  const handlePresetDataForNotificationClick = (key: string) => {
+    switch (key) {
+      case "bark":
+        formInst.setFieldValue("url", "https://api.day.app/push");
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json\r\nAuthorization: Bearer <your-gotify-token>");
+        formInst.setFieldValue(
+          "defaultDataForNotification",
+          JSON.stringify(
+            {
+              title: "${SUBJECT}",
+              body: "${MESSAGE}",
+              group: "<your-bark-group>",
+              device_keys: "<your-bark-device-key>",
+            },
+            null,
+            2
+          )
+        );
+        break;
+
+      case "gotify":
+        formInst.setFieldValue("url", "https://<your-gotify-server>/");
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json\r\nAuthorization: Bearer <your-gotify-token>");
+        formInst.setFieldValue(
+          "defaultDataForNotification",
+          JSON.stringify(
+            {
+              title: "${SUBJECT}",
+              message: "${MESSAGE}",
+              priority: 1,
+            },
+            null,
+            2
+          )
+        );
+        break;
+
+      case "ntfy":
+        formInst.setFieldValue("url", "https://<your-ntfy-server>/");
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json");
+        formInst.setFieldValue(
+          "defaultDataForNotification",
+          JSON.stringify(
+            {
+              topic: "<your-ntfy-topic>",
+              title: "${SUBJECT}",
+              message: "${MESSAGE}",
+              priority: 1,
+            },
+            null,
+            2
+          )
+        );
+        break;
+
+      case "pushover":
+        formInst.setFieldValue("url", "https://api.pushover.net/1/messages.json");
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json");
+        formInst.setFieldValue(
+          "defaultDataForNotification",
+          JSON.stringify(
+            {
+              token: "<your-pushover-token>",
+              user: "<your-pushover-user>",
+              title: "${SUBJECT}",
+              message: "${MESSAGE}",
+            },
+            null,
+            2
+          )
+        );
+        break;
+
+      case "pushplus":
+        formInst.setFieldValue("url", "https://www.pushplus.plus/send");
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json");
+        formInst.setFieldValue(
+          "defaultDataForNotification",
+          JSON.stringify(
+            {
+              token: "<your-pushplus-token>",
+              title: "${SUBJECT}",
+              content: "${MESSAGE}",
+            },
+            null,
+            2
+          )
+        );
+        break;
+
+      case "serverchan":
+        formInst.setFieldValue("url", "https://sctapi.ftqq.com/<your-serverchan-key>.send");
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json");
+        formInst.setFieldValue(
+          "defaultDataForNotification",
+          JSON.stringify(
+            {
+              text: "${SUBJECT}",
+              desp: "${MESSAGE}",
+            },
+            null,
+            2
+          )
+        );
+        break;
+
+      default:
+        formInst.setFieldValue("method", "POST");
+        formInst.setFieldValue("headers", "Content-Type: application/json");
+        formInst.setFieldValue("defaultDataForNotification", initFormModel().defaultDataForNotification);
+        break;
+    }
   };
 
   const handleFormChange = (_: unknown, values: z.infer<typeof formSchema>) => {
@@ -169,10 +286,12 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa
         <Form.Item className="mb-0">
           <label className="mb-1 block">
             <div className="flex w-full items-center justify-between gap-4">
-              <div className="max-w-full grow truncate">{t("access.form.webhook_default_data_for_deployment.label")}</div>
+              <div className="max-w-full grow truncate">
+                <span>{t("access.form.webhook_default_data_for_deployment.label")}</span>
+              </div>
               <div className="text-right">
                 <Button size="small" type="link" onClick={handlePresetDataForDeploymentClick}>
-                  {t("access.form.webhook_default_data_preset.button")}
+                  {t("access.form.webhook_preset_data.button")}
                 </Button>
               </div>
             </div>
@@ -196,11 +315,25 @@ const AccessFormWebhookConfig = ({ form: formInst, formName, disabled, initialVa
         <Form.Item className="mb-0">
           <label className="mb-1 block">
             <div className="flex w-full items-center justify-between gap-4">
-              <div className="max-w-full grow truncate">{t("access.form.webhook_default_data_for_notification.label")}</div>
+              <div className="max-w-full grow truncate">
+                <span>{t("access.form.webhook_default_data_for_notification.label")}</span>
+              </div>
               <div className="text-right">
-                <Button size="small" type="link" onClick={handlePresetDataForNotificationClick}>
-                  {t("access.form.webhook_default_data_preset.button")}
-                </Button>
+                <Dropdown
+                  menu={{
+                    items: ["bark", "ntfy", "gotify", "pushover", "pushplus", "serverchan"].map((key) => ({
+                      key,
+                      label: t(`access.form.webhook_preset_data.option.${key}.label`),
+                      onClick: () => handlePresetDataForNotificationClick(key),
+                    })),
+                  }}
+                  trigger={["click"]}
+                >
+                  <Button size="small" type="link">
+                    {t("access.form.webhook_preset_data.button")}
+                    <DownOutlinedIcon />
+                  </Button>
+                </Dropdown>
               </div>
             </div>
           </label>
diff --git a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx
index 01a3338f..37d7c6a1 100644
--- a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx
+++ b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx
@@ -398,7 +398,9 @@ const ApplyNodeConfigForm = forwardRef<ApplyNodeConfigFormInstance, ApplyNodeCon
           <Form.Item className="mb-0">
             <label className="mb-1 block">
               <div className="flex w-full items-center justify-between gap-4">
-                <div className="max-w-full grow truncate">{t("workflow_node.apply.form.ca_provider.label")}</div>
+                <div className="max-w-full grow truncate">
+                  <span>{t("workflow_node.apply.form.ca_provider.label")}</span>
+                </div>
                 <div className="text-right">
                   <Show when={!fieldCAProvider}>
                     <Link className="ant-typography" to="/settings/ssl-provider" target="_blank">
diff --git a/ui/src/i18n/locales/en/nls.access.json b/ui/src/i18n/locales/en/nls.access.json
index a9930db3..d94c7871 100644
--- a/ui/src/i18n/locales/en/nls.access.json
+++ b/ui/src/i18n/locales/en/nls.access.json
@@ -353,7 +353,13 @@
   "access.form.webhook_default_data_for_notification.label": "Webhook data for notification (Optional)",
   "access.form.webhook_default_data_for_notification.placeholder": "Please enter Webhook data",
   "access.form.webhook_default_data_for_notification.guide": "Tips: The Webhook data should be in JSON format. <br><br>The values in JSON support template variables, which will be replaced by actual values when sent to the Webhook URL. Supported variables: <br><ol style=\"margin-left: 1.25em; list-style: disc;\"><li><strong>${SUBJECT}</strong>: The subject of notification.</li><li><strong>${MESSAGE}</strong>: The message of notification.</li></ol><br>When the request method is GET, the data will be passed as query string. Otherwise, the data will be encoded in the format indicated by the Content-Type in the request headers. Supported formats: <br><ol style=\"margin-left: 1.25em; list-style: disc;\"><li>application/json (default).</li><li>application/x-www-form-urlencoded: Nested data is not supported.</li><li>multipart/form-data: Nested data is not supported.</li>",
-  "access.form.webhook_default_data_preset.button": "Use preset template",
+  "access.form.webhook_preset_data.button": "Use preset template",
+  "access.form.webhook_preset_data.option.bark.label": "Bark",
+  "access.form.webhook_preset_data.option.gotify.label": "Gotify",
+  "access.form.webhook_preset_data.option.ntfy.label": "ntfy",
+  "access.form.webhook_preset_data.option.pushover.label": "Pushover",
+  "access.form.webhook_preset_data.option.pushplus.label": "PushPlus",
+  "access.form.webhook_preset_data.option.serverchan.label": "ServerChan",
   "access.form.webhook_allow_insecure_conns.label": "Insecure SSL/TLS connections",
   "access.form.webhook_allow_insecure_conns.tooltip": "Allowing insecure connections may lead to data leak or tampering. Use this option only when under trusted networks.",
   "access.form.webhook_allow_insecure_conns.switch.on": "Allow",
diff --git a/ui/src/i18n/locales/zh/nls.access.json b/ui/src/i18n/locales/zh/nls.access.json
index 0f26e632..81f87672 100644
--- a/ui/src/i18n/locales/zh/nls.access.json
+++ b/ui/src/i18n/locales/zh/nls.access.json
@@ -353,7 +353,13 @@
   "access.form.webhook_default_data_for_notification.label": "默认的 Webhook 推送通知回调数据(可选)",
   "access.form.webhook_default_data_for_notification.placeholder": "请输入默认的 Webhook 回调数据",
   "access.form.webhook_default_data_for_notification.guide": "小贴士:回调数据是一个 JSON 格式的数据。<br><br>其中值支持模板变量,将在被发送到指定的 Webhook URL 时被替换为实际值;其他内容将保持原样。支持的变量:<br><ol style=\"margin-left: 1.25em; list-style: disc;\"><li><strong>${DOMAIN}</strong>:证书的主域名(即 <i>CommonName</i>)。</li><li><strong>${SUBJECT}</strong>:通知主题。</li><li><strong>${MESSAGE}</strong>:通知内容。</ol><br>当请求谓词为 GET 时,回调数据将作为查询参数;否则,回调数据将按照请求标头中 Content-Type 所指示的格式进行编码。支持的格式:<br><ol style=\"margin-left: 1.25em; list-style: disc;\"><li>application/json(默认)。</li><li>application/x-www-form-urlencoded:不支持嵌套数据。</li><li>multipart/form-data:不支持嵌套数据。</li>",
-  "access.form.webhook_default_data_preset.button": "使用预设模板",
+  "access.form.webhook_preset_data.button": "使用预设模板",
+  "access.form.webhook_preset_data.option.bark.label": "Bark",
+  "access.form.webhook_preset_data.option.gotify.label": "Gotify",
+  "access.form.webhook_preset_data.option.ntfy.label": "ntfy",
+  "access.form.webhook_preset_data.option.pushover.label": "Pushover",
+  "access.form.webhook_preset_data.option.pushplus.label": "PushPlus 推送加",
+  "access.form.webhook_preset_data.option.serverchan.label": "Server 酱",
   "access.form.webhook_allow_insecure_conns.label": "忽略 SSL/TLS 证书错误",
   "access.form.webhook_allow_insecure_conns.tooltip": "忽略 SSL/TLS 证书错误可能导致数据泄露或被篡改。建议仅在可信网络下启用。",
   "access.form.webhook_allow_insecure_conns.switch.on": "允许",