Dokumentacja / Przewodniki

Szablony

3 min czytania

Szablony pozwalają tworzyć wielokrotnego użytku projekty email, które możesz wysyłać z dynamiczną treścią. Zdefiniuj układ raz, potem personalizuj dla każdego odbiorcy.

Dlaczego warto używać szablonów

Bez szablonów:

  • Duplikujesz HTML w każdym wywołaniu API
  • Trudno utrzymać spójny branding
  • Zmiany wymagają aktualizacji wszystkich integracji
  • Łatwo o błędy

Z szablonami:

  • Definiujesz układ raz, używasz wszędzie
  • Aktualizujesz branding w jednym miejscu
  • Nietechniczne osoby mogą edytować
  • Podgląd i testy przed wysyłką

Tworzenie szablonu

Przez Dashboard

  1. Przejdź do Szablony
  2. Kliknij Utwórz szablon
  3. Zaprojektuj email używając wizualnego edytora
  4. Dodaj zmienne dla dynamicznej treści
  5. Podgląd i test
  6. Kliknij Zapisz

Przez API

curl -X POST https://api.mailingapi.com/v1/templates \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "welcome_email",
    "subject": "Witaj w {{company_name}}, {{name}}!",
    "html": "<h1>Witaj, {{name}}!</h1><p>Twoje konto jest gotowe.</p>",
    "text": "Witaj, {{name}}!\n\nTwoje konto jest gotowe."
  }'

Odpowiedź:

{
  "id": "tmpl_abc123",
  "name": "welcome_email",
  "subject": "Witaj w {{company_name}}, {{name}}!",
  "status": "active",
  "created_at": "2024-01-15T10:00:00Z"
}

Zmienne w szablonach

Używaj podwójnych nawiasów klamrowych dla dynamicznej treści:

<h1>Cześć, {{name}}!</h1>
<p>Twoje zamówienie #{{order_id}} zostało wysłane.</p>
<p>Śledź je tutaj: <a href="{{tracking_url}}">{{tracking_url}}</a></p>

Typy zmiennych

Proste wartości:

{{name}}
{{email}}
{{order_id}}

Zagnieżdżone obiekty:

{{user.first_name}}
{{order.total}}
{{company.address.city}}

Wartości domyślne:

{{name|default:"Kliencie"}}
{{company|default:"Nasz Zespół"}}

Zmienne zarezerwowane

Te są dostępne automatycznie:

Zmienna Opis
{{unsubscribe_url}} Link do wypisania jednym kliknięciem
{{preferences_url}} Strona preferencji email
{{view_in_browser}} Wersja webowa emaila
{{current_year}} Aktualny rok (np. 2024)

Warunki

Wyświetlaj treść na podstawie warunków:

{{#if premium_user}}
  <p>Dziękujemy za bycie członkiem premium!</p>
{{else}}
  <p>Przejdź na premium po ekskluzywne korzyści.</p>
{{/if}}

Sprawdzanie wartości:

{{#if tracking_number}}
  <p>Śledź swoją paczkę: {{tracking_number}}</p>
{{/if}}

Porównywanie wartości:

{{#if order_total > 100}}
  <p>Kwalifikujesz się do darmowej wysyłki!</p>
{{/if}}

Pętle

Iteracja po tablicach:

<h2>Twoje zamówienie:</h2>
<ul>
{{#each items}}
  <li>{{this.name}} - {{this.price}} zł</li>
{{/each}}
</ul>

Z indeksem:

{{#each items}}
  <tr class="{{#if @odd}}odd{{/if}}">
    <td>{{@index}}. {{this.name}}</td>
  </tr>
{{/each}}

Części wspólne (Partials)

Wykorzystuj wspólne sekcje w wielu szablonach:

Utwórz partial

curl -X POST https://api.mailingapi.com/v1/templates/partials \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "name": "footer",
    "html": "<footer><p>© {{current_year}} {{company_name}}</p></footer>"
  }'

Użyj w szablonach

<body>
  <h1>Witamy!</h1>
  <p>Treść tutaj...</p>

  {{> footer}}
</body>

Typowe partials:

  • Nagłówki z logo
  • Stopki z tekstem prawnym
  • Linki do social media
  • Bloki adresowe

Wysyłka z szablonami

Podstawowa wysyłka

curl -X POST https://api.mailingapi.com/v1/messages/send \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@twojadomena.pl",
    "to": "user@example.com",
    "template_id": "tmpl_abc123",
    "variables": {
      "name": "Jan",
      "order_id": "12345",
      "company_name": "Acme Sp. z o.o."
    }
  }'

Wysyłka batch z szablonami

curl -X POST https://api.mailingapi.com/v1/messages/batch \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@twojadomena.pl",
    "template_id": "tmpl_abc123",
    "recipient_variables": {
      "alice@example.com": {"name": "Alicja", "order_id": "001"},
      "bob@example.com": {"name": "Robert", "order_id": "002"}
    }
  }'

Wersje szablonów

Śledź zmiany z wersjonowaniem:

Utwórz nową wersję

curl -X POST https://api.mailingapi.com/v1/templates/tmpl_abc123/versions \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "html": "<h1>Zaktualizowany email powitalny</h1>...",
    "changelog": "Odświeżony design na 2024"
  }'

Lista wersji

curl https://api.mailingapi.com/v1/templates/tmpl_abc123/versions \
  -H "Authorization: Bearer $API_KEY"

Przywróć wersję

curl -X POST https://api.mailingapi.com/v1/templates/tmpl_abc123/versions/2/restore \
  -H "Authorization: Bearer $API_KEY"

Podgląd i testowanie

Podgląd z danymi

curl -X POST https://api.mailingapi.com/v1/templates/tmpl_abc123/render \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "variables": {
      "name": "Testowy Użytkownik",
      "order_id": "TEST-001"
    }
  }'

Zwraca wyrenderowany HTML i tekst.

Wyślij testowy email

curl -X POST https://api.mailingapi.com/v1/templates/tmpl_abc123/test \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "to": "twoj-email@example.com",
    "variables": {
      "name": "Testowy Użytkownik"
    }
  }'

Kategorie szablonów

Organizuj szablony według typu:

curl -X POST https://api.mailingapi.com/v1/templates \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "name": "order_shipped",
    "category": "transactional",
    "tags": ["zamowienia", "wysylka"]
  }'

Typowe kategorie:

  • transactional — Paragony, potwierdzenia, alerty
  • marketing — Newslettery, promocje
  • notification — Aktualizacje, przypomnienia
  • authentication — Reset hasła, weryfikacja

Zarządzanie szablonami

Lista wszystkich szablonów

curl https://api.mailingapi.com/v1/templates \
  -H "Authorization: Bearer $API_KEY"

Pobierz pojedynczy szablon

curl https://api.mailingapi.com/v1/templates/tmpl_abc123 \
  -H "Authorization: Bearer $API_KEY"

Aktualizuj szablon

curl -X PATCH https://api.mailingapi.com/v1/templates/tmpl_abc123 \
  -H "Authorization: Bearer $API_KEY" \
  -d '{"subject": "Nowy temat wiadomości"}'

Usuń szablon

curl -X DELETE https://api.mailingapi.com/v1/templates/tmpl_abc123 \
  -H "Authorization: Bearer $API_KEY"

Dobre praktyki

  1. Używaj opisowych nazworder_confirmation nie template1
  2. Zawsze dołączaj wersję tekstową — Niektóre klienty nie renderują HTML
  3. Testuj z prawdziwymi danymi — Podgląd przed wysyłką do klientów
  4. Zachowaj prostotę — Złożona logika należy do Twojej aplikacji
  5. Wersjonuj szablony — Śledź zmiany, umożliwiaj rollback
  6. Używaj partials — Zasada DRY dla nagłówków/stopek
  7. Mobile-first — Większość emaili jest czytana na mobile

Wskazówki projektowania emaili

Responsywny układ

<table width="100%" style="max-width: 600px; margin: 0 auto;">
  <tr>
    <td style="padding: 20px;">
<!-- Treść -->

    </td>
  </tr>
</table>

Bezpieczne fonty

font-family: Arial, Helvetica, sans-serif;
font-family: Georgia, Times, serif;

Style inline

Klienty email usuwają tagi <style>. Zawsze używaj inline:

<!-- Dobrze -->

<p style="color: #333; font-size: 16px;">Tekst</p>

<!-- Źle (może nie działać) -->

<p class="body-text">Tekst</p>

Następne kroki