AI w firmie

Automatyczne raporty z AI: agent, który co tydzień zrobi podsumowanie

Automatyczne raportowanie z AI to zaplanowany proces, który co tydzień pobiera dane z CRM, Jiry, GA4 czy monitoringu, liczy wskaźniki w kodzie lub SQL, a model językowy dopisuje tylko komentarz i wskazuje anomalie. Gotowy raport trafia na maila, Slacka lub Teams, a przed wysłaniem szerszemu gronu sprawdza go człowiek.

Poniżej znajdziesz przykłady raportów, architekturę krok po kroku, wzorzec chroniący przed zmyślonymi liczbami i listę pułapek.

Jakie raporty najlepiej zautomatyzować

Zacznij od raportu, który ktoś już dziś składa ręcznie, co tydzień, z tych samych źródeł. Masz wtedy gotową definicję wskaźników i punkt odniesienia do porównania.

RaportŹródła danychCo liczy kodCo pisze AI
Sprzedaż tygodniowaAPI systemu CRMNowe leady, wygrane i przegrane szanse, wartość lejka, konwersja między etapami, porównanie z poprzednim tygodniemKtóre zmiany są nietypowe, które duże szanse od dawna stoją bez aktywności
Status projektówJira, GitHubZamknięte zadania, PR otwarte dłużej niż ustalony próg, otwarte błędy krytyczne, odchylenie od planu sprintuRyzyka dla terminu, blokery, krótkie streszczenie dla klienta
MarketingGA4 Data API, Search Console API, Google Ads APISesje, konwersje, koszt konwersji, kliknięcia i CTR z wyszukiwarki, zmiany dla najważniejszych stronCo się zmieniło i jakie przyczyny warto sprawdzić
Przepływy pieniężneSystem księgowy, wyciągi bankoweWpływy, wydatki, należności przeterminowane, prognoza salda na kolejne tygodnieKomentarz o należnościach i odchyleniach od budżetu
IT i bezpieczeństwoWazuh, Grafana, PrometheusAlerty według poziomu, nowe podatności, dostępność usług, zajętość dysków, wygasające certyfikatyCo wymaga działania w tym tygodniu, a co jest szumem

Ostatni typ raportu opiera się na dobrze skonfigurowanym monitoringu. Jeśli dopiero go budujesz, zajrzyj do wpisów Wazuh w małej firmie i Monitoring logów: ELK i Grafana.

Architektura agenta raportowego krok po kroku

Większość tego procesu to zwykła inżynieria danych. Model językowy odpowiada za jeden etap z ośmiu.

  1. Wyzwalacz według harmonogramu: cron na serwerze, zaplanowany workflow w CI, n8n albo funkcja w chmurze. Uruchom raport o stałej porze, np. w poniedziałek o 6:00, po zamknięciu tygodnia.
  2. Pobranie danych przez API lub serwery MCP (czym jest MCP) na koncie technicznym z uprawnieniami tylko do odczytu.
  3. Zapis migawki surowych danych z datą pobrania. Dzięki temu odtworzysz raport sprzed miesiąca i wyjaśnisz, skąd wzięła się liczba.
  4. Kontrola kompletności: czy każde źródło odpowiedziało, czy liczba rekordów mieści się w oczekiwanym zakresie, czy dane obejmują cały okres.
  5. Obliczenia w SQL lub kodzie: wskaźniki, porównania okresów, średnie kroczące.
  6. Wykrywanie anomalii regułami, np. zmiana o więcej niż ustalony procent albo wartość poza zakresem z ostatnich tygodni. Reguła decyduje, co jest anomalią, model tylko ją opisuje.
  7. Komentarz AI na podstawie gotowych wyników i listy anomalii.
  8. Dostarczenie i przegląd: szkic do właściciela danych, po akceptacji wysyłka do odbiorców i archiwizacja.

Jeśli uruchamiasz raport jako zaplanowany workflow w GitHub Actions, pamiętaj, że harmonogramy działają tylko z domyślnej gałęzi, a w publicznych repozytoriach GitHub wyłącza je po 60 dniach bez aktywności.

Dlaczego model językowy nie może liczyć liczb w raporcie

Model generuje tekst, który brzmi prawdopodobnie. Suma, procent czy zaokrąglenie mogą wyjść błędnie, a w gładkim akapicie nikt tego nie zauważy. OWASP opisuje ten problem jako misinformation (LLM09) i zaleca m.in. weryfikację wyników przez ludzi.

Najpewniejszy wzorzec: model w ogóle nie wpisuje liczb. Dostaje słownik gotowych wartości i pisze komentarz z nazwanymi miejscami, a kod podstawia wartości i odrzuca tekst, który odwołuje się do nieistniejącej nazwy albo zawiera cyfry spoza miejsc. Uproszczony szkic w Pythonie:

import re

facts = {
    "przychod_tydzien": "48 200 zł",
    "przychod_zmiana": "-12,4%",
    "wygrane_szanse": "14",
}

# Tekst od modelu, np.:
# "Przychód wyniósł {przychod_tydzien} ({przychod_zmiana} tydzień do tygodnia)."
commentary = llm_commentary

bez_miejsc = re.sub(r"\{[a-z_]+\}", "", commentary)
if re.search(r"\d", bez_miejsc):
    raise ValueError("Model wpisał liczbę poza miejscami na wartości")

try:
    report_text = commentary.format_map(facts)
except KeyError as missing:
    raise ValueError(f"Model użył nieznanej wartości: {missing}")

Reguła „żadnych cyfr poza miejscami” jest surowa: odrzuci też zdanie „trzy największe szanse” zapisane cyfrą. To dobra cena za pewność, że każda liczba w raporcie pochodzi z obliczeń. Nieudane sprawdzenie powinno uruchomić ponowną generację, a po kilku próbach wysłać raport bez komentarza.

Przykładowa struktura tygodniowego raportu

Dobry raport da się przeczytać w dwie minuty. Poniższy układ sprawdza się dla sprzedaży, projektów i marketingu:

  1. Najważniejsze w trzech zdaniach: komentarz AI z wartościami wstawionymi przez kod.
  2. Tabela wskaźników: wartość, poprzedni tydzień, zmiana, średnia z ostatnich tygodni. Całość generuje kod.
  3. Anomalie: lista wykryta regułami, każda z jednozdaniowym opisem od AI i linkiem do źródła, np. do filtra w CRM.
  4. Sprawy do decyzji: maksymalnie trzy punkty, np. szansa bez kontaktu od trzech tygodni czy należność przeterminowana powyżej progu.
  5. Stan danych: z jakich źródeł, o której pobrano, czego brakuje i które dane nie są jeszcze ostateczne.
  6. Przegląd: kto i kiedy zatwierdził raport.

Sekcja o stanie danych wydaje się formalnością, dopóki raport nie pokaże spadku ruchu, który w rzeczywistości wynika z niepełnych danych z ostatnich dni.

Dostarczenie raportu: e-mail, Slack, Teams, PDF

Wybierz kanał, w którym odbiorca i tak pracuje. Raport, po który trzeba gdzieś wejść, przestaje być czytany po kilku tygodniach.

  • E-mail: najprostszy i dobry do archiwum. Wysyłaj z dedykowanej skrzynki z poprawnie ustawionymi SPF, DKIM i DMARC.
  • Slack: incoming webhook przyjmuje JSON wysłany metodą POST na unikalny adres. Ten adres zawiera sekret, więc nie może trafić do repozytorium.
  • Microsoft Teams: Microsoft wycofuje konektory Office 365, a ich wyłączenie zaplanował na 18–22 maja 2026. Jeśli raport korzysta ze starego webhooka, przejdź na aplikację Workflows.
  • PDF: przydatny dla zarządu i klientów. Grafana w wersjach Enterprise i Cloud potrafi wysyłać zaplanowane raporty PDF z dashboardów, więc część raportów technicznych nie wymaga własnego generatora.

Na etapie przeglądu wystarczy, że szkic trafia najpierw do jednej osoby z przyciskiem lub odpowiedzią „zatwierdzam”. Po kilku tygodniach bez poprawek możesz rozważyć automatyczną wysyłkę dla raportów wewnętrznych o niskim ryzyku.

Najczęstsze pułapki automatycznych raportów

  • Zmyślone liczby. Opisane wyżej. Jedyna skuteczna obrona to liczby wyłącznie z kodu.
  • Nieaktualne i niepełne dane. Search Console API domyślnie zwraca dane ostateczne; z parametrem dataState ustawionym na all dostaniesz świeższe, ale część wierszy może jeszcze się zmienić. Zaznacz to w raporcie.
  • Pusta odpowiedź potraktowana jak zero. Wygasły token, limit zapytań albo zmiana API i raport ogłasza spadek sprzedaży o 100%. Brak danych musi zatrzymać raport, a nie wejść do obliczeń.
  • Różne definicje tygodnia i stref czasowych. Ustal, że tydzień zaczyna się w poniedziałek i liczysz go w czasie polskim, także dla danych z systemów działających w UTC.
  • Zbyt szerokie uprawnienia. Konto techniczne widzi wszystko, a raport łączy dane z kilku systemów. Odbiorca raportu sprzedaży nie powinien przy okazji zobaczyć wynagrodzeń z raportu przepływów.
  • Zmiana definicji wskaźnika. Ktoś zmienia etapy lejka w CRM i porównanie z poprzednimi tygodniami traci sens. Wersjonuj definicje razem z kodem raportu.
  • Raport, którego nikt nie czyta. Mierz otwarcia albo pytaj odbiorców raz na kwartał, co z raportu wykorzystali. Usuwaj sekcje, których nikt nie potrzebuje.

Od czego zacząć automatyczne raportowanie

Pierwszy raport nie musi obejmować wszystkich systemów. Lepiej, żeby był mały, poprawny i czytany, niż rozbudowany i podważany na każdym spotkaniu.

  1. Wybierz jeden raport i jednego właściciela. Osoba, która dziś składa go ręcznie, zna wyjątki i wie, które liczby budzą pytania zarządu.
  2. Spisz definicje wskaźników. Co to jest „wygrana szansa”, od której daty liczysz przychód, czy faktury korygujące obniżają sprzedaż w tygodniu wystawienia. Ten dokument jest ważniejszy od promptu.
  3. Zbuduj część bez AI. Pobranie danych, obliczenia i tabela wskaźników muszą działać samodzielnie. Jeśli model przestanie odpowiadać, raport nadal wychodzi, tylko bez komentarza.
  4. Dodaj komentarz AI z ograniczonym zadaniem. Na początek wystarczy streszczenie w trzech zdaniach i opis anomalii wykrytych regułami.
  5. Uruchom raport równolegle z ręcznym przez trzy, cztery tygodnie i porównuj wyniki liczba po liczbie.
  6. Zbierz uwagi odbiorców i dopiero potem dokładaj kolejne źródła lub sekcje.

Rozbieżności z etapu równoległego prawie zawsze pokazują różnice w definicjach, a nie błędy w kodzie. Wyjaśnij je, zanim ktokolwiek zacznie podejmować decyzje na podstawie nowej wersji. Więcej przykładów automatyzacji znajdziesz we wpisie Automatyzacje AI w 2026, a jeśli chcesz zlecić zbudowanie takiego raportu, zobacz nasze usługi.

Najczęściej zadawane pytania

Czy ChatGPT może sam przygotować raport sprzedaży z danych z CRM?

Może napisać tekst, ale nie powinien liczyć wartości. Modele językowe potrafią podać wiarygodnie wyglądającą, błędną sumę lub procent. Obliczenia wykonaj w SQL lub w kodzie, a modelowi przekaż gotowe wyniki do skomentowania.

Jak często uruchamiać automatyczny raport?

Tak często, jak odbiorca podejmuje decyzje na jego podstawie. Dla sprzedaży i projektów zwykle co tydzień, dla bezpieczeństwa codzienny skrót plus tygodniowe podsumowanie, dla finansów tygodniowo lub miesięcznie. Pamiętaj, że część źródeł, np. Search Console, udostępnia ostateczne dane z opóźnieniem.

Jak wysłać raport na Microsoft Teams?

Microsoft wycofuje konektory Office 365 w Teams (wyłączenie zaplanowano na maj 2026), więc stare adresy webhooków nie są już dobrym wyborem. Microsoft zaleca aplikację Workflows, która udostępnia nowy adres webhooka. Alternatywą jest wysyłka e-mailem lub przez Microsoft Graph.

Czy do automatycznych raportów potrzebny jest agent AI, czy wystarczy BI?

Jeśli wystarczą wykresy i tabele, dashboard w narzędziu BI albo zaplanowany raport PDF z Grafany w wersji Enterprise lub Cloud załatwi sprawę bez modelu językowego. AI przydaje się wtedy, gdy odbiorca potrzebuje komentarza: co się zmieniło, co jest nietypowe i czego dotyczy decyzja.

Jak sprawdzić, czy AI nie zmyśliło liczb w raporcie?

Najpewniej jest nie pozwolić modelowi wpisywać liczb. Model używa nazwanych miejsc, np. {przychod_tydzien}, a kod podstawia wartości i odrzuca tekst z nieznaną nazwą lub cyfrą spoza miejsc. Dodatkowo raport przegląda właściciel danych przed wysyłką szerszemu gronu.

Źródła