diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/ActionSummaryCard.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/ActionSummaryCard.tsx index 952cbb91d7..faae4e5126 100644 --- a/apps/web/app/(app)/[emailAccountId]/assistant/ActionSummaryCard.tsx +++ b/apps/web/app/(app)/[emailAccountId]/assistant/ActionSummaryCard.tsx @@ -173,6 +173,8 @@ export function ActionSummaryCard({ case ActionType.CALL_WEBHOOK: summaryContent = `Call webhook: ${action.url?.value || "unset"}`; + tooltipText = + "Sends email details and rule execution data to your webhook endpoint when this rule is triggered."; break; case ActionType.TRACK_THREAD: diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx index 712ac584da..1eacf6a992 100644 --- a/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx +++ b/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx @@ -96,6 +96,7 @@ import { FolderSelector } from "@/components/FolderSelector"; import { useFolders } from "@/hooks/useFolders"; import type { OutlookFolder } from "@/utils/outlook/folders"; import { cn } from "@/utils"; +import { WebhookDocumentationLink } from "@/components/WebhookDocumentation"; export function Rule({ ruleId, @@ -1271,7 +1272,14 @@ function ActionCard({ registerProps={register( `actions.${index}.${field.name}.value`, )} + placeholder={field.placeholder} /> + {field.name === "url" && + action.type === ActionType.CALL_WEBHOOK && ( +
+ {payloadJson}
+
+
+ threadId - Gmail/Outlook thread ID
+ messageId - Unique message ID
+ subject - Email subject line
+ from - Sender's email address
+ cc/bcc - Optional CC/BCC recipients
+ headerMessageId - Email Message-ID header
+ id - Execution ID
+ ruleId - Rule that was triggered
+ reason - Why the rule was triggered
+ automated - Whether rule ran automatically
+ createdAt - When the rule was executed (ISO 8601)
+ X-Webhook-Secret header with your webhook secret for
+ verification.
+