Our AI will generate a reply using your knowledge base and
previous conversations with the sender
@@ -1239,8 +1239,7 @@ function ReplyTrackerAction() {
return (
- Used for reply tracking (Reply Zero). This action tracks emails this
- rule is applied to and removes the{" "}
+ This action tracks emails this rule is applied to and removes the{" "}
{NEEDS_REPLY_LABEL_NAME} label after you
reply to the email.
diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/onboarding/completed/page.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/onboarding/completed/page.tsx
index 43a29324af..236c9749f5 100644
--- a/apps/web/app/(app)/[emailAccountId]/assistant/onboarding/completed/page.tsx
+++ b/apps/web/app/(app)/[emailAccountId]/assistant/onboarding/completed/page.tsx
@@ -24,13 +24,12 @@ export default function CompletedPage(props: {
- We've configured your inbox with smart defaults to help you stay
- organized. Your emails will be automatically categorized.
+ Your emails will be automatically categorized.
- Want to customize further? You can chat with the assistant to
- create custom rules and fine-tune your preferences anytime.
+ Want to customize further? You can update your rules on the
+ Assistant page and fine-tune your preferences anytime.
diff --git a/apps/web/utils/action-display.ts b/apps/web/utils/action-display.ts
index d64f6bcd3d..0009644b3b 100644
--- a/apps/web/utils/action-display.ts
+++ b/apps/web/utils/action-display.ts
@@ -19,7 +19,7 @@ export function getActionDisplay(action: {
case ActionType.CALL_WEBHOOK:
return "Call Webhook";
case ActionType.TRACK_THREAD:
- return "Track Thread";
+ return "Auto-update reply label";
default:
// Default to capital case for other action types
return capitalCase(action.type);
From da17d96aef690c49998b20498abdfcf8204fa3ea Mon Sep 17 00:00:00 2001
From: Eliezer Steinbock <3090527+elie222@users.noreply.github.com>
Date: Fri, 13 Jun 2025 00:28:27 +0300
Subject: [PATCH 2/7] adjust copy
---
apps/web/utils/action-display.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/apps/web/utils/action-display.ts b/apps/web/utils/action-display.ts
index 0009644b3b..9f5227a178 100644
--- a/apps/web/utils/action-display.ts
+++ b/apps/web/utils/action-display.ts
@@ -10,6 +10,8 @@ export function getActionDisplay(action: {
return "Draft Reply";
case ActionType.LABEL:
return action.label ? `Label: ${action.label}` : "Label";
+ case ActionType.ARCHIVE:
+ return "Skip Inbox";
case ActionType.MARK_READ:
return "Mark Read";
case ActionType.MARK_SPAM:
From 6728aecb0a125992d849eadd477234f10c574674 Mon Sep 17 00:00:00 2001
From: Eliezer Steinbock <3090527+elie222@users.noreply.github.com>
Date: Fri, 13 Jun 2025 00:58:43 +0300
Subject: [PATCH 3/7] fix up rule form
---
.../[emailAccountId]/assistant/RuleForm.tsx | 1170 +++++++++--------
apps/web/components/Combobox.tsx | 2 +-
2 files changed, 617 insertions(+), 555 deletions(-)
diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx
index 079d2af7b0..6aa1ff3606 100644
--- a/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx
+++ b/apps/web/app/(app)/[emailAccountId]/assistant/RuleForm.tsx
@@ -44,7 +44,6 @@ import {
createRuleBody,
} from "@/utils/actions/rule.validation";
import { actionInputs } from "@/utils/action-item";
-import { Select } from "@/components/Select";
import { Toggle } from "@/components/Toggle";
import { LoadingContent } from "@/components/LoadingContent";
import { TooltipExplanation } from "@/components/TooltipExplanation";
@@ -80,9 +79,17 @@ import {
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog";
-import { isDefined } from "@/utils/types";
import { ActionSummaryCard } from "@/app/(app)/[emailAccountId]/assistant/ActionSummaryCard";
import { ConditionSummaryCard } from "@/app/(app)/[emailAccountId]/assistant/ConditionSummaryCard";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectValue,
+ SelectTrigger,
+} from "@/components/ui/select";
+import { Form, FormControl, FormField, FormItem } from "@/components/ui/form";
+import { isDefined } from "@/utils/types";
export function Rule({
ruleId,
@@ -109,15 +116,7 @@ export function RuleForm({
}) {
const { emailAccountId } = useAccount();
- const {
- register,
- handleSubmit,
- watch,
- setValue,
- control,
- formState: { errors, isSubmitting, isSubmitted },
- trigger,
- } = useForm
({
+ const form = useForm({
resolver: zodResolver(createRuleBody),
defaultValues: rule
? {
@@ -135,6 +134,16 @@ export function RuleForm({
: undefined,
});
+ const {
+ register,
+ handleSubmit,
+ watch,
+ setValue,
+ control,
+ formState: { errors, isSubmitting, isSubmitted },
+ trigger,
+ } = form;
+
const {
fields: conditionFields,
append: appendCondition,
@@ -305,589 +314,627 @@ export function RuleForm({
}, [alwaysEditMode]);
return (
-