Jak wysyłać SMS w Make i Zapier bez opłat za pojedynczą wiadomość
Dodaj wysyłkę SMS do scenariusza Make lub Zapa w Zapier: moduł HTTP, Webhooks by Zapier, nagłówek x-api-key i odbiór odpowiedzi klientów webhookiem.
Make i Zapier nie mają gotowej aplikacji do wysyłki SMS z Twojego numeru, ale oba potrafią wysłać żądanie HTTP i odebrać webhook, a tyle wystarczy do wysyłania SMS w Make i Zapier. Wiadomość wychodzi z telefonu z Androidem i Twoją kartą SIM, więc nie płacisz za pojedynczy SMS, a klient może odpisać. Poniżej dokładne ustawienia modułów w obu narzędziach.
Czego potrzebujesz przed konfiguracją?
Potrzebujesz konta w smsportal z podłączonym telefonem, klucza API oraz konta w Make lub Zapierze. Telefon i klucz konfigurujesz jednorazowo, jak opisano w instrukcji wysyłki SMS przez API.
- konto w smsportal, telefon podłączony kodem QR i klucz API,
- Make (moduły HTTP i Webhooks są w planie bezpłatnym) lub Zapier z płatnym planem (patrz niżej),
- numery odbiorców w formacie międzynarodowym, np.
+48600100200.
Uwaga: w REST API nagłówek to
x-api-key, nieAuthorization. To najczęstsza pomyłka przy pierwszej konfiguracji.
Jak wysłać SMS w Make? Moduł HTTP „Make a request”
W Make dodaj aplikację HTTP i moduł Make a request. Ustaw metodę POST, adres https://smsportal.app/api/v1/gateway/send-sms, nagłówek x-api-key i ciało JSON. Moduł służy do wywołania dowolnego API i działa w planie bezpłatnym.
| Pole w Make | Wartość |
|---|---|
| URL | https://smsportal.app/api/v1/gateway/send-sms |
| Method | POST |
| Headers | pozycja: x-api-key = Twój klucz API |
| Body content type | application/json |
| Body input method | JSON string |
| Request content | patrz niżej |
| Parse response | Yes |
Zawartość pola Request content, z polami zmapowanymi z poprzednich modułów (w Make wstawiasz je z panelu mapowania):
{
"recipients": ["{{1.phone}}"],
"message": "Dzień dobry {{1.name}}, Twoje zamówienie {{1.order_id}} jest gotowe do odbioru."
}{{1.phone}} to pole z modułu nr 1 (np. Google Sheets → Watch New Rows). W Twoim scenariuszu numer modułu i nazwy pól będą inne, więc klikaj je z listy zamiast przepisywać.
Po uruchomieniu moduł zwraca odpowiedź API (przy włączonym Parse response możesz mapować jej pola dalej). To potwierdza przyjęcie wiadomości, a nie dostarczenie: status „dostarczona” przychodzi później jako zdarzenie MESSAGE_DELIVERED.
Jak odebrać SMS w Make? Webhooks „Custom webhook”
Dodaj na początku scenariusza moduł Webhooks → Custom webhook, kliknij Add, nazwij webhook i zapisz. Make wygeneruje adres, który wklejasz w panelu smsportal w sekcji Webhooki ze zdarzeniem MESSAGE_RECEIVED.
- W scenariuszu wybierz Webhooks → Custom webhook, kliknij Add, podaj nazwę i Save.
- Skopiuj wygenerowany adres.
- W panelu smsportal dodaj webhook z tym adresem i zdarzeniem
MESSAGE_RECEIVED. - Odpowiedz na SMS z innego telefonu. W Make kliknij Run once, aby moduł rozpoznał strukturę danych (
sender,message,receivedAti inne). - Dołącz dalsze moduły, np. Slack → Create a Message z treścią
SMS od {{1.sender}}: {{1.message}}.
Każde żądanie ma nagłówek X-Signature (HMAC-SHA256 ciała) i idempotencyKey do odfiltrowania powtórek. Dokładny opis bezpieczeństwa znajdziesz w artykule o odbieraniu SMS przez webhook.
Jak wysłać SMS w Zapierze? Webhooks by Zapier
W Zapierze użyj akcji Webhooks by Zapier ze zdarzeniem Custom Request (lub POST), a do odbioru odpowiedzi wyzwalacza Catch Hook. Ta aplikacja jest dostępna w planach Professional, Team i Enterprise, nie w planie bezpłatnym.
Najpewniej działa Custom Request, bo pozwala wysłać dokładnie taki JSON, jakiego oczekuje API (pole recipients jest tablicą):
| Pole w Zapierze | Wartość |
|---|---|
| Action Event | Custom Request |
| Method | POST |
| URL | https://smsportal.app/api/v1/gateway/send-sms |
| Data | surowy JSON (poniżej) |
| Headers (1) | x-api-key = Twój klucz API |
| Headers (2) | Content-Type = application/json |
W polu Data wklej treść, wstawiając pola z poprzednich kroków:
{"recipients": ["{{phone}}"], "message": "Dzien dobry, Twoje zamowienie jest gotowe."}W Zapierze klikasz pola z poprzedniego kroku zamiast pisać {{phone}}: edytor wstawi je w odpowiednim formacie. Akcja POST z typem danych JSON tworzy obiekt z pól klucz–wartość, więc dla tablicy recipients prościej użyć Custom Request.
Wskazówka: Zapier od niedawna zmienia nazwy planów i ich zakres. Przed zakupem sprawdź w pomocy Zapiera, czy Twój plan obejmuje Webhooks by Zapier.
Odbiór SMS w Zapierze: Catch Hook
Utwórz Zapa z wyzwalaczem Webhooks by Zapier → Catch Hook. Zapier poda adres, który wklejasz w panelu smsportal ze zdarzeniem MESSAGE_RECEIVED. Wyślij testowy SMS, kliknij Test trigger, a potem dołącz akcję, np. wpis w CRM lub wiadomość na Slacku.
Make czy Zapier: co wybrać do SMS-ów?
Make jest tańszy przy wielu krokach i ma moduły HTTP oraz Webhooks w planie bezpłatnym. Zapier ma prostszy edytor, ale wymaga płatnego planu dla Webhooks by Zapier. Jeśli możesz hostować własną instancję i lubisz pełną kontrolę, rozważ n8n.
| Make | Zapier | n8n | |
|---|---|---|---|
| Wysyłanie | HTTP „Make a request” | Webhooks by Zapier (POST / Custom Request) | HTTP Request |
| Odbiór | Webhooks „Custom webhook” | Webhooks by Zapier „Catch Hook” | Webhook |
| Plan bezpłatny | tak | nie dla Webhooks | własna instancja |
| Własny serwer | nie | nie | tak |
Zakres planów zmienia się, więc traktuj tabelę jako stan na 2026 i sprawdzaj cenniki narzędzi.
Jak przetestować scenariusz przed uruchomieniem?
Uruchom scenariusz raz na własnym numerze i sprawdź cały łańcuch: żądanie, status w panelu i odpowiedź przez webhook. W Make służy do tego Run once, w Zapierze Test action i Test trigger. Dopiero po udanym teście włącz harmonogram lub Zapa.
- Wpisz na stałe swój numer w formacie
+48…i krótki tekst bez polskich liter. - W Make kliknij Run once i obejrzyj dymek przy module HTTP: kod odpowiedzi powinien być 2xx. W Zapierze kliknij Test action i sprawdź odpowiedź.
- Zajrzyj do panelu smsportal: wiadomość powinna przejść z „w kolejce” do „wysłana” i „dostarczona”.
- Odpisz z drugiego telefonu. W Make moduł Custom webhook przy włączonym Run once pokaże odebrane dane, w Zapierze Catch Hook pokaże próbkę po Test trigger.
- Zamień numer testowy na mapowanie z prawdziwych danych dopiero na końcu.
Wskazówka: w Make filtr (Filter) między modułami może przepuszczać wyłącznie Twój numer na czas prób. Błąd w mapowaniu nie wyśle wtedy SMS-ów do klientów.
Najczęstsze problemy: dlaczego SMS z Make lub Zapiera nie działa?
Najczęstsze przyczyny to zły nagłówek, numer bez prefiksu kraju, wyłączony telefon, niedostępny adres webhooka i polskie litery zwiększające liczbę części. Sprawdź je w tej kolejności, zanim zaczniesz szukać błędu w scenariuszu.
| Objaw | Przyczyna | Co zrobić |
|---|---|---|
| 401 lub 403 | Nagłówek Authorization zamiast x-api-key albo zły klucz | Dodaj nagłówek x-api-key z kluczem z panelu. Sprawdź spacje na początku i końcu wartości |
| 400 | recipients nie jest tablicą albo numer jest bez +48 | Wyślij ["+48600100200"] (format E.164). W Zapierze użyj Custom Request z surowym JSON-em |
| SMS „w kolejce” bez końca | Telefon offline lub oszczędzanie baterii wstrzymuje aplikację | Sprawdź zasięg, internet i ekran zdrowia urządzenia. Kolejka czeka do 72 godzin, potem wiadomość wygasa |
| Webhook nie dochodzi | Adres nie jest publicznym adresem HTTPS albo scenariusz jest wyłączony | Wklej w panelu adres skopiowany z Make lub Zapiera i włącz scenariusz. W Make przy testach użyj Run once, bo bez niego webhook nie przetworzy danych |
| Jeden SMS zajmuje kilka części | Polskie litery przełączyły kodowanie na UCS-2 | Usuń ogonki lub skróć treść do 70 znaków. W jednej części GSM-7 mieści się 160 znaków |
W historii wykonań Make (History) i w historii Zapa (Zap history) widać każde wywołanie z danymi wejściowymi i odpowiedzią. Najpierw sprawdź, czy żądanie w ogóle wyszło, a dopiero potem szukaj przyczyny w telefonie.
Ograniczenia tego podejścia
Telefon wysyła SMS-y w odstępach (domyślnie 5 sekund, ok. 720 na godzinę), więc scenariusze z tysiącami wiadomości trzeba rozłożyć w czasie lub podzielić między kilka telefonów. To rozwiązanie na SMS-y transakcyjne i rozmowy z klientem, nie na kampanie masowe. Przykład użycia w sklepie: powiadomienia SMS o zamówieniu.
Następny krok
Załóż bezpłatne konto smsportal, wygeneruj klucz API i wyślij pierwszy SMS modułem HTTP w Make. Pola żądania opisuje dokumentacja API, a przykłady w kodzie artykuł o PHP, Pythonie i Node.js.
Najczęściej zadawane pytania
Czy w Make i Zapier jest gotowa aplikacja smsportal?
Nie. smsportal nie ma natywnej aplikacji w Make ani Zapier. Używasz ogólnych modułów: HTTP „Make a request” i Webhooks „Custom webhook” w Make oraz Webhooks by Zapier (POST, Custom Request i Catch Hook) w Zapierze.
Czy Webhooks by Zapier jest płatne?
Tak. Według pomocy Zapiera aplikacja Webhooks by Zapier jest dostępna w planach Professional, Team i Enterprise, a w planie bezpłatnym nie. Nazwy i zakres planów zmieniają się, więc sprawdź cennik Zapiera. W Make moduły HTTP i Webhooks są dostępne w planie bezpłatnym.
Jakiego nagłówka użyć do uwierzytelnienia w Make lub Zapier?
Nagłówka x-api-key z kluczem API z panelu smsportal. Nie używaj Authorization ani Bearer: ten nagłówek obowiązuje tylko w serwerze MCP, a w REST API skutkuje błędem 401.
Jak odebrać odpowiedź klienta w Make lub Zapier?
W Make dodaj wyzwalacz Webhooks → Custom webhook, w Zapierze wyzwalacz Webhooks by Zapier → Catch Hook. Skopiowany adres wklej w panelu smsportal w sekcji Webhooki, zaznaczając zdarzenie MESSAGE_RECEIVED.
Czy Make i Zapier liczą każdy SMS jako operację?
Tak, ale jako operację platformy automatyzacji, nie opłatę za SMS. smsportal nie pobiera opłat za pojedyncze wiadomości, a SMS-y płacisz w swoim abonamencie komórkowym. Limit operacji zależy od planu w Make lub Zapierze.


