diff --git a/app/api/canvas/clawd-chat/route.ts b/app/api/canvas/clawd-chat/route.ts index dee09ee7d..04e1a1479 100644 --- a/app/api/canvas/clawd-chat/route.ts +++ b/app/api/canvas/clawd-chat/route.ts @@ -5,6 +5,7 @@ import { getChatById, getMessagesByChatId, getSystemSetting, + getUserById, saveChat, saveMessages, } from "@/lib/db/queries"; @@ -55,6 +56,10 @@ function getOpenClawUserName(user: { return user.id; } +function getOpenClawDepartmentName(department?: string | null) { + return String(department || "").trim(); +} + function isRequestFile(value: FormDataEntryValue): value is File { return ( typeof value === "object" && @@ -212,7 +217,13 @@ export async function POST(request: Request) { const userMessageId = parsed.userMessageId || generateUUID(); const assistantMessageId = generateUUID(); const conversationId = createConversationId(session.user.id, parsed.id); - const openClawUserName = getOpenClawUserName(session.user); + const userProfile = await getUserById({ id: session.user.id }).catch(() => null); + const openClawUserName = getOpenClawUserName({ + id: session.user.id, + name: userProfile?.name ?? session.user.name, + email: userProfile?.email ?? session.user.email, + }); + const openClawDepartmentName = getOpenClawDepartmentName(userProfile?.department); const endpoint = `${config.baseUrl}/api/chat`; let upstreamPayload: unknown = null; @@ -232,6 +243,9 @@ export async function POST(request: Request) { user_id: session.user.id, user_name: openClawUserName, username: openClawUserName, + department: openClawDepartmentName, + department_name: openClawDepartmentName, + user_department: openClawDepartmentName, message: upstreamMessage, metadata: { source: "ai_chatbot_canvas", @@ -241,6 +255,9 @@ export async function POST(request: Request) { user_id: session.user.id, user_name: openClawUserName, username: openClawUserName, + department: openClawDepartmentName, + department_name: openClawDepartmentName, + user_department: openClawDepartmentName, spreadsheet_files: spreadsheetMarkdownResult?.files || undefined, spreadsheet_markdown_truncated: spreadsheetMarkdownResult?.truncated || undefined,