diff --git a/apps/web/components/dashboard-view.tsx b/apps/web/components/dashboard-view.tsx
index fe2e3f0c..3f497a5e 100644
--- a/apps/web/components/dashboard-view.tsx
+++ b/apps/web/components/dashboard-view.tsx
@@ -31,6 +31,7 @@ import {
import { StaticGraphPreview } from "@/components/memory-graph/graph-card"
import { Tooltip, TooltipContent, TooltipTrigger } from "@ui/components/tooltip"
import { ChromeIcon, RaycastIcon } from "@/components/integration-icons"
+import { SlackConnectCard } from "@/components/slack-connect-card"
import { GoogleDrive, Notion, MCPIcon } from "@ui/assets/icons"
import { analytics } from "@/lib/analytics"
import type { IntegrationParamValue } from "@/lib/search-params"
@@ -1325,6 +1326,7 @@ export function DashboardView({
)}
>
+
{headerNotice ?
{headerNotice}
: null}
{/* Header */}
diff --git a/apps/web/components/slack-connect-card.tsx b/apps/web/components/slack-connect-card.tsx
new file mode 100644
index 00000000..2fc6de2c
--- /dev/null
+++ b/apps/web/components/slack-connect-card.tsx
@@ -0,0 +1,106 @@
+"use client"
+
+import { useEffect, useState } from "react"
+import { useHasCompanyBrain } from "@/hooks/use-company-brain"
+
+const BACKEND =
+ process.env.NEXT_PUBLIC_BACKEND_URL ?? "https://api.supermemory.ai"
+
+type SlackStatus = { connected: boolean; teamName: string | null }
+
+function SlackMark({ className }: { className?: string }) {
+ return (
+
+ Slack
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export function SlackConnectCard() {
+ const isCompanyBrain = useHasCompanyBrain()
+ const [status, setStatus] = useState
(null)
+ const [loading, setLoading] = useState(true)
+
+ useEffect(() => {
+ if (!isCompanyBrain) return
+ let active = true
+ ;(async () => {
+ try {
+ const res = await fetch(`${BACKEND}/brain/slack/status`, {
+ credentials: "include",
+ })
+ if (active && res.ok) setStatus((await res.json()) as SlackStatus)
+ } finally {
+ if (active) setLoading(false)
+ }
+ })()
+ return () => {
+ active = false
+ }
+ }, [isCompanyBrain])
+
+ if (!isCompanyBrain || loading) return null
+
+ const connected = status?.connected
+
+ return (
+
+
+
+ Add Supermemory to your Slack
+
+
+ {connected
+ ? `Connected to ${status?.teamName ?? "your workspace"}.`
+ : "Answer from your company brain and act on connected apps — right inside Slack."}
+
+
+ {connected ? (
+
+
+ Connected
+
+ ) : (
+
+
+ Add to Slack
+
+ )}
+
+ )
+}
diff --git a/apps/web/components/space-selector.tsx b/apps/web/components/space-selector.tsx
index f4af92b8..8bba3f38 100644
--- a/apps/web/components/space-selector.tsx
+++ b/apps/web/components/space-selector.tsx
@@ -61,8 +61,8 @@ export interface SpaceSelectorProps {
const triggerVariants = {
default:
- "h-10 min-h-10 shrink-0 rounded-full border border-[#161F2C] bg-muted px-3 gap-2 " +
- "hover:bg-white/5 hover:border-[#2261CA33] " +
+ "h-10 min-h-10 shrink-0 rounded-full bg-muted px-3 gap-2 " +
+ "hover:bg-white/5 " +
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#2261CA33]/35",
insideOut:
"h-10 min-h-10 gap-2 px-3 rounded-full bg-[#0D121A] shadow-inside-out hover:bg-[#121820]",