SMS z Make (Integromat): moduł HTTP i blueprint do importu
Google Forms, Shopify, kalendarz, CRM, arkusz — każdy scenariusz w Make może wysłać SMS przez API Przypominamy.com jednym modułem „Make a request". Statusy doręczenia wracają do Custom Webhooka, podpisane HMAC.
Moduł HTTP „Make a request"
Dodaj moduł HTTP → Make a request za triggerem i ustaw pola dokładnie jak niżej. Nie potrzebujesz aplikacji z katalogu ani połączenia OAuth — wystarczy klucz API z panelu.
| Pole | Wartość |
|---|---|
| URL | https://api.przypominamy.com/v1/messages |
| Method | POST |
| Headers | 1. Authorization = Bearer pk_live_… (do testów pk_test_…)2. Idempotency-Key = {{1.id}} lub inna wartość unikalna dla zdarzenia (opcjonalnie, zalecane) |
| Body type | Raw |
| Content type | JSON (application/json) |
| Request content | {
"to": "{{1.phone}}",
"text": "Dzień dobry {{1.name}}, przypominamy o wizycie {{formatDate(1.date; "DD.MM.YYYY HH:mm")}}.",
"reference": "wizyta-{{1.id}}"
} |
| Parse response | Yes — w kolejnych modułach użyjesz {{2.data.id}}, {{2.data.status}}, {{2.data.parts}} |
| Evaluate all states as errors | Yes — błędy 4xx/5xx zatrzymają scenariusz zamiast przejść dalej z pustą odpowiedzią |
Klucz API przechowuj jako zmienną scenariusza lub w Data store, nie wpisuj go na sztywno w wielu modułach. Pola opcjonalne w JSON-ie: from (własny nadpis), send_at (ISO 8601 — {{formatDate(addHours(now; 24); "YYYY-MM-DDTHH:mm:ssZ")}} wyśle za dobę) oraz tablica w to dla wielu odbiorców (do 500). Wartości z Make wstawiaj w cudzysłowach, a tekst z możliwymi cudzysłowami przepuść przez replace(…; """"; "\""), żeby JSON pozostał poprawny.
Retry-After.Trzy gotowe scenariusze
Google Forms → SMS z potwierdzeniem
Zapis na szkolenie, badanie lub konsultację przez formularz Google. Uczestnik dostaje SMS z terminem i adresem chwilę po wysłaniu odpowiedzi.
- Google Forms → Watch Responses (trigger, co 15 minut lub instant przez Apps Script).
- Tools → Set variable:
phone= numer w formacie +48… (patrz FAQ). - HTTP → Make a request z
reference: "form-" + responseId.
Shopify → potwierdzenie zamówienia i wysyłki
Nowe zamówienie wysyła SMS z numerem i kwotą; zmiana statusu na „wysłane" — SMS z linkiem do śledzenia paczki.
- Shopify → Watch Orders (Created) i drugi trigger Watch Fulfillments.
- Router z filtrem po statusie.
- HTTP:
to: {{1.customer.phone}},textz numerem zamówienia,reference: "order-" + {{1.id}},Idempotency-Key= to samo.
Kalendarz → przypomnienie dzień przed
Scenariusz uruchamiany codziennie o 10:00 pobiera jutrzejsze wydarzenia i wysyła SMS do uczestnika z numerem w opisie lub w polu gościa.
- Google Calendar → Search Events: od
addDays(now;1)00:00 do 23:59. - Iterator po wydarzeniach; Text parser wyciąga numer z opisu.
- HTTP z
reference: "event-" + {{2.id}}; Google Calendar → Update Event dodaje znacznik „SMS wysłany".
Custom Webhook na zdarzenia message.*
Osobny scenariusz z modułem Webhooks → Custom webhook odbiera statusy doręczenia. Skopiuj adres webhooka (https://hook.eu1.make.com/…) i zarejestruj go w API:
curl -X PUT https://api.przypominamy.com/v1/account/webhook \
-H "Authorization: Bearer $PRZYPOMINAMY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://hook.eu1.make.com/abc123…"}'
# odpowiedź: { "url": "…", "webhook_secret": "whsec_…" }
Po rejestracji kliknij w Make „Redetermine data structure" i wyślij jeden testowy SMS — Make nauczy się struktury: type (message.sent, message.delivered, message.undelivered, message.failed, message.expired) oraz data.message z polami id, status, to, reference, delivered_at. Dalej: Router po type i akcje — aktualizacja rekordu w Airtable/Sheets, e-mail do obsługi przy failed, ponowna próba innym kanałem przy expired.
Weryfikacja podpisu HMAC
Nagłówek X-Przypominamy-Signature: t=<unix>,v1=<hex>, gdzie v1 = HMAC-SHA256(webhook_secret, "<t>.<surowe body>"). W Custom webhooku włącz opcję Get request headers i Pass through raw body (w ustawieniach zaawansowanych webhooka), a następnie w module Tools → Set variable policz oczekiwany podpis funkcją Make: sha256(t + "." + rawBody; "hex"; webhook_secret) i porównaj z v1 w Filtrze. Odrzucaj także zdarzenia, w których t różni się od timestamp(now) o więcej niż 300 sekund. Jeśli wolisz weryfikację w kodzie, przykłady dla Node.js, Pythona i PHP znajdziesz na stronie /sdk.
Blueprint do importu
Zapisz poniższy JSON jako przypominamy-sms.json, w Make otwórz nowy scenariusz i wybierz … → Import Blueprint. Blueprint zawiera jeden moduł HTTP z kompletną konfiguracją; po imporcie podmień klucz w nagłówku Authorization na swój pk_test_…, wpisz jeden ze swoich zweryfikowanych numerów i kliknij „Run once". Potem dołóż trigger z lewej strony i podmień wartości w body na zmienne z triggera.
{
"name": "Przypominamy.com — wyślij SMS",
"flow": [
{
"id": 1,
"module": "http:ActionSendData",
"version": 3,
"parameters": {
"handleErrors": true,
"useNewZLibDeCompress": true
},
"mapper": {
"url": "https://api.przypominamy.com/v1/messages",
"method": "post",
"headers": [
{
"name": "Authorization",
"value": "Bearer pk_test_WKLEJ_SWOJ_KLUCZ"
},
{
"name": "Idempotency-Key",
"value": "wizyta-4521-przypomnienie"
}
],
"qs": [],
"bodyType": "raw",
"parseResponse": true,
"authUser": "",
"authPass": "",
"timeout": "",
"shareCookies": false,
"ca": "",
"rejectUnauthorized": true,
"followRedirect": true,
"useQuerystring": false,
"gzip": true,
"useMtls": false,
"contentType": "application/json",
"data": "{\"to\": \"+48600123456\", \"text\": \"Przypominamy o wizycie jutro o 14:00. Odwolaj: 22 123 45 67\", \"reference\": \"wizyta-4521\"}",
"followAllRedirects": false
},
"metadata": {
"designer": {
"x": 0,
"y": 0
},
"restore": {
"expect": {
"method": {
"mode": "chose",
"label": "POST"
},
"headers": {
"mode": "chose"
},
"qs": {
"mode": "chose"
},
"bodyType": {
"label": "Raw"
},
"contentType": {
"label": "JSON (application/json)"
}
}
},
"parameters": [
{
"name": "handleErrors",
"type": "boolean",
"label": "Evaluate all states as errors (except for 2xx and 3xx )",
"required": true
},
{
"name": "useNewZLibDeCompress",
"type": "hidden"
}
],
"expect": [
{
"name": "url",
"type": "url",
"label": "URL",
"required": true
},
{
"name": "method",
"type": "select",
"label": "Method",
"required": true
},
{
"name": "headers",
"type": "array",
"label": "Headers"
},
{
"name": "qs",
"type": "array",
"label": "Query String"
},
{
"name": "bodyType",
"type": "select",
"label": "Body type"
},
{
"name": "parseResponse",
"type": "boolean",
"label": "Parse response",
"required": true
},
{
"name": "contentType",
"type": "select",
"label": "Content type"
},
{
"name": "data",
"type": "buffer",
"label": "Request content"
}
]
}
}
],
"metadata": {
"instant": false,
"version": 1,
"scenario": {
"roundtrips": 1,
"maxErrors": 3,
"autoCommit": true,
"autoCommitTriggerLast": true,
"sequential": false,
"slots": null,
"confidential": false,
"dataloss": false,
"dlq": false,
"freshVariables": false
},
"designer": {
"orphans": []
},
"zone": "eu1.make.com"
}
}
Częste pytania o Make + SMS
Czy w Make jest gotowa aplikacja Przypominamy.com?
Ile operacji Make zużywa wysłanie SMS-a?
Jak przekazać numer telefonu w poprawnym formacie?
Co się dzieje, gdy Make powtórzy wykonanie scenariusza?
Jak odebrać w Make status doręczenia?
Powiązane integracje
Pierwszy scenariusz z SMS-em dziś
Konto testowe z 25 darmowymi SMS-ami i kluczem pk_test_… działa od razu po rejestracji, bez karty. Importuj blueprint, wklej klucz, uruchom.