veilSense / Feature Deep Dive
PowerPoint Generator

Real PowerPoint decks.
Not slide soup.

Most AI slide tools throw text into a generic layout and call it a deck. veilSense fills your corporate .pptx template — the one with your brand, your master slides, your approved layouts — with AI-authored content that lands in real shapes, real tables, and real charts. The output is a .pptx your design team would sign off on.

veilsense.company.local / assistants / powerpoint-generator
Layers
① Title
② Agenda list
③ KPI table
④ Chart image
⑤ Footer logo
Q3 Market Review
①
②
⑤
Inspector
Shape
Title 1
Block kind
TEXT
Role
slide_title
The block system

Every shape becomes a typed content block.

Map each shape in your template once — the AI fills it every time you generate. No re-mapping, no drift.

TEXT

AI-authored copy

The LLM writes into the shape's exact text formatting — titles, body copy, callouts — matching your template's font, size, and color.

LIST

Bullet lists that keep their style

Bullet character, indent level, and paragraph style are preserved item-for-item, however many bullets the AI generates.

TABLE

Native PowerPoint tables

A real table shape, not a screenshot. Admins set max rows/columns; the LLM fills a 2D grid and unused trailing rows or columns are trimmed automatically.

IMAGE

Diagrams, charts, and pictures

Renders Mermaid/PlantUML diagrams from your chat history straight into a slide, or drops in a generated or uploaded image.

GROUP

Repeatable, nestable slots

One shape becomes N — repeating rows of bullets, cross-table matrix cells, or a paginated agenda with chapter dividers and lettered sub-items.

TABLE_OF_CONTENTS

Auto-generated agenda & ToC

Builds and paginates a table of contents from your actual slide structure — chapter titles, page numbers, and all.

Visual canvas editor

Click the actual slide. No dropdown hunting.

Mapping a template used to mean guessing shape names from a list. Now you click directly on the real slide thumbnail — a pin marks each mapped block, a docked inspector shows its settings, and a layer rail lists every shape on the slide.

  • ✓
    Clickable pins placed on the real rendered slide, not a wireframe
  • ✓
    Docked inspector for block kind, role, and generation instructions
  • ✓
    Layer rail for every shape, including ones not yet mapped
  • ✓
    Drag-and-drop block assignment straight onto the slide
①Title → TEXT · role: slide_title
②Body → LIST · role: agenda_items
③Table → TABLE · max 6×4
④Picture → IMAGE · diagram or upload
⑤Logo → ASSET · fixed brand mark
Diagrams from chat

Turn a Mermaid sketch into a real slide image.

If a diagram fence shows up anywhere in your thread history, the PowerPoint Generator renders it server-side and drops it straight into the deck as a crisp image — no manual export from a diagramming tool required.

  • ✓
    Mermaid and PlantUML fences rendered server-side via Kroki
  • ✓
    Pulled automatically from the generating chat thread's history
  • ✓
    Same renderer is shared across Word and Excel document exports
flowchart LR A[Brain] --> B[Assistant] B --> C[Deck]
↓ rendered server-side
🖼️ diagram.png embedded in slide 4
Image Pool

Images get reused, not re-uploaded.

Every image that flows through a deck — generated, uploaded, or diagrammed — is content-hash deduplicated in a shared pool. Regenerate a deck ten times and you don't end up with ten copies of the same logo bloating the file.

  • ✓
    Content-hash dedup on re-upload or repeated template use
  • ✓
    Shared across the workspace, not just one generation run
  • ✓
    Named asset slots for freely placed, auto-fit logos and photos
🖼️
📊
🖼️
🎨
🏷️
📊
📷
🖼️
AI role suggestion & content-relative positioning

The tedious 80% of template setup, automated.

A "Suggest roles" button reads your template's shape names and proposes a block mapping to start from. And because PowerPoint has no native reflow, a callout can be told to shift down based on how many bullet items actually rendered above it — so a 3-item list and an 8-item list both look intentional.

  • ✓
    One-click role suggestions judged from shape naming
  • ✓
    Content-relative Y-positioning for shapes below variable-length lists
  • ✓
    "Hide on last item" flag for trailing separators in repeated groups
Shape: "kpi_callout"
Suggested: role = callout_box
↓ positioned below list (5 items rendered)
📍 Y offset auto-computed, no overlap
Built on real templates

Battle-tested against the templates your design team actually made.

Real corporate .pptx files carry years of quirks — think-cell objects, orphaned outline bookmarks, embedded OLE data. The generator is hardened against them.

✓

Survives think-cell & OLE objects

Legacy embedded objects that used to corrupt the output file are stripped safely instead of breaking the deck.

✓

No orphaned slides

Templates with an Outline-view bookmark can defeat naive slide removal — handled by stripping the bookmark before load.

✓

No vanishing SVG icons

SVG-backed icon shapes render reliably instead of silently disappearing from the output.

✓

Clean pagination, every time

Paginated tables of contents and agendas don't duplicate slides on repeated generation.

How it works

From template to on-brand deck.

Set it up once. Generate as many decks as you need afterward.

1

Upload your real template

Your organization's actual .pptx — brand, master slides, and approved layouts, exactly as your design team built them.

2

Map blocks on the visual canvas

Click shapes on the real slide, assign block kinds, or start from AI-suggested roles. Export the block set as JSON to reuse it in another workspace.

3

Generate from a prompt or a thread

AI fills every block from your Brain and chat context. Review the result, tweak anything, and export a real .pptx.

Stop hand-building the same deck every quarter.

Map your template once. Let AI do the tedious part — every time, on-brand, in a real .pptx.