Add-in
45 TopicsReport all active users in tenant and their installed integrated apps
Our security team has requested that we block the install of any Copilot apps until our AI policy is in place. Before we do this, I'd like to know what apps from Microsoft 365 admin center > Settings > Integrated apps > Available apps are currently installed by our users. I don't see any way that the UI offers this capability, so I believe it will be PowerShell. I did already run the following script, but it returns only 2 apps, which are apps we have deployed to our users. It's possible our 2600 users haven't installed anything else, but not probable. Install-Module O365CentralizedAddInDeployment Import-Module -Name O365CentralizedAddInDeployment Connect-OrganizationAddInService Get-OrganizationAddIn If the above isn't possible, it would also be useful to find a script that would give me a list of users who have a given app (from 365 Integrated apps > Available apps) installed, such as CopilotForce or Microsoft Copilot Studio.107Views0likes2CommentsPowerPoint JS API: Can't Create Lines with Negative Slope Using addLine
We are encountering a technical issue with the PowerPoint JavaScript API when attempting to create lines with negative slope (lines that go upward from left to right). Despite various approaches, we can only create lines with a positive slope (going downward from left to right). Reproduction Steps: Using the ShapeCollection.addLine method to create lines Attempting to create a line that goes upward (with a negative slope) Regardless of the parameters passed, the lines always render with a positive slope Code Examples and Results Example 1: Attempt to create an upward sloping line const upLine = shapes.addLine(PowerPoint.ConnectorType.straight, { left: 250, top: 300, width: 100, height: -200 // Negative height should create upward slope }); Result: Line appears to go downward with a positive slope despite the negative height value Example 2: Attempt to create two connecting lines (a V shape) // First line - downward const leftLine = shapes.addLine(PowerPoint.ConnectorType.straight, { left: 150, top: 100, width: 100, height: 200 }); // Second line - intended to go upward const rightLine = shapes.addLine(PowerPoint.ConnectorType.straight, { left: 250, top: 300, width: 100, height: -200 }); Logged Coordinates: Left line: start(150,100), end(250,300) Right line: start(250,300), end(350,100) Result: While the coordinates look correct, the actual line rendering doesn't match these coordinates. Both lines appear to have positive slopes. Expected Behavior: We expect to be able to create lines with negative slopes (going upward from left to right) by specifying a negative height value, which should represent a decrease in the Y coordinate as X increases. Actual Behavior: The API seems to normalize or ignore the negative height value, resulting in lines that always have a positive slope regardless of the height parameter's sign. Technical Environment: PowerPoint Add-in Using PowerPoint JavaScript API Impact: This limitation prevents us from creating basic geometric shapes like V, triangles, or other shapes that require lines with different slopes in our add-in. Additional Information: We've ruled out simple parameter errors by logging the actual coordinates of the lines. The coordinates appear correct in the logs but don't match what's rendered on screen. Thank you for your assistance in resolving this issue. Let me know if you'd like to include your version/platform info or tweak any part before posting!13Views0likes0CommentsSendto Onenote
I have tried and tried.... Im using O365 Business. I have tried both the PC, Mac and web version without any luck. Im not able to find the sendto Onenote option what so ever. Its not to be found anywhere. I even tried an IT consultant, but couldnt help either. Anyone with any suggestions/solutions?63Views0likes2CommentsOffice.js preview features release
Office.js for PowerPoint has had a couple of preview features (getImageAsBase64, getSlideAsBase64) in preview now for nearly a year. I've done my best to search for any updates from the office.js on release timeline for these features with no luck. These two API calls are super convenient and enable features in the add-ins for PowerPoint which is near impossible to create using alternative solutions. Anyone out there with any knowledge on when we can expect these beta/preview features to be production ready?31Views2likes0CommentsWhich APIs are the best for my outlook software
Hey community, I want to build a software that would automatically process incoming emails (using an LLM) from an outlook inbox and perform tasks, like forwarding the email to another inbox, or enriching the email body text with data from a CRM. The software should be easy to integrate into new organisations, so I was looking at building an outlook extensions.But i could not find any triggers that would work on any incoming email. I've looked at the Microsoft documentation for autolaunch add-ins: https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/autolaunch But I have seen that I could create a email subscription with the microsoft REST API https://learn.microsoft.com/en-us/graph/api/subscription-post-subscriptions?view=graph-rest-1.0&tabs=http#request I also discovered this blog post that revolved around a similar problem https://techcommunity.microsoft.com/discussions/microsoft-365/trigger-api-from-received-email/3906340 The suggested solution includes using microsoft power automate, but I would like my solution to work without any additional subscriptions. So my question is, what are the best API's to develop my software. It should be easy to install it on every machine of employees of a client company (like installing the outlook add-on) and analyse the content of the email automatically to then perform some actions, like adding text to the body of an email. Thanks for any advice in advance :)137Views0likes3CommentsExcel - Unable to access Office Add-ins
Morning all, I'm having an issue for months regarding accessing Office Add-in portal within excel as I'm getting "Cannot connect to the catalog" error. I've done all of the test that I can think of including testing on a separate PC. Logging with my domain account, I can access and install an Add-ins within excel but when the user is trying the same on the exact same PC (using her Domain account, of course), we're getting the same error. No problems with the network, Office has already re-install on her laptop and for the laptop that we use as a test, it is a newly build machine. Thanks and regards, Mark1.2KViews0likes1CommentSolution for a document workflow with versioning, status, owner and resubmission date
Hello Community We are currently looking for a solution to capture our internal knowledge in a kind of knowledge base. We already evaluted several tool for things like that, but all seem too sophisticated for our basic needs. So I start this discussion here at the top node, please feel free to move it, if there is a place where it fits better. We are looking for a system, that can handle the standard office 365 document file types word, excel, powerpoint, Visio and pdf. We would like to implement following functions, which we believe should not be difficult to implement, but currently we lack the knowledge of how to do. Automatic, unique number generator for each new knowledge document several document templates to ensure uniform and easy to navigate/read document structure interlink documents if they reference each other in content status like "in work", "revised", "released", incl. versioning workflow Assign a user how is in charge in careing for the content of the document in terms of actuality, correctness, etc. date reminder for periodically review the document after releasing (e.g. yearly) allow search in document title and content I think, a lot of the functions is already implemented in the standard functionality of sharepoint. But maybe there are easy add-on tools with which we can implement those functions "as a prototype" without having much knowledge about deep-dive .net coding. Looking forward to any interesting hints and answers52Views0likes1CommentMy first Add-In
Hello everyone, I’m working on developing my first Add-In for Outlook 365. In theory, it’s quite simple—it’s a drop-down menu with two options. Each option opens a new email and loads a different template, depending on the selection. So far, the menu is functioning smoothly. Selecting option A displays the corresponding template, and the same goes for option B. However, I’m facing a problem: I can’t get the user’s signature to load automatically as expected, even though the signature is properly configured and set as the default for new emails. I’ve attached part of my manifest.xml and command.ts files for you to review. If you could provide some guidance on how to resolve this issue, I’d greatly appreciate it. Thank you so much for your support! manifest.xml <Requirements> <Sets> <Set Name="Mailbox" MinVersion="1.5"/> </Sets> </Requirements> <FormSettings> <Form xsi:type="ItemRead"> <DesktopSettings> <SourceLocation DefaultValue="https://localhost:3000/taskpane.html"/> <RequestedHeight>250</RequestedHeight> </DesktopSettings> </Form> </FormSettings> <Permissions>ReadWriteItem</Permissions> <Rule xsi:type="RuleCollection" Mode="Or"> <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/> <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit"/> </Rule> <DisableEntityHighlighting>false</DisableEntityHighlighting> <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0"> <Requirements> <bt:Sets DefaultMinVersion="1.5"> <bt:Set Name="Mailbox"/> </bt:Sets> </Requirements> <Hosts> <Host xsi:type="MailHost"> <DesktopFormFactor> <FunctionFile resid="Commands.Url"/> <ExtensionPoint xsi:type="MessageReadCommandSurface"> <OfficeTab id="TabDefault"> <Group id="msgReadGroup"> <Label resid="GroupLabel"/> <!-- Menú desplegable para las opciones --> <Control xsi:type="Menu" id="DropdownMenu"> <Label resid="DropdownMenu.Label"/> <Supertip> <Title resid="DropdownMenu.Label"/> <Description resid="DropdownMenu.Tooltip"/> </Supertip> <Icon> <bt:Image size="16" resid="MenuIcon.16x16"/> <bt:Image size="32" resid="MenuIcon.32x32"/> <bt:Image size="80" resid="MenuIcon.80x80"/> </Icon> <Items> <Item id="InternalAction"> <Label resid="InternalAction.Label"/> <Supertip> <Title resid="InternalAction.Label"/> <Description resid="InternalAction.Tooltip"/> </Supertip> <!-- Imagen para la opción Internal --> <Icon> <bt:Image size="16" resid="InternalIcon.16x16"/> <bt:Image size="32" resid="InternalIcon.32x32"/> <bt:Image size="80" resid="InternalIcon.80x80"/> </Icon> <Action xsi:type="ExecuteFunction"> <FunctionName>handleInternalAction</FunctionName> </Action> </Item> <Item id="ExternalAction"> <Label resid="ExternalAction.Label"/> <Supertip> <Title resid="ExternalAction.Label"/> <Description resid="ExternalAction.Tooltip"/> </Supertip> <!-- Imagen para la opción External --> <Icon> <bt:Image size="16" resid="ExternalIcon.16x16"/> <bt:Image size="32" resid="ExternalIcon.32x32"/> <bt:Image size="80" resid="ExternalIcon.80x80"/> </Icon> <Action xsi:type="ExecuteFunction"> <FunctionName>handleExternalAction</FunctionName> </Action> </Item> </Items> </Control> </Group> </OfficeTab> </ExtensionPoint> </DesktopFormFactor> </Host> </Hosts> <Resources> <bt:Images> <!-- Iconos del menú --> <bt:Image id="MenuIcon.16x16" DefaultValue="https://localhost:3000/assets/menu-icon-16.png"/> <bt:Image id="MenuIcon.32x32" DefaultValue="https://localhost:3000/assets/menu-icon-32.png"/> <bt:Image id="MenuIcon.80x80" DefaultValue="https://localhost:3000/assets/menu-icon-80.png"/> <!-- Iconos para la opción Internal --> <bt:Image id="InternalIcon.16x16" DefaultValue="https://localhost:3000/assets/int-16.png"/> <bt:Image id="InternalIcon.32x32" DefaultValue="https://localhost:3000/assets/int-32.png"/> <bt:Image id="InternalIcon.80x80" DefaultValue="https://localhost:3000/assets/int-80.png"/> <!-- Iconos para la opción External --> <bt:Image id="ExternalIcon.16x16" DefaultValue="https://localhost:3000/assets/ext-16.png"/> <bt:Image id="ExternalIcon.32x32" DefaultValue="https://localhost:3000/assets/ext-32.png"/> <bt:Image id="ExternalIcon.80x80" DefaultValue="https://localhost:3000/assets/ext-80.png"/> </bt:Images> <bt:Urls> <bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/> <bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/> <bt:Url id="CommandsJs.Url" DefaultValue="https://localhost:3000/commands/commands.js"/> </bt:Urls> <bt:ShortStrings> <!-- Nombre del grupo --> <bt:String id="GroupLabel" DefaultValue="New Client/Matter"/> <!-- Etiqueta para el menú desplegable --> <bt:String id="DropdownMenu.Label" DefaultValue="Choose Action"/> <!-- Etiqueta para la opción Internal --> <bt:String id="InternalAction.Label" DefaultValue="Internal"/> <!-- Etiqueta para la opción External --> <bt:String id="ExternalAction.Label" DefaultValue="External"/> </bt:ShortStrings> <bt:LongStrings> <!-- Tooltip para el menú --> <bt:String id="DropdownMenu.Tooltip" DefaultValue="Select an action to perform."/> <!-- Tooltip para la opción Internal --> <bt:String id="InternalAction.Tooltip" DefaultValue="Opens an internal email template."/> <!-- Tooltip para la opción External --> <bt:String id="ExternalAction.Tooltip" DefaultValue="Opens an external email template."/> </bt:LongStrings> </Resources> </VersionOverrides> </OfficeApp> command.ts /* global Office */ Office.onReady(function (info) { if (info.host === Office.HostType.Outlook) { Office.actions.associate("handleInternalAction", handleInternalAction); Office.actions.associate("handleExternalAction", handleExternalAction); } }); /** * Handles the "Internal" action. * param event The Office Add-in event. */ function handleInternalAction(event) { console.log("Handling internal action..."); openEmailTemplate("internal"); event.completed(); } /** * Handles the "External" action. * param event The Office Add-in event. */ function handleExternalAction(event) { console.log("Handling external action..."); openEmailTemplate("external"); event.completed(); } /** * Opens an email template with the user's signature. * param templateType The type of template ("internal" or "external"). */ function openEmailTemplate(templateType) { var templateBody = templateType === "internal" ? "This is the internal email template." : "This is the external email template."; var subject = templateType === "internal" ? "Internal Client/Matter" : "External Client/Matter"; console.log("Opening email template..."); // Open a new email draft Office.context.mailbox.displayNewMessageForm({ subject: subject, htmlBody: templateBody, }); // Insert the user's signature after the draft is created Office.context.mailbox.item.body.getAsync(Office.CoercionType.Html, function (result) { console.log("Attempting to get user's signature..."); if (result.status === Office.AsyncResultStatus.Succeeded) { var userSignature = result.value || ""; console.log("User's signature retrieved: ", userSignature); // Combine the template body with the user's signature var combinedBody = templateBody + "<br/><br/>" + userSignature; console.log("Updating email body with template and signature..."); // Update the email body with the template and the user's signature Office.context.mailbox.item.body.setAsync(combinedBody, { coercionType: Office.CoercionType.Html, asyncContext: { value: "setBody" }, // Optional: track async operation }); } else { console.error("Failed to get user's signature:", result.error); } }); } //# sourceMappingURL=commands.js.map55Views0likes0CommentsOffics 365 Word for Web Export to PowerPoint
Until recently, Microsoft Office 365 Word offered an "Export to PowerPoint" feature that worked flawlessly. This functionality was exclusive to the Office 365 suite and required the input Word document to be formatted in Outline layout. The utility utilized PowerPoint Designer to add themes and graphics to the presentation automatically. However, this feature seems to have disappeared in recent weeks. Now, the only available export options are exporting to PDF, XPS, or occasionally Kindle. What happened to the "Export to PowerPoint" feature? Could it be an option that needs to be enabled or an add-on that requires installation?103Views0likes2CommentsIssue in PowerPoint / Power BI plugin - Embed Power Bi report can't show preloaded objects
Hello everyone, i have integrated various Power BI graphics that show live data into a PowerPoint report using the URL. The graphics with the live data were automatically reloaded, after the respective slide was clicked on. If the slides were not clicked and the entire report was exported as a PDF instead, the graphics that were loaded the last time were displayed. You can also see it in the preview on slide 3: the objects shown there were loaded the last time. For some reason, for the last two weeks, when the graphics have been reloaded and the PowerPoint report has been saved and reopened, the preview no longer shows the last loaded graphics, but blue hexagons. The blue hexagons only disappear when I click on the slide and the graphics have been automatically reloaded. If I don't do this step, i.e. click through each individual slide but click on PDF export straight away, the PDF export shows the blue hexagons again. The problem is, however, that due to time constraints, I can't always click on each individual slide, but only on a few slides, and the rest of the slides including the graphics they contain should remain unchanged. How can I ensure that the last loaded graphics are restored and that the blue hexagons do not appear? Thanks for any help!458Views0likes3Comments