9 integracji pomiędzy narzędziami biznesowymi – jak robimy to w Deviniti

Deviniti

1 marca 2021 • 45 min czytania

    Wszystkie, nawet najbardziej złożone, zorientowane na użytkownika i przemyślane produkty, da się udoskonalić. Często to użytkownicy zauważają dodatkowe możliwości systemu, których nie przewidzieli jego twórcy. W takich przypadkach tworzenie nowego produktu jest możliwe, chociaż nie zawsze polecane. Odpowiedzią na problem może być integracja systemów, pozwalająca na lepsze wykorzystanie obydwu (lub w niektórych przypadkach większej liczby) narzędzi. Jeśli jest ona właściwie przeprowadzona, gwarantuje między innymi efektywne wykorzystywanie danych, automatyzację przepływu pracy i usprawnia wykorzystywanie zwinnych metod.

    Nasza podróż przez galaktyki w Deviniti jest wypełniona różnorodnymi misjami. Jedną z nich jest łączenie światów nawet pozornie odległych od siebie aplikacji. Dzisiaj opowiemy więcej o 9 z nich: od pomysłu, przez wykonanie, po efekt.

    TestFLO + Configuration Manager for Jira

    TestFLO for Jira to aplikacja do systemu Atlassian Jira, która przenosi zaawansowane procesy testowe bezpośrednio do Jiry. Pozwala na zautomatyzowanie wielu związanych z testowaniem procesów, uruchamianych bezpośrednio z Planu Testów, przeprowadzanych w Jenkins i Bamboo. Narzędzie pozwala też na kategoryzację testów za pomocą folderów, według potrzeb użytkownika, co usprawnia pracę zespołów programistycznych. Z TestFLO możemy między innymi konfigurować moduły i pola niestandardowe, aby stworzyć wymagający proces zarządzania testami. Każdy projekt można konfigurować indywidualnie.

    Aby projekty w Jirze przebiegały sprawnie, elementy konfiguracji, takie jak typy zadań, przepływ pracy czy pola, muszą być odpowiednio zoptymalizowane. Configuration Manager to aplikacja odpowiedzialna za zarządzanie konfiguracją i automatyzację migracji danych pomiędzy środowiskami. Dzięki temu administratorzy mogą w efektywny sposób przeprowadzać zmiany pomiędzy środowiskami: testowym, wdrożeniowym i produkcyjnym w Jirze. W jakich sytuacjach jest to przydatne? Na przykład, gdy proces zarządzania zmianami zachodzącego naturalnie w ramach instancji lub podczas migracji danych i obiektów pomiędzy rozwiązaniami hostingowymi. Taka sytuacja czeka np. klientów Jira Server, którzy muszą podjąć decyzję dotyczącą zmiany opcji hostingu Jiry do lutego 2024 roku.

    Jak wpadliśmy na pomysł integracji tych dwóch narzędzi? Taki potencjał zauważyli nasi klienci, pracujący z obiema aplikacjami, którym brakowało połączenia między nimi. Jednym z klientów jest organizacja wchodząca w skład tzw. wielkiej czwórki firm konsultingowych.

    Za integrację systemów był odpowiedzialny zespół TestFLO, pozostający w kontakcie z firmą Botronsoft, konsultując się w sprawie szczegółów implementacji.

    Jak integracja z Configuration Managerem może pomóc w jeszcze trafniejszym testowaniu?

    TestFLO i Congiruration Manager to para idealna. W procesie zarządzania zmianą mamy potrzebę wprowadzania zmian w środowisku, przetestowania zmiany zgodnie z planem testów (tym obszarem zajmuje się TestFLO), a następnie przeniesienia zaakceptowanych zmian do środowiska produkcyjnego (za ten proces odpowiedzialny jest Configuration Manager). Dodatkowo, dzięki tej integracji zmiany konfiguracji, w tym dane, mogą być automatycznie przenoszone w TestFLO z jednej instancji do drugiej.

    Zarządzanie zmianą

    Dzięki integracji zmiany w procesie testowania mogą być automatycznie przenoszone do produkcji w Jirze zaraz po zatwierdzeniu w środowisku testowym.

    Szablon Projektu

    Integracja pozwala też na tworzenie kopii projektu z konfiguracją szablonu TestFLO, by zaoszczędzić czas na rekonfigurację.

    Aktualizacja istniejącej konfiguracji projektu

    Wprowadzanie zmian w konfiguracji TestFLO w jednym z istniejących projektów umożliwia przeniesienie go do istniejącego już projektu w instancji Jira.

    Połączenie Configuration Manager for Jira stworzonego przez Botronsoft i TestFLO for Jira pozwala na zaoszczędzenie ogromnej ilości czasu i wysiłku, które musiałyby być włożone w przeprowadzanie manualnych testów. Przenoszenie konfiguracji pomiędzy środowiskami to mozolny proces, wymagający testowania na każdym etapie pracy. Integracja narzędzi umożliwiła wprowadzanie bezpiecznych zmian w procesach przeprowadzanych w Jirze. Zajrzyj do przewodnika Botronsoftu i dowiedz się więcej o najlepszych praktykach migracji i potencjalnych problemach, jakie możesz napotkać w trakcie tego procesu.

    Integracje z monday.com

    monday.com + Freshworks

    Czy integrowanie dwóch narzędzi odpowiedzialnych za zarządzanie zadaniami jest zasadne? W przypadku monday.com i Freshworks – zdecydowanie tak, jako że Freshworks to zestaw narzędzi, obejmujących również Freshdesk – aplikację wspierającą zespoły obsługi klienta. Automatyzacja przepływu wiadomości spływających bezpośrednio od klientów, przez chatbota lub pracownika obsługi klienta, do monday.com, pozwala na uniknięcie chaosu i i rozwiązywanie problemów klientów o wiele efektywniej. Dzięki tej integracji pracownicy są odciążeni z wykonywania powtarzających się obowiązków, a managerowie mogą w przejrzysty sposób nadzorować pracę zespołu.

    Zespół sprzedaży w Deviniti, który każdego dnia pracuje zarówno z monday.com, jak i Freshdesk, zauważył możliwości tej potencjalnej integracji. Samo narzędzie monday.com świetnie sprawdza się do nadzorowania pracy w organizacji, usprawniania pracy zespołowej i bieżącego monitorowania zadań wszystkich członków zespołu. To, czego w nim brakowało, to możliwość automatycznego otrzymywania wiadomości, np. z czatów, a następnie tworzenia zadań na ich podstawie. Na szczęście Freshdesk to narzędzie przeznaczone właśnie do zajmowania się prośbami klientów spływającymi z różnych kanałów komunikacji, dzięki czemu te dwa systemy mogły zostać połączone.

    Jaki był główny cel tej integracji? Przede wszystkim przyspieszenie pracy dzięki wsparciu wysokiego poziomu automatyzacji. Jak udało nam się to osiągnąć? Przeprowadziliśmy dwukierunkową synchronizację, która zapewniła spójność danych przepływających pomiędzy systemami. Synchronizacja została przeprowadzona za pomocą REST/ GraphQL API, z uwzględnieniem mapowania wartości pól na podstawie konfiguracji dostępnej dla użytkowników z poziomu UI. Rozwiązanie zostało stworzone na platformie Freshdesk w formie pluginu.

    Integracja pozwoliła na dużo lepsze wykorzystanie potencjału obydwu narzędzi. Teraz wspiera ona lepszą organizację pracy dla zespołów sprzedaży, ale nie tylko. Zgłoszenia, spływające do systemu Freshworks z poszczególnych skrzynek i pozostałych źródeł, teraz automatycznie tworzą zadanie na tablicy projektu wskazanej w konfiguracji monday.com. Pozwala to z kolei na automatyczne tworzenie zadań dla innych zespołów, które za pomocą serwisu monday.com mogą zarządzać zestawami zadań. Dzięki automatycznej aktualizacji zadań we Freshdesk oba zespoły mają dostęp do aktualnych danych natychmiast po wprowadzeniu zmian w zsynchronizowanych zadaniach w monday.com.

    monday.com + AirTable

    Kolejną niedawną integracją, nad którą nasz zespół pracuje w tej chwili, jest integracja monday.com i AirTable. Co ją zapoczątkowało? Tym razem zespół monday.com przedstawił nam swojego klienta strategicznego, pracującego z AirTable. Klient zdecydował się przejść z innej platformy na platformę monday.com, w związku z czym wyraził potrzebę automatycznej migracji obecnych danych do struktury monday.com. W tym celu zaczęliśmy pracę nad możliwością migracji projektów z AirTable do monday.com.

    Zawsze staramy się podejść do problemu jak najbardziej kompleksowo, dlatego stworzyliśmy dwa projekty odpowiadające na potrzebę klienta. Pierwszy, nieco bardziej złożony, umożliwiał zrekonstruowanie architektury elementów w monday.com z uwzględnieniem automatycznego podziału na grupy. Drugie rozwiązanie było nieco mniej złożone. Podczas pracy nad nim zespół Deviniti stworzył plugin z wykorzystaniem nowego SDK, przygotowanego przez monday.com. Plugin udostępnia nowy customowy widok tablicy oraz panel konfiguracyjny. Migracja pozwala na transfer elementów zawartych w tablicy AirTable (wybranej w konfiguracji pluginu) do wybranej grupy w monday.com.

    Ta integracja umożliwia transfer następujących rodzajów danych i kolumn:

    • użytkownicy – na podstawie adresów mailowych,
    • statusy i listy wyboru,
    • pola zawierające dłuższy tekst,
    • linki i subitemy – bazując na związku pomiędzy elementami zdefiniowanymi w AirTable.

    Spośród dwóch zaprezentowanych możliwości zespół monday.com zdecydował się na przedstawienie klientowi prostszego rozwiązania. Po otrzymaniu dokładnych wymagań dotyczących projektu nasz zespół niezwłocznie zacznie pracę nad integracją. Ostateczny produkt ma pozwalać na przeprowadzanie uruchamianych ręcznie transferów z wybranej struktury AirTable do monday.com, wpierając tym samym pracę obu narzędzi. Automatyczna migracja zadań z AirTable do monday.com umożliwi szybki i niezawodny transfer zadań i projektów.

    monday.com + MS SharePoint

    Nasz kolejny klient, firma oferująca rozwiązania z zakresu ochrony środowiska, zlecił i sfinansował projekt integracji systemowej, który ma dostarczyć narzędzie do przechowywania plików firmowych wyłącznie na serwerach firmy na platformie SharePoint. Implementację nadzoruje Mateusz Olczak, Team Leader w zespole Apps Integration w Deviniti.

    Podczas pracy nad stworzeniem wtyczki okazało się, że wymagane będzie wydzielenie przez klienta serwera, na którym osadzona będzie aplikacja pośrednicząca w autoryzacji użytkowników – monday.com aktualnie hostuje jedynie aplikacje uruchamiane po stronie użytkowników, a aplikacje serwerowe muszą być hostowane we własnym zakresie.

    Jak przeprowadziliśmy tę integrację? Stworzyliśmy aplikację jako plugin do monday.com. Planujemy wdrożyć:

    • dedykowany widok tablicy – w celu wprowadzenia konfiguracji,
    • nową zakładkę w widoku szczegółów itemu – tutaj możliwe będzie wybieranie plików z SharePoint – on-premise – do których linki zostaną dołączone do itemu w monday.com,
    • aplikację serwerową – pośredniczącą w procesie pozyskania tokenu autentykującego użytkownika w Microsoft Azure Cloud.

    Ponieważ aplikacje monday.com są osadzone w iframe, nie mogliśmy użyć tokenu SSO użytkownika. Z tego powodu zastosowaliśmy podejście, w którym użytkownik ponownie (raz na sesję) autentykuje się w Azure.

    Jak działa ta integracja systemów?

    W ramach prac prowadzonych na platformie monday.com dodawane pliki są przechowywane w postaci linków. W ten sposób pliki nie są przechowywane poza serwerami klienta, zgodnie z polityką firmy. Co ważne, został tu spełniony kluczowy wymóg klienta: pliki wyświetlane użytkownikowi dotyczą tylko elementów, do których ma on dostęp w SharePoint.

    Integracja z centralnym systemem przechowywania i dystrybucji firmowych dokumentów pozwala na powiązanie ich z zadaniami obsługiwanymi w serwisie monday.com, bez konieczności ich powielania i zapisywania na platformie monday.com. Dzięki temu integracja odpowiada na potrzebę zgodności z polityką bezpieczeństwa firmy. Dodatkowy atut to możliwość unikania błędów wynikających z ręcznego przenoszenia linków i znaczne przyspieszenie pracy nad zadaniami.

    Integracje Jira

    Jira + SAP

    Gdy współpracujące ze sobą zespoły w ramach jednej firmy korzystają z różnych narzędzi, popełnienie błędu to tylko kwestia czasu i nieuwagi. Gdy w grę wchodzi praca z liczbami i danymi, integracja tych narzędzi jest niemal nieunikniona. Może ona przyspieszyć pracę i wyeliminować ryzyko błędu ludzkiego. Dokładnie z takim przypadkiem mieliśmy do czynienia, rozpoczynając pracę nad kolejną integracją. Dział księgowości naszego klienta został podzielony na dwa zespoły: jeden pracujący z Jira, drugi z SAP. Ręczne przenoszenie danych z jednego systemu do drugiego wymagało zbyt wiele czasu i wysiłku – automatyzacja była więc konieczna.

    W tym przypadku głównym wymaganiem było umożliwienie tworzenia dokumentów w SAP na podstawie danych z Jira. Istotne było też zapewnienie, że komunikaty trafią do SAP nawet wtedy, gdy system nie będzie dostępny przez dłuższy czas. Klient nie był gotowy na wprowadzenie w swojej infrastrukturze dedykowanej kolejki wiadomości – musieliśmy więc zaproponować inne rozwiązanie jego problemu. Ostatecznie użyliśmy kolejki wiadomości opartej na bazie danych. Na szczęście wysoka dojrzałość technologiczna klienta pozwoliła na mapowanie danych przekazywanych do SAP po stronie jego zespołu technicznego.

    Proces tworzenia danych w SAP przebiega dwuetapowo. W pierwszej kolejności z Jira wysyłane są informacje niezbędne do stworzenia wersji roboczej dokumentu w SAP. Następnie, po pomyślnym zakończeniu operacji, status w Jira automatycznie się zmienia, a załączniki z zadania w Jira są przenoszone do SAP.

    Automatyzacja przepływu informacji z Jira do SAP to ogromna oszczędność czasu. Integracja wyeliminowała też możliwość popełniania błędów przez pracowników. Spójność danych jest zachowana, co w oczywisty sposób przyspiesza pracę i uszczelnia cały proces.

    Jira + grape.io

    Komunikacja wewnątrzfirmowa może być przeprowadzana na wiele sposobów, ale narzędzie w formie czatu prawdopodobnie jest najczęściej wybieraną opcją. Podczas pracy nad zgłoszeniami korzystanie z czatu zintegrowanego z narzędziem do zarządzania zadaniami pozwala na zminimalizowanie ręcznego przepisywania informacji. Nasz partner korzystał z wtyczki Marketplace integrującej Jira Server z czatem, którego używał – Grape.io, ale nie był do końca zadowolony z działania tego rozwiązania. Największe problemy miały związek z warstwą UX i brakiem możliwości dodawania nowych funkcjonalności do pluginu. Nasz zespół Atlassian Services wpadł na pomysł skuteczniejszej integracji tych dwóch narzędzi.

    Mając na uwadze wcześniejsze problemy z wtyczką, zaproponowaliśmy integrację, która umożliwiłaby stworzenie nowego czatu z poziomu zgłoszenia w Jira i automatycznego dodawania do czatu użytkowników ze wskazanych w konfiguracji pól. Co więcej, wtyczka pozwala na wyświetlanie czatu w widoku Jira Issue. W ramach tej implementacji wykorzystaliśmy interfejs RPC API Grape oraz bibliotekę frontendową, umożliwiającą wyświetlanie czatu. Łączenie użytkowników pomiędzy czatem a Jira odbywa się na podstawie ich adresów mailowych. Rozwiązanie zostało stworzone jako wtyczka do Jira.

    Integracja zdecydowanie usprawniła współpracę pomiędzy oboma narzędziami. Teraz użytkownicy mogą w prosty sposób połączyć wątki wywoływane w Jira z komunikacją za pośrednictwem czatu Grape. Dzięki temu mogą oni szybko wymieniać informacje – również z pracownikami nieposiadającymi konta w Jira. Co więcej, użytkownicy mogą sprawnie odnosić się do tematów poruszanych w komentarzach Jira, korzystając z ogólnego czatu. Wreszcie, automatyczne dodawanie użytkowników do nowoutworzonych czatów umożliwia wszystkim zainteresowanym użytkownikom Jira dostęp do rozmów w Grape. Gdy nie są już powiązani z danym zgłoszeniem, są automatycznie usuwani z dotyczącej go konwersacji.

    Jira + BPM

    Kolejna integracja z Jira została stworzona, by uprościć proces sprzedaży naszemu klientowi. Korzystał on z systemów Jira i BPM indywidualnie i zwrócił się do Deviniti z potrzebą integracji tych narzędzi. Naszym głównym celem było ujednolicenie informacji pojawiających się w obydwu systemach i umożliwienie aktualizacji danych przepływu pracy.

    W przypadku tej integracji naszym założeniem było przygotowanie rozwiązania, które pozwoliłoby na transfer statusów, danych oraz załączników między Jira a BPM. Istotnym wymaganiem było zapewnienie, że wiadomości będą dostarczane również wtedy, gdy system będzie niedostępny przez pewien czas. Tutaj, podobnie jak przy integracji dotyczącej Jira i SAP, użyliśmy kolejki wiadomości opartej na bazie danych. Ponadto wymaganiem było pozostawienie pełnej kontroli nad procesem integracji po stronie BPM. Z tego względu tworzenie zgłoszeń w Jira oraz pobieranie załączników realizowane było przy pomocy wbudowanego REST API Jira. Do wprowadzania danych w BPM wykorzystywany jest użytkownik techniczny, którego hasło przechowywane jest pliku konfiguracyjnym, w zaszyfrowanej formie. 

    Finalizowanie transakcji sprzedaży z reguły opiera się na dość złożonym procesie, tak więc w tym przypadku usprawnienie przepływu informacji było szczególnie istotne. Ten proces w firmie naszego klienta był prowadzony z użyciem dwóch narzędzi: Jira i BPM. Po przeprowadzeniu integracji obu narzędzi zadania początkowo tworzone są w BPM, a następnie ich klony są tworzone w Jira. Po osiągnięciu wskazanego statusu dane w BPM są aktualizowane względem danych w Jira, a przepływ pracy wraca do systemu BPM. Odpowiedzialność za kontrolowanie procesu spoczywa na BPM.

    Przewagą stworzonego przez nas rozwiązania jest możliwość utrzymania wysokiej jakości spójności danych, nawet w przypadku awarii systemu BPM. Po zakończeniu integracji dane dotyczące przepływu pracy zawsze są autualizowane na czas, dzięki czemu zespoły pracujące z Jira i BPM zawsze mają dostęp do informacji, których potrzebują na odpowiednim etapie realizacji przepływu pracy.

    Integracje Insight

    Insight + System tłumaczeń klienta

    Po tym, jak klient Deviniti zrezygnował z usług poprzedniego vendora, naszym głównym zadaniem stało się ulepszenie działania Jiry i zintegrowanie jej z zamówionym systemem klienta.

    W tym projekcie mieliśmy do czynienia z kilkoma integracjami systemowymi, jednak skupiliśmy się przede wszystkim na przesyłaniu informacji o zdarzeniach do systemu zewnętrznego (utrzymywanego przez klienta) za pomocą REST API. Jednym z wymagań postawionych przez klienta była możliwość uruchomienia algorytmu obliczającego określone współczynniki na podstawie wprowadzonych danych. Głównym celem było stworzenie systemu działającego jako broker tłumaczeń w oparciu o Jira. Wszystkie zlecenia tłumaczeń i dane tłumaczy trafiają do Jira z zewnętrznych systemów. Bazując na tych danych, tłumaczenia są przypisywane konkretnym pracownikom. Finalnie, kiedy dana osoba zdecyduje się pracować nad danym tłumaczeniem, informacja o tym trafia do kolejnego zewnętrznego systemu. Pomogliśmy w uporządkowaniu tego procesu, synchronizując dane z uwzględnieniem zasobów klienta.

    Aby w efektywny sposób wprowadzić to rozwiązanie, podzieliliśmy komunikaty trafiające do zewnętrznego systemu na dwa rodzaje:

    • komunikaty, które muszą trafić do systemu natychmiast po wystąpieniu zdarzenia,
    • komunikaty, które mogą dotrzeć z opóźnieniem.

    Komunikaty drugiego typu są odkładane do kolejki wiadomości, opartej na bazie danych. Następnie za pomocą konfigurowalnego, progresywnego algorytmu określania odstępów między czasem ponawiania wysyłki wiadomości, są one przekazywane do systemu zewnętrznego. W kolejnym kroku informacje pobrane z systemu klienta są magazynowane w bazie danych, a chwilę po pobraniu transformowane za pomocą procedur składowanych do postaci, która jest bezpośrednio używalna w algorytmie wymienionym wcześniej. Zastosowanie mechanizmu cacheowania i wstępnej transformacji danych było możliwe dzięki niskiemu współczynnikowi zmienności danych.

    Celami, jakie chcieliśmy osiągnąć, były:

    • określenie, który z użytkowników ma najlepsze predyspozycje do przyjęcia danego zadania,
    • zablokowanie możliwości podjęcia zadania przez innych użytkowników dzięki przypisywaniu zadań,
    • umożliwienie natychmiastowego transferu informacji do systemu bilingowego, gdy w systemie zajdą określone zdarzenia.

    Dzięki przeprowadzeniu tej integracji systemowej mieliśmy możliwość optymalizacji przepływu danych, jak i optymalizacji kosztów. Istotną częścią procesu było też zredukowanie ryzyka podejmowania tych samych zadań przez różnych użytkowników systemu, co w efekcie przełożyło się na przyspieszenie pracy.

    Insight + Desktop Central

    Kolejna integracja systemowa z portfolio Deviniti dotyczyła integracji pluginu Jira – Insight – z systemem Desktop Central. Klient zwrócił się do nas z potrzebą śledzenia bazy licencji m.in. w celu optymalizacji ich liczby oraz zminimalizowania różnych wersji oprogramowania w organizacji.

    Jak wyglądał kontekst techniczny w przypadku tego projektu? Integracja wprowadziła możliwość importu danych do Insight z dodatkowym, automatycznym uzupełnianiem części danych nowych rekodrów, na podstawie już istniejących. Aby zapewnić integralność danych, użyta będzie kolejka komunikatów. Z kolei do przechowywania ustrukturyzowanych danych użyliśmy Insight. Komunikacja ma odbywać się za pośrednictwem REST API Insight. Aby uniknąć ewentualnych problemów z wydajnością systemu w przyszłości, zadecydowaliśmy, że za przeprowadzenie migracji będzie odpowiedzialna zewnętrzna aplikacja, niezależna od serwera, na którym działa Jira.

    Jakie efekty przyniosła przeprowadzona przez nas integracja? Najbardziej widocznym z nich jest możliwość zarządzania bazą licencji na oprogramowanie (część ITAM). Celami, jakie osiągnęliśmy, były optymalizacja kosztów i utrzymanie oprogramowania w organizacji. Ostatecznie wszystkie licencje związane z oprogramowaniem w całej organizacji powinny być zarządzane przy użyciu tej samej metodologii. W przyszłości licencje zostaną połączone ze sprzętem, co pozwoli na lepsze zarządzanie procesem on- i off-boardingu.

    Jeśli korzystasz z narzędzi, które wymagają integracji, skontaktuj się z nami. Nasi wykwalifikowani specjaliści przeprowadzą Cię przez cały proces, począwszy od dopracowania pomysłu, przez jego wdrożenie, aż do utrzymania. Zobacz, w jaki sposób przeprowadzamy implementacje.

    Sprawdź powiązane artykuły na naszym blogu:

    [contact-form-7 404 "Not Found"]