
Resend i React Email – jak wyglądają automatyczne potwierdzenia rezerwacji i powiadomienia w praktyce
Klient rezerwuje termin na stronie, widzi komunikat "dziękujemy", i na tym jego kontakt z firmą się kończy. Nie dostaje potwierdzenia albo dostaje je po godzinie, w formie surowego tekstu bez godziny wizyty i adresu. Po dwóch dniach dzwoni z pytaniem, czy rezerwacja w ogóle przeszła. Właściciel odbiera ten telefon zamiast pracować.
To nie jest problem estetyczny. Mail transakcyjny po rezerwacji jest jedynym dowodem, jaki klient ma w ręku. Jeżeli nie dotrze, klient nie ma czego wpisać do kalendarza, a firma dostaje puste okienko albo telefon do wyjaśnienia. To samo dotyczy powiadomienia po stronie firmy: jeżeli właściciel nie dowie się o nowej rezerwacji w ciągu minuty, kalendarz przestaje być wiarygodny.
W praktyce większość takich awarii ma tę samą przyczynę. Mail jest wysyłany przez przypadkowy serwer SMTP, z konta hostingowego, bez konfiguracji uwierzytelnienia domeny i bez żadnego logu. Nikt nie wie, czy wiadomość wyszła, czy dotarła i dlaczego nie. W projektach, w których budujemy własny system rezerwacji w Next.js, warstwę mailową traktujemy jako osobny element wdrożenia, a nie jako dodatek do formularza.
Na czym polega stack Resend i React Email
To dwa różne narzędzia, które rozwiązują dwa różne problemy.
Resend jest dostawcą wysyłki maili transakcyjnych. Odpowiada za to, żeby wiadomość faktycznie opuściła serwer i trafiła do skrzynki odbiorczej, a nie do spamu. Daje API do wysyłki z aplikacji, konfigurację uwierzytelnienia domeny (SPF, DKIM, DMARC), logi wysyłek i informację o statusie każdej wiadomości.
React Email odpowiada za treść i wygląd. Pozwala budować szablony maili jako komponenty React, w tym samym języku i tym samym repozytorium co reszta aplikacji Next.js. Zamiast utrzymywać HTML maila w postaci tabel sklejonych ręcznie, opisujesz szablon komponentami, a biblioteka generuje HTML, który poprawnie renderuje się w Gmailu, Outlooku i na telefonie.
Razem dają prosty układ: React Email buduje treść, Resend ją wysyła i raportuje wynik. Aplikacja rezerwacyjna wywołuje to w jednym miejscu, po zapisaniu rezerwacji w bazie.
Kiedy zwykły SMTP jeszcze wystarczy
Nie każdy projekt potrzebuje osobnego dostawcy wysyłki. Prosty SMTP z hostingu bywa wystarczający, gdy:
- rezerwacji jest kilka w tygodniu i każdą i tak potwierdza człowiek,
- mail idzie wyłącznie do właściciela firmy, a nie do klienta,
- firma nie ma własnej domeny mailowej i nie planuje jej mieć,
- treść maila to dwa zdania, których nikt nie zamierza zmieniać,
- nikt w firmie nie potrzebuje wiedzieć, czy wiadomość dotarła.
W takim układzie dokładanie kolejnego narzędzia to koszt bez zwrotu. Problem zaczyna się dopiero wtedy, gdy mail przestaje być powiadomieniem wewnętrznym, a staje się elementem obsługi klienta.
Kiedy warto przejść na dedykowaną wysyłkę
Zmiana ma sens, gdy pojawia się przynajmniej kilka z poniższych sytuacji:
- klient dostaje mail bezpośrednio i to on jest odbiorcą docelowym,
- rezerwacje idą codziennie i nikt nie zdąży potwierdzać ich ręcznie,
- zdarzają się zgłoszenia "nie dostałem potwierdzenia", a firma nie umie sprawdzić, co się stało,
- maile trafiają do spamu albo są odrzucane przez skrzynki firmowe,
- treści jest więcej niż jedna: potwierdzenie, przypomnienie, zmiana terminu, odwołanie,
- firma chce, żeby mail wyglądał jak jej marka, a nie jak systemowy komunikat,
- rezerwacje mają trafiać dalej, do CRM, zgodnie z logiką opisaną we wpisie o automatyzacji rezerwacji w Next.js i Dolibarr.
Najczęstszym punktem zapalnym jest deliverability. Firma może mieć świetny system rezerwacji, ale jeżeli potwierdzenia lądują w spamie, klienci przestają ufać całemu procesowi.
Dlaczego uwierzytelnienie domeny decyduje o dostarczalności
To najczęściej pomijany element całego wdrożenia. Skrzynki odbiorcze sprawdzają, czy serwer wysyłający ma prawo wysyłać maile w imieniu Twojej domeny. Jeżeli nie ma, wiadomość dostaje niską ocenę i trafia do spamu albo w ogóle nie przechodzi.
W praktyce trzeba ustawić trzy rzeczy w DNS domeny:
- SPF, czyli listę serwerów uprawnionych do wysyłki z Twojej domeny.
- DKIM, czyli podpis kryptograficzny potwierdzający, że treść nie została podmieniona po drodze.
- DMARC, czyli politykę mówiącą skrzynkom, co zrobić z wiadomością, która nie przejdzie dwóch pierwszych testów.
Resend prowadzi przez tę konfigurację i pokazuje status weryfikacji domeny, co skraca ten etap z kilku dni zgadywania do jednego popołudnia. Warto też wysyłać z realnego adresu w domenie firmy, na przykład rezerwacje@twojafirma.pl, a nie z adresu na darmowej skrzynce. Ustawienie adresu odpowiedzi na prawdziwą skrzynkę firmową rozwiązuje osobny problem: klient odpowiada na potwierdzenie i ta odpowiedź gdzieś trafia.
Jak wygląda proces wysyłki po rezerwacji
W typowym wdrożeniu ścieżka jest krótka i warto ją zaprojektować raz, a potem tylko rozbudowywać.
- Klient wysyła formularz rezerwacji na stronie.
- Aplikacja waliduje dane i sprawdza, czy termin jest nadal wolny.
- Rezerwacja zapisuje się w bazie danych i dostaje własny identyfikator.
- Serwer renderuje szablon React Email z danymi rezerwacji.
- Resend wysyła potwierdzenie do klienta.
- Równolegle idzie powiadomienie do firmy, z kompletem danych i linkiem do panelu.
- Aplikacja zapisuje wynik wysyłki przy rezerwacji.
- Dane rezerwacji trafiają do CRM jako klient, kontakt i wpis w kalendarzu.
Kluczowy jest punkt siódmy. Jeżeli firma zapisuje status wysyłki obok rezerwacji, pytanie "czy klient dostał potwierdzenie" przestaje być zgadywanką. Ktoś z obsługi otwiera rezerwację w panelu administratora i widzi odpowiedź.
Druga ważna zasada dotyczy kolejności. Rezerwacja powinna zapisać się w bazie zanim ruszy wysyłka maila. Jeżeli dostawca akurat nie odpowiada, chcesz stracić maila, a nie termin klienta. Nieudaną wysyłkę można powtórzyć, utraconej rezerwacji nie odzyskasz.
Szablony jako komponenty, czyli po co to całe React Email
Największa korzyść ujawnia się przy drugim i trzecim mailu. Potwierdzenie, przypomnienie i informacja o zmianie terminu mają ten sam nagłówek, tę samą stopkę, te same dane kontaktowe i ten sam układ bloku z terminem. Przy szablonach opisanych komponentami piszesz to raz i używasz w każdej wiadomości.
Praktyczne skutki są proste. Zmiana logo albo numeru telefonu to jedna poprawka, nie sześć. Szablony leżą w repozytorium, więc widać w historii, kto i kiedy zmienił treść. Dane rezerwacji wstawiasz jako zwykłe zmienne, bez sklejania HTML ze stringów, co eliminuje całą kategorię błędów z niedomkniętymi znacznikami i źle zakodowanymi polskimi znakami. Szablon można też podejrzeć lokalnie w przeglądarce, zanim trafi do klienta.
To ta sama logika, która stoi za szablonami e-mail w CRM, tylko przeniesiona na maile wysyłane automatycznie przez aplikację.
Przykładowe wiadomości warte wdrożenia
Zestaw, który w większości firm usługowych zamyka temat:
- potwierdzenie rezerwacji z datą, godziną, usługą, adresem i danymi kontaktowymi,
- powiadomienie dla firmy o nowej rezerwacji, z linkiem do panelu,
- przypomnienie dzień przed wizytą,
- potwierdzenie zmiany terminu,
- potwierdzenie odwołania rezerwacji,
- wiadomość po wizycie z prośbą o opinię lub propozycją kolejnego terminu.
Do potwierdzenia warto dołożyć załącznik z wpisem do kalendarza. Klient klika raz i termin jest u niego w telefonie, zamiast przepisywać go ręcznie. Przypomnienia można prowadzić po stronie aplikacji albo po stronie CRM, zależnie od tego, gdzie firma trzyma harmonogram. Opisaliśmy to szerzej we wpisie o automatycznych przypomnieniach o terminach.
Wady i ograniczenia
To nie jest rozwiązanie bez kosztów i warto znać jego granice.
Dochodzi kolejna usługa zewnętrzna, z własnym kontem, kluczem API i limitami. Darmowy pułap wystarcza na start, ale przy większym wolumenie pojawia się abonament. Konfiguracja DNS wymaga dostępu do domeny, a w firmach, gdzie domenę trzyma dawny wykonawca strony, bywa to najdłuższy etap całego wdrożenia.
Resend odpowiada za wysyłkę transakcyjną, nie za marketing. Do kampanii, segmentacji i lead nurturingu nadal potrzebne jest osobne narzędzie klasy Mautic. Mieszanie obu rodzajów ruchu na jednej domenie potrafi zepsuć reputację wysyłkową, więc newsletter i potwierdzenia rezerwacji lepiej rozdzielić.
Sama konfiguracja też nie gwarantuje dostarczalności na zawsze. Reputację buduje się treścią i zachowaniem odbiorców. Jeżeli firma zacznie wysyłać maile do osób, które o nie nie prosiły, żadna konfiguracja tego nie uratuje.
Ile to kosztuje
Koszt dzieli się na dwie części.
Po stronie narzędzi Resend ma darmowy pułap wystarczający dla małej firmy usługowej, a płatne plany zaczynają się od kilkudziesięciu złotych miesięcznie przy większym wolumenie. React Email jest biblioteką open source, więc nie generuje opłat licencyjnych.
Po stronie wdrożenia liczy się liczba szablonów i integracji. Podpięcie wysyłki do istniejącego formularza rezerwacji z jednym potwierdzeniem i jednym powiadomieniem to zwykle kilka godzin pracy. Pełny zestaw wiadomości, konfiguracja domeny, logowanie statusów i połączenie z CRM to już osobny etap projektu. Orientacyjne widełki dla całych wdrożeń znajdziesz w cenniku.
W praktyce ten koszt zwraca się na jednym elemencie: mniejszej liczbie nieodebranych terminów i telefonów z pytaniem, czy rezerwacja przeszła.
Dla jakich branż to ma sens
Warstwa mailowa opisana wyżej przydaje się wszędzie tam, gdzie termin jest towarem:
- salony beauty, gabinety kosmetyczne i medycyny estetycznej,
- fizjoterapia, masaż i gabinety zdrowotne,
- warsztaty samochodowe i serwisy,
- wypożyczalnie sprzętu,
- szkoły językowe i firmy szkoleniowe,
- hotele, apartamenty i obiekty rezerwowane na doby,
- firmy usługowe pracujące na wizytach i konsultacjach.
Wspólny mianownik jest prosty. Im droższy jest pojedynczy nieodebrany termin, tym szybciej zwraca się porządna wysyłka potwierdzeń.
Podsumowanie i CTA
Resend i React Email nie są egzotycznym wyborem technologicznym. To po prostu rozdzielenie dwóch odpowiedzialności, które w prowizorycznych wdrożeniach są zlepione w jedno: dostarczalność wiadomości i jej treść. Jedno narzędzie pilnuje, żeby mail dotarł i żeby dało się sprawdzić, co się z nim stało. Drugie pilnuje, żeby treść była spójna, czytelna na telefonie i łatwa do zmiany.
Dla firmy najważniejszy jest efekt końcowy. Klient dostaje potwierdzenie w kilka sekund po rezerwacji, ma je w skrzynce odbiorczej, a nie w spamie, i widzi w nim wszystko, czego potrzebuje. Firma widzi u siebie, że wiadomość została wysłana, i nie musi tego zgadywać przy każdym telefonie.
Jeżeli chcesz uporządkować powiadomienia w swoim systemie rezerwacji, zobacz system rezerwacji Next.js i automatyzację procesów firmowych albo skontaktuj się z nami, żeby omówić zakres dopasowany do Twojej firmy.

O autorze
Krzysztof Olejnik
Wdrażam Dolibarr CRM, systemy rezerwacji i automatyzacje procesów dla małych firm usługowych i B2B. Piszę tu o rzeczach, które realnie wdrażam u klientów: integracjach formularzy z CRM, obsłudze leadów, rezerwacjach online i Next.js.
Powiązane wpisy
Chcesz wdrożyć podobne rozwiązanie?
Możemy pomóc w uporządkowaniu CRM, formularzy, rezerwacji, leadów i automatyzacji procesów w Twojej firmie.