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