microsoft 365 developer portals
44 TopicsFeature Request for Enhanced Outlook Add-in Surfaces
Feature Request for Enhanced Outlook Add-in Surfaces Request Title: Expandable/Pop-out Outlook Add-ins with Inline Compose/Reply Integration Products/Platforms: Microsoft Outlook Add-ins (Office.js) across Classic Outlook for Windows, New Outlook for Windows, Outlook for Mac, and Outlook on the web (OWA) Request Type: New extensibility capabilities / UI host surfaces for Outlook add-ins Priority: High (end-user productivity + adoption + enterprise usability) Background We use an Outlook add-in to integrate additional productivity tools into the email workflow to help users save time, reduce context switching, and improve execution quality. This is a core enablement pattern for enterprise users who spend significant time in Outlook. Today, our add-in runs primarily in the task pane, which has notable limitations in flexibility and available space. The current experience is increasingly cluttered and not user-friendly, especially for workflows that require richer UI, multiple steps, or contextual data. Additionally, the add-in is not seamlessly integrated into the new message compose and reply experience (i.e., the workflow is not inline with the compose/reply window), which limits usability for scenarios that must occur at the moment a user is authoring a message. Problem Statement Current task pane constraints lead to: Limited UI real estate (narrow layout, heavy scrolling, cramped forms, poor readability) No user-friendly expand/enlarge options to fit different workflows and screen sizes Reduced usability during compose/reply, where users need the tool inline with message authoring Lower adoption and productivity because the add-in experience feels disconnected and cumbersome In practice, users need more space and tighter integration at the exact point of work (compose/reply), without leaving Outlook or juggling multiple windows. Requested Features We request Microsoft to support the following add-in UI capabilities, ideally consistently across Classic Windows, New Outlook, and OWA: A) Expandable / Resizable Task Pane Allow users to resize/expand the add-in pane (wider layout; optional full-height behavior) Support a compact vs expanded mode with user preference persistence Outcome: Richer workflows become usable without redesigning into cramped layouts. B) Pop-out Add-in Experience Provide a supported pop-out window for the add-in (while maintaining context to the current item) Ensure pop-out works smoothly with enterprise policies and does not break the add-in lifecycle Outcome: Users can work with complex UI without sacrificing mail reading/authoring space. C) Inline Add-in Integration with Compose and Reply Enable add-in UI to appear inline within the compose/reply window (not just as a separate side pane) Support contextual actions/data entry during authoring (e.g., insert content, validate, attach artifacts, update records) Ensure consistent behavior for new compose and reply experiences Outcome: The tool is available at the moment users need it while writing responses, driving adoption and reducing errors. D) Add-in as a Mail Tab Provide a supported extension point for an add-in to appear as a tab in Mail, similar to “Focused/Other” Tab hosts a larger workspace for add-in workflows (e.g., triage/queue/workbench views) Outcome: A first-class workspace in Mail for workflows that don’t fit the task pane model. Key Enterprise Use Cases Multi-step workflows triggered from emails (triage, intake, approvals, routing) Rich forms and guided actions that are impractical in a narrow pane Compose/reply-time actions: insert approved templates/snippets, validate recipients/content, capture metadata, create/update tasks/records Dedicated mail workbench views via a tab for operational roles Acceptance Criteria Cross-client consistency: Classic Windows, New Outlook, and OWA supported with minimal divergence Next Steps for Microsoft Confirm roadmap/feasibility for: expandable task pane, add-in pop-out, inline compose/reply surface, and mail tab surface Provide recommended implementation model/APIs and opportunities for preview/early access for enterprise validation Screenshots for ReferenceFIFO.COST(array_qt_products_in;array_price_of_products_in;array_qt_products_out)
I've created a formula to get the FIFO cost of the last product that is going out of the inventory. It needs 3 arrays. The first array is the array that gets the quantity of the products going in the inventory, the second array is the array that that gets the cost of those products going in, and the third and last array is the quantity of the products going out. This formula is very useful for most industries. You are free to use it. =LAMBDA( InQty, UnitCost, OutQty, LET( PrevOutQty, TAKE(OutQty, ROWS(OutQty)-1), LastOutQty, INDEX(OutQty, SEQUENCE(1,1,ROWS(OutQty))), OutIndex, ROWS(OutQty), RemainingFromPrevious, LET( InMatrix, InQty, OutMatrix, PrevOutQty, ApplyFIFO, LAMBDA(InMatrix, OutMatrix, LET( n, ROWS(OutMatrix), RecursiveFIFO, LAMBDA(self, Remaining, i, IF( i > n, Remaining, self( self, LET( OutAmount, INDEX(OutMatrix, i), CurrentStock, Remaining, Consumed, VSTACK( OutAmount, TAKE( SCAN( OutAmount, CurrentStock, LAMBDA(acc, qty, IF(qty > acc, 0, acc - qty) ) ), ROWS(CurrentStock)-1 ) ), IF(CurrentStock > Consumed, CurrentStock - Consumed, 0) ), i + 1 ) ) ), RecursiveFIFO(RecursiveFIFO, InMatrix, 1) ) ), ApplyFIFO(InMatrix, OutMatrix) ), FirstRemaining, SCAN( LastOutQty, IF(OutIndex = 1, InQty, RemainingFromPrevious), LAMBDA(stock, qty, IF(qty >= stock, 0, stock - qty) ) ), SecondRemaining, VSTACK( LastOutQty, TAKE(FirstRemaining, ROWS(FirstRemaining)-1) ), FIFOQuantities, MAP( IF(OutIndex = 1, InQty, RemainingFromPrevious), SecondRemaining, LAMBDA(stock, qty, MIN(stock, qty)) ), FIFOUnitCost, SUMPRODUCT(FIFOQuantities, UnitCost) / LastOutQty, IF(ROWS(InQty) = 1, UnitCost, FIFOUnitCost) ) ) Have a nice day. Juan Miguel ArraztoaGerman Excel Support Pages – Surprised by Multiple Errors
Dear Microsoft Community, While studying the financial functions in Excel, I was surprised to notice that several German-language support pages contain errors — such as incorrect translations, English function names, non-working example formulas, wrong results, and some spelling mistakes. I enjoy working with this material and would be happy to assist in reviewing and correcting these pages on a paid, freelance basis. I realize this may not be the exact place for such an offer, so I would greatly appreciate it if someone could point me to the right contact person or department at Microsoft. Thank you very much for your help! TheoDeveloper Dashboard Still Showing Old Expired Sandbox After New Sandbox Provisioned
Hi team, I need help with an issue involving the Microsoft 365 Developer Program sandbox. I deleted my old Developer Program profile and rejoined using my Outlook account. I received a new welcome email confirming that a new instant sandbox was provisioned on 10th November 2025, but my Developer Dashboard still shows my old, which expired on 3 November 2025. It has now been 5 days, and the dashboard has not refreshed or linked to the new sandbox tenant. Additional context: My previous sandbox should not have expired, because I was actively using it and did not violate any program terms. The incorrect expiration may have caused this backend sync issue. Here is what I have tried so far: Signing in and out across multiple browsers Using Incognito / Private mode Clearing Microsoft cookies and cache Clicking “Join Now” again Verifying the new welcome email Attempting to sign in directly at admin.microsoft.com Waiting the recommended 24 to 48 hours Contacting Microsoft Support (case 2511101410000272) The issue appears to be that my Developer Dashboard is still linked to the old, expired tenant instead of the newly provisioned sandbox. This looks like a backend synchronization problem that may require a manual re-link by the Microsoft Developer Program team. I would appreciate it if the backend team could help re-link my Developer Program profile to the new sandbox tenant.67Views0likes0CommentsDeveloper Dashboard Still Showing Old Expired Sandbox After New Instant Sandbox Was Provisioned
Hi team, I need help with an issue involving the Microsoft 365 Developer Program sandbox. I deleted my old Developer Program profile and rejoined using my Outlook account (email address removed for privacy reasons). I received a new welcome email confirming that a new instant sandbox was provisioned on 10th November, but my Developer Dashboard still shows my old, expired tenant: email address removed for privacy reasons expired on November. It has now been 5 days, and the dashboard has not refreshed or linked to the new sandbox tenant. Additional context: My previous sandbox should not have expired, because I was actively using it and did not violate any program terms. The incorrect expiration may have caused this backend sync issue. The issue appears to be that my Developer Dashboard is still linked to the old, expired tenant instead of the newly provisioned sandbox. This looks like a backend synchronization problem that may require a manual re-link by the Microsoft Developer Program team. I would appreciate it if the backend team could help re-link my Developer Program profile to the new sandbox tenant. Thank you, Dee21Views0likes0CommentsExpose SHA-256 or SHA-1 for Mail Attachments in Microsoft Graph
Problem Email attachments in Graph don’t include a content hash. To identify or match attachments, developers have to download the entire file first. That wastes bandwidth and time and increases exposure. OneDrive/SharePoint already return hashes, but mail does not, so experiences are inconsistent. Request Add a server-provided content hash to every mail attachment. Prefer SHA-256. If that’s not feasible initially, expose SHA-1 as a minimum to align with existing Drive item hashes. Benefits Faster and cheaper: avoid downloading large files just to tell if you already have them. Deduplication: detect repeated attachments across threads and mailboxes. Security operations: correlate attachments with threat intel by hash and triage suspicious emails without fetching payloads. eDiscovery and compliance: confidently match the same document across mail and files. Consistency: a predictable, uniform approach across Mail and OneDrive/SharePoint.Issue: Word Online displays 'TA field codes' with embedded 'LineBreak' as GreyBox and new line
Scenario : We are experiencing an issue in Word Online where displaying "TA field codes" that contain embedded line breaks shows them as gray boxes and also introduces unwanted extra blank lines. Steps to reproduce: Open any word document Insert TA field codes that include a LineBreak. Copy the document link from OneDrive and open the same document in a browser (preferably Chrome) using that link. Observe that Word Online displays gray boxes in the document where TA field codes with LineBreak. Below are screenshots from Word Online and Word desktop for comparison: Please note that, "TA field code" in Line 1 contains no embedded line breaks, whereas the "TA field code" in Line 2 does. 1. Desktop Word: Below screenshot is for Desktop word after 'show paragraph marks' is on. 2. Word Online : Below Screenshot without paragraph symbol : a line break character inside a hidden tag is causing a grey box issue in word online Expected behavior: Word Online shouldn't display gray boxes or extra lines, even when the TA field code contains embedded line breaks.. Current behavior: When a TA field code includes an embedded line break, Word Online shows a new, extra line and displays gray boxes. Environment: Platform : PC Desktop Host: Word Office version number: Any Operating System: Windows Browser (if using Office on the web): Chrome and MSEdge Context This issue will be directly impacted to the customers who are all using Word Online. Please let me know any other information required .. I've attached a document that explains how to manually recreate this issue. => https://github.com/user-attachments/files/20576971/Ticket_TA.newline.docx Thank youOffice.js API — Open OneDrive Files in Current Word/PPT Instance
Currently, Office.js does not provide an API to directly open a OneDrive (or SharePoint Online) file in the current Word/PPT desktop instance. For add-ins that integrate with external systems, this creates a significant limitation. Users often need to: Access Word/PPT documents stored in OneDrive/SharePoint directly from an add-in. Ensure the file opens seamlessly in the same Word/PPT session, without forcing them to manually download or open a new instance. Why this is important Improves user workflow and productivity. Essential for add-ins that sync or integrate with cloud storage and external systems. Avoids user confusion from multiple Word windows or manual file handling. Requested capability An Office.js API such as: Office.context.document.openFileFromUrl(fileUrl, options); where fileUrl is a OneDrive/SharePoint URL and options could specify whether to open in the current instance or a new one. This would align Office.js capabilities more closely with real-world workflows and reduce friction for both developers and end-users.Feature Request: Add error/rejection support to Office.onReady() for network/dependency failures
Description Currently, when Office.js loads but one of its dependent resources (such as office_strings.js) fails to load due to network issues or blocking, the Office.onReady() promise never resolves or rejects. This leaves developers without a reliable way to detect missing dependencies. Instead of relying on timeouts or log messages, it would be very helpful if Office.onReady() provided an error callback or rejection in these scenarios. Why this matters: Helps developers handle production failures gracefully. Avoids arbitrary timeouts/workarounds to detect missing dependencies. Provides parity with modern async practices where promises resolve or reject deterministically. Enables better telemetry/analytics by explicitly knowing why initialization failed. Suggested Approach: If a required dependency fails to load, Office.onReady() should reject with an error describing the missing dependency. Alternatively, provide an event/callback (e.g., Office.onError) that developers can subscribe to. Example: Office.onReady() .then(info => { console.log("Office.js initialized:", info); }) .catch(err => { console.error("Office.js failed to initialize:", err); // custom fallback handling }); Impact: This would improve developer experience significantly and make add-ins more resilient in real-world network environments.