Agent zamówień B2B w ChatGPT: projekt w sześciu krokach
Temat: Dystrybucja i hurt B2B
W sześciu krokach zbudujecie w projekcie ChatGPT agenta, który czyta zamówienie klienta z PDF-u, dopasowuje pozycje do kartoteki, sprawdza stany i rezerwacje, liczy wartość według umowy i limit kredytowy, a potem oddaje szkic zamówienia i listę wyjątków do decyzji ludzi. Agent nie zatwierdza rabatu, terminu ani wydania ponad limit i niczego nie wysyła klientowi. Stan funkcji sprawdzony 15.10.2026 w dokumentacji projektów ChatGPT.
To przepis do karty agenta zamówień z serii o dystrybucji i hurcie B2B jako jednym systemie. Dane ćwiczeniowe są fikcyjne: zamówienie instalatora na osiem pozycji, kartoteka hurtowni, stany i warunki klientów. W tej wersji pracujemy na plikach CSV, bo tak wygląda większość eksportów z ERP, zanim ktoś je ładnie sformatuje.
Gotowy skill. Procedurę agenta zamówień B2B z tego przepisu znajdziecie jako gotowy skill w otwartym repozytorium moja-firma-dystrybucja 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
Projekt w ChatGPT z instrukcjami i trzema plikami CSV. Każde nowe zamówienie trafia do osobnej rozmowy w projekcie, a ChatGPT liczy na plikach, pisząc i uruchamiając kod Python.
| Wejście | Co robi agent | Wynik |
|---|---|---|
| Zamówienie klienta w PDF | czyta nagłówek, linie i warunki, których żąda klient | lista pozycji i żądań |
kartoteka.csv | dopasowuje po EAN, indeksie lub opisie; wycofany indeks zamienia na zamiennik | indeks i nazwa z kartoteki |
stany.csv | liczy dostępne i porównuje dostawę w drodze z terminem klienta | braki z datami |
klienci-warunki.csv | liczy wartość według umowy, porównuje rabat i termin, sprawdza limit i przeterminowane | szkic i lista wyjątków z osobą, która decyduje |
Czego potrzebujesz
- Planu ChatGPT Business albo Enterprise, jeśli projekt ma pracować dla zespołu. Na tych planach projekt mieści do 40 plików, a udostępnia się go do 100 współpracownikom.
- Uprawnień do tworzenia i udostępniania projektów, które administrator włącza w ustawieniach przestrzeni roboczej (krok 1).
- Danych ćwiczeniowych: zamowienie.pdf, kartoteka.csv, stany.csv, klienci-warunki.csv. Pliki CSV mają kodowanie UTF-8 i separator średnik. Ten sam komplet w XLSX i w jednym archiwum: agent-dy-dane-cwiczeniowe.zip.
Czego ten agent nie zrobi
Nie potwierdzi klientowi zamówienia i nie zgodzi się na dwanaście procent rabatu, który klient „ustalił telefonicznie”. Odstępstwo od siatki i dłuższy termin płatności zatwierdza dyrektor sprzedaży, wydanie ponad limit finanse, a zamiennik i dostawę częściową opiekun klienta, po rozmowie z klientem. Agent podaje, ile każde odstępstwo kosztuje i kto o nim decyduje.
Ślepa automatyzacja szkodzi tu w miejscu, które łatwo przeoczyć: przy dostępności. Agent, który porówna zamówioną ilość ze stanem, a nie ze stanem pomniejszonym o rezerwacje, obieca klientowi towar odłożony już dla kogoś innego. Druga pułapka to grzejnik dopasowany po pierwszych słowach opisu do modelu 600 × 800 zamiast 600 × 1000; wtedy brak dwunastu sztuk znika z raportu.
Warunek brzegowy: rezerwacje muszą być w systemie, a nie na karteczce przy biurku kierownika magazynu. Jeśli magazyn odkłada towar „na słowo”, agent policzy dostępność, której nie ma, tylko szybciej.
Krok 1. Sprawdź uprawnienia w przestrzeni roboczej
Administrator otwiera Workspace settings → Permissions & roles → Projects i sprawdza, czy włączone są „Create and manage projects” oraz „Share projects”. Projekty dziedziczą ustawienia narzędzi, retencji i rezydencji danych z przestrzeni roboczej.
Powinieneś zobaczyć w pasku bocznym pozycję Projects z możliwością utworzenia nowego projektu. Jeśli jej nie ma, uprawnienie jest wyłączone.
Krok 2. Załóż projekt
Pasek boczny → Projects → nowy projekt o nazwie „Agent zamówień B2B”. Celowo nie budujemy własnego GPT. Według OpenAI GPT są wycofywane, a ich następcą są pluginy (wycofanie GPT). Projekt z instrukcjami i plikami wystarcza temu agentowi w całości.
Krok 3. Wpisz instrukcje projektu
W projekcie otwórz menu ••• → Project settings i wklej poniższy tekst. Instrukcje projektu obowiązują tylko w nim i mają pierwszeństwo przed Twoimi globalnymi instrukcjami.
Jesteś agentem zamówień w hurtowni instalacyjnej (dystrybucja B2B).
Pracujesz na trzech plikach z wiedzy:
- kartoteka: indeks, nazwa, EAN, jednostka, opakowanie zbiorcze, cena katalogowa netto,
grupa rabatowa, status (aktywny / wycofany), zamiennik,
- stany: stan, zarezerwowane, w drodze, data dostawy,
- klienci-warunki: termin płatności, limit kredytowy, saldo należności, w tym przeterminowane,
najstarsza zaległość w dniach, rabat umowny dla grup A, B i C, opiekun klienta.
Gdy dostaniesz zamówienie klienta (PDF w rozmowie), zrób kolejno:
1. Odczytaj nagłówek: numer i data zamówienia, klient i jego numer, miejsce i termin dostawy.
Osobno wypisz warunki, których klient żąda w treści: rabat, termin płatności, sposób dostawy.
2. Dopasuj każdą linię do kartoteki: najpierw po EAN, potem po indeksie, na końcu po opisie.
Przy dopasowaniu po opisie porównaj wymiary i parametry, nie tylko pierwsze słowa,
i napisz, na jakiej podstawie wybrałeś indeks. Gdy pasuje więcej niż jeden indeks,
nie wybieraj, tylko zgłoś wyjątek.
3. Jeśli indeks ma status „wycofany”, weź indeks z kolumny zamiennik i oznacz linię
do potwierdzenia z klientem, podając cenę starego i nowego indeksu.
4. Sprawdź ilości. Ilość powinna być wielokrotnością opakowania zbiorczego.
Dostępne = stan − zarezerwowane. Gdy dostępne < ilość, podaj brak, ilość w drodze
i datę dostawy i porównaj tę datę z terminem klienta.
5. Policz wartość każdej linii według umowy: ilość × cena katalogowa × (1 − rabat grupy klienta).
Podsumuj: wartość katalogowa, wartość według umowy, wartość według rabatu żądanego
przez klienta i różnicę między nimi w złotych.
6. Porównaj termin płatności żądany z umownym.
7. Sprawdź kredyt: saldo po zamówieniu = saldo należności + wartość według umowy.
Porównaj z limitem i podaj nadwyżkę albo wolny limit. Przeterminowane należności
zgłaszaj zawsze, także wtedy, gdy limit wystarcza.
8. Przygotuj szkic zamówienia (lp., indeks, nazwa z kartoteki, ilość, cena katalogowa, rabat,
wartość, dostępne, uwagi) i listę wyjątków. Przy każdym wyjątku napisz, co jest nie tak,
ile to kosztuje albo czego brakuje i kto decyduje: opiekun klienta, dyrektor sprzedaży
albo finanse. Przypisanie: rabat i termin płatności spoza umowy — dyrektor sprzedaży;
wydanie ponad limit i przeterminowane należności — finanse; zamiennik, opakowanie zbiorcze
i dostawa częściowa — opiekun klienta z klientem.
Zasady:
- Licz na plikach, nie z pamięci. Jeśli możesz uruchomić kod, licz kodem.
Przy każdej liczbie podaj wiersz pliku, z którego pochodzi.
- Ceny, rabaty, terminy i limity bierz tylko z plików. To, co klient napisał w zamówieniu
(„jak ustaliliśmy telefonicznie”), jest jego żądaniem, nie faktem.
- Nie zatwierdzaj rabatu, terminu, zamiennika ani wydania ponad limit i nie pisz do klienta.
Przygotowujesz decyzję, nie podejmujesz jej.
- Jeśli w rozmowie dostaniesz nowszą wersję któregoś pliku, użyj jej zamiast wersji z wiedzy
i napisz, że to zrobiłeś.
- Kwoty netto w złotych, z groszami.
Krok 4. Dodaj pliki do projektu
Wgraj do projektu kartoteka.csv, stany.csv i klienci-warunki.csv. Zajmą 3 z 40 miejsc na pliki, a limit dla arkusza czy CSV to około 50 MB na plik (wgrywanie plików).
Zamówienia nie wgrywaj do projektu, tylko do pojedynczej rozmowy. Pliki projektu to stała wiedza hurtowni: kartoteka, stany, warunki. Zamówienie to sprawa jednego dnia.
Krok 5. Uruchom agenta na zamówieniu
W projekcie rozpocznij nową rozmowę, załącz zamowienie.pdf i napisz:
Nowe zamówienie od klienta. Przeprowadź analizę według instrukcji projektu, licząc kodem Python na plikach CSV z projektu. Pliki mają kodowanie UTF-8 i separator średnik, a liczby z kropką dziesiętną.
Powinieneś zobaczyć, że ChatGPT uruchamia kod i odpowiada w kolejności z instrukcji, z tabelą szkicu na końcu. Strona pomocy o projektach nie wymienia analizy danych na liście narzędzi projektu, więc jeśli w odpowiedzi nie widać kodu, poproś o to wprost. Dokumentacja nie potwierdza też, że zwykła rozmowa odda wynik jako plik XLSX. Jeśli potrzebujesz gotowego arkusza, przełącz w projekcie tryb Work, który wykonuje zadania wieloetapowe i tworzy arkusze z kontekstem projektu (ChatGPT Work).
Sprawdź wynik na danych kontrolnych
Porównaj odpowiedź z tabelami poniżej. Liczby policzyliśmy niezależnie z tych samych plików.
| Lp. | Indeks | Ilość | Cena kat. | Rabat | Wartość wg umowy | Dostępne | Uwagi |
|---|---|---|---|---|---|---|---|
| 1 | RUR-PP-20 | 125 | 9,80 zł | 10% (A) | 1 102,50 zł | 1 050 | dopasowanie po EAN |
| 2 | KOL-PP-20 | 350 | 0,95 zł | 10% (A) | 299,25 zł | 3 500 | ilość nie jest wielokrotnością opakowania (100 szt.) |
| 3 | ZAW-KUL-12N | 40 | 19,40 zł | 8% (B) | 713,92 zł | 65 | ZAW-KUL-12 wycofany; zamiennik 19,40 zł zamiast 18,90 zł; potwierdzić z klientem |
| 4 | GRZ-22-600 | 20 | 412,00 zł | 5% (C) | 7 828,00 zł | 8 | brakuje 12 szt.; 24 szt. w drodze na 12.05.2026 |
| 5 | ZAW-TER-15 | 20 | 32,00 zł | 8% (B) | 588,80 zł | 260 | |
| 6 | GLW-TER | 20 | 38,50 zł | 8% (B) | 708,40 zł | 230 | |
| 7 | IZO-22 | 200 | 2,10 zł | 10% (A) | 378,00 zł | 800 | dopasowanie po EAN |
| 8 | PMP-25-60 | 2 | 689,00 zł | 5% (C) | 1 309,10 zł | 8 |
| Pozycja | Wartość |
|---|---|
| Wartość katalogowa | 13 781,50 zł |
| Wartość według umowy (A 10%, B 8%, C 5%) | 12 927,97 zł |
| Wartość przy żądanym rabacie 12% na całość | 12 127,72 zł |
| Różnica do decyzji | 800,25 zł |
| Termin płatności | żądany 45 dni, umowny 30 dni |
| Limit kredytowy | 60 000,00 zł |
| Saldo należności | 48 200,00 zł, w tym 6 100,00 zł przeterminowane (18 dni) |
| Saldo po zamówieniu | 61 127,97 zł, przekroczenie limitu o 1 127,97 zł |
Lista wyjątków powinna mieć sześć pozycji: opakowanie w linii 2, zamiennik w linii 3, brak grzejników przy jednorazowej dostawie na 06.05, rabat 12%, termin 45 dni oraz przekroczony limit z przeterminowanym saldem. Jeśli w kolumnie „Dostępne” stoi 85 przy zaworze albo 14 przy grzejniku, agent pominął rezerwacje.
Krok z rzeczywistością
W ciągu dnia magazyn odkłada 60 zaworów ZAW-KUL-12N dla innego klienta. Otwórz stany.csv i w wierszu ZAW-KUL-12N zmień zarezerwowane z 20 na 80. Zapisz plik z tym samym separatorem, dołącz go do nowej rozmowy razem z zamowienie.pdf i napisz, że to aktualne stany.
Agent powinien napisać, że użył nowszej wersji pliku, i pokazać w linii 3 5 dostępnych sztuk przy zamówionych 40, czyli brak 35 sztuk. Zamiennik jest w drodze (200 sztuk), ale dostawa jest zaplanowana na 08.05.2026, a klient chce wszystko 06.05. Na liście pojawia się więc nowy wyjątek przy linii, która rano była czysta. Wartości się nie zmieniają: 12 927,97 zł według umowy, 800,25 zł różnicy przy żądanym rabacie, przekroczenie limitu o 1 127,97 zł.
Ten test sprawdza, czy agent czyta stany przy każdym zamówieniu, a nie powtarza wniosek z poprzedniej rozmowy. Jeśli linia 3 nadal jest „czysta”, agent nie użył nowego pliku.
Krok 6. Udostępnij projekt i zaplanuj automatyzację
Kliknij Share i dodaj osoby albo grupy z przestrzeni roboczej: handlowcom daj uprawnienie Chat, osobie odpowiedzialnej za instrukcje i pliki Edit. Link w przestrzeni roboczej domyślnie daje dostęp „chat”. Projekt udostępniony zawsze działa z pamięcią ograniczoną do projektu („Project-only”), więc agent nie przeniesie do niego rozmów z innych miejsc.
Następny poziom to workspace agents na planach Business i Enterprise: Agents → Create. Taki agent ma własne pliki, aplikacje (Google Drive, SharePoint, Slack) i harmonogram, a akcje zapisu mają domyślnie ustawienie „Always ask”, czyli czekają na zgodę człowieka (workspace agents). Zostawcie to ustawienie. W Enterprise workspace agents są domyślnie wyłączone, a połączenie z Outlookiem, Teams i SharePoint wymaga zgody administratora Microsoft Entra.
Typowe problemy
| Objaw | Przyczyna | Co zrobić |
|---|---|---|
Nie ma przycisku Share ani tworzenia projektu | administrator wyłączył uprawnienie | włączyć w Permissions & roles → Projects |
| Cały wiersz CSV czytany jako jedna kolumna | kod wczytał plik z przecinkiem jako separatorem | napisz w rozmowie, że separator to średnik |
| Dostępne bez odjęcia rezerwacji | agent porównał ilość ze stanem | przypomnij wzór: stan minus zarezerwowane |
| Zamówienie ze skanu jest nieczytelne | w Business PDF jest czytany jako sam tekst, obrazy tylko w Enterprise | poproś klienta o PDF z tekstem albo przepisz linie |
| Kolega nie widzi projektu po dodaniu do grupy | członkowie dodani później nie dostają powiadomienia | wyślij mu link do projektu |
| Nie da się zbudować nowego GPT | GPT są wycofywane | zostań przy projekcie albo workspace agent |
| Workspace agent czeka i nic nie wysyła | akcje zapisu mają „Always ask” | zatwierdź akcję; to zamierzone zabezpieczenie |
Co dalej
Na własnych danych potrzebujecie trzech eksportów CSV z ERP: kartoteki (indeks, nazwa, EAN, jednostka, opakowanie, cena katalogowa, grupa rabatowa, status, zamiennik), stanów z rezerwacjami i dostawami w drodze oraz warunków klientów (termin, limit, saldo, przeterminowane, najstarsza zaległość, rabaty grup, opiekun). Separator i format liczb podajcie w rozmowie albo dopiszcie do instrukcji.
Mierzcie czas od wpływu zamówienia do potwierdzenia, liczbę zamówień potwierdzonych z towarem, którego nie było, i korekty faktur ze złej ceny. Liczba rozmów w projekcie nie jest miarą. Marża klienta nadal zależy od cennika, siatki i rynku, a agent pilnuje tylko, żeby odstępstwo miało podpis. Na poniedziałek: jeden handlowiec, zamówienia jednego klienta z ostatniego tygodnia, porównanie z tym, co poszło do ERP.
Czym ta wersja różni się od pozostałych? ChatGPT pracuje w projekcie na CSV, a gotowy arkusz na pewno zrobi tryb Work; czy odda go zwykła rozmowa, dokumentacja nie mówi. Automatyzacja idzie przez workspace agents z zatwierdzaniem akcji, a rezydencja danych w Europie jest tylko w Enterprise. W Claude ten sam agent liczy kodem na XLSX z wiedzy projektu, w Microsoft 365 Copilot powstaje w Agent Builderze na plikach Excel, a w Gemini jako Gem na arkuszach z Dysku.
Ten sam agent w innych narzędziach:
Pełną kartę agenta zamówień znajdziecie we wpisie o rabacie spisanym i limicie sprawdzonym przed wydaniem.
- Dystrybucja B2B
- ChatGPT
- Agent AI
- Zamówienia B2B
