Automatyzacja Newslettera
2 godz. 57 min · Make · Biznes i Automatyzacje
Adam GospodarczykPrzez lata automatyzacja wymagała zaangażowania doświadczonych osób programujących dedykowane rozwiązania. Obecnie mamy do dyspozycji narzędzia low-code i no-code, które dają ogromne możliwości konfiguracji i łączenia ze sobą różnych usług. Na przykład, możemy skonfigurować kampanię newslettera bezpośrednio z naszego ulubionego edytora tekstowego (np. iA Writer lub Bear). Wszystkie wymagane dane trafią do Airtable, gdzie za pomocą przejrzystego i dostosowanego do nas interfejsu możemy wprowadzić poprawki i zatwierdzić wysyłkę kampanii.
Sztuczna inteligencja jest dostępna dla wszystkich, ułatwiając realizację niektórych zadań lub całkowicie je przejmując. W tym kursie dowiesz się, jak wykorzystać GPT-3 do tworzenia automatyzacji Twojego newslettera, uwzględniając obszary związane z copywritingiem i programowaniem. Poznasz też sposoby wykorzystania gotowych makr i automatyzacji, aby móc korzystać z pomocy AI z dowolnego miejsca na Twoim komputerze.
Tworzenie grafik nie musi odbywać się ręcznie. Można wykorzystać specjalnie opracowane szablony, które roboty mogą wykorzystać do generowania grafik promocyjnych Twojego newslettera, bez konieczności otwierania programu do projektowania (np. Figmy). W tym kursie dowiesz się, na co warto zwrócić uwagę przy projektowaniu takich szablonów, poznasz różne strategie i techniki oraz ich wady i zalety. Wygenerowane grafiki można wykorzystać bezpośrednio w treści newslettera lub w postach promocyjnych.
W tym kursie nie tylko stworzysz automatyzację własnego newslettera, ale także otrzymasz wiele plików źródłowych gotowych do wykorzystania na platformie make.com oraz systemie macOS. Instrukcję ich uruchomienia znajdziesz wewnątrz lekcji kursu. Wszystkie materiały dodatkowe nie tylko ułatwią Ci wdrożenie własnej automatyzacji, ale także mogą stanowić świetną inspirację do przygotowania własnych scenariuszy, dzięki którym oszczędzisz jeszcze więcej czasu. Jeżeli pracujesz na Windowsie, nie przejmuj się ponieważ główna część automatyzacji opiera się o aplikacje dostępne w przeglądarce (Airtable/Make.com/MailerLite) i tym samym można ją wykorzystać na dowolnej platformie.
Pomimo tego, że ten kurs skupia się na automatyzacji newslettera, zobaczysz w nim wiele technik, schematów i przykładów, które możesz wykorzystać do optymalizacji innych procesów w Twojej codzienności. To także świetna okazja, aby poznać nowoczesne narzędzia usprawniające pracę zarówno w systemie macOS, jak i w przeglądarce. Nawet jeśli nie prowadzisz swojego własnego newslettera, ale chcesz poznać techniki pracy z Make.com, Airtable, Shortcuts czy Keyboard Maestro, w tym kursie znajdziesz wiele przydatnych informacji, które pozwolą Ci osiągnąć nowy poziom automatyzacji pracy.
Jeżeli prowadzisz swój newsletter i chcesz zoptymalizować powtarzalne czynności związane z jego przygotowaniem, publikacją i promocją, ten kurs może Ci w tym pomóc. Na przykładzie automatyzacji wykorzystywanej w projektach eduweb.pl, ahoy.so czy overment.com, dowiesz się, jak wykorzystać nowoczesne narzędzia, takie jak Airtable czy make.com, do stworzenia własnych robotów, które ułatwią Ci tworzenie newslettera. Przed rozpoczęciem kursu zalecamy sprawdzenie naszych pozostałych kursów na temat tych narzędzi, dostępnych na eduweb.pl.
Teraz naszym celem będzie przygotowanie integracji z MailerLite, umożliwiającej
automatyczne skonfigurowanie całej kampanii oraz jej wysyłkę.
Zaczniemy od tego, że tutaj w zakładce Integrations mamy dostęp do klucza API,
który możemy pobrać dokładnie na tej stronie.
Ja już swój posiadam, w związku z tym nie będę tworzył kolejnego.
Natomiast można to zrobić klikając ten przycisk, a następnie podając jego nazwę.
Warto tylko pamiętać o tym, aby przechowywać go w bezpiecznym miejscu ze
względu na to, że każdy kto go posiada ma dostęp do naszego konta.
Sam klucz API przechowamy sobie
w dodatkowej zmiennej ustawionej na początku naszego scenariusza.
Będzie to dokładnie MailerLite API key aczkolwiek nazwa jest tutaj dowolna.
W tym momencie wkleję tutaj tylko swój klucz i przechodzimy dalej.
Teraz będziemy rozbudowywać dalszą część
scenariusza i konkretnie umieścimy sobie tutaj router weryfikujący to, czy nasza
kampania została już zatwierdzona, czyli jest oznaczona jako ready
oraz jednocześnie musimy mieć też pewność, że jeszcze nie została wysłana.
W przeciwnym wypadku zwrócimy tutaj błąd wykorzystując akcję Webhook Response.
Konkretnie będzie to wiadomość zwracająca informację o tym, że kampania nie została
jeszcze zatwierdzona lub została już wysłana.
Następnie tutaj musimy utworzyć sobie nowy
obiekt json, który będziemy przesyłać bezpośrednio do API MailerLite.
Aby zdefiniować jego strukturę, wykorzystamy przykład, który
dołączam do zasobów w tej lekcji.
Po wklejeniu tego przykładu do generatora otrzymujemy gotową strukturę kampanii.
Następnie musimy podać tutaj nazwę.
Następnie typ i ten ustawiamy na regular,
a zaraz po nim musimy ustawić adres email, z którego zostanie wysłana kampania.
Potem przekazujemy szablon HTML oraz tytuł wiadomości oraz nazwę osoby wysyłającej.
Jeżeli chodzi o identyfikatory grup, te
możemy pobrać przechodząc do MailerLite, a następnie zakładki Groups.
W momencie gdy klikniemy przycisk view Group w jego adresie, tutaj gdzieś na samym końcu
widzimy parametr group ustawiony na mniej więcej taką liczbę.
W praktyce oznacza to mniej więcej tyle,
że dokładnie do tej grupy zostanie wysłana nasza kampania.
Oczywiście nic nie stoi na przeszkodzie,
aby numery grup również przechowywać w Airtable i wczytywać te wartości dynamicznie.
Ostatnią rzeczą jaką musimy tutaj ustawić
jest Language ID i jeżeli chodzi o język polski będzie to numerek 2.
No i teraz możemy przejść do konfiguracji wysyłki.
Co prawda make posiada wbudowany moduł MailerLite, natomiast w tym przypadku
dotyczy on wersji Classic, a my korzystamy z tej nowej.
W związku z tym musimy połączyć się z API
ręcznie, wykorzystując w tym celu moduł HTTP, a konkretnie akcję Make Request.
Będziemy tutaj wysyłać dane na następujące
adresy metodą POST z dodatkowym nagłówkiem
authorization, ustawiamy na wartość bearer, a następnie spację.
I tutaj będziemy pobierać sobie API key
ustawiony na początku naszego scenariusza.
Jeżeli chodzi o samą zawartość zapytania, ustawiamy typ na RO, a następnie
Application Json i przekazujemy przed chwilą utworzony obiekt.
Na tym etapie nasza kampania powinna tworzyć się jako draft.
Zanim to jeszcze sprawdzimy, musimy
ustawić jeszcze jedną rzecz dotyczącą filtrów i naszego routera.
Mianowicie tutaj mamy ustawione warunki, a
w tym drugim przypadku musimy tą ścieżkę ustawić jako fallback.
Oznacza to mniej więcej tyle, że ścieżka
oznaczona taką oto strzałką zostanie wykonana tylko wtedy, jeżeli wszystkie
pozostałe ścieżki nie zostaną wykonane ze względu na działające filtry.
No to teraz zapisuję scenariusz i wracam do naszego Airtable.
Tutaj mamy oznaczoną kampanię jako is ready, ale jeszcze nie wysłaną.
Przypomnę tylko, że w tym momencie żadnych kampanii w MailerLite nie mamy.
W związku z tym po wciśnięciu tego
przycisku powinniśmy otrzymać informację accepted!
No i teraz nasza kampania została zaplanowana i jeżeli przejdziemy do mailerlite
to rzeczywiście mamy tutaj nowy draft zawierający treść pochodzącą z
Airtabel, znajdującą się w przygotowanym przez nas szablonie.
Co więcej, mamy tutaj ustawioną odpowiednią grupę.
No i jedyną rzeczą, którą należy tutaj jeszcze zrobić jest sama wysyłka kampanii.
Jednak w naszym przypadku tym również
będziemy chcieli, aby zajęła się tym dla nas automatyzacja.
Wracamy więc do naszego scenariusza, gdzie
wykonamy sobie jeszcze jedno zapytanie do MailerLite, w przypadku którego
wykorzystamy sobie dane pochodzące z poprzedniego modułu i aby je odczytać
wykorzystamy tutaj opcję parse Response ustawioną na Yes, dzięki czemu
będziemy mogli odwołać się do danych, które zwrócił ten moduł.
Aby jednak uzyskać do nich dostęp,
zaplanuję sobie jeszcze jedną testową kampanię.
W tym momencie scenariusz wykonał się
ponownie, a ja mam tutaj dostęp do danych, które mnie interesują.
Konkretnie chodzi mi tutaj o identyfikator
nowoutworzonej kampanii, który wykorzystamy do tego, aby ją zaplanować.
Tutaj jednak również będziemy potrzebowali
dodatkowego obiektu Json, który również możemy wygenerować na podstawie
przykładowego obiektu dołączonego do zasobów tej lekcji.
Po prostu wklejam tutaj jego wartość i zatwierdzam zmianę.
Teraz musimy ustawić tutaj następujące wartości.
Jako wartość delivery ustawiamy scheduled
czyli zaplanowana, a następnie podajemy tutaj taką oto funkcję.
Mianowicie jest to format date, gdzie jako pierwszy argument przekazujemy datę
pochodzącą z Airtable, dokładnie z tej kolumny,
a następnie podajemy format w jakim ta data ma zostać zapisana.
W tym przypadku jest to rok, miesiąc i dzień.
Kolejna wartość dotyczy godzin i ostatnia minut.
Tak przygotowany obiekt możemy wykorzystać
teraz do wykonania zapytania, które tym razem będzie kierowane na taki oto adres.
Przy czym tutaj na samym końcu
wykorzystujemy jeszcze identyfikator kampanii, którą utworzyliśmy przed chwilą.
W rezultacie to wszystko działa w następujący sposób.
Tutaj tworzony jest szablon HTML
wiadomości, tutaj przygotowywany obiekt Json zawierający podstawowe ustawienia
kampanii, które wykonujemy podczas zapytania tworzącego nowy draft.
W kolejnym kroku przygotowujemy jeszcze
jeden obiekt Json zawierający informacje na temat daty wysyłki, który wykorzystujemy
w ostatnim zapytaniu służącym właśnie zaplanowaniu przed chwilą utworzonej
kampanii i w tym celu wykorzystujemy jej identyfikator.
Zanim jeszcze przetestujemy ten
scenariusz, chciałbym w tym momencie dodać jeszcze jeden warunek sprawdzający, czy
czas pozostały do wysłania jest większy niż 15 minut.
Jeżeli tak jest, to kampania może zostać
wysłana, w przeciwnym razie zwrócimy tutaj błąd.
No i teraz myślę, że wszystko się zgadza.
W związku z tym zapisuję scenariusz i raz
jeszcze tutaj zaplanuję sobie całą kampanię.
Otrzymujemy tutaj błąd informujący nas o
tym, że kampania nie może zostać wysłana i wynika to z faktu, że rzeczywiście data
jej wysyłki ustawiona jest na datę w przeszłości.
Jeżeli teraz ponowię sobie zapytanie wszystko powinno pójść ok.
A w MailerLite powinna pojawić się kampania,
ale już nie w kategorii drafts tylko w kategorii outbox.
Jak widać mamy tutaj potwierdzenie, że ta
kampania zostanie wysłana 19 grudnia o godzinie 17.
Wszystko się tutaj zgadza i oczywiście
anuluje wysyłkę tej kampanii, a następnie od razu ją usunę.
Ale zanim zakończymy tę lekcję, chciałbym dodać tutaj jeszcze jeden element.
Mianowicie w momencie utworzenia tej kampanii powinniśmy zaktualizować nasz
rekord, oznaczając kampanię jako zaplanowaną.
Podaję więc tutaj identyfikator rekordu i
oznaczam kolumnę sent jako true. Zapisuje zmiany.
I teraz raz jeszcze, gdy zaplanujemy sobie naszą kampanię, otrzymamy potwierdzenie oraz
dodatkowo w tym miejscu kampania została oznaczona jako wysłana.
Chciałem jeszcze tylko zaznaczyć, że nie wykorzystaliśmy tego widoku, aczkolwiek
moglibyśmy to zrobić i nawet dobrze by było, aby tak się stało.
Co prawda dokonujemy tutaj wszelkich możliwych weryfikacji i sprawdzenia
ustawień, ale równie dobrze moglibyśmy wykorzystać tutaj moduł Search Records, w
przypadku którego wyszukamy sobie kampanie znajdujące się dokładnie w widoku kolejki.
Oczywiście, aby to działało musielibyśmy
podmienić wszystkie odwołania, które teraz wskazują na ten moduł.
Natomiast dzięki temu bylibyśmy dodatkowo
zabezpieczeni, ponieważ jeżeli te warunki nie zostaną spełnione, wpis nie pojawi się
w tym widoku i tym samym nic nie zostanie z nim zrobione.
Ostatnią jeszcze rzeczą, którą będziemy tutaj potrzebować będzie kolumna Record
ID, zawierająca formułę wskazującą na dokładnie identyfikator rekordu.
Jest to wartość, którą możemy sobie tutaj ukryć,
ponieważ i tak wykorzystujemy ją dokładnie w tej formule.
Ja w tym momencie podmienię odniesienia do tego rekordu.
Natomiast jednocześnie dziękuję Ci za
uwagę i słyszymy się za chwilę w kolejnej lekcji.