The Problem Is Not Missing Contracts. It Is Missing Context.Problém nejsou chybějící smlouvy. Je to chybějící kontext.
Most procurement teams have all their contracts somewhere. SharePoint, a shared drive, maybe a dedicated folder someone set up three years ago and hasn't been touched since. The contracts are there. The problem is that nobody is reading them systematically — and the information buried in them (renewal windows, auto-renewal clauses, price escalation triggers, liability caps) only matters on specific dates, most of which nobody has written down anywhere. Většina nákupních týmů má všechny smlouvy někde uložené. SharePoint, sdílená složka, možná dedikovaný adresář, který někdo nastavil před třemi lety a od té doby se na něj nikdo nepodíval. Smlouvy tam jsou. Problém je, že je nikdo systematicky nečte — a informace v nich ukryté (okna pro obnovení, klauzule o automatickém prodloužení, spouštěče úpravy cen, limity odpovědnosti) jsou důležité jen v konkrétních termínech, které nikdo nikde nezaznamenal.
The pattern is familiar: a supplier invoice arrives in March with a 4% price increase. Someone pulls up the contract and finds a CPI escalation clause that technically allows it. The clause was in the original document, signed two years ago. Nobody flagged it at the time because reading every contract closely on the day it lands is not how teams actually work. The contract was filed and forgotten. Vzorec je známý: v březnu přijde faktura od dodavatele se 4% zdražením. Někdo vytáhne smlouvu a najde klauzuli o CPI eskalaci, která to technicky umožňuje. Klauzule byla v původním dokumentu, podepsaném před dvěma lety. Tehdy ji nikdo neupozornil, protože pečlivé čtení každé smlouvy v den, kdy přijde, prostě není způsob, jakým týmy fungují. Smlouva byla uložena a zapomenuta.
This flow does not replace contract management software. It does not build a full contract register or send you reminders 90 days before expiry based on a curated database. What it does is much simpler: every time a new contract lands in your SharePoint folder, it reads the file, extracts the key dates and commercial clauses, and posts a clean summary to your Teams channel within two minutes. No chasing. No manual reading. No missed context. Tento flow nenahrazuje software pro správu smluv. Nebuduje plný registr smluv ani vám neposílá připomínky 90 dní před vypršením na základě spravované databáze. Dělá mnohem jednodušší věc: pokaždé, když nová smlouva přistane ve vaší SharePoint složce, přečte soubor, vytáhne klíčová data a obchodní klauzule a zveřejní přehledné shrnutí do vašeho kanálu Teams do dvou minut. Žádné honění. Žádné ruční čtení. Žádný ztracený kontext.
What You Need Before You StartCo potřebujete před začátkem
This is genuinely a short build. Before you open Power Automate, sort out two things: Toto je skutečně krátká stavba. Než otevřete Power Automate, vyřešte dvě věci:
- A dedicated SharePoint folder for incoming contracts. One folder, one purpose. Every new contract that needs to be reviewed goes here. The flow watches this folder and triggers on every new file. Do not mix this with your general documents library.Dedikovaná SharePoint složka pro příchozí smlouvy. Jedna složka, jeden účel. Každá nová smlouva, která potřebuje být zkontrolována, jde sem. Flow sleduje tuto složku a spustí se pro každý nový soubor. Nemíchejte ji s obecnou knihovnou dokumentů.
- A Teams channel where the summary should land. This can be an existing procurement channel or a dedicated one. The key is that the right people see it — whoever is responsible for acting on contract information should be in this channel.Kanál Teams, kam má shrnutí přistát. Může to být existující nákupní kanál nebo dedikovaný. Klíčové je, aby ho viděli správní lidé — kdo je zodpovědný za jednání na základě informací ze smluv, měl by být v tomto kanálu.
The 5-Step Flow5krokový flow
Step 1 — Trigger: new file in the SharePoint contracts folderKrok 1 — Spouštěč: nový soubor ve SharePoint složce se smlouvami
In Power Automate, create a new automated cloud flow. Set the trigger to "When a file is created (properties only)" from the SharePoint connector. Point it at the site and folder you prepared. This trigger fires every time a new document is uploaded — Word, PDF, or any other format your contracts arrive in. V Power Automate vytvořte nový automatizovaný cloudový flow. Nastavte spouštěč na "When a file is created (properties only)" z konektoru SharePoint. Nasměrujte ho na web a složku, kterou jste připravili. Tento spouštěč se spustí pokaždé, když je nahrán nový dokument — Word, PDF nebo jakýkoli jiný formát, ve kterém vaše smlouvy přicházejí.
Step 2 — Get file contentKrok 2 — Získání obsahu souboru
Add the "Get file content" action from the SharePoint connector. Pass in the file identifier from the trigger output. This retrieves the full binary content of the document — no separate text conversion step needed. AI Builder accepts the file directly in this format, which keeps the flow clean and avoids encoding issues you can run into if you try to convert to text first. Přidejte akci "Get file content" z konektoru SharePoint. Předejte identifikátor souboru z výstupu spouštěče. Tím se načte celý binární obsah dokumentu — není potřeba žádný samostatný krok převodu na text. AI Builder přijímá soubor přímo v tomto formátu, což udržuje flow čistý a zabraňuje problémům s kódováním, na které narazíte, pokud se pokusíte nejdřív převést na text.
Step 3 — Set today's date as a variableKrok 3 — Nastavení dnešního data jako proměnné
Add an "Initialize variable" action. Name it TodayDate, type String, and set the value to:
Přidejte akci "Initialize variable". Pojmenujte ji TodayDate, typ String a nastavte hodnotu na:
formatDateTime(utcNow(), 'dd.MM.yyyy')
This step exists for one reason: AI models handle relative date expressions inconsistently. If a contract says "renewal within 90 days of expiry" and the model does not know today's date, you can get a hallucinated year or a vague "coming soon" interpretation. Injecting today's date explicitly into the prompt context fixes this. It takes 20 seconds to add and prevents the most common source of incorrect output from contract parsing. Tento krok existuje z jednoho důvodu: AI modely zpracovávají relativní výrazy pro datum nekonzistentně. Pokud smlouva říká "obnovení do 90 dní od vypršení" a model nezná dnešní datum, můžete dostat vymyšlený rok nebo vágní interpretaci "brzy". Explicitní vložení dnešního data do kontextu promptu to napravuje. Přidání trvá 20 sekund a zabraňuje nejčastějšímu zdroji nesprávného výstupu při parsování smluv.
Step 4 — Run a custom prompt with the contract fileKrok 4 — Spuštění vlastního promptu se souborem smlouvy
Add the "Create text with GPT using a prompt" action from AI Builder (you may see it listed as "Create text with a prompt" depending on your environment). Pass in the file content from step 2 and the TodayDate variable from step 3.
Přidejte akci "Create text with GPT using a prompt" z AI Builder (v závislosti na vašem prostředí ji můžete vidět jako "Create text with a prompt"). Předejte obsah souboru z kroku 2 a proměnnou TodayDate z kroku 3.
For the prompt itself, write the basic instructions — what fields you want extracted and in what format. A starting point: Pro samotný prompt napište základní instrukce — jaká pole chcete vytáhnout a v jakém formátu. Výchozí bod:
"You are a procurement assistant. Today's date is [TodayDate]. Read the attached contract and extract: supplier name, contract start date, contract end date or renewal date, notice period for termination, price adjustment clause (if any — include the exact mechanism), and contract value if stated. Format the output as a Markdown table with two columns: Field and Value. If a field is not present in the document, write 'Not specified'." "Jsi nákupní asistent. Dnešní datum je [TodayDate]. Přečti přiloženou smlouvu a vytáhni: název dodavatele, datum začátku smlouvy, datum ukončení nebo obnovení smlouvy, výpovědní lhůtu, klauzuli o úpravě ceny (pokud existuje — uveď přesný mechanismus) a hodnotu smlouvy, pokud je uvedena. Naformátuj výstup jako Markdown tabulku se dvěma sloupci: Pole a Hodnota. Pokud pole v dokumentu není, napiš 'Neuvedeno'."
Step 5 — Post the summary to TeamsKrok 5 — Zveřejnění shrnutí do Teams
Add the "Post message in a chat or channel" action from the Microsoft Teams connector. Set the target to your contracts channel. For the message body, use the output text from the AI Builder step — it already comes back as Markdown, which Teams renders natively. Add a header line before the table so the message is immediately readable in the channel feed: Přidejte akci "Post message in a chat or channel" z konektoru Microsoft Teams. Nastavte cíl na váš kanál smluv. Pro tělo zprávy použijte výstupní text z kroku AI Builder — vrací se již jako Markdown, který Teams nativně renderuje. Přidejte řádek záhlaví před tabulku, aby byla zpráva okamžitě čitelná ve feedu kanálu:
"📄 New contract uploaded: [Trigger file name] — here is the summary:" followed by the AI Builder output on the next line. "📄 Nová smlouva nahrána: [název souboru ze spouštěče] — zde je shrnutí:" následované výstupem AI Builder na dalším řádku.
The result is a clean two-column Markdown table in the Teams channel within about 30 seconds of the file being uploaded. Supplier, dates, price clause, value — everything that matters, visible to whoever is in the channel, without anyone having to open the PDF. Výsledkem je čistá dvousloupcová Markdown tabulka v kanálu Teams přibližně do 30 sekund od nahrání souboru. Dodavatel, data, cenová klauzule, hodnota — vše důležité, viditelné pro každého v kanálu, aniž by musel kdokoli otevírat PDF.
| Field | Value |), bold with **asterisks**, line breaks with a blank line. If you want to route the output to Outlook instead, switch to the Office 365 Outlook "Send an email" action and wrap the AI output in basic HTML tags (<table>, <tr>, <td>). The AI Builder step is identical either way — only the delivery action changes.
Zprávy Teams používají Markdown — tabulky oddělené svislítky (| Pole | Hodnota |), tučný text s **hvězdičkami**, odřádkování prázdným řádkem. Pokud chcete výstup směrovat do Outlooku, přepněte na akci Office 365 Outlook "Send an email" a zabalte výstup AI do základních HTML tagů (<table>, <tr>, <td>). Krok AI Builder je v obou případech identický — mění se pouze akce doručení.
What This Actually ReplacesCo to ve skutečnosti nahrazuje
The immediate win is not efficiency — it is awareness. Before this flow, a contract landed in SharePoint, someone maybe skimmed the signature page, and the rest sat unread until a problem surfaced. Now, within 30 seconds of upload, the channel has a structured summary that anyone can scan in 20 seconds. Price escalation clauses get noticed. Renewal windows get noted. The person who was out the week the contract was uploaded does not miss it because it is sitting in the channel history. Okamžitá výhra není efektivita — je to povědomí. Před tímto flow smlouva přistála v SharePointu, někdo možná přelétl podpisovou stránku a zbytek ležel nepřečtený, dokud se neobjevil problém. Nyní, do 30 sekund od nahrání, má kanál strukturované shrnutí, které kdokoli může prohledat za 20 sekund. Klauzule o zvýšení ceny jsou zaznamenány. Okna pro obnovení jsou poznamenána. Člověk, který byl mimo v týdnu, kdy byla smlouva nahrána, nic nezmeškáte, protože je to v historii kanálu.
The contract was always there. What was missing was the 30-second summary that tells you whether you need to read it now or in six months. Smlouva tam vždy byla. Chybělo 30sekundové shrnutí, které vám řekne, zda ji potřebujete přečíst teď nebo za šest měsíců.
Where You Can Take This NextKam to lze dále rozvíjet
This flow is deliberately simple — it is a proof of concept that takes under 30 minutes to build and immediately produces visible value. Once it has been running for a month without issues, the natural next steps are straightforward: write the AI output to a SharePoint list instead of (or in addition to) posting to Teams, and you have a contract register that builds itself. From there, a second scheduled flow can query that list daily for contracts expiring within 90 days and send a digest to the responsible owner. None of that requires rethinking the architecture — it is additions to what you have already built. Tento flow je záměrně jednoduchý — je to proof of concept, který trvá méně než 30 minut sestavit a okamžitě přináší viditelnou hodnotu. Jakmile běží měsíc bez problémů, přirozené další kroky jsou přímočaré: zapište výstup AI do SharePoint listu místo (nebo navíc k) zveřejnění do Teams a máte registr smluv, který se buduje sám. Odtud druhý plánovaný flow může denně dotazovat tento seznam na smlouvy, které vyprší do 90 dnů, a posílat digest zodpovědnému vlastníkovi. Nic z toho nevyžaduje přehodnocení architektury — jsou to doplňky k tomu, co jste již postavili.
If your team manages a significant contract volume, a Dataverse table gives you more querying flexibility than a SharePoint list — but that is a later problem. Start with the 5-step version. Run it on real contracts for two weeks. The gaps it exposes will tell you exactly what to build next. Pokud váš tým spravuje značný objem smluv, tabulka Dataverse vám dává větší flexibilitu dotazování než SharePoint list — ale to je pozdější problém. Začněte s 5krokovou verzí. Spusťte ji na reálných smlouvách po dobu dvou týdnů. Mezery, které odhalí, vám přesně řeknou, co stavět dál.
For a similar flow applied to a different operational problem — company car booking approvals — see Car Booking Automation. For the broader question of where contract monitoring fits in a procurement AI strategy, Where to Start With AI in Procurement is a useful starting point. Pro podobný flow aplikovaný na jiný provozní problém — schvalování rezervací firemních aut — viz Automatizace rezervace aut. Pro širší otázku, kam monitorování smluv patří ve strategii AI v nákupu, je Kde začít s AI v nákupu užitečným výchozím bodem.