Case studyTender responsesIn production · 2026Automation

AOFR

The agent that turns a structured Excel file into a ready-to-send tender-response PowerPoint in under a second

Discuss a similar project

Réponse courte

AOFR (PPTX-AO Agent) is an agent developed by Digit-AI that automates the production of tender-response PowerPoints. Sales reps fill in a structured Excel file (services, pricing, schedule); AOFR opens the client template, injects the data, inserts the logo, generates a Gantt aligned to the real calendar, aggregates the pricing and delivers a final editable PPTX — with no human intervention, in about 0.4 seconds in deterministic local mode. The agent is available as a command line, a web interface and a Microsoft Teams bot, and offers a 100% deterministic mode (zero AI calls, zero recurring cost) complemented by two Claude modes for atypical cases.

Context

The challenges of tender responses

Every tender response tied up a sales rep for hours on PowerPoint composition, with no added value and a risk of errors

Responding to a tender meant manually copying an Excel file into slides, formatting it, drawing a Gantt schedule and checking each client's brand guidelines — several hours per file, with no added value and a high risk of error in multi-brand contexts. AOFR removes this composition step entirely.

!

Manual PPT composition

Copy-pasting from Excel into the slides, formatting, checking: several hours per file.

!

Multi-client consistency

Each client has its own logo, brand and wording: a high risk of error across multiple brands.

!

Gantt schedule to draw

Computing positions, displayed months, aligning phases to the real Excel dates: tedious and a source of inconsistencies.

!

Last-minute changes

A date moves, a service is added, and everything has to be redone by hand in the PPTX.

Functional scope

Reading a structured Excel file (AOF sheet + Gantt sheet), automatic insertion of the client logo on slide 1, aggregated pricing table (services + additional tasks + manual pricing), conditional Simple and Gantt schedules, and three distribution channels: CLI, web interface and Microsoft Teams bot.

Key constraints

Native PPTX output that respects the client brand (no PDF) · Multi-client via a single template, with no duplication · 100% deterministic mode for production (no AI, no recurring cost) · Entra ID security and Teams bot auth · Reproducible Docker deployment with full CI/CD.

Objectives

What AOFR solves

Three areas of impact for sales teams and management

Radical time savings

The sales rep goes from filling in the Excel file to delivering the PPTX, with no intermediate formatting step.

KPI: ~0.4 s per PPTXKPI: hours of composition eliminated

Absolute consistency

Client brand, logo, legal wording: injected systematically, never forgotten.

KPI: 0 brand omissionsKPI: 100% automatic

Natural adoption

Teams bot: the user drops their Excel file in the chat and gets the PPTX back. No tool change, no training.

KPI: 3 channels (Teams/web/CLI)KPI: 0 training
Features

What AOFR enables

Six major features delivered in production

📑

Excel → PPTX pipeline

YAML-mapping-driven reading, placeholder substitution, dynamic tables and final validation of the generated document.

🏷️

Single template, multi-client

One template per brand, with the client distinguished via automatic logo insertion on slide 1 — no file duplication.

📊

Aggregated pricing

Table fed by the selected services, additional tasks and manual pricing, with a TOTAL row computed on the fly.

🗓️

Calendar-aligned Gantt

Month pentagons sized proportionally to actual days; near and distant milestones never overlap.

🤖

Three modes to choose from

Local mode for deterministic production, Claude-execute and Claude-generate for atypical cases, with per-user switching.

💬

Microsoft Teams bot

1:1 conversation, Excel upload via the paperclip, Adaptive Card response with a direct PPTX download button.

Stack

Tech stack

Choices geared toward robustness, reproducibility and controlled operating cost

Backend

Python 3.11aiohttppython-pptxopenpyxllxmlpyyaml

Frontend

HTML + Vanilla JSHMAC cookiePlaywright (E2E)

Microsoft Teams bot

botbuilder-coreBot Framework AdapterAzure Bot Service

Artificial intelligence

Anthropic ClaudeAST validationLocal fallback mode

Infrastructure

DockerAzure Container Apps (West Europe)GHCREntra ID

CI/CD & secrets

GitHub ActionsDoppler145 automated tests

Distinctive pattern — Deterministic by default, AI optional: the production path is 100% deterministic (local mode, no AI calls), guaranteeing reproducible PPTX files with no recurring cost and no data leakage. Two Claude modes (execute and generate) cover atypical cases, with AST validation of generated scripts and a systematic fallback to local mode: AI augments the tool without ever becoming a point of fragility.

Architecture

Architecture diagrams

A single aiohttp application exposes both the web portal and the Teams bot endpoint, sharing the mode router and the generation pipeline

User

Sales rep

Fills in a structured Excel (services, pricing, schedule)

Channels (single aiohttp application)

Web interface

/, /login · HMAC cookie

Microsoft Teams bot

/api/messages · Adaptive Card

CLI

command-line pipeline

Routing

Mode Router

local · Claude-execute · Claude-generate

Core

PPTX pipeline

Deterministic generation of the final PowerPoint

Platform

Azure Container Apps

West Europe · single → multi-replica

Entra ID · GHCR · Doppler

Auth, image registry, secrets

Results

Measured impact and gains

Measured on the embedded test cases and on the first real-world uses

~0.4 s
Generation per PPTX
In deterministic local mode
11
Finalized slides
In standard output
145
Automated tests
Passing on every push
€0
AI cost in local mode
Deterministic production
StepBefore AOFRWith AOFRGain
Slide compositionSeveral manual hours per file~0.4 s automatedNear-instant
Client brand consistencyOccasional errors on logos & legal mentions100% automatic0 omissions
Updating an Excel dateFull manual reworkOne-click regenerationReal time
Distribution to sales teamsFiles shared manuallyTeams bot + web + CLI3 channels

Gains beyond the numbers

🛡️

Zero visible regression

A programmatic audit tool checks every generated PPTX against 12 reference cases: any deviation breaks the CI.

🧭

Natural adoption

Sales reps stay in Teams: no new tool to learn, no training required.

🔄

Fast iteration

Editing a single YAML mapping is enough to adapt a client, with no redeployment needed to adjust content.

📐

Templates preserved

The delivered PPTX stays editable like any template: no frozen images, no loss of formatting.

💼

Protected sales mode

Local mode calls no external AI: no data-leak risk, predictable operating cost.

🚀

Ready to scale

Multi-replica architecture on Azure Container Apps, Entra ID authentication and centralized secrets.

Let's start by talking it through

No aggressive sales pitch. No 12-step form. Just 30 minutes to understand your situation and see if we can help. First conversation free, no strings attached.