Wszystkie wpisy
6 min czytania
automatyzacjen8npraktykasocial media

Automat, który prowadzi mojego Facebooka: post i zdjęcie, siedem dni w tygodniu

Od końca sierpnia mój profil firmowy na Facebooku prowadzi się sam: model językowy pisze post, dobiera do niego słowa kluczowe, baza zdjęć na wolnej licencji oddaje kadr, a całość ląduje na stronie o ósmej rano. Opisuję to razem z błędem, który zatrzymał pierwsze dwa uruchomienia, i z listą rzeczy, których ten automat celowo nie robi.

Na profilu AtomFlow na Facebooku pojawia się jeden post dziennie, o ósmej rano. Cztery dni w tygodniu razem ze zdjęciem, trzy dni sam tekst. Nie piszę ich, nie planuję z tygodniowym wyprzedzeniem i nie mam kalendarza treści w arkuszu. Ten wpis jest o tym, jak to jest zrobione — bo to najświeższa automatyzacja, jaką u siebie postawiłem, i akurat ta ma tę zaletę, że jej efekt każdy może sobie obejrzeć bez mojego słowa honoru.

Uprzedzam od razu: to nie jest tekst o tym, że sztuczna inteligencja zastąpi prowadzenie mediów społecznościowych. Zastępuje w tym dokładnie jedną rzecz i zaraz napiszę którą, a przy okazji pokażę, na czym się to wywróciło, zanim zaczęło działać.

Sześć kroków, z których składa się jeden post

Cały przepływ da się opisać jednym zdaniem: obudź się o ósmej, napisz post, znajdź do niego zdjęcie, opublikuj. W praktyce to sześć kroków, z których każdy robi jedną prostą rzecz:

  • harmonogram uruchamia przepływ o ósmej rano, w wybrane dni tygodnia,
  • model językowy dostaje instrukcję redakcyjną i zwraca dwie rzeczy naraz: gotowy tekst posta oraz kilka angielskich słów kluczowych opisujących zdjęcie, które do tego tekstu pasuje,
  • krótki fragment kodu sprawdza, czy odpowiedź jest poprawnym JSON-em, i sprząta ją, gdy model opakuje ją w markdown — bo modele lubią to robić mimo wyraźnego zakazu w instrukcji,
  • biblioteka zdjęć na wolnej licencji dostaje te słowa kluczowe i oddaje dziesięć kadrów w orientacji poziomej,
  • losowanie wybiera jeden z dziesięciu, żeby profil nie wyglądał co tydzień tak samo przy podobnym temacie,
  • publikacja idzie prosto do API Facebooka: zdjęcie i podpis w jednym żądaniu, bez zewnętrznego planera i bez pośredniej usługi, której musiałbym powierzać dostęp do strony.

Najciekawszy jest krok drugi, bo tam siedzi cała sztuczka. Model nie pisze osobno tekstu i osobno opisu zdjęcia w dwóch zapytaniach. Pisze jedno i drugie w tej samej odpowiedzi, więc kadr pasuje do treści, a nie do tematu przewodniego strony. To jedno zapytanie mniej, jedno miejsce awarii mniej i o połowę mniejszy rachunek.

Dlaczego to nie jest jeden automat, tylko dwa

Posty ze zdjęciem i posty tekstowe robią u mnie dwa osobne przepływy, ustawione na rozłączne dni tygodnia. Wygląda to na niepotrzebne dublowanie, dopóki coś nie padnie. Jeżeli przestanie odpowiadać biblioteka zdjęć, milknie cztery dni w tygodniu, a nie siedem. Rozdzielenie kosztowało mnie kwadrans, a kupiło pewność, że jedna awaria nie zatrzyma całego kanału.

To jest ta sama zasada, którą stosuję u klientów: jeżeli dwie rzeczy mogą działać niezależnie, niech działają niezależnie. Jeden wielki przepływ, który robi wszystko, wygląda elegancko na schemacie i jest koszmarem w utrzymaniu.

Błąd, przez który przez dwa dni nie wyszło nic

Pierwsze dwa uruchomienia skończyły się identycznie: model napisał tekst, zdjęcie się znalazło, podpis się złożył — i Facebook odrzucił publikację z błędem 403, powołując się na uprawnienie, którego nie ma w tym API od lat. Komunikat sugerował, że mam prosić o wycofaną zgodę. To był fałszywy trop.

Prawdziwa przyczyna leżała gdzie indziej: żądanie szło z tokenem konta użytkownika zamiast z tokenem strony, z uprawnieniem do zarządzania jej treścią. Logika przepływu była poprawna od pierwszej minuty. Nie działała autoryzacja, o której na schemacie nie widać nic, bo to jedno pole w ustawieniach dostępu.

Komunikat błędu z cudzego API opisuje to, czego zabrakło systemowi, a nie to, co zrobiłeś źle. Przy integracjach z dużymi platformami połowa pracy to uprawnienia i tokeny, nie strzałki między krokami — i to jest ta połowa, której nie widać w wycenie, jeżeli ktoś jej tam uczciwie nie wpisał.

Czego ten automat ma zakazane

Instrukcja dla modelu jest krótsza niż lista zakazów. Zakazy są ważniejsze, bo to one decydują o tym, czy taki automat da się zostawić bez nadzoru:

  • nie wymyśla statystyk ani historii klientów — model wymyśla liczby bez ostrzeżenia i brzmią wtedy zupełnie wiarygodnie, a firma odpowiada za to, co ma na profilu,
  • nie sięga po zdjęcia spoza bazy na wolnej licencji — kadr z wyszukiwarki grafik to najprostsza droga do wezwania do zapłaty od fotografa, więc źródło zdjęcia jest w automacie ustawione na sztywno i widnieje pod postem,
  • nie zaczyna od „Czy wiesz, że" i „W dzisiejszych czasach", nie sypie emoji — bo tekst, który wygląda na wygenerowany, jest gorszy niż brak tekstu,
  • nie odpowiada na komentarze i nie obsługuje wiadomości — rozmowa z człowiekiem to jedyna część, której nie oddaję maszynie.

Ile to kosztuje i co naprawdę oszczędza

Rachunek jest nudny. Jeden post to kilkaset znaków od najtańszego dostępnego modelu, więc miesięczny koszt liczę w groszach. Biblioteka zdjęć w tym zastosowaniu jest bezpłatna. Przepływ stoi na moim serwerze, który i tak pracuje, więc nie płacę za każde uruchomienie osobnej subskrypcji. Realny koszt to kilka godzin złożenia całości i te dwa dni szukania przyczyny błędu 403.

Ale oszczędność czasu nie jest tu głównym zyskiem, bo napisanie krótkiego posta to dziesięć minut. Automat zdejmuje z głowy coś droższego: codzienną decyzję „o czym dzisiaj". To ona sprawia, że firmowe profile milkną na trzy tygodnie, a potem wracają zrywem czterech postów w jeden dzień. Regularność jest tu wartością samą w sobie i to ją kupiłem.

Kiedy bym tego nie zrobił

Ten automat pasuje do profilu, który jest wizytówką — ma pokazywać, że firma żyje i czym się zajmuje. Gdyby na Facebooku stał mój lejek sprzedażowy, kampanie i obsługa klienta, publikowanie treści bez czytania jej przez człowieka byłoby złym pomysłem. Najlepsze posty to konkretne historie z wdrożeń, a tych model nie zna i nie wolno mu ich zmyślać.

Drugie ograniczenie jest jeszcze prostsze: model nie wie, co się dzieje w firmie. Nie napisze o nowej usłudze, o zmianie cennika ani o tym, że w zeszłym tygodniu skończyłem ciekawe wdrożenie. Dlatego raz na jakiś czas i tak wchodzę i piszę post ręcznie, a automat jest podłogą, nie sufitem.

Jeżeli marka żyje z treści, ten sam szkielet warto ustawić inaczej: zamiast publikować od razu, niech przygotuje wersję roboczą i wyśle ją na telefon do akceptacji. Praca człowieka schodzi wtedy z pisania do zatwierdzania, a to zwykle różnica między postem raz na trzy tygodnie a postem codziennie.

Ten sam szkielet w innej firmie

Schemat „obudź się, złóż treść z tego, co już masz, opublikuj tam, gdzie patrzą klienci" obsługuje rzeczy dużo bardziej przyziemne niż posty o automatyzacji:

  • cykliczny post z ofertą tygodnia, składany z cennika albo stanu magazynu, a nie pisany od zera,
  • zajawka nowego wpisu z bloga albo nowej realizacji, wypuszczana na profil w dniu publikacji,
  • przypomnienie o wydarzeniu, terminie zapisów albo końcu promocji, ustawione raz i odliczane samo,
  • wersje robocze do akceptacji zamiast publikacji od razu — ten sam przepływ, tylko na jego końcu zamiast API portalu jest wiadomość do Ciebie.

Każdy z tych wariantów to kilka godzin roboty i ten sam zestaw pytań na starcie: skąd biorą się dane, kto odpowiada za treść i co ma się stać, gdy portal odpowie błędem. Jeżeli chcesz to sobie przeliczyć na własnym przypadku, pierwsza analiza procesów jest bezpłatna i nie potrzebujesz do niej specyfikacji — wystarczy, że opiszesz w ludzkim języku, co chciałbyś przestać robić ręcznie.

Masz proces, który zjada Ci czas co tydzień? Pierwsza analiza jest bezpłatna.

Umów darmową analizę