Ta migracja mogła być dramatem. Mogła, ale nie była.

W tym wpisie opowiem jak sobie poradzić, gdy nie ma dedykowanego narzędzia do migracji między dwoma platformami do kursów. A co gorsza, nie ma nawet możliwości importu i eksportu użytkowników.

Thrive Apprentice

Moja klientka do tej pory korzystała z Thrive Apprentice. Jest to wtyczka do Wordpressa, która pozwala zrobić ze zwykłego bloga platformę do kursów online.

Postanowiłyśmy wspólnie, że trzeba z niej migrować.

Na platformie były trzy kursy z materiałami w różnym formacie: wideo, pliki pdf, quizy. Samych treści nie było dużo, ale kursantów, których też trzeba zmigrować razem z kursami było ponad 1500.

Dodam jeszcze, że. Thrive Apprentice to płatna wtyczka: kosztuje 299 dolarów rocznie.

Teachabale

Teachable to platforma do hostowania kursów (SaaS). W Polsce raczej niezbyt popularna. Moja klientka widziała Teachable „w akcji” jako kursantka u kogoś innego.

Szukałyśmy jakiejś alternatywy, która spełniałaby wszystkie nasze wymagania. Chodziło przede wszystkim o cenę: 119 dolarów miesięcznie (czyli 1428 dolarów rocznie) za wersję Pro. Jak już wiesz z tytułu tego wpisu, nie udało się znaleźć nic bardziej przystępnego cenowo, co moja klientka by zaakceptowała.

Didam, że wersja Pro była nam potrzebna, by móc komunikować się z platformą po webowym API. Płatności miały zostać poza Teachable, dlatego było nam potrzebne to API, żeby automatycznie zakładać konta użytkownikom.

Webowe API przydało się też przy migracji.

Problemy

Eksport i migracja treści

Nie łudziłam się, że znajdę sposób na w pełni automatyczną migrację samych treści. Zresztą, Teachable nie daje możliwości masowego importu w takiej formie, jaka była mi potrzebna. Pogodziłam się więc, że treści trzeba zmigrować ręcznie (chociaż pomogłam sobie kilkoma małymi trikami). Treści należało też przejrzeć w trakcie migracji: było kilka problemów z dotychczasowymi treściami.

Eksport użytkowników

Liczyłam na to, że uda się automatycznie zmigrować przynajmniej użytkowników… i się przeliczyłam. Nie znalazłam metody eksportu użytkowników wraz z informacją o kursach. A na pewno nie takiej metody, której mogłam zaufać w 100%.

Ale znalazłam na to inny sposób. Tymczasem był jeszcze jeden problem.

Import użytkowników

Teachable na planie Pro nie daje możliwości masowego importu użytkowników. Do takich rzeczy musiałybyśmy mieć plan Business. Ale taki problem to nie problem: przecież mamy webowe API.

A całość ogarnęłam tak 👇

Migracja

Treści zmigrowałam ręcznie z pomocą małych skryptów JavaScript, które odpalałam w konsoli, a które „wypluwały” dla mnie jakieś informacje.

Przykład: adres url do wideo hostowanego na Vimeo. Zamiast szukać tego w źródle strony, dostawałam link do nagrania w konsoli.

Resztę już zautomatyzowałam.

Eksport użytkowników: automatyzacja przeglądarki

Ponieważ nie mogłam w sensowny sposób pobrać użytkowników z informacją o kursach jakie mają, postanowiłam posłużyć się skryptem, który automatycznie wykonywał pewne akcje w przeglądarce.

Mój skrypt wchodził na stronę każdego kursanta w Thrive Apprentice, pobierał informacje o użytkowniku i jego kursach, a następnie zapisywał je w pliku .csv. Taki plik wykorzystałam w kolejnym kroku.

Import użytkowników: automatyzacja z n8n

Mamy własną instancję n8n (podobne do Make czy Zapier), której użyłam do zautomatyzowania dodawania nowych kont i przydzielania dostępów do kursów.

Automatyzacja pobierała informacje o użytkownikach z arkusza Google i dla każdego zakładała konto w Teachable po API.

Ile to zajęło

Całość zajęła 34 godziny. Do tego czasu wlicza się to, o czym tutaj napisałam, czyli:

  • ręczna migracja treści,
  • napisanie i wykonanie automatycznego skryptu do eksportu użytkowników,
  • stworzenie i wykonanie automatyzacji do importu użytkowników.

Ale także zadania, o których tutaj nie napisałam, czyli:

  • konfiguracja nowej platformy (Teachable),
  • integracja z płatnościami obsługiwanymi po stronie Woocommerce (automatyzacja w n8n),
  • komunikacja z użytkownikami na temat zmian (konfiguracja i wysyłka masowego maila transakcyjnego za pomocą Brevo i automatyzacji n8n).