Jak tworzyć personalizowane kampanie e-mail w Mistral AI Large - bez naruszania RODO
Nowy endpoint Mistral AI Large pozwala małym firmom generować spersonalizowane kampanie e-mail bez PII - tutorial krok po kroku z gotowymi promptami.

👁 118 przeczytań
- Mistral AI Large udostępnia punkt końcowy API do generowania spersonalizowanych emaili bez przesyłania danych osobowych (imion, adresów, emaili) przez model.
- Całe rozwiązanie wymaga konta na platform.mistral.ai, klucza API oraz Pythona 3.10+ z pakietem mistralai instalowanym przez pip install mistralai.
- Artykuł opisuje trzy segmenty odbiorców z osobnymi promptami: nieaktywni klienci (brak zakupu 3+ miesiące), okazjonalni szukający okazji oraz entuzjaści kupujący co najmniej raz w miesiącu.
Masz sklep internetowy, firmę usługową albo lokalny biznes i wysyłasz newslettery do kilkuset (albo kilku tysięcy) osób. Wiesz, że personalizacja działa - „Hej Piotrek, widziałeś nasze nowe produkty z kategorii, którą lubisz?” bije na głowę „Szanowny Kliencie”. Problem w tym, że prawdziwa personalizacja na poziomie dla firm kosztuje majątek albo wymaga zespołu programistów. Do teraz.
Mistral AI Large udostępnił punkt końcowy API dedykowany właśnie temu: generowaniu spersonalizowanych wariantów emaili bez przechowywania danych osobowych. Żadnych imion w bazie, żadnych adresów - tylko anonimowe sygnały behawioralne i model, który robi resztę. Dla małych firm to konkretna przewaga: profesjonalna personalizacja w cenie kilku złotych miesięcznie, przy pełnej zgodności z RODO. Tutorial poniżej pokazuje, jak to ogarnąć krok po kroku.
Co osiągniesz po tym tutorialu
Po przejściu tego przewodnika będziesz mieć gotowy przepływ pracy, który: tworzy bazowy szablon wiadomości email, generuje automatycznie unikalne warianty dla każdego segmentu odbiorców na podstawie ich zachowań i preferencji, oraz robi to całkowicie bez przetwarzania PII - czyli bez imion, adresów, numerów telefonów ani emaili przechodzących przez model. Całość działa przez API Mistral AI Large, które możesz wywołać z Pythona, JavaScript lub dowolnego narzędzia obsługującego żądania HTTP. Jeśli kiedykolwiek używałeś Zapiera albo Make’a, ogarniesz to w godzinę.
Zanim zaczniesz - czego potrzebujesz
Do działania potrzebujesz konta na platform.mistral.ai i klucza API (dostępny po rejestracji, darmowy próbny limit wystarczy na pierwsze testy). Przydatny będzie Python 3.10+ z zainstalowanym pakietem mistralai - instalujesz przez pip install mistralai. Opcjonalnie możesz podpiąć to pod swój system do wysyłki emaili (Mailchimp, Brevo, Sendgrid) przez webhook albo skrypt eksportujący CSV. Nie potrzebujesz doświadczenia w uczeniu maszynowym. Potrzebujesz tylko wiedzieć, jakie masz segmenty klientów i co chcesz im powiedzieć.
Uwaga ⚠️
Cały pomysł z non-PII ma sens tylko wtedy, gdy faktycznie nie wysyłasz imion, adresów ani emaili do modelu. Do API trafiają wyłącznie anonimowe sygnały: kategoria zainteresowań, częstotliwość zakupów, preferowany czas otwarcia emaili. Dane osobowe trzymasz u siebie, łączysz gotowy tekst z odbiorcą dopiero na etapie wysyłki.
Krok 1 - Zdefiniuj segmenty bez danych osobowych
Zanim odpalisz pierwszy prompt, musisz przemyśleć, czym różnią się twoi odbiorcy - ale bez używania ich danych osobowych. Zamiast „Anna Kowalska, 34 lata, Warszawa” myślisz: „aktywny klient, kupuje elektronikę, otwiera emaile rano, ostatni zakup 2 tygodnie temu”. To wszystkie informacje, które Mistral AI dostanie od ciebie.
Przykładowe atrybuty non-PII, które możesz użyć jako zmienne w szablonie: kategoria produktów (elektronika, odzież, sport), częstotliwość zakupów (regularny, okazjonalny, nieaktywny), pora dnia otwarcia emaili (rano, południe, wieczór), czas od ostatniego zakupu (świeży, stary, uśpiony), preferowany typ oferty (rabatowa, nowości, edukacyjna).
Protip ✅
Mapuj te atrybuty w swojej bazie danych jako ID segmentu, nie jako dane klienta. Przykład: segment_id=„B2-ELEC-MORNING” oznacza kupującego elektronikę, aktywnego rano. Do Mistral AI wysyłasz ten opis słowny, nigdy email ani imię. Połączenie tekstu z konkretnym odbiorcą następuje w twoim systemie, po tym jak model już skończy pracę.
Krok 2 - Stwórz bazowy szablon kampanii
Szablon to wiadomość „matka”, z której Mistral AI generuje warianty. Powinna zawierać główne przesłanie kampanii, temat (czego dotyczy email) i elementy, które chcesz personalizować - ton, akcenty produktowe, mocne zdania.
Oto bazowy szablon dla małego sklepu internetowego z elektroniką:
Szablon bazowy - kampania: nowa kolekcja słuchawek
Temat: Mamy coś dla Ciebie - nowe słuchawki w sklepie
Preheader: Sprawdź, co wybrali inni klienci w tym tygodniu
Treść:
Cześć,
właśnie dodaliśmy do sklepu nową kolekcję słuchawek bezprzewodowych.
Mamy modele w różnych przedziałach cenowych - od codziennych do
profesjonalnych.
[SEKCJA PERSONALIZOWANA - tu wstaw wariant od AI]
Sprawdź całą kolekcję na stronie i wybierz swoje.
Do zobaczenia w sklepie,
Zespół [nazwa sklepu]Sekcja w nawiasach kwadratowych to miejsce, które Mistral AI wypełni różną treścią dla każdego segmentu. Reszta emaila zostaje stała - oszczędzasz czas i zapewniasz spójność marki.
Krok 3 - Pierwszy prompt do generowania wariantów
Teraz czas na właściwe wywołanie API. Poniższy prompt działa dla segmentu aktywnych klientów z kategorii elektroniki, którzy otwierają emaile rano:
You are an email copywriter for a small Polish electronics online store.
Generate a personalized email section (3-4 sentences) for the following
customer segment. Do NOT use any personal data - no names, emails,
or addresses.
Customer segment profile:
- Purchase category: electronics (headphones, audio)
- Purchase frequency: regular buyer (2-3 times per quarter)
- Email open time: morning (7-9 AM)
- Last purchase: 3 weeks ago
- Preferred content type: product reviews and new arrivals
Task: Write a warm, direct section that:
1. References their interest in audio equipment (without personal details)
2. Highlights 1-2 specific benefits of the new headphones collection
3. Uses an energetic morning tone - brief, punchy sentences
4. Ends with a soft call to action
Output: Only the personalized section text, no subject line, no greeting.
Language: Polish.Ten prompt dostarcza modelowi wszystko, czego potrzebuje: kontekst segmentu, zakaz używania PII, wytyczne tonalne i oczekiwany format wyjścia. Parametr „Language: Polish” na końcu jest kluczowy - bez niego model może odpowiedzieć po angielsku.
Protip ✅
Zawsze dodawaj jawny zakaz PII w prompcie, nawet jeśli i tak nie wysyłasz danych osobowych. Działa jak dodatkowe zabezpieczenie - jeśli przez pomyłkę jakieś dane trafią do kontekstu, model ma instrukcję ich pominięcia. Zasada ograniczonego zaufania działa też wobec własnych skryptów.
Krok 4 - Warianty dla różnych segmentów
Tu zaczyna się prawdziwa magia. Ten sam produkt, ten sam sklep - ale zupełnie inne wiadomości dla różnych typów klientów. Poniżej trzy warianty promptów dla trzech segmentów:
Segment nieaktywnych klientów (ostatni zakup ponad 3 miesiące temu):
You are an email copywriter for a small Polish electronics online store.
Generate a personalized re-engagement email section (3-4 sentences).
No personal data allowed.
Customer segment profile:
- Purchase category: electronics (headphones, audio)
- Purchase frequency: lapsed (no purchase in 3+ months)
- Last engagement: 90+ days ago
- Preferred content type: discounts and promotions
Task: Write a gentle win-back section that:
1. Acknowledges it's been a while since their last visit (no specific dates)
2. Creates curiosity about what's new in the store
3. Uses a warm, inviting tone - not pushy
4. Mentions that new arrivals are worth checking out
Output: Only the personalized section text, Polish language.Segment klientów okazjonalnych szukających okazji:
You are an email copywriter for a small Polish electronics online store.
Generate a personalized email section (3-4 sentences) for a deal-seeker
segment. No personal data allowed.
Customer segment profile:
- Purchase category: electronics (headphones, audio)
- Purchase frequency: occasional (buys mainly during promotions)
- Preferred content type: deals, price drops, bundles
- Price sensitivity: high
Task: Write a value-focused section that:
1. Emphasizes price-to-quality ratio of the new collection
2. Hints at competitive pricing without stating specific amounts
3. Creates mild urgency - stock-based, not time-pressure
4. Keeps a practical, no-nonsense tone
Output: Only the personalized section text, Polish language.Segment entuzjastów (kupują regularnie, interesują się nowościami):
You are an email copywriter for a small Polish electronics online store.
Generate a personalized email section (3-4 sentences) for an enthusiast
segment. No personal data allowed.
Customer segment profile:
- Purchase category: electronics (headphones, professional audio)
- Purchase frequency: high (monthly or more)
- Preferred content type: new arrivals, tech specs, early access
- Engagement: opens almost every email
Task: Write an expert-to-expert section that:
1. Speaks to someone who knows audio equipment well
2. Highlights technical differentiators of the new collection
3. Creates a sense of exclusivity - they're seeing this first
4. Uses confident, knowledgeable tone without being condescending
Output: Only the personalized section text, Polish language.Wskazówka 💡
Zauważ, że każdy prompt ma inny ton: ciepły dla nieaktywnych, rzeczowy dla okazjonalnych, ekspercki dla entuzjastów. Mistral AI Large świetnie wychwytuje te niuanse - ale musisz mu je podać wprost. Model nie domyśla się kontekstu biznesowego; podajesz go ty.
Krok 5 - Automatyzacja przez API w Pythonie
Ręczne wywoływanie promptów dla 500 segmentów to nie jest plan. Oto prosty skrypt, który przetwarza listę segmentów i generuje warianty dla każdego z nich:
from mistralai import Mistral
import json
client = Mistral(api_key="TWÓJ_KLUCZ_API")
# Segmenty odbiorców - same dane behawioralne, zero PII
segments = [
{
"id": "ELEC-REGULAR-MORNING",
"category": "electronics",
"frequency": "regular buyer",
"open_time": "morning",
"last_purchase": "3 weeks ago",
"content_preference": "new arrivals"
},
{
"id": "ELEC-LAPSED",
"category": "electronics",
"frequency": "lapsed (90+ days no purchase)",
"content_preference": "discounts and promotions"
},
{
"id": "ELEC-DEAL-SEEKER",
"category": "electronics",
"frequency": "occasional",
"content_preference": "deals and bundles",
"price_sensitivity": "high"
}
]
def generate_email_variant(segment):
prompt = f"""You are an email copywriter for a small Polish electronics store.
Generate a personalized email section (3-4 sentences) for this segment.
No personal data (no names, emails, addresses) allowed.
Segment profile: {json.dumps(segment, ensure_ascii=False)}
Write a section that matches the segment's behavior and preferences.
Tone should fit their purchase frequency and content preference.
Output: Only the section text, in Polish."""
response = client.chat.complete(
model="mistral-large-latest",
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=200
)
return response.choices[0].message.content
results = {}
for segment in segments:
variant = generate_email_variant(segment)
results[segment["id"]] = variant
print(f"Segment: {segment['id']}")
print(f"Wariant: {variant}")
print("---")
# Eksport do JSON - łączysz z odbiorcami u siebie
with open("warianty_emaili.json", "w", encoding="utf-8") as f:
json.dump(results, f, ensure_ascii=False, indent=2)Skrypt generuje plik JSON z wariantami tekstów, przypisanymi do ID segmentów. W twoim systemie do wysyłki masz mapowanie: który klient należy do którego segmentu. Łączysz ID segmentu z gotowym tekstem - i wysyłasz. Dane osobowe nigdy nie opuszczają twojego systemu.
Protip ✅
Parametr
temperature=0.7to złoty środek dla tekstów marketingowych - model jest kreatywny, ale nie zaczyna pisać poezji. Przy 0.3 dostaniesz bardziej przewidywalne, szablonowe teksty. Przy 1.0 - czasem genialne, czasem dziwne. Dla pierwszych kampanii trzymaj się 0.6-0.8.
Krok 6 - Walidacja zgodności z RODO przed wysyłką
Wygenerowane teksty warto przepuścić przez drugi prompt - sprawdzający, czy model przypadkowo nie dodał żadnych danych osobowych ani sformułowań, które mogłyby wskazywać na konkretną osobę:
You are a GDPR compliance reviewer for email marketing content.
Review the following email section and check:
1. Does it contain any personally identifiable information (names, emails,
phone numbers, addresses, dates of birth)?
2. Does it reference specific personal behaviors in a way that could
identify an individual?
3. Does it make assumptions about personal characteristics (health,
religion, political views, ethnicity)?
Email section to review:
[WSTAW WYGENEROWANY TEKST]
Respond with:
- PASS: if the text is free of PII and sensitive inferences
- FAIL: if any issue is found, briefly explain what
Be strict. When in doubt, flag it.Prosty walidator, który możesz odpalić jako drugi krok w skrypcie przed eksportem. Jeśli walidator zwróci FAIL - skrypt pomija dany wariant i loguje błąd do ręcznego przeglądu. Paranoja? Może. Ale UODO nie bierze się przez przypadek.
Błąd 🚫
Nie zakładaj, że skoro nie wysłałeś PII do modelu, to wszystko jest OK. Mistral AI Large może czasem wygenerować zdanie w stylu „Wiemy, że ostatnio kupiłeś produkt X w środę o 14:00″ - co technicznie jest wnioskowaniem, które może naruszyć prywatność. Walidator łapie takie przypadki.
Parametry, które warto znać
Kilka ustawień API, które robią różnicę w kontekście kampanii email. Parametr max_tokens kontroluje długość odpowiedzi - dla sekcji emaila wystarczy 150-250 tokenów, co przekłada się na 3-5 zdań po polsku. Nie przepłacaj za dłuższe odpowiedzi, jeśli nie potrzebujesz eseju. Parametr temperature omówiony wyżej decyduje o kreatywności. Dla kampanii sezonowych (Czarny Piątek, Boże Narodzenie) możesz podnieść do 0.8-0.9 - większa różnorodność, mniejsze ryzyko, że 5 segmentów dostanie prawie identyczny tekst. Parametr top_p przy wartości 0.9 ogranicza model do najbardziej prawdopodobnych słów - przydatne, gdy chcesz tekstów bardziej „na temat” i mniej eksperymentalnych. Przy kreatywnych kampaniach możesz go podnieść do 0.95.
Protip ✅
Przed wysłaniem kampanii do całej bazy, przetestuj wygenerowane warianty na małej grupie - 50-100 osób na segment. Sprawdź wskaźnik otwarć i klikalność. Mistral AI daje ci narzędzie, ale to ty znasz swoich klientów najlepiej. Jeśli wariant dla segmentu „okazjonalnych” ma słabsze wyniki niż zakładałeś, zmień opis segmentu w prompcie i wygeneruj nowe teksty.
Kiedy to naprawdę ma sens dla małej firmy
Opisane rozwiązanie nie jest dla każdego. Jeśli masz 200 subskrybentów i wysyłasz raz na miesiąc prosty newsletter - wystarczy Mailchimp z podstawowym tagowaniem. Mistral AI zaczyna mieć sens, gdy masz co najmniej 3-4 wyraźne segmenty klientów, wysyłasz regularnie (raz na tydzień lub częściej), czujesz, że „jeden email dla wszystkich” traci swój wyraz, albo obsługujesz rynek wrażliwy regulacyjnie - sklep z suplementami, usługi finansowe, zdrowie.
Realne oszczędności to nie tylko czas copywritera. To też brak konieczności kupowania drogich platform personalizacyjnych w stylu Salesforce Marketing Cloud, których miesięczne koszty dla małej firmy zaczynają się od kilkuset euro. Przy Mistral AI płacisz za tokeny - kilka groszy za wygenerowany wariant. Przy 10 segmentach i 4 kampaniach miesięcznie mówimy o kosztach rzędu kilkudziesięciu złotych.
Google · Twoje źródłaPromptowy wyżej w Twoim Google - jednym kliknięciemDodaj do preferowanych źródeł →Reguły gry, które musisz zapamiętać
Na koniec garść zasad, bez których cały tutorial nie ma sensu. Po pierwsze: zero PII w prompcie - imiona, emaile, numery telefonów, adresy zostają w twojej bazie danych, nigdy nie wychodzą do API. Po drugie: waliduj każdy wygenerowany tekst przed wysyłką - automatycznie przez drugi prompt lub ręcznie przy mniejszych kampaniach. Po trzecie: dokumentuj swoje segmenty i logikę przypisywania klientów do segmentów - to jest twoja dokumentacja RODO, pokazuje, że przetwarzanie jest proporcjonalne i uzasadnione. Po czwarte: nie buduj segmentów na podstawie wrażliwych kategorii danych (zdrowie, religia, poglądy polityczne) nawet jeśli technicznie możesz - prawo w tym miejscu jest jednoznaczne.
Małe firmy przez lata przegrywały walkę o personalizację z korporacjami nie dlatego, że miały gorsze pomysły. Przegrywały, bo nie miały budżetu na systemy, które to ogarniają. Mistral AI Large zmieniło ten rachunek - i to bez zmuszania cię do wyboru między skutecznością a zgodnością z prawem. Taka personalizacja nie tylko działa lepiej niż masowe kampanie; sprawia też, że klienci przestają traktować twoje emaile jak spam. A to chyba o to chodziło od początku.
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →Najczęstsze pytania
Czy Mistral AI Large przetwarza dane osobowe klientów przy personalizacji emaili?
Nie - do API trafiają wyłącznie anonimowe sygnały behawioralne, takie jak kategoria zainteresowań, częstotliwość zakupów czy preferowany czas otwarcia emaili. Imiona, adresy i emaile pozostają w systemie nadawcy, a gotowy tekst łączy się z odbiorcą dopiero na etapie wysyłki.
Czego potrzebuję, żeby zacząć generować kampanie emailowe przez API Mistral AI?
Potrzebujesz konta na platform.mistral.ai z kluczem API, który jest dostępny po rejestracji w ramach darmowego limitu próbnego. Dodatkowo przyda się Python 3.10+ z pakietem mistralai oraz wiedza o segmentach własnych klientów.
Jak zbudować segment klientów bez używania danych osobowych w Mistral AI?
Zamiast imienia i adresu używa się anonimowych atrybutów, np. kategoria produktów, częstotliwość zakupów, pora dnia otwarcia emaili czy czas od ostatniego zakupu. Artykuł zaleca mapowanie tych cech jako ID segmentu, np. segment_id=B2-ELEC-MORNING, który opisuje kupującego elektronikę aktywnego rano.
Jak różnią się prompty dla różnych segmentów klientów w kampanii emailowej?
Artykuł opisuje trzy różne tony: ciepły i zapraszający dla nieaktywnych klientów (brak zakupu 90+ dni), rzeczowy i skupiony na cenie dla okazjonalnych kupujących podczas promocji oraz ekspercki i ekskluzywny dla entuzjastów kupujących co najmniej raz w miesiącu. Każdy prompt zawiera jawny zakaz użycia danych osobowych oraz instrukcję językową Language: Polish.
