Masz stos paragonów, które co miesiąc przepisujesz ręcznie do Excela albo w ogóle nie przepisujesz - i tracisz kontrolę nad wydatkami? W tym tutorialu pokazuję jak zbudować w Make.com scenariusz, który robi skanowanie paragonów automatycznie - zdjęcie wysłane na Telegram → dane w Google Sheets. Zero wpisywania ręcznego, zero kodu.
Scenariusz łączy dwa modele AI - Mistral OCR do odczytu tekstu ze zdjęcia i OpenAI do wyciągania ustrukturyzowanych danych. Na końcu gotowy wiersz w arkuszu - sklep, data, suma, waluta.
Jeśli Make.com widzisz pierwszy raz - zacznij od Make.com: pierwsza automatyzacja krok po kroku, żeby poznać interfejs przed tym tutorialem.
Co zbudujesz - scenariusz OCR paragonów z AI
Pięć modułów, jeden przepływ:
Telegram → Telegram Download → Mistral OCR → OpenAI → Google Sheets
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Pięć modułów: trigger Telegram, pobieranie pliku, Mistral OCR, mapowanie danych przez OpenAI, zapis do arkusza
Efekt końcowy - wysyłasz zdjęcie paragonu w Telegramie, po kilku sekundach w Google Sheets pojawia się nowy wiersz z nazwą sklepu, datą zakupu, kwotą i walutą.
Czego potrzebujesz
- Konto Make.com (link afiliacyjny) - darmowy plan wystarczy na start
- Bot Telegram i token API - jak go uzyskać opisałem w tym tutorialu n8n, token działa identycznie w Make.com
- Konto Mistral AI z kluczem API
- Konto OpenAI z kluczem API
- Arkusz Google Sheets z kolumnami - Nazwa sklepu, Data, Suma, Waluta
Krok 1 - Telegram trigger w Make.com - nasłuchiwanie na nowe zdjęcia
Kliknij "+" na kanvasie, wyszukaj Telegram Bot i wybierz moduł Watch Updates. Podłącz swojego bota - wklej token do nowego połączenia w Make.com. Jak uzyskać token bota Telegram? Opisałem to w tym tutorialu n8n - token działa identycznie w Make.com.
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Wyszukaj "watch" i wybierz "Watch Updates" (oznaczony cyfrą 1) - trigger uruchomi scenariusz przy każdej nowej wiadomości
Moduł uruchamia scenariusz za każdym razem, gdy ktoś wyśle wiadomość do bota. Telegram przekazuje metadane, w tym identyfikator pliku przy zdjęciach - tego użyjesz w następnym kroku.
Krok 2 - Pobieranie pliku ze zdjęciem
Dodaj drugi moduł: Telegram Bot → Download a File. W polu File ID zmapuj wartość z poprzedniego modułu - Make.com pokaże dostępne zmienne z kroku 1 po kliknięciu w pole.
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Wybierz połączenie z botem i zmapuj File ID z danych poprzedniego modułu - lista zmiennych pojawi się po kliknięciu w pole
Ten moduł pobiera plik binarny zdjęcia. W kolejnym kroku zamieniamy go na base64 i wysyłamy do Mistral.
Krok 3 - Ekstrakcja danych ze zdjęcia AI z Mistral OCR
Tu dzieje się magia - ekstrakcja danych ze zdjęcia AI. Mistral OCR zamienia fotografię paragonu w czytelny tekst markdown - z zachowaniem układu, kwot i dat.
Utwórz klucz API Mistral
Zaloguj się na console.mistral.ai, przejdź do Klucze API i kliknij Utwórz nowy klucz.
Źródło: zrzut ekranu z panelu Mistral AI - opracowanie własne
Kliknij "Utwórz nowy klucz" (oznaczony cyfrą 2) - zapisz go od razu, Mistral pokazuje go tylko raz
Skonfiguruj moduł Make an API Call
Dodaj moduł: HTTP → Make an API Call (nie ma dedykowanego modułu Mistral w Make - używamy HTTP).
- Connection: utwórz nowe połączenie z API key Mistral, podaj klucz w nagłówku Authorization
- URL:
/v1/ocr - Method: POST
- Headers: Key:
Content-Type, Value:application/json
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Połączenie Mistral obsługuje autoryzację - do nagłówków dodajesz tylko Content-Type
W polu Body wklej poniższy JSON. Funkcja base64() automatycznie koduje plik ze zdjęcia z poprzedniego modułu (Download a File):
{
"model": "mistral-ocr-latest",
"document": {
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,{{base64(4.fileOutput)}}"
}
}
}
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
{{base64(4.fileOutput)}} koduje plik ze zdjęciem do base64 - 4 to numer modułu Download a File
Mistral zwróci odpowiedź w formacie JSON z kluczem pages[1].markdown zawierającym pełny tekst paragonu.
Krok 4 - Mapowanie danych przez OpenAI
Mistral dał nam surowy tekst. Teraz OpenAI wyciągnie z niego strukturę - sklep, data, kwota.
Dodaj moduł: OpenAI (ChatGPT, Sora, Whisper) → Generate a Response.
- Model: gpt-5.4-nano (wystarczy do tego zadania, niski koszt)
- Prompt: wklej prompt poniżej, gdzie
{{5.body.pages[1].markdown}}to wynik Mistral OCR z kroku 3:
Jesteś asystentem do analizy paragonów. Wyciągaj kluczowe informacje z tekstu paragonu i zwracaj WYŁĄCZNIE poprawny obiekt JSON bez żadnego dodatkowego tekstu, markdown ani wyjaśnień.
Tekst z paragonu:
{{5.body.pages[1].markdown}}
Zwróć dokładnie taką strukturę:
{
"sklep": "nazwa sklepu",
"data": "YYYY-MM-DD",
"suma": 0.00,
"waluta": "PLN"
}
Zasady:
- dla nazwy sklepu zwróć tylko główną nazwę bez haseł reklamowych, numerów sklepu i dodatkowych opisów (np. "Biedronka" zamiast "BIEDRONKA "CODZIENNIE NISKIE CENY" 4902")
- data zawsze w formacie YYYY-MM-DD
- suma musi być liczbą (nie tekstem), użyj kropki jako separatora dziesiętnego
- jeśli nie możesz określić jakiegoś pola, wpisz null
- zwróć WYŁĄCZNIE JSON, nic więcej
Dlaczego taki prompt? Model dostaje konkretną strukturę wyjściową i jasne zasady - bez tego zwróciłby tekst z wyjaśnieniami, których Make.com nie potrafi sparsować. Więcej o pisaniu skutecznych promptów: jak pisać prompty AI.
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Zmienna {{5.body.pages[1].markdown}} wstawia tekst OCR z Mistrala - OpenAI zwróci czysty JSON
Ważne - przewiń panel w dół do sekcji Output i ustaw Type: JSON object. Bez tego Make.com dostanie odpowiedź jako zwykły tekst i zmienne result.sklep, result.suma nie będą dostępne.
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Output → Type → JSON object - kluczowe ustawienie, bez którego mapowanie danych w Google Sheets nie zadziała
Krok 5 - Make.com i Google Sheets - automatyzacja google sheets
Ostatni krok - automatyzacja google sheets. Dodaj moduł: Google Sheets → Add a Row.
Podłącz konto Google, wskaż arkusz z kolumnami - Nazwa sklepu, Data, Suma, Waluta. Następnie mapuj wartości z odpowiedzi OpenAI:
- Nazwa sklepu:
{{7.result.sklep}} - Data:
{{7.result.data}} - Suma:
{{7.result.suma}} - Waluta:
{{7.result.waluta}}
Numer 7 zastąp numerem modułu OpenAI widocznym w Twoim scenariuszu.
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Każda kolumna arkusza dostaje wartość z odpowiedniego pola JSON - Make.com podświetla zmienne na niebiesko
Testowanie - Wyślij zdjęcie i sprawdź wynik
Włącz scenariusz (przełącznik Immediately as data arrives). Otwórz Telegrama, wyślij zdjęcie paragonu do bota.
Źródło: zrzut ekranu z Telegrama - opracowanie własne
Wyślij zdjęcie paragonu do bota - scenariusz Make.com uruchomi się automatycznie
Po kilku sekundach w Google Sheets pojawi się nowy wiersz:
Źródło: zrzut ekranu z Google Sheets - opracowanie własne
Wynik testu: Mistral + OpenAI poprawnie rozpoznały sklep (Stokrotka), datę i kwotę 63,93 PLN
Podsumowanie - Automatyzacja bez kodowania gotowa
Zbudowałeś pełny pipeline OCR paragonów AI: zdjęcie → tekst → dane → arkusz. Dwa modele AI, pięć modułów Make.com, zero linii kodu. To właśnie jest automatyzacja bez kodowania w praktyce - nie teoria, nie marketing, tylko działający scenariusz.
Mistral OCR to wyspecjalizowany model do odczytu dokumentów - rozumie układ paragonu, tabele, różne fonty kasowe. OpenAI zajmuje się interpretacją i standaryzacją. Podział ról między modele to dobra praktyka przy budowaniu automatyzacji AI. Więcej o tym jak modele AI działają jako agenty: agenci AI - co to jest i jak mogą pracować za Ciebie. Podobny scenariusz dla całych dokumentów zbudujesz w tłumaczeniu PDF przez AI w Make.com.
Ile to kosztuje? Jeden paragon to kilka groszy (Mistral OCR + kilka tokenów OpenAI). Make.com darmowy plan (1000 kredytów/mies.) wystarczy przy kilkudziesięciu paragonach.
Obsługa błędów - Żaden paragon nie zginie po cichu
Warto dodać error handler do modułu Mistral OCR lub OpenAI - na wypadek gdyby zdjęcie było nieczytelne albo model zwrócił pusty wynik.
Kliknij prawym na moduł → Add error handler, a następnie podłącz Gmail → Send an email z informacją o błędzie. Od tej chwili każdy nieudany paragon trafi do Twojej skrzynki zamiast przepaść.
Źródło: zrzut ekranu z panelu Make.com - opracowanie własne
Prawy klik na module → "Add error handler" - następnie podłącz Gmail jako gałąź obsługi błędów
Najczęstsze pytania
Czy Mistral OCR działa z polskimi paragonami? Tak - Mistral OCR radzi sobie z polskim tekstem, różnymi fontami kasowymi i układem paragonów z popularnych sieci (Biedronka, Lidl, Stokrotka). Jakość odczytu zależy od jakości zdjęcia - ostre, proste, bez cieni.
Dlaczego dwa modele AI - Mistral i OpenAI - zamiast jednego? Mistral OCR to wyspecjalizowany model do konwersji obrazu na tekst - robi to lepiej niż modele ogólne. OpenAI dostaje już czysty tekst i wyciąga z niego strukturę JSON. Podział zadań daje lepsze wyniki i niższy koszt niż jeden model robiący wszystko.
Co jeśli OpenAI nie zwróci poprawnych danych? Kliknij prawym na moduł OpenAI i dodaj error handler. Podłącz do niego moduł Gmail lub Email - wyślij sobie powiadomienie z informacją, który paragon się nie przetworzył. Dzięki temu żaden paragon nie zginie po cichu.
Czy można używać innych modeli zamiast OpenAI do mapowania danych? Tak - możesz użyć Claude (Anthropic) lub Gemini. Claude szczególnie dobrze trzyma się instrukcji "zwróć tylko JSON" bez zbędnych wyjaśnień. W Make.com dodajesz wtedy moduł HTTP z Anthropic API zamiast modułu OpenAI.
Ile kredytów Make.com zużywa jeden paragon? Jeden paragon to 5 kredytów (jeden na moduł). Darmowy plan (1000 kredytów/mies.) obsłuży ok. 200 paragonów miesięcznie. Plan Core (9 USD/mies. przy płatności rocznej, stan na 10.10.2026) daje 10 000 kredytów - wystarczy na intensywne użycie.