Email Intelligence — Q&A
Every feature in /command/ + the Outlook Add-in, indexed and searchable. Use the search box to filter; click any question to copy a permalink. Send corrections and missing questions via the Feedback Hub.
The Hub's email triage workspace. Paste any email thread (Romanian or English) and run AI actions against it: summary, action items, draft reply, flag risks, compare, merge, translate. Lives at /command/. Built for partners who want to clear inbox backlog without typing the same things into ChatGPT every time.
Paste a long thread → click ⤳ Triage & route. You get the next move (REPLY / FORWARD / FYI / ESCALATE) with concrete recipients pulled from the CLA org structure, plus a one-click Apply that pre-fills the Draft pane. Designed for inbox triage — read what + why + apply, no figuring out who owns what. If you want analysis instead of action, use ⚡ Triage all (Summary + Actions + Risks together).
Pick by the question you're asking yourself when you open the email:
- "What should I do with this?" → Triage & route (start here)
- "What does this say?" → Summarise
- "Who needs to do what?" → Action items
- "Should I worry?" → Flag risks
- "How do I tell the partner?" → Partner brief
- "How do I reply?" → Draft reply
- "Did my reply cover everything?" → Compare emails
- "This person sent me 8 emails — one reply please" → Combine emails
- "Romanian thread, English colleague needs the gist" → Translate to EN
The textarea on the left accepts any thread — full chain, signatures, forwarded messages. Romanian / English / mixed all work. The Hub's AI auto-detects language. The longer the chain, the better the context.
Click Upload file in the source-chip row. Accepts .pdf / .docx / .xlsx / .eml / .msg / .txt / .csv. The Hub extracts the text and switches to document mode — the Draft action then writes a cover/forwarding email summarising 3-5 key points from the file, instead of pretending it's a thread.
🔍 Pull by sender chip → search your Outlook by sender email or domain → click a result and the full thread loads into the textarea. Saves the copy-paste step entirely. Read-only — Hub never modifies your Outlook data.
📥 Unanswered backlog chip → opens a modal listing every conversation in your inbox where the latest message is from someone else (i.e. you owe them a reply). Filter by sender, subject, age. Pick one → drafts a reply. Or select several from the same sender and use Combine emails.
One-click batch — runs Summarise + Action items + Flag risks together and stacks the results. The most-used entry point. Shortcut: ⌘⇧↵ (Mac) / Ctrl+Shift+Enter (Windows).
3-sentence bottom line + thread summary + status pill (Needs action / Waiting / Informational / Resolved) + topic tags + key people. The "what does this say" answer, optimised for scanning.
The "what should I do with this email" lens. The AI reads the thread against CLA's org structure (10 partners, 2 practice leads, 7 distribution lists, 11 routing rules) and recommends the next move:
- REPLY — answer it yourself
- FORWARD — the topic belongs to a different practice (Mobility, Tax Compliance, Audit, etc.)
- FYI — share with people who should know but don't need to act
- ESCALATE — partner-level decision needed
- NO_ACTION — informational only
Output card shows: confidence (high/medium/low) + ⚡ obvious badge if it's a routine call · primary owner with role + reasoning · TO and FYI lists each carrying the AI's reasoning per recipient · suggested draft pre-filled with right subject + body in Ionut's direct style. Apply → button pre-fills the Draft pane in one click; the existing smart-route, attachments, and send pane all pick it up.
Grounded — no hallucinated emails. The AI is given the org JSON and explicitly told to use only those addresses. If the topic doesn't map cleanly, it says so.
When you run Triage, the Hub scans your last 10 history entries for threads with the same client domain. If matches exist, it passes them into the prompt as PRIOR_PRECEDENT and instructs Claude to reuse phrasing/tone unless the topic has shifted, or flag drift if the current ask contradicts what we promised before. Surfaces as a gold "📚 Precedent" stripe in the action card — clear visual link between the recommendation and the historical reference.
Personal mailbox domains (gmail/outlook/yahoo/icloud/etc.) are excluded — only real client domains drive precedent.
If the thread mentions a Romanian fiscal code — D100, D101, D112, D205, D300, D390, D394, D406, D710, SAF-T, situații financiare, bilanț — Triage pulls the live days-to-deadline from the canonical fiscal calendar (/shared/regulatory-deadlines.js) and feeds it into the prompt as authoritative context with hard escalation rules:
- ≤ 3 days → forces ESCALATE + high confidence (red banner)
- ≤ 10 days → prefers FORWARD to practice DL + obvious=true (amber banner)
Banner sits above the action card so it's impossible to miss when a regulator is breathing down your neck.
Pulls every action out of the thread with owner, priority, and deadline. Plus a separate Your actions section showing items assigned specifically to you. Plus blockers if there are any.
Surfaces legal / financial / contractual / reputational risks. Severity-tagged. Includes financial exposure when the thread mentions amounts. Immediate attention banner if anything is urgent. Use it before sending anything sensitive.
One-page partner-ready brief: headline, situation, CLA position, decision needed, recommended next step. The "how do I tell the partner" version of a thread without typing it from scratch.
Generates a full reply — To, suggested CC, subject, body, send timing. Picks tone / length / approach from the Reply style chips below the action grid. After it generates, you can edit inline, add CC/BCC, open in Outlook compose, or schedule.
Polite chase note for a thread that's gone quiet. The AI computes how stale the thread is, what's pending, and produces a short reminder that nudges without nagging.
Verify a candidate reply against the original email. Click Compare → a second textarea slides in for the reply you want to check → run.
Output: verdict pill (ready / needs revision / major gaps) + coverage bar + line-by-line ✓/⚠/✗ for every ask in the original + a "missing critical" red list + tone-shift comment + any commitments the reply adds that the original didn't request. Catches missed questions before send.
Multiple emails from the same sender, possibly across different topics → ONE consolidated reply that addresses everything. Paste the bundle into the textarea (separate threads with --- or "From:" headers, or pull straight from Unanswered backlog) → click Combine emails → run.
How it works step-by-step:
- Click ⊕ Combine emails · the Find Unanswered Emails card opens
- Select a thread below to load it into the Email Thread panel on the left
- Use "Next" to navigate between conversations and select more threads from the same sender
- Click Combine emails once your selection is complete · output is a single consolidated Draft Reply
Output is a single Draft Reply with a structured body — short opening, one section per topic, short close. Same edit + open-in-Outlook + schedule footer as the regular Draft. Solves the "I owe Vlad five replies on three topics" problem.
For Romanian / mixed-language threads, produces a clean English summary — glossary-aware for tax / audit / legal terms — plus a "key terms" mini-dictionary and "context for international colleagues" notes. Use when forwarding to a non-Romanian-speaking partner abroad.
The voice the reply takes. Direct = no throat-clearing. Diplomatic = softens hard messages. Firm = pushes back without escalating. The chips are visible always (they dim when the active action doesn't use them) so you see the feature exists from day one.
Brief = one short paragraph + sign-off. Standard = the default. Detailed = full context, all caveats, fully-built case. Pick Brief for quick acks, Detailed for first contact with a new client.
What strategy the reply follows. Address topic answers head-on. Acknowledge & defer says "got it, will revert by X". Buy time commits to a date without committing to an answer. Full context considered includes background even if not asked. Ask for clarification when the original is ambiguous. Real partners use these constantly — we just made them an explicit choice instead of hidden inside Tone.
Click ✎ Edit in the draft footer. The body becomes editable in place with a gold outline. Tweak any phrase. Click ✓ Done when finished. Then Copy / Schedule / Open in Outlook all reflect your edits. No more copy-into-Outlook-edit-there-lose-the-AI-structure dance.
To / CC / Subject are now editable inputs in the draft header — type into them directly. BCC is hidden by default; click + BCC to reveal a BCC line (common pattern: legal review BCC, audit cc). Multiple addresses go comma-separated.
Edits propagate to the Open in Outlook compose URL automatically.
The gold button in the draft footer. Constructs an Outlook-web compose link with To / CC / BCC / Subject / Body pre-filled, opens it in a new tab. You review in Outlook and click Send from there. Your email actually sends from your real Outlook account (not from the Hub) so it shows up in your Sent items, threading is preserved, and BCC lands where you'd expect.
Click ⏱ Schedule send → pick a date + time (defaults to tomorrow 09:00) → Save. The Hub stores the scheduled draft locally + syncs to /api/tool-data?tool=cla_scheduled_drafts, then reminds you when due. The actual send still happens in Outlook (Hub pushes the reminder + the draft text, you paste-and-send in your real account).
The Draft view shows quick-add CC chips sourced from (a) AI suggestions in the prompt response and (b) practice-relevant teammates from the access matrix. Click one → it's appended to the CC field with a ✓ confirmation. Saves remembering which DL covers which practice (taxcompliance@, controlling@, mobility@…).
The Risks lens watches for "atașez / find attached / în atașament / anexat" or specific document names (factura, contract, balanta, raport) — and flags when the body references an attachment that isn't actually there. Catches the everyday "thanks for the contract" reply where the contract never made it through. Red banner at the top of Risks output.
When a thread subject is a tower of "RE: RE: Fwd: Fw: [EXT]" or [SPAM] / [CAUTION] prefixes, Draft action proposes a cleaner 6-10 word subject capturing the actual current topic. The cleaned subject still gets a single "RE:" prefix. Teal "✨ cleaned" badge next to the subject input flags the rewrite.
When you draft a reply, the Hub scans your last 10 threads for prior conversations with the same client domain (excluding personal mailbox domains). If matches exist, a gold "Prior threads with <domain> (N)" stripe appears above the draft showing each prior thread + last action + click-to-reopen. Helps spot "wait, we already replied to this last week" before you send a fresh thread.
Distinct from Triage precedent (which feeds the AI prompt) — Decision Memory is a passive surface in the Draft view.
Click 📎 Attach file in the draft footer → multi-select files. Each is read as base64 and held in the draft state. Chip strip above the footer shows filename + size + ✕ remove for each. Cap: 3 MB total (Graph limit) for direct send via Outlook; 6 MB total via the internal Hub mail route.
Attachments deliver only on Send directly →. Open in Outlook compose URL and Copy draft can't carry files; if you click Open in Outlook with files attached, you get a confirm with the file list so you can choose.
Cleared automatically on a successful send.
The Send pane classifies the route from your To/Cc/Bcc fields and shows a coloured banner before you click Send:
- 🟢 Internal · CLA Hub — all recipients @cla.com.ro. Sent through
hub@hub.cla.com.rowith reply-to set to you, so replies route back to your mailbox. Works without Outlook connect — gold "Send via Hub →" button. - 🔵 External · your Outlook — at least one external recipient. Sent from your real Outlook (Microsoft Graph), lands in your Sent Items, respects folder choice. Needs the Graph Mail.Send scope (IT-granted).
- 🟡 External · connect Outlook — external recipient + Graph not yet scoped. Falls back to Open in Outlook compose.
Recipient changes recompute the route on every input event.
Resend-route sends never appear in your Outlook Sent Items, so the Hub keeps its own permanent record. After every successful send, a row lands in hub_audit_log (action='email_sent') with route + recipients + subject + attachment count + timestamp. The right sidebar's "Sent via Hub" section reads back the last 30 days for you, scoped to your account by a privacy gate. Survives device changes and browser cleanup.
Each row in the Action Items lens carries a "→ <Practice> tasks" button when the page's practice select maps to a known mgmt tool (Tax Compliance, Tax Advisory, Transfer Pricing, Legal, Mobility, M&A/Consulting, Admin/IT). BPS shows split Accounting + Payroll buttons. Click → POSTs the action as a new task into /api/tool-data?tool=<key> with sender + subject in the notes for backtracking. Confirmation chip with a link to open the mgmt tool. Failure stays non-destructive — original data never overwritten.
Run any action in /command/, edit the draft, click 📧 Open in Outlook. Outlook compose opens with everything pre-filled. You review, send. The send is from your real Outlook account so threading + Sent folder + audit trail are all normal.
If you have the Outlook Add-in installed: open any email in Outlook, click the CLA Email Intelligence button on the message ribbon → the task pane opens with the email already loaded. From the pane, the green ➔ Send to Hub button (top right) opens /command/ in a new tab with the same email pre-filled — useful for features not yet in the add-in (Compare, Backlog, My style).
If REZOLVIT has pushed it org-wide, it appears automatically on every CLA mailbox's message ribbon — no install needed. If not yet, see the install page at app.cla.com.ro/outlook-addin/ for sideload instructions or the troubleshooting callout if "Add from URL" is greyed out (M365 admin policy, not a manifest issue).
External users (e.g. Vetimex / partner firms with their own Microsoft tenant) can sign into the Hub UI with their own Microsoft account via 🔒 Connect Outlook in the source-chip row. Token stays in their browser only — CLA never holds it. After their tenant admin grants consent, Pull-by-sender + Unanswered backlog work the same way for them as for CLA staff.
Click the My style tile in the right-pane CTA strip. The Hub reads your last 12 drafts, hands them to Claude with a coaching prompt, and returns:
- Tone / Length / Formality / Voice signature (one-liner)
- 200-word "How you come across" narrative — peer-to-peer, names actual patterns from your drafts
- 3-5 introspection prompts (observation + open-ended question)
- Five recalibration cards: how to be more concise / diplomatic / direct / warm / formal — calibrated to YOUR patterns, not generic
- 4-6 business-English rewrites: Your style: "Per my last email…" → Recommended: "As mentioned previously…" + a "why" line
Cached for 1 hour to avoid burning tokens. Refresh button forces re-run. Returns nothing if you have fewer than 3 drafts in history.
The yellow banner under the page header. Surfaces ONE feature per day from a curated rotation (My style / Compare / Schedule / Edit / Backlog / Pull / Add-in / Triage / Reply style / Translate). Picks today's tip from day-of-year so every partner sees the same tip on the same day. Dismiss with × → hidden until tomorrow's tip rotates in. Dismissal syncs across devices.
The pasted email text stays in your browser. Only the action result (the JSON / draft) is cached locally for the Recent strip. The Hub does not log full email bodies server-side — only the action type, a truncated subject, and the timestamp for adoption telemetry.
Romanian CNP / IBAN / card numbers / mobile numbers are detected before the AI sees them. You get a redaction prompt: redact, send as-is, or cancel. Triggers on every Process click. The same guard runs on Email A and Email B for Compare.
No. Calendar integration is read-only at the Microsoft Graph permission level (Calendars.Read, not Calendars.ReadWrite). The Hub displays your today / week agenda, never creates / edits / deletes events. User-added events on the Hub agenda page stay in localStorage + the Hub's own server — they do not sync back to Outlook. Outlook is source of truth; Hub is companion.
Almost always stale cache. Click force hard refresh in the version badge at the bottom-right of the page (or Cmd+Shift+R / Ctrl+F5). The badge advances to a higher v-number; service worker drops the stale cache; everything responds normally.
Click force hard refresh in the badge. The Hub's cache version is now derived from the commit timestamp (every commit produces a unique version), so genuinely-old caches advance immediately.
If you're CLA staff, your email should be on the access matrix automatically — ping Ionut. From the Outlook Add-in, the auth-error pane shows two recovery buttons: Open in Hub with this email (uses the web fallback) and Ping Ionut to add me (sends a one-line request, replies the same hour).
Anthropic's API can occasionally be slow under load. If a single action hangs >60s, refresh and retry. If it persists, the daily-audit cron will flag it and the BI team will look. Status page mirrors at app.cla.com.ro/audit/.