SMS w Make z własnego numeru: wysyłka i odbiór

Sprawdzone z dokumentacją:

W Make wysyłasz SMS modułem HTTP → Make a request: POST https://smsportal.app/api/v1/gateway/send-sms, klucz API w nagłówku x-api-key i JSON z recipients oraz message. Odpowiedzi klientów odbiera wyzwalacz Webhooks → Custom webhook, do którego smsportal wysyła zdarzenie MESSAGE_RECEIVED. SMS wychodzi z Twojego telefonu z Androidem, więc klient widzi Twój numer i może odpisać.

Czego potrzebujesz

  • Konto Make (aplikacje HTTP i Webhooks są wbudowane, nie trzeba ich instalować).
  • Konto smsportal z podłączonym telefonem z Androidem i kartą SIM.
  • Klucz API z panelu smsportal (Klucze API → Wygeneruj klucz API).
  • Numery odbiorców z kierunkowym kraju, np. +48600100200.

Jak wysłać SMS z Make

  1. Dodaj moduł HTTP → Make a request

    W scenariuszu dodaj aplikację HTTP i moduł Make a request. Ustaw URL https://smsportal.app/api/v1/gateway/send-sms i Method POST.

  2. Zapisz klucz API w Credentials

    W Authentication type wybierz API key, potem Credentials → utwórz klucz: Name smsportal, Key to sam klucz z panelu (bez żadnego prefiksu), API key placement In the header, API key parameter name x-api-key. Make trzyma klucz w sekcji Keys, więc nie wpisujesz go w polu Headers i zmieniasz w jednym miejscu.

  3. Wklej ciało JSON

    Body content type application/JSON, Body input method JSON string, w treść wklej JSON poniżej. {{1.phone}} i {{1.name}} to pola z modułu nr 1: usuń je i wstaw swoje z panelu mapowania. Opcjonalnie dodaj deviceId (kilka telefonów), simSubscriptionId (telefon z dwiema kartami) albo scheduledAt (wysyłka później, czas ISO 8601).

    Treść ciała (JSON string)
    {
      "recipients": ["{{1.phone}}"],
      "message": "Dzień dobry {{1.name}}, mamy Twoje zgłoszenie. Odpisz na ten numer, jeśli masz pytania."
    }
  4. Włącz zatrzymanie przy błędzie

    Parse response ustaw na Yes. W Advanced settings włącz Return error if HTTP request fails, żeby odpowiedź 401, 400 albo 429 zatrzymała scenariusz i była widoczna w historii.

  5. Przetestuj na własnym numerze

    Wpisz na próbę swój numer i kliknij Run once. Odpowiedź 200 z polem data oznacza, że wiadomość trafiła do kolejki. Status (wysłana, doręczona) zobaczysz w panelu smsportal.

Jak odebrać odpowiedź klienta w Make

Gdy telefon odbierze SMS, smsportal wysyła POST z JSON-em na adres webhooka. Make rozbija JSON na pola do mapowania: sender (numer nadawcy), message (treść), receivedAt i webhookEvent. Każde żądanie ma nagłówek X-Signature: HMAC-SHA256 surowego ciała, liczony Twoim sekretem podpisu, zapisany szesnastkowo.

  1. Utwórz nowy scenariusz z wyzwalaczem Webhooks → Custom webhook. Obok pola Webhook kliknij **Add**, wpisz Webhook name, kliknij **Save** i skopiuj wygenerowany adres.
  2. W panelu smsportal otwórz Webhooki → Utwórz webhook, wklej adres, wpisz sekret podpisu (co najmniej 20 znaków) i zaznacz zdarzenie MESSAGE_RECEIVED.
  3. Kliknij Run once i wyślij SMS na swój telefon z innego numeru. Make rozpozna pola i pozwoli je mapować, np. SMS od {{1.sender}}: {{1.message}}. Gdy później dodasz pola albo zdarzenia, kliknij w module **Detect new values** i wyślij kolejny SMS.
  4. Aktywuj scenariusz. Webhook uruchamia go od razu po każdym SMS-ie, a domyślna odpowiedź Make (200 Accepted) wystarcza, moduł Webhook response nie jest potrzebny.
  5. Żeby sprawdzić podpis, w Advanced settings webhooka włącz Get request headers i JSON pass-through. Funkcja sha256 z sekretem jako kluczem i kodowaniem hex policzy skrót surowego ciała; porównaj go w filtrze z nagłówkiem x-signature, a pola wyciągnij modułem JSON → Parse JSON.
Przykładowe ciało zdarzenia MESSAGE_RECEIVED
{
  "smsId": "6720f0c2a1b2c3d4e5f60718",
  "message": "Potwierdzam wizytę",
  "deviceId": "671f9e10a1b2c3d4e5f60001",
  "webhookSubscriptionId": "671fa001a1b2c3d4e5f60002",
  "webhookEvent": "MESSAGE_RECEIVED",
  "idempotencyKey": "3f1c9a8e-5d2b-4c7a-9e1f-2b6d8c0a4e57",
  "sender": "+48600100200",
  "receivedAt": "2026-10-28T09:41:00.000Z"
}

Gotowe scenariusze

  • Zgłoszenie z formularza dostaje SMS z potwierdzeniem

    Typeform → Watch Responses albo Google Forms → Watch Responses uruchamia scenariusz, a HTTP Make a request wysyła SMS na numer z formularza. Ustaw pole telefonu tak, żeby zbierało numer z kierunkowym kraju, inaczej API odrzuci odbiorcę.

  • Odpowiedź klienta trafia do arkusza albo CRM

    Custom webhook z MESSAGE_RECEIVED, potem Google Sheets → Add a Row z kolumnami sender, message i receivedAt. Zamiast arkusza możesz wyszukać kontakt w CRM po numerze sender i dopisać treść jako notatkę.

  • Codzienna wysyłka z arkusza jednym żądaniem

    Harmonogram raz dziennie, Google Sheets → Search Rows wybiera wiersze na dziś, Array aggregator zbiera je w listę, a jeden moduł HTTP wysyła ją do https://smsportal.app/api/v1/gateway/send-bulk-sms jako messages (każdy element ma własne recipients i message). Jedno żądanie zużywa jeden kredyt zamiast jednego na wiersz.

Błędy i rozwiązania

Moduł HTTP zwraca 401
Przyczyna: Klucz w nagłówku Authorization zamiast x-api-key, dopisany prefiks przed kluczem albo zły klucz.
Co zrobić: W Credentials ustaw API key parameter name na x-api-key, a w polu Key wpisz sam klucz z panelu. Sprawdź, czy nie ma spacji na początku i końcu.
400 tylko przy niektórych wiadomościach
Przyczyna: Zmapowana treść zawiera cudzysłów albo znak nowej linii, a tryb JSON string nie zabezpiecza takich znaków, więc JSON jest niepoprawny.
Co zrobić: Przełącz Body input method na Data structure: recipients jako tablica tekstów, message jako tekst. Make sam zabezpieczy znaki specjalne.
400 przy każdej wysyłce
Przyczyna: Brak włączonego telefonu na koncie, niepotwierdzony e-mail albo recipients nie jest listą.
Co zrobić: Sprawdź w panelu, czy telefon jest włączony, a e-mail potwierdzony. recipients musi mieć postać ["+48600100200"].
API odpowiada 200, ale SMS nie wychodzi
Przyczyna: Telefon jest offline albo Android usypia aplikację.
Co zrobić: Sprawdź zasięg, internet i ekran stanu telefonu w panelu. Wiadomość czeka w kolejce do 72 godzin, potem wygasa.
Webhook przestał przyjmować SMS-y
Przyczyna: Scenariusz jest wyłączony albo webhook przez ponad 5 dni nie był podpięty do żadnego scenariusza i Make zwraca 410 Gone. smsportal przestaje ponawiać po 3 próbach z błędem 4xx, a subskrypcję, która ciągle zawodzi, wstrzymuje.
Co zrobić: Podepnij webhook do scenariusza i aktywuj go. Potem sprawdź w panelu smsportal (Webhooki), czy subskrypcja działa.
429 przy wysyłce
Przyczyna: Wyczerpany limit SMS-ów w pakiecie.
Co zrobić: Treść odpowiedzi mówi, który limit się skończył. Sprawdź licznik w panelu albo zmień pakiet w Cenniku.

Najczęstsze pytania

Czy smsportal ma własną aplikację w Make?

Nie ma. Wystarczą dwie wbudowane aplikacje Make: HTTP (moduł Make a request) do wysyłki i Webhooks (Custom webhook) do odbioru odpowiedzi.

Ile kredytów Make zużywa jeden SMS?

Make rozlicza się w kredytach (do sierpnia 2025 w operacjach). W aplikacjach bez AI jedno wykonanie modułu to jeden kredyt, więc scenariusz z wyzwalaczem i modułem HTTP zużywa zwykle dwa kredyty na wiadomość. smsportal nie pobiera opłat za pojedynczy SMS: płacisz abonament karty SIM u operatora.

Ile SMS-ów Make może wysłać naraz?

Make wyśle żądania szybko, ale telefon wysyła SMS-y z przerwą między wiadomościami (domyślnie 5 sekund, czyli około 720 na godzinę z jednego telefonu). Duże wysyłki rozłóż w czasie albo dodaj kolejny telefon.

Czy Make wie, że SMS został doręczony?

Odpowiedź modułu HTTP mówi tylko, że wiadomość przyjęto do kolejki. O wysłaniu i doręczeniu informują zdarzenia `MESSAGE_SENT` i `MESSAGE_DELIVERED`, które odbierzesz osobnym Custom webhook.

Czy nadaje się do kampanii marketingowych?

Nie. Z karty SIM wysyłaj wiadomości, których klient się spodziewa: potwierdzenia, przypomnienia, odpowiedzi. Masowe kampanie wysyłaj przez operatora SMS z nazwą nadawcy.

Źródła

  1. Make: HTTP (Make a request)
  2. Make: API key authentication type
  3. Make: Webhooks (Custom webhook)
  4. Make: Webhooks, kolejka i limity
  5. Make: Credits
  6. smsportal: dokumentacja API

Więcej w poradnikach

Wyślij pierwszego SMS-a jeszcze dziś

Załóż darmowe konto, podłącz telefon i sprawdź, jak klienci reagują na wiadomości z Twojego numeru.