Agent zgłoszeń w Microsoft 365 Copilot: sześć kroków

Temat: Usługi techniczne i serwisowe

W sześciu krokach zbudujecie w Agent Builderze Microsoft 365 Copilot agenta, który czyta zgłoszenia serwisowe z pięciu kanałów, przypina każde do urządzenia i umowy, nadaje priorytet, liczy termin reakcji w godzinach obsługi z umowy i wykrywa, że dwa telefony to jedno zdarzenie. Agent kładzie dyspozytorowi na biurku tabelę zgłoszeń i proponowaną kolejność, ale nie przydziela technika i nie obiecuje klientowi terminu. Stan funkcji sprawdzony 15.10.2026 w dokumentacji Agent Buildera.

To przepis do karty agenta zgłoszeń z serii o usługach technicznych i serwisowych jako jednym systemie. Pracujemy na tych samych danych ćwiczeniowych co w pozostałych przepisach: osiem zgłoszeń z jednego poranka, dziewięć urządzeń u czterech klientów i cztery umowy o różnym poziomie gwarantowanego czasu reakcji (SLA). Wszystkie dane są fikcyjne, łącznie z piekarnią, która ma dwa piece tego samego modelu.

Gotowy skill. Procedurę agenta zgłoszeń serwisowych z tego przepisu znajdziecie jako gotowy skill w otwartym repozytorium moja-firma-serwis na GitHubie, razem z danymi ćwiczeniowymi i wynikiem kontrolnym. Działa w Claude, Microsoft 365 Copilot, ChatGPT i Gemini. Jak z niego skorzystać.

Co zbudujesz

Agenta w Microsoft 365 Copilot ze stałymi instrukcjami i dwoma plikami Excel w wiedzy. Do rozmowy z agentem dołączasz arkusz ze zgłoszeniami z poranka i dostajesz to, co dziś kosztuje dyspozytora godzinę telefonów do techników.

WejścieCo robi agentWynik
Zgłoszenia z pięciu kanałów (XLSX w rozmowie)rozpoznaje klienta, obiekt i urządzenie, także po skróconej nazwiekażde zgłoszenie przypięte do numeru seryjnego albo oznaczone „do dopytania”
Kartoteka urządzeń (XLSX)czyta historię i uwagi (drugi piec w obiekcie, powtarzająca się usterka)priorytet z uzasadnieniem
Umowy serwisowe (XLSX)liczy termin reakcji w godzinach obsługi z umowy, przy 24/7 kalendarzowostart zegara i termin reakcji dla każdego zgłoszenia
Wszystko razemscala duplikaty, wyłącza przeglądy i klientów bez umowy, proponuje kolejnośćtabela zgłoszeń, lista spraw do dopytania, kolejność dla dyspozytora

Czym Copilot różni się od pozostałych trzech narzędzi w tym zadaniu. Agent żyje tam, gdzie dyspozytor już pracuje: w aplikacji Microsoft 365 Copilot i w Teams, z uprawnieniami i etykietami, które firma i tak ustawiła w tenancie. Ceną za to są dwie rzeczy. Pierwsza to licencja: agent oparty na danych firmy wymaga licencji Microsoft 365 Copilot albo rozliczania za użycie, więc zanim ktokolwiek kliknie „Create agent”, rozmowa z administratorem jest obowiązkowa. Druga to format: wiedza agenta nie przyjmuje CSV, a plik wygenerowany przez code interpreter istnieje tylko w trakcie sesji. W Claude i ChatGPT pracujecie w projekcie, w Gemini w Gemie z plikami z Dysku; tutaj w agencie, którego można później przenieść do Copilot Studio, gdy przyjdzie czas na automatyzację skrzynki ze zgłoszeniami.

Czego potrzebujesz

  • Konta służbowego Microsoft 365 z dostępem do aplikacji Microsoft 365 Copilot (microsoft365.com/chat) albo do Teams na komputerze lub w przeglądarce. Agent Builder nie działa na urządzeniach mobilnych.
  • Licencji Microsoft 365 Copilot albo włączonego przez administratora rozliczania pay-as-you-go w Copilot Studio. Sam Copilot Chat jest w subskrypcji Microsoft 365, ale agenci korzystający z danych tenanta wymagają jednego z tych dwóch wariantów. Na stronie Microsoftu licencja kosztuje 30 USD za użytkownika miesięcznie przy płatności rocznej i wymaga kwalifikującego się planu Microsoft 365 (wymagania wstępne).
  • Danych ćwiczeniowych w XLSX: zgloszenia.xlsx, urzadzenia.xlsx, umowy.xlsx. Komplet razem z CSV: agent-ut-dane-cwiczeniowe.zip. W tym przepisie CSV nie przyda się: nie ma go na liście typów wiedzy Agent Buildera.

Czego ten agent nie zrobi

Nie przydzieli technika i nie poinformuje klienta o terminie wizyty. Kolejność, którą proponuje, jest propozycją dla dyspozytora; o tym, czy jechać w nocy do usterki, którą klient sam nazwał „nie pilną”, choć umowa 24/7 tego nie rozróżnia, decyduje człowiek. Czy przyjąć klienta bez umowy i na jakich warunkach, rozstrzyga kierownik serwisu. Agent pokazuje, co jest w umowie i ile zostało do terminu, żeby te decyzje zapadły na danych, a nie na tym, kto głośniej dzwonił.

Nie zastąpi też porządku w kartotece. Jeśli urządzenia u klientów nie mają numerów seryjnych nigdzie poza zdjęciami w telefonach techników, agent nie ma do czego przypiąć zgłoszenia, a tabela pełna „brak w kartotece” jest gorsza niż brak tabeli, bo wygląda na odpowiedź. W prawdziwej firmie zacznijcie od jednego arkusza z parkiem urządzeń: numer seryjny, model, klient, obiekt, umowa. Dopiero potem agent.

Krok 1. Ustal licencję z administratorem

Zanim zaczniesz, zapytaj administratora Microsoft 365 o dwie rzeczy. Czy masz licencję Microsoft 365 Copilot, a jeśli nie, czy w Microsoft 365 admin center albo w Power Platform admin center skonfigurowano pay-as-you-go; agenci rozliczani za użycie są w Copilot Chat domyślnie wyłączeni. I czy włączono Restricted SharePoint Search, bo wtedy SharePoint nie może być źródłem wiedzy agenta (w tym przepisie wgrywamy pliki, więc to dotyczy dopiero Waszych własnych danych).

Powinieneś wyjść z tej rozmowy z jasnym „tak, możesz budować agentów na plikach firmy”. Bez tego nie wiadomo, czy agent oparty na Waszych plikach w ogóle zadziała u Was i u dyspozytorów, którym go udostępnicie.

Krok 2. Utwórz agenta i wpisz instrukcje

Otwórz microsoft365.com/chat, w lewym panelu kliknij Create agent i przejdź na kartę Configure. Karta Describe pozwala opisać agenta językiem naturalnym, ale instrukcje chcemy mieć dosłownie takie, jak niżej. Zmiany zapisują się automatycznie.

  • Name (do 30 znaków): Agent zgłoszeń
  • Description (do 1000 znaków): Przypina zgłoszenia serwisowe do urządzeń i umów SLA, nadaje priorytet, liczy termin reakcji i proponuje kolejność. Nie przydziela techników.
  • Instructions (do 8000 znaków): wklej poniższy tekst.
Jesteś agentem zgłoszeń w firmie serwisowej (serwis urządzeń u klienta, technicy w terenie, umowy SLA).
Pracujesz na plikach z wiedzy agenta:
- urzadzenia.xlsx: park urządzeń u klientów (numer seryjny, model, typ, klient, obiekt, umowa,
  ostatnia naprawa, liczba zgłoszeń z 12 miesięcy, uwagi),
- umowy.xlsx: umowy serwisowe (poziom, czas reakcji i naprawy w godzinach, godziny obsługi,
  rozliczenie, ryczałt miesięczny).

Gdy użytkownik dołączy listę zgłoszeń (plik zgloszenia.xlsx w rozmowie), dla każdego zgłoszenia zrób kolejno:
1. Rozpoznaj klienta, obiekt i urządzenie po nazwie firmy, obiekcie, modelu i treści. Nazwy w zgłoszeniu
   bywają skrócone („Bochen” to Piekarnia Rzemieślnicza Bochen sp. z o.o.). Jeśli pasuje więcej niż jedno
   urządzenie, wypisz wszystkie i oznacz zgłoszenie jako „do dopytania”. Jeśli nie pasuje żadne, wpisz
   „brak w kartotece”.
2. Przypnij umowę z pliku umowy.xlsx po kliencie. Klient bez umowy to „poza umową”: zegar SLA nie biegnie.
3. Nadaj priorytet: krytyczny (produkcja stoi, temperatura produktu, zagrożenie ludzi), wysoki (urządzenie
   nieczynne, powtarzająca się usterka, urządzenie pod dozorem), normalny (komfort, usterka bez przestoju),
   przegląd planowy (termin z umowy, nie awaria; nie uruchamia zegara awarii).
4. Policz termin reakcji: start zegara to data i godzina zgłoszenia; dodaj czas reakcji z umowy, licząc
   tylko godziny obsługi z umowy (przy 24/7 godziny kalendarzowe). Czas poza godzinami obsługi nie liczy
   się do zegara; zgłoszenie złożone poza nimi startuje na początku najbliższych godzin obsługi.
   Jeśli termin już minął, napisz to wprost.
5. Wykryj duplikaty: dwa zgłoszenia tego samego klienta o tym samym urządzeniu i zdarzeniu, z różnych
   kanałów, to jedno zdarzenie. Scal je; zegar liczy się od wcześniejszego.
6. Wypisz, czego brakuje, żeby wysłać technika (który egzemplarz, kod błędu, potwierdzenie alarmu
   u klienta, zgoda na wycenę).
7. Zaproponuj kolejność obsługi: najpierw zgłoszenia, których termin reakcji przypada dziś albo już minął,
   w ich obrębie według priorytetu (krytyczny, wysoki, normalny), a przy równym priorytecie według terminu;
   zgłoszenie krytyczne, które czeka na odpowiedź klienta, ustaw za krytycznym gotowym do obsługi.
   Potem zgłoszenia z terminem w kolejnych dniach, potem przeglądy planowe (w oknie klienta),
   na końcu zgłoszenia poza umową, oznaczone „decyzja kierownika serwisu”.

Zasady:
- Licz kodem (code interpreter) na plikach z wiedzy i na załączniku, nie z pamięci.
  Przy każdym terminie podaj, z których wierszy (urządzenie, umowa) pochodzi.
- Nie dopisuj urządzeń ani umów, których nie ma w plikach. Brak danych nazwij wprost.
- Nie przydzielasz technika i nie obiecujesz klientowi terminu wizyty. Kolejność jest propozycją
  dla dyspozytora; obsługa klienta bez umowy to decyzja kierownika serwisu.
- Wynik: tabela zgłoszeń (zgłoszenie, urządzenie, klient, umowa, priorytet, start zegara, termin reakcji,
  uwagi), lista duplikatów i spraw do dopytania, proponowana kolejność.
  Na końcu przygotuj plik XLSX z tą tabelą do pobrania.

Reguła liczenia zegara jest jawna celowo — tylko godziny obsługi z umowy, przy 24/7 kalendarzowo — więc dyspozytor może się z nią kłócić, zamiast ufać „intuicji modelu”. Zasada „zgłoszenie krytyczne, które czeka na odpowiedź klienta, za krytycznym gotowym do obsługi” sprawia, że piekarnia z dwoma piecami nie blokuje komory chłodniczej z mięsem.

Krok 3. Dodaj wiedzę jako wgrane pliki

W sekcji Knowledge na karcie Configure wgraj z dysku urzadzenia.xlsx i umowy.xlsx. Limit to 20 wgranych plików na agenta i 30 MB na plik Excel; nasze ważą kilka kilobajtów. Każdy z plików ma jeden arkusz z nagłówkami w pierwszym wierszu, a Excel działa w wiedzy agenta najlepiej właśnie w takim układzie.

Wgraj pliki, zamiast podpinać je linkiem z SharePoint. Code interpreter dostaje tylko pliki wgrane do agenta albo dołączone do rozmowy; pliku znalezionego wyszukiwaniem w SharePoint nie policzy (znane problemy). Zgłoszeń nie dodawaj do wiedzy: wiedza to Wasz park urządzeń i umowy, zgłoszenia są sprawą na dziś i trafiają do rozmowy jako załącznik.

Krok 4. Sprawdź liczenie kodem i dodaj prompt startowy

Code interpreter w Agent Builderze pisze i uruchamia kod Python, czyta pliki Excel, PDF i CSV/TSV i tworzy pliki do pobrania (code interpreter). Dokumentacja opisuje go jako zawsze włączony, ale inna strona tej samej dokumentacji wspomina przełącznik „Create documents, charts, and code”. Jeśli widzisz go na karcie Configure, upewnij się, że jest włączony.

W Starter Prompts dodaj jeden prompt, żeby dyspozytor nie musiał pamiętać formuły:

Dziś jest poniedziałek 7.09.2026, godzina 9:30. W załączniku zgłoszenia z ostatniej doby. Przeprowadź triage według instrukcji, licząc kodem na plikach z wiedzy i na załączniku.

Na własnych danych usuńcie z promptu datę — agent weźmie bieżącą. W ćwiczeniu podajemy ją wprost, bo zgłoszenia pochodzą z września 2026 i bez niej agent nie wie, który termin już minął.

Krok 5. Uruchom agenta w panelu testowym

W panelu testowym obok konfiguracji dołącz zgloszenia.xlsx i wybierz prompt startowy. Plik wybierz w interfejsie, nie wklejaj jego adresu do promptu: wklejony URL pliku psuje wyszukiwanie.

Powinieneś zobaczyć, że agent uruchamia kod, czyta oba arkusze z wiedzy i załącznik, a potem odpowiada w kolejności z instrukcji: tabela zgłoszeń z urządzeniem, umową, priorytetem i terminem, lista duplikatów i spraw do dopytania, proponowana kolejność. Na końcu powinien pojawić się link do pliku XLSX. Pobierz go od razu, bo pliki z code interpretera istnieją tylko w trakcie sesji. Microsoft wymienia jednak wśród znanych problemów błąd generowania plików przez agenta; jeśli linku nie ma, poproś o tę samą tabelę w treści odpowiedzi.

Sprawdź wynik na danych kontrolnych

Porównaj odpowiedź z tabelą poniżej. Terminy policzyliśmy niezależnie z tych samych plików. Siódmy września 2026 to poniedziałek, szósty — niedziela.

ZgłoszenieUrządzenieKlient / umowaPriorytetStart zegaraTermin reakcjiUwaga agenta
Z-001PK-44120 lub PK-44121K-021 / U-2024-11 (Złoty, 4 h, 24/7)krytyczny — produkcja stoi7.09 06:407.09 10:40dwa piece tego samego modelu w obiekcie — do dopytania; weszło telefonem do technika
Z-002BR-1092K-034 / U-2025-03 (Srebrny, 8 h, pn–pt 7–19)wysoki — rampa nieczynna7.09 07:557.09 15:55piąte zgłoszenie w 12 miesięcy — zalecenie wymiany fotokomórki, do kierownika serwisu
Z-003CH-7790K-041 / U-2025-09 (Złoty, 4 h, 24/7)krytyczny — temperatura produktu7.09 08:127.09 12:12alarm automatyczny — potwierdzić telefonicznie u klienta
Z-004DZ-5510K-008 / U-2023-07 (Brązowy, 24 h, pn–pt 8–16)wysoki — dźwig pod dozorem, nikt nie uwięziony7.09 08:3010.09 08:30rozliczenie za zlecenie — wycena przed wyjazdem; uprawnienia dźwigowe
Z-005jak Z-001K-021 / U-2024-11duplikat Z-0017.09 06:407.09 10:40to samo zdarzenie innym kanałem — scalić ze Z-001
Z-006brak w kartotecebrak umowypoza umową——nowy klient — przyjąć za zlecenie z wyceną albo odmówić: kierownik serwisu
Z-007WZ-3300K-034 / U-2025-03przegląd planowy—termin przeglądu do końca września 2026zaplanować w oknie klienta z zestawem części; bez zegara awarii
Z-008WZ-3312K-041 / U-2025-09 (Złoty, 4 h, 24/7)normalny — komfort6.09 23:507.09 03:50termin minął, zanim ktokolwiek przeczytał maila; „nie pilne” klienta nie zmienia SLA — decyzja dyspozytora

Prawidłowa kolejność to Z-003, Z-001 (ze scalonym Z-005), Z-002, Z-008, Z-004, Z-007, Z-006. Komora chłodnicza idzie przed piecem, choć jej termin jest późniejszy, bo piekarnia czeka na odpowiedź, który piec stanął. Z-008 ląduje przed dźwigiem, bo jego termin już minął — niedzielny mail o 23:50 na umowie 24/7 to jedyne zgłoszenie z poranka, które jest przeterminowane, zanim dyspozytor usiadł do biurka. Dźwig ma czas do czwartku, bo umowa Brązowa liczy dobę reakcji tylko w godzinach 8–16 od poniedziałku do piątku.

Jeśli w tabeli Z-004 ma termin we wtorek, agent policzył dobę kalendarzową zamiast godzin obsługi. Jeśli Z-005 jest osobnym wierszem z własnym zegarem od 08:41, agent nie scalił duplikatu. Jeśli terminy się nie zgadzają, a w odpowiedzi nie widać uruchomionego kodu, agent liczył „z głowy”. Wynik wygląda wtedy tak samo pewnie jak poprawny, i właśnie dlatego ta tabela kontrolna istnieje.

Krok z rzeczywistością

Umowy się zmieniają, a agent musi to zauważyć bez zmiany instrukcji. Otwórz umowy.xlsx, w wierszu U-2023-07 (Hotel Pod Dębami) zmień godziny obsługi z pn–pt 8:00–16:00 na 24/7, zapisz plik, a w sekcji Knowledge usuń starą wersję i wgraj nową.

Zadaj w nowej rozmowie to samo pytanie. Termin reakcji dla Z-004 powinien przesunąć się z czwartku 10.09 08:30 na wtorek 8.09 08:30: ta sama doba reakcji, ale liczona kalendarzowo. Kolejność nie powinna się zmienić — dźwig nadal ma termin w kolejnym dniu, więc zostaje za zgłoszeniami z dzisiejszym i przekroczonym terminem.

Jedna komórka w umowie przesunęła termin o dwa dni. Dlatego godziny obsługi mają być w zapisie przy umowie, a nie w pamięci dyspozytora.

Krok 6. Udostępnij zespołowi i zaplanuj automatyzację

Nowy agent jest prywatny. Kliknij Share i nadaj dyspozytorom rolę Can chat, a osobie odpowiedzialnej za instrukcje i wiedzę Can edit (współwłaściciel). Przełącznik Org-wide sharing for chat access udostępnia agenta całej organizacji, o ile administrator tego nie zablokował. Każdy odbiorca potrzebuje licencji obejmującej funkcje agenta, inaczej zobaczy błąd. Jeśli chcecie, żeby agent był w katalogu firmy, administrator zatwierdza go w Microsoft 365 admin center i agent trafia do sekcji „Built by your org” w Agent Store (udostępnianie agentów).

Zgłoszenia przychodzą mailem i z portalu, ale Agent Builder nie ma wyzwalaczy ani akcji. Do tego trzeba skopiować agenta do Copilot Studio; tam wyzwalacz „nowy e-mail” ustawia się w Overview → Triggers → Add trigger, a akcja „Request for information” wstrzymuje przepływ i prosi człowieka o decyzję przez Outlook — na przykład dyspozytora o potwierdzenie, który piec stanął. Wyzwalacz działa na koncie autora agenta i może wpływać na rozliczenie, więc to osobna rozmowa z administratorem, nie piąta minuta pilotażu.

Typowe problemy

ObjawPrzyczynaCo zrobić
Agent odpowiada ogólnikami o SLA, nie liczy terminówplik podpięty z SharePoint nie trafia do code interpreterawgraj XLSX do agenta albo dołącz plik w rozmowie
Nie da się dodać CSV jako wiedzyCSV nie ma na liście typów wiedzyużyj XLSX z jednym arkuszem
Plik Excel z wynikiem „zniknął”pliki z code interpretera istnieją tylko w trakcie sesjipobierz plik od razu po wygenerowaniu
Termin Z-004 wypada we wtorekagent liczył dobę kalendarzową zamiast godzin obsługiprzypomnij regułę z instrukcji: tylko godziny obsługi, chyba że 24/7
Z-005 ma własny zegar od 08:41agent nie scalił duplikatuwskaż regułę: to samo zdarzenie z dwóch kanałów to jedno zgłoszenie
Współpracownik widzi błąd po otwarciu agentabrak licencji obejmującej funkcje agentalicencja Microsoft 365 Copilot albo pay-as-you-go
Udostępnienie się nie udajewybrano grupę dystrybucyjnąwybierz grupę zabezpieczeń albo konkretne osoby
Brak wyzwalacza „nowy e-mail”Agent Builder nie ma wyzwalaczyskopiuj agenta do Copilot Studio

Co dalej

Na własnych danych potrzebujecie dwóch eksportów do XLSX, każdy w jednym arkuszu, i jednego dziennego załącznika. Kartoteka urządzeń z ERP albo z załączników do umów: numer seryjny, model, typ, klient, obiekt, umowa, data ostatniej naprawy, liczba zgłoszeń z dwunastu miesięcy, uwagi. Umowy: poziom, czas reakcji i naprawy, godziny obsługi, sposób rozliczenia, ryczałt. I codziennie zgłoszenia: kanał, data i godzina, kto zgłasza, firma i obiekt tak, jak podał klient, treść. Nazwy kolumn mogą być Wasze, wtedy poprawcie je w instrukcji.

Ten sam agent w innych narzędziach:

Pełną kartę agenta zgłoszeń, czyli co czyta, co może sam, co zatwierdza człowiek i czym go mierzyć, znajdziecie we wpisie o zegarze SLA, który rusza sam.

Portret Krzysztofa Majchrzyckiego

O autorze

Krzysztof Majchrzycki jest architektem systemów i AI Business Partnerem. Od wielu lat łączy technologię z biznesem i zarządzaniem. Współtworzył firmy technologiczne i kierował polskim oddziałem międzynarodowej grupy. Dziś projektuje modele firm i inteligentne systemy operacyjne, które z nich wynikają. Ukończył Executive MBA i ma certyfikat Prosci® Certified Change Practitioner.

Agent zgłoszeń to dopiero pierwszy z dwunastu

Darmowy poradnik „Usługi techniczne i serwisowe jako jeden system” pokazuje, gdzie w dziesięciu etapach pracuje każdy z dwunastu agentów i co przy każdym zostaje w rękach człowieka.

FAQ

Najczęstsze pytania

Czy mogę wgrać do agenta prawdziwą kartotekę urządzeń i umowy?

Według dokumentacji Microsoftu prompty, odpowiedzi i dane z Microsoft Graph nie służą do trenowania modeli bazowych, ruch z UE zostaje w granicy danych UE (EU Data Boundary), a pliki wgrane do agenta są przechowywane w domyślnej geografii tenanta. To dobra podstawa, ale nie zastępuje decyzji właściciela danych i działu prawnego. Zacznijcie od eksportu bez danych osobowych — w zgłoszeniach to nazwiska osób kontaktowych.

Czy nie prościej wskazać pliki na SharePoint zamiast je wgrywać?

Do wyszukiwania tak, do liczenia nie. Code interpreter przetwarza tylko pliki wgrane do agenta albo dołączone do rozmowy; plików znalezionych przez wyszukiwanie w SharePoint nie dostaje. Agent odpowie wtedy ogólnikami o SLA zamiast policzyć termin z godzin obsługi w tabeli.