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.
W tej lekcji przygotujemy scenariusz
odpowiedzialny za przygotowanie szablonu HTML naszego newslettera.
W związku z tym tworzę teraz nową kolumnę
typu long text o nazwie HTML, do której trafi zbudowany przez automatyzację
szablon, który będziemy wykorzystywać na potrzeby podglądu.
Tworzenie scenariusza zaczniemy od modułu webhooks, z pomocą którego będziemy w stanie
wywoływać go praktycznie w dowolnym miejscu.
Nadaję więc tutaj nazwę naszego webhooka oraz
w moim przypadku również w ten sposób będzie nazywał się scenariusz.
Teraz po zapisaniu zmian będę mógł
przesyłać na ten adres dane i moment, w którym zostaną one przesłane
będzie też uruchamiać ten scenariusz.
Kopiuję więc teraz ten adres i włączam scenariusz w tryb nasłuchiwania.
Teraz będzie czekał on na dane.
Natomiast ja wracam do Airtabel i tworzę nowy przycisk.
Będzie to kolumna typu button z etykietą schedule, a jego zadaniem będzie otworzenie
adresu URL kierującego na adres webhooka, na który będziemy przekazywać
parametr wskazujący na identyfikator tego rekordu.
Tak jak widać adresu webhooka podaję w
cudzysłowie i dołączam do niego znak zapytania, następnie nazwę parametru,
w moim przypadku rekord id, i po znaku równa się,
łączę więc ciąg znaków z pomocą znaku
ampersand z wartością zwróconą przez funkcję record id.
Inaczej mówiąc będzie to wyglądało tak, że
jeżeli teraz kliknę ten przycisk, zostanę przeniesiony do strony kierującej mnie na
adres webhooka z dodatkowym parametrem wskazującym na adres rekordu Airtable.
Oznacza to mniej więcej tyle, że mam tutaj
tę informację, którą mogę wykorzystać po to, aby połączyć się z Airtable,
a następnie pobrać informacje na temat kampanii.
I teraz, jeżeli zrobimy to raz jeszcze.
To okaże się, że informacje na temat naszego wydania zostały tutaj pobrane.
Co więcej, poza samą treścią newslettera, mamy tutaj również identyfikatory rekordów
zawierających linki powiązanych z tym wydaniem.
Jest to szczególnie istotne, ponieważ za
chwilę wykorzystamy to do tego, aby utworzyć sekcję zawierającą linki.
Konkretnie będzie to wyglądało tak, że w pierwszej części naszego scenariusza
wygenerujemy sobie sekcję zawierającą linki.
Natomiast w drugiej części wygenerujemy resztę naszego scenariusza.
Jest to istotne o tyle, że w momencie, gdy
będziemy teraz wyszukiwać rekordy, to pobierzemy tutaj kilka wpisów.
Aby takie pobranie było możliwe,
przejdziemy sobie teraz do Airtabel, a następnie tutaj na końcu dodamy sobie kolumnę Record ID.
Jej typ ustawimy na formula, a następnie wykorzystamy tutaj funkcję Record ID.
Po zapisaniu zmian możemy wrócić do
naszego scenariusza, a następnie napisać formułę.
Konkretnie chcemy pobrać tutaj wszystkie
rekordy, których identyfikatory pasują do tablicy Links.
Jednak, abyśmy mogli podać tą wartość, musimy wcześniej kliknąć tutaj prawym
przyciskiem myszy i dodać moduł o nazwie Iterator.
Z jego pomocą będziemy w stanie wskazać, po których elementach chcemy przechodzić i
w naszym przypadku będzie to element links.
Dzięki temu będziemy mieć tutaj dostęp do poszczególnych identyfikatorów linków.
Ponownie przełączamy scenariusz w tryb
nasłuchiwania i wybieramy opcję zaplanowania kampanii.
Na tym etapie tutaj w pierwszym kroku
został pobrany newsletter, a tutaj na końcu zostały pobrane
informacje na temat powiązanych z nim linków.
Oznacza to mniej więcej tyle, że musimy
wygenerować fragment naszego szablonu uwzględniający dokładnie taką strukturę.
No to musimy wrócić teraz do naszego
edytora, a następnie wybrać sekcję, która będzie dokładnie zawierała same linki.
Jednak w tym przypadku będzie nam zależało
na tym, aby pobrać wyłącznie ten fragment powiązany z pojedynczym linkiem.
Inaczej mówiąc chodzi nam o pobranie nie
całej tej sekcji, tylko dokładnie pierwszego wpisu.
Mając to, możemy teraz wrócić do naszego scenariusza.
I tutaj jeszcze przed iteratorem
utworzyć sobie kolejny moduł o nazwie Set Variable.
Konkretnie będzie to zmienna o nazwie links HTML, która początkowo będzie pusta.
To właśnie do niej będziemy przypisywać
kolejne fragmenty HTML powiązane z kolejnymi linkami.
Zanim jednak będziemy to robić, ustawimy
sobie tutaj filtr sprawdzający, czy jakiekolwiek linki tutaj istnieją.
Aby to zrobić, wybierzemy tutaj funkcję length, a następnie otworzę nawias i
wewnątrz niej przekażę dokładnie zmienną zawierającą funkcję i zamknę nawias.
W ten sposób otrzymam tutaj liczbę wskazującą na ilość podłączonych linków.
Interesuje mnie tylko to, aby ta liczba była większa od zera.
Teraz, gdy już to wszystko mamy, możemy
zająć się przekonwertowanie na składnię Markdown dwóch elementów naszych linków.
I konkretnie wykorzystamy tutaj Markdown to HTML, aby zamienić zarówno tytuł
jak i następnie sam opis linku na składnie HTML.
Teraz musimy zadbać o to, aby do tej początkowej zmiennej został dopisany
fragment uwzględniający kod HTML dla konkretnego linku.
Wykorzystamy tutaj dokładnie tą samą nazwę zmiennej, a następnie zrobimy tak, że do
jej wartości dopiszemy następujący kod HTML.
Jeżeli tylko poszerzymy sobie to pole, będziemy
mogli podmienić tutaj pojedyncze fragmenty.
Konkretnie opis linku będzie podmieniony na fragment HTML wygenerowany na podstawie
opisu, a jego tytuł będzie wygenerowany na podstawie nazwy.
Tutaj jeszcze musimy podlinkować nagłówek kierując na adres tego linku,
a tutaj powyżej znajduje się jeszcze obrazek, który musimy zamienić z placeholdera
na adres okładki kierującej do Airtable.
W tym momencie możemy zapisać zmiany, a
następnie ponownie przetestować nasz scenariusz.
Mamy tutaj kod HTML, który został dla nas wygenerowany.
No i jak tutaj widać nie tylko zostały podmienione poszczególne wartości, ale
również zostały uwzględnione dodatkowe formatowanie, czyli np.
pogrubienie tekstu
w tym miejscu. Wygląda na to, że wszystko się tutaj zgadza.
W związku z tym możemy przejść do dalszej części.
Będzie ona polegała dokładnie na tym, aby
pobrać zmienną link z HTML, a następnie będziemy musieli wygenerować
HTML dla poszczególnych sekcji naszego newslettera i złożyć to wszystko w całość.
Zatem w pierwszej kolejności pobieramy
sobie zmienną z pomocą akcji Get Variable i wpisujemy tutaj nazwę.
Dodam tylko, że scenariusz zadziała tak, że na początku pójdzie pierwszą ścieżką,
wygeneruje HTML dla wszystkich linków, a następnie zostanie pobrany tutaj.
Jest to bardzo istotne, aby ponownie
pobrać tą zmienną ze względu na to, że chcemy mieć jej najnowszą wersję.
Następnie przegeneruje sobie poszczególne fragmenty naszego newslettera.
No i teraz ostatnim krokiem będzie złożenie całego szablonu.
W tym celu ustawimy sobie jeszcze raz zmienną links html.
Jednak w tym przypadku zastosujemy tutaj instrukcję if, aby w pierwszej kolejności
upewnić się, że zmienna links HTML w ogóle ma jakąś wartość.
Jeżeli tak jest, to wygenerujemy sobie
całą sekcję, a w przeciwnym razie wygenerujemy pusty ciąg znaków.
Konkretnie tutaj pomiędzy tym drugim
średnikiem a nawiasem umieścimy sobie empty string.
Natomiast w tej pierwszej części będzie tutaj html naszego szablonu.
Efekt końcowy będzie taki, że jeżeli do naszego newslettera nie będą podłączone
żadne linki, to ta górna sekcja w ogóle się nie wykona,
links HTML będzie puste,
w związku z tym nie będziemy dodawać w ogóle tej sekcji.
W przeciwnym razie chcemy wygenerować kod HTML całej sekcji.
Ponownie więc musimy wrócić do naszego kodu HTML.
I teraz tylko usunę sobie te poszczególne linki oraz skopiuję całą treść sekcji.
Tutaj dzięki temu, że na tym pierwszym
etapie naszego scenariusza wygenerowałem sobie kod HTML dla poszczególnych linków,
a następnie pobrałem go do tej zmiennej, wystarczy, że ją tutaj wczytam.
Także w tym miejscu mamy gotowy HTML z linkami.
I ostatnią zmienną będzie zmienna przechowująca resztę naszego szablonu.
Zatem teraz usunę całkowicie sekcję Links,
a następnie skopiuję i przeniosę resztę naszego szablonu do make.
W pierwszej kolejności zadbam o to, aby
sekcja z linkami rzeczywiście się tutaj pojawiła.
No i teraz możemy zadbać o resztę treści.
Konkretnie muszę odnaleźć teraz tą
przykładową treść, którą mieliśmy w naszym szablonie i kończy się ona dokładnie
tutaj, a zaczyna dokładnie w tym miejscu.
Wstawiam więc tutaj zmienną content.
I dokładnie to samo muszę zrobić jeszcze z
podsumowaniem, z tą różnicą, że w tym przypadku zachowam sobie nagłówek.
No i wcześniej mamy jeszcze wprowadzenie, które znajduje się w tym miejscu.
Na ten moment myślę, że mamy tutaj wszystko, aczkolwiek oczywiście znajduje
się jeszcze tutaj sekcja z Feedback'iem, którą będziemy zajmować się później.
No i oczywiście sekcja umożliwiająca wypisanie się, zawierająca dodatkowy link,
który zostanie uwzględniony przez Mailerlite.
Tymczasem zapisuję teraz tą zmienną, a następnie zaktualizujemy sobie nasz Airtable
w taki sposób, aby został zapisany tutaj kod HTML naszego szablonu.
W tym miejscu chodzi nam o zaktualizowanie wpisów w tabeli newsletters,
o identyfikatorze podanym za pomocą Webhooka,
I na samym końcu mamy tutaj kod HTML,
który w tym momencie znajduje się pod zmienną template.
Zapisuję więc scenariusz i na tym etapie
mogę go również aktywować, a następnie kliknąć przycisk schedule.
Mamy tutaj potwierdzenie, że zapytanie zostało zaakceptowane,
a tutaj na samym końcu w kolumnie HTML został wygenerowany nasz szablon.
Zobaczmy więc teraz jak wygląda
przechodząc do jsbin oraz wklejając jego wartość.
Wygląda na to, że prawie wszystko jest ok,
ponieważ w pierwszej części mamy podsumowanie zamiast wprowadzenia.
Prawdopodobnie błąd popełniłem tutaj na etapie szablonu.
Gdzie konkretnie tutaj powinno znaleźć się wprowadzenie, a nie podsumowanie.
Po wprowadzeniu zmian zapisuję ten
scenariusz, a następnie ponownie generuję sobie szablon.
Jeżeli teraz ponownie przetestujemy sobie nasz HTML, wygląda na to, że wszystko jest w
porządku, poza oczywiście okładką linku, która nie została teraz wgrana,
więc myślę, że zrobię to już w tle i za chwilę wracam.
No i teraz prawie wszystko jest w
porządku, ponieważ tytuł naszego linku nie wyświetla się tak jak powinien.
Aby to naprawić ponownie wrócimy do naszego scenariusza i zrobimy to w taki
sposób, że zrezygnujemy tutaj z konwertowania nazwy linku
i po prostu wczytamy ją bezpośrednio z poziomu Airtabel.
Co prawda w ten sposób rezygnujemy tutaj z możliwości dodatkowego formatowania,
natomiast na potrzeby tego szablonu jest to akceptowane.
Generuje więc teraz go ponownie i już po raz ostatni sprawdzam jego treść.
No i teraz wszystko wygląda tutaj w porządku.
Dla nas oznacza to mniej więcej tyle, że scenariusz, który tutaj mamy działa
poprawnie i zrealizowaliśmy cel tej lekcji.
Teraz dzięki za uwagę i do usłyszenia w kolejnej.