Skip to content
synthreo.ai

InboxLens (Office 365 Inbox Summarizer)

InboxLens agent user guide - automatically summarize and prioritize your Office 365 inbox using role-aware scoring, thread grouping, and configurable VIP rules.

InboxLens helps users quickly understand what matters in their Microsoft 365 Outlook inbox.

Instead of scrolling through individual emails, the agent:

  • Fetches and cleans the 50 most recent messages from Outlook
  • Groups them into threads, picks the latest in each
  • Applies role-aware scoring (To / Cc / Bcc / mentions)
  • Generates a color-coded HTML summary with suggested next actions

Goal: Reduce inbox noise and highlight the threads that genuinely need attention.

Target Audience: Anyone who manages a busy inbox (account managers, leadership, service managers, finance/billing, etc.) and needs a quick view of what to handle first.


Before deploying InboxLens, verify the following:

  • The user account has a valid Microsoft 365 Outlook mailbox.
  • The Office 365 Fetch node is configured with a valid Microsoft Graph API connection and the appropriate OAuth permissions (at minimum Mail.Read).
  • The user_info.ms_user_name value is set to the user’s primary email address. This is required for accurate role-aware scoring.
  • VIP addresses and excluded senders are configured in the O365 Clean Response v3 node before the first run.

The InboxLens agent provides the following key functionalities:

  • Retrieves up to 50 emails from the user’s Office 365 mailbox
  • Sorted newest first
  • Normalizes fields such as sender, sender_company, subject, text content, flags, importance, and attachments

Configured in the O365 Clean Response v3 node:

  • VIP Email Addresses

    • Specific addresses (for example ceo@client.com, billing@vendor.com)
    • Messages from these senders receive higher attention scores
  • VIP Domains

    • Entire email domains (for example @keyclient.com)
    • Useful for all users at a key customer or vendor
  • Excluded Email Addresses

    • Messages from these senders are ignored and not shown in the summary

InboxLens uses the user identity from user_info:

{
"user_info": {
"ms_user_name": "<user email address>"
}
}

ms_user_name is treated as the canonical user email.

For each message, InboxLens checks whether this email appears in the To, Cc, or Bcc fields, or is mentioned in the subject/body, and adjusts scoring accordingly:

  • In To - treated as directly actionable
  • Only in Cc - usually lower priority, unless the user is clearly involved
  • In Cc but mentioned / requested - upgraded closer to To priority
  • In Bcc - treated as monitoring; only escalated if explicit action is expected
  • Not in To/Cc/Bcc but mentioned - still treated as involving the user (common for forwards, shared mailboxes, aliases, and distribution lists)

This prevents pure FYI Cc traffic from outranking emails where the user is responsible.

InboxLens uses an attention_config object for all scoring. No numeric weights are hard-coded in the prompt.

Key fields include:

  • attention_sent_to_user - score when the user is in To
  • attention_vip_known_sender - score when the sender is VIP (email or domain)
  • attention_contains_question - score when the message contains a question or explicit request
  • attention_mentions_date - score when the message references a date or deadline
  • attention_has_attachments - score if attachments are present
  • attention_high_importance - score for Outlook “High importance”
  • attention_flagged - score when the email is flagged
  • attention_already_read_penalty - penalty applied if the message is already read
  • attention_no_reply_penalty - penalty for no-reply / promotional / bulk messages
  • attention_critical_finance_service - score when finance or service-risk terms appear (for example “past due”, “final notice”, “service interruption”)
  • attention_min / attention_max - clamp bounds for final scores
  • attention_vip_threshold - threads at or above this score are treated as top-priority
  • attention_stack_email_and_domain - controls whether VIP email + domain scores can stack

InboxLens groups related emails into threads:

  • Uses internet_message_id and in_reply_to_header when available
  • Falls back to normalized subject matching (removing “Re:”, “Fwd:”, punctuation, and case differences)

For each thread, the agent:

  • Selects the latest message for scoring and display
  • Includes the thread if any message is unread, or the latest message is VIP, flagged, high importance, contains a question, or indicates financial/service urgency

Threads that are fully read, unflagged, low-priority FYI, and not risky are excluded.

Each included thread is assigned to one category:

  • Needs Reply - user is expected to respond
  • Waiting on Others - someone else owes the next step
  • Calendar - meeting invites, scheduling, reminders
  • Finance - invoices, payment reminders, renewals, billing notices
  • Security - alerts, login warnings, suspicious activity
  • Low Priority - newsletters, generic updates, low-risk notifications

Categories drive both the label and background color used in the HTML summary.

The LLM generates inline-styled HTML designed to work well in Outlook:

  • Header

    • “Inbox Summary” title
    • Short paragraph explaining the focus on unread and important read threads
  • Summary Block

    • Total unread
    • Number of included threads
    • Highest attention score
    • Average attention score
    • Category counts on a second line
  • Thread Cards (one per included thread)

    • Category icon + subject as the card title
    • From: [Sender] from [Company] - Received: [Formatted Date] on a single line
    • One-sentence summary (max approximately 25 words)
    • Category label + attention score
    • Suggested action (for example “Reply to confirm”, “Review invoice”, “Acknowledge and file”)
    • “Open in Outlook Web” link when linkToMailWeb is available
  • Footer

    • Small note such as “Prepared by InboxLens - automated summary of your Office 365 inbox”

Date formatting:

  • Today at HH:MM
  • Yesterday at HH:MM
  • MMM D at HH:MM (for example Dec 1 at 18:55)

All times use 24-hour format unless the source implies AM/PM.


Step 1: Configure the Office 365 Fetch Node

Section titled “Step 1: Configure the Office 365 Fetch Node”

Set up a Microsoft Graph API connection. The fetch node requires an OAuth connection with at minimum Mail.Read scope. The node retrieves up to 50 messages sorted newest first.

Step 2: Configure the O365 Clean Response v3 Node

Section titled “Step 2: Configure the O365 Clean Response v3 Node”

Open the node and populate the following lists:

  • VIP Email Addresses - enter specific sender addresses that should receive elevated attention scores
  • VIP Domains - enter domain names (without the @) for entire organizations that should receive elevated scores
  • Excluded Email Addresses - enter addresses that should be completely ignored in the summary

Review the attention_config values and adjust the numeric weights to match your team’s priorities. The defaults are suitable for most use cases, but consider:

  • Increasing attention_critical_finance_service for finance-focused roles
  • Lowering attention_already_read_penalty if important read emails are being excluded
  • Setting attention_vip_threshold to control what qualifies as top-priority

Ensure user_info.ms_user_name is set to the user’s primary Microsoft 365 email address. This value is used for all To/Cc/Bcc role checks and mention detection.

Connect a delivery node to send the HTML summary via email or Teams message. The HTML output is inline-styled for compatibility with Outlook and most email clients.


  • Run InboxLens each morning against an executive’s mailbox
  • Highlight:
    • Important finance and contract threads
    • Escalations from key clients or vendors
    • Direct requests from internal leadership
  • Deliver the HTML summary via email or Teams so they see a prioritized list instead of raw inbox

Example 2: Account Manager Client-Facing Triage

Section titled “Example 2: Account Manager Client-Facing Triage”
  • Mark key client domains as VIP
  • Use the summary to:
    • Identify threads where the account manager owes a reply
    • Catch upcoming renewals or invoice questions
    • Call out scheduling emails for QBRs and check-ins
  • Use the “Suggested action” text as a lightweight task list for the day
  • Configure VIPs for:
    • Vendor billing systems
    • Internal finance distribution lists
    • AR/AP addresses
  • Increase attention_critical_finance_service so overdue invoices, service-interruption warnings, and failed payment notices rise to the top of the summary

At a high level, the InboxLens flow is:

  1. Office 365 Fetch Node

    • Calls Microsoft Graph / Outlook API
    • Retrieves the most recent messages (up to 50, newest first)
  2. O365 Clean Response v3 Node

    • Normalizes message structure (fields like from, to, cc, bcc, subject, latest_text, has_attachments, importance, flag, is_read)
    • Computes sender_company from the sender’s email domain
    • Applies VIP and excluded sender logic
    • Outputs a cleaned JSON payload (input {{a}} for the LLM node)
  3. Attention Config Node

    • Exposes configuration UI (for the attention_config values)
    • Produces the attention_config object (input {{b.attention_config}} for the LLM node)
  4. InboxLens LLM Node

    • Uses the system prompt with:
      • Cleaned messages from {{a}}
      • Scoring settings from {{b.attention_config}}
      • User identity from user_info.ms_user_name
    • Groups, scores, categorizes, sorts, and renders the final HTML
  5. Delivery Node (Optional)

    • Sends the HTML summary via email, Teams, or any supported channel

All numeric scoring behavior is controlled via attention_config, so tuning does not require prompt changes.


  • InboxLens only works with the set of messages it receives (default: last 50). It does not query older history unless the upstream fetch node is changed.
  • VIP logic is applied during cleaning. When both a VIP email and domain match, the effect is controlled by attention_stack_email_and_domain.
  • Role handling is based exclusively on user_info.ms_user_name, so this value must match the user’s primary email address.
  • Cc-only FYI messages are intentionally deprioritized unless the content clearly involves the user or carries risk (especially finance/security).

Issue: Some emails you expect to see are missing.

Check:

  • Are they older than the last 50 messages?
  • Is the sender listed as an excluded address?
  • Is the thread fully read, unflagged, and low-priority with no questions or risk?

Issue: Attention scores feel too high or too low.

Actions:

  • Adjust key values in attention_config:
    • Lower or raise attention_contains_question, attention_high_importance, attention_vip_known_sender, etc.
  • Increase attention_already_read_penalty if read items still dominate the summary.
  • Tune attention_vip_threshold to change what is treated as “top priority”.

Issue: Cc emails are ranking too high.

Actions:

  • Confirm the role logic in the system prompt has not been modified.
  • Check that scores for VIP and questions are not overpowering the To vs Cc distinction.
  • Review example messages to confirm they truly are “FYI” and not mentioning the user directly.

Issue: Finance or service-risk emails are not standing out.

Actions:

  • Increase attention_critical_finance_service.
  • Verify that the messages include trigger phrases (for example “past due”, “overdue”, “service interruption”, “final notice”).
  • Consider marking key billing senders/domains as VIP.

Issue: The HTML summary does not render correctly in the email client.

Actions:

  • Confirm the delivery node is sending the output as HTML, not plain text.
  • The summary uses inline styles and is tested for Outlook compatibility. Non-Outlook clients may render minor visual differences.

Q: Why does InboxLens only look at the latest 50 emails?

A: This provides a good balance between relevance and performance. In practice, the most recent 50 messages are enough to capture current priorities without overloading the model. If more history is needed, the upstream fetch node can be adjusted.


Q: How does VIP email vs VIP domain work?

  • VIP email - single address, such as ceo@client.com
  • VIP domain - all addresses at @client.com

If both match, the stacking behavior depends on attention_stack_email_and_domain.


Q: Are read emails completely ignored?

A: No. Read emails are still included if they are important (VIP, flagged, high importance, questions, finance/service risk). They simply receive a penalty via attention_already_read_penalty so that brand-new items usually rank higher.


Q: How does InboxLens know who the user is?

A: It uses user_info.ms_user_name as the definitive user email. To/Cc/Bcc checks and direct-mention detection all depend on this value.


Q: Can the HTML layout be customized?

A: Yes, to a degree. Text, labels, and minor layout details are controlled by the system prompt. Larger structural changes (new sections, different card layout) require updating the prompt and verifying that downstream consumers can handle the new format.


Q: Can InboxLens be run automatically on a schedule?

A: Yes. The agent can be connected to a scheduler trigger to run at a fixed time each day, for example every morning before the start of the workday. The delivery node then sends the HTML summary to the configured recipient automatically.