CLA · Email Intelligence — Q&A
Back to /command/

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.

No questions match that search. Try fewer words or a different term.
Get started
What is Email Intelligence? #

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.

What should I try first? #

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).

Which action when? #

Pick by the question you're asking yourself when you open the email:

Inputs — how the email gets in
Paste an email #

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.

Upload a document instead #

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 a thread from Outlook by sender #

🔍 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 — reply to everyone you owe #

📥 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.

Actions
⚡ Triage all #

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).

◈ Summarise #

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.

⤳ Triage & route #

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.

📚 Prior precedent — what did we say last time? #

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.

🔴 Regulatory deadline pressure #

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.

◎ Action items #

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.

⚑ Flag risks #

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.

⊞ Partner brief #

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.

✦ Draft reply #

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.

↻ Follow-up #

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.

⚖ Compare emails #

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.

⊕ Combine emails #

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:

  1. Click ⊕ Combine emails · the Find Unanswered Emails card opens
  2. Select a thread below to load it into the Email Thread panel on the left
  3. Use "Next" to navigate between conversations and select more threads from the same sender
  4. 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.

◐ Translate to EN #

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.

Reply style — tone × length × approach
Tone — Direct / Professional / Formal / Friendly / Diplomatic / Firm #

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.

Length — Brief / Standard / Detailed #

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.

Approach — Address / Acknowledge & defer / Buy time / Full context / Ask for clarification #

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.

After the draft
Edit the draft body before sending #

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.

Add CC or BCC before sending #

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.

📧 Open in Outlook to send #

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.

If the body is unusually long (~>1800 characters URL-encoded), the Hub auto-copies it to your clipboard and opens compose with the headers pre-filled — paste the body in. You get a one-line toast explaining the swap.
⏱ Schedule send for tomorrow morning #

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).

+ Suggested CC chips above the Subject row #

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@…).

⚠ Missing attachment detection #

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.

✨ Smart subject cleanup #

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.

📚 Decision Memory recall #

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.

📎 Attach files to your reply #

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.

🟢 Smart-route Send: Hub for internal, Outlook for external #

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.ro with 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.

✓ Sent via Hub — cross-device send log #

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.

→ Send action items to your practice's mgmt tool #

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.

Two-way bridge — Hub ↔ Outlook
Hub → Outlook (drafted in Hub, sending in Outlook) #

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.

Outlook → Hub ("send to app") #

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).

How do I install the Outlook Add-in? #

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).

Connect Outlook (for external / non-CLA users) #

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.

Self-reflection
🪞 My style — see how you write #

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.

Tip of the day #

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.

Privacy & trust
Zero retention — what does the Hub keep? #

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.

PII guard — what gets flagged? #

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.

Outlook calendar — does the Hub modify my calendar? #

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.

Troubleshooting
Tabs / buttons not responding (any tool) #

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.

If clicks still do nothing after a hard refresh, screenshot the browser Console (F12 → Console → reload) and forward to the BI team. Build-time syntax gate prevents this class of bug from reaching production again, but if anything slips through, the Console error is the diagnostic.
My version badge shows an old v-number #

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.

"Auth error" — my mailbox isn't on the access matrix #

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).

Action takes >30 seconds or hangs #

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/.