# Generate a Microsoft PowerPoint

**URL:** <https://community.palantir.com/t/generate-a-microsoft-powerpoint/6673>\
**Category:** Product Feedback\
**Tags:** aip-agents\
**Created:** [May 28, 2026, 7:08am UTC](https://community.palantir.com/t/generate-a-microsoft-powerpoint/6673 "2026-05-28T07:08:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shinnosuke](https://yyz1.discourse-cdn.com/palantir/user_avatar/community.palantir.com/shinnosuke/32/7356_2.png) [@Shinnosuke](https://community.palantir.com/u/Shinnosuke)\
**Post date:** [May 28, 2026, 7:08am UTC](https://community.palantir.com/t/generate-a-microsoft-powerpoint/6673/1 "2026-05-28T07:08:09Z")

</div>

Hello.

I would like to request a feature to generate Microsoft PowerPoint files within Palantir Foundry.

The background for this request is that our end-users (a major Japanese financial institution) are required to create Microsoft PowerPoint files as part of their daily operations. If Foundry could enable the generation of PPTX files, it would significantly improve operational efficiency.

---

<div class="post-metadata">

**Author:** ![NicolasDaveau](https://yyz1.discourse-cdn.com/palantir/user_avatar/community.palantir.com/nicolasdaveau/32/7173_2.png) [@NicolasDaveau](https://community.palantir.com/u/NicolasDaveau)\
**Post date:** [May 28, 2026, 7:41am UTC](https://community.palantir.com/t/generate-a-microsoft-powerpoint/6673/2 "2026-05-28T07:41:46Z")

</div>

Hi Shinosuke,

Quick thought on this one. Even though Foundry does not (yet) expose a first-party “create PPTX” primitive, it is worth remembering that a .pptx file is fundamentally a ZIP archive of XML parts following the Office Open XML spec (ECMA-376 / ISO/IEC 29500). That reframes the problem nicely: you do not actually need a dedicated PPTX builder, you only need to produce the underlying XML and wrap it in a zip. Once you look at it that way, the workflow fits cleanly inside primitives Foundry already gives you. I’ve personally never done that before, but I think this should work with some testing and iterations.

A few concrete approaches that work:

**1. Build the XML in a batch transformation**

In a Python transform you can write arbitrary bytes to the output filesystem, not just Parquet. You build the OOXML programmatically (xml.etree.ElementTree, lxml, or even string templates), and either write a raw .xml file into the output dataset or zip the OOXML parts together and write the resulting .pptx blob directly. The output file extension is free, so you can land a .xml, a .pptx, or both.

Useful references:

- Working with unstructured files in Python transforms: [https://www.palantir.com/docs/foundry/transforms-python/unstructured-files](https://www.palantir.com/docs/foundry/transforms-python/unstructured-files)

- Transforms FileSystem API: [https://www.palantir.com/docs/foundry/api-reference/transforms-python-library/api-filesystem](https://www.palantir.com/docs/foundry/api-reference/transforms-python-library/api-filesystem)

- A worked example for the XML case, in the community: [https://community.palantir.com/t/create-xml-files-from-a-dataset/2016](https://community.palantir.com/t/create-xml-files-from-a-dataset/2016)

If you want the output to live as a viewable media asset rather than a raw dataset file, write it to a Media Set output instead:

- Pipeline Builder media set output: [https://www.palantir.com/docs/foundry/pipeline-builder/outputs-add-media-set-output](https://www.palantir.com/docs/foundry/pipeline-builder/outputs-add-media-set-output)

- Python transforms with media sets: [https://www.palantir.com/docs/foundry/transforms-python/media-sets](https://www.palantir.com/docs/foundry/transforms-python/media-sets)

**2. Generate the file on demand from a Function on Objects**

If the deck has to be produced per object or per user action rather than on a schedule, a Function on Objects can build the XML/zip in memory and return a Media reference. From there you can surface it in Workshop, attach it to an Action, or hand it off to a notification.

- Functions on Objects, Media: [https://www.palantir.com/docs/foundry/functions/media](https://www.palantir.com/docs/foundry/functions/media)

**3. Let an LLM author the XML payload**

Because the contents of a slide part (slide1.xml, etc.) are just structured text, you can absolutely have an AIP/LLM step generate that XML blob given your data and a prompt. The LLM does the content authoring, your code keeps the OOXML scaffolding (Content Types, rels, theme, masters) and zips everything together. This composes well with approach 2: the function calls the LLM, assembles the zip, and returns the media reference.

**4. Getting the file out of Foundry**

For “export to an external system or send via notification”, you have a few options:

- Automate notification effect: today this supports attaching Notepad or Notepad-template PDFs, generated per recipient at send time. Good fit if a PDF rendering of the same content is acceptable as the delivered artifact. [https://www.palantir.com/docs/foundry/automate/effect-notification](https://www.palantir.com/docs/foundry/automate/effect-notification)

- Action-backed attachments / notifications: an Action can carry an attachment (200 MB limit), and your function/transform can write the generated .pptx as an attachment or media item that the Action then references. The notification side effect on the Action can ship the file. [https://www.palantir.com/docs/foundry/action-types/upload-attachments](https://www.palantir.com/docs/foundry/action-types/upload-attachments) and [https://www.palantir.com/docs/foundry/action-types/notifications](https://www.palantir.com/docs/foundry/action-types/notifications)

- For arbitrary file types, there is a useful community discussion here: [https://community.palantir.com/t/how-can-i-send-arbitrary-documents-as-attachments-with-emails-notifications-from-foundry/3733](https://community.palantir.com/t/how-can-i-send-arbitrary-documents-as-attachments-with-emails-notifications-from-foundry/3733)

If the destination is not email, the same artifact can be pushed out via an external sink, an HTTP webhook from a Function, or any Magritte egress, the .pptx is just bytes by that point.

**TL;DR**

Do not think “PPTX feature in Foundry”, think “produce OOXML, zip it, hand it to Foundry’s existing file/media/notification plumbing”. A batch transform or a function builds the XML programmatically, an LLM can author the variable parts of that XML, and Automate or an Action delivers the resulting file to wherever it needs to land.

Hope this helps,

Nicolas from Sibyl

---

<div class="post-metadata">

**Author:** ![Shinnosuke](https://yyz1.discourse-cdn.com/palantir/user_avatar/community.palantir.com/shinnosuke/32/7356_2.png) [@Shinnosuke](https://community.palantir.com/u/Shinnosuke)\
**Post date:** [June 2, 2026, 10:36am UTC](https://community.palantir.com/t/generate-a-microsoft-powerpoint/6673/3 "2026-06-02T10:36:21Z")

</div>

Hi NicolasDaveau,

Thank you for the information. While it seems challenging for an end-user to implement, I will certainly keep it in mind for future reference.

---

<div class="post-metadata">

**Author:** ![system](https://yyz1.discourse-cdn.com/palantir/user_avatar/community.palantir.com/system/32/3_2.png) [@system](https://community.palantir.com/u/system)\
**Post date:** [June 23, 2026, 10:37am UTC](https://community.palantir.com/t/generate-a-microsoft-powerpoint/6673/4 "2026-06-23T10:37:07Z")

</div>

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.
