Integracja Salesforce z innymi systemami w firmie

Integracja Salesforce z innymi systemami w firmie

Blog post image

W dzisiejszych czasach przyzwyczailiśmy się już do obecności wielu wyspecjalizowanych systemów w naszych firmach. Wykorzystujemy dedykowane oprogramowanie wspierające procesy sprzedaży, obsługi klienta, marketingu, zarządzania produkcją, obsługi magazynu, rekrutacji, zarządzania zasobami ludzkimi oraz wielu innych. Większość wymienionych procesów biznesowych całkowicie różni się od siebie, dlatego też najczęściej obsługiwane są przez osoby cechujące się innymi zestawami wiedzy i umiejętności (np. zarówno księgowy, jak i elektromonter wysokich napięć pracują z dużymi liczbami, a jednak to nie to samo).

Różnice te dotyczą także oprogramowania wspierającego procesy firmy, ponieważ najczęściej diametralnie różnią się udostępnionymi funkcjonalnościami. Oczywiście, opisywana różnorodność jest całkowicie oczekiwana, jednakże największe korzyści osiągniemy, gdy systemy, z których korzystamy, będą ze sobą odpowiednio zintegrowane, czyli będą potrafiły sprawnie komunikować się i współpracować ze sobą (np. portal dla klientów umożliwiający samodzielne zarządzanie kupionymi produktami; system marketingowy wysyłający korespondencję e-mail do grupy zdefiniowanej w naszym systemie CRM; przesyłanie informacji o fakturach z systemu CRM do systemu księgowego).

Poniższy artykuł ma na celu przybliżenie możliwości integracyjnych platformy Salesforce z innymi systemami w firmie. Salesforce CRM bardzo często służy do obsługi najważniejszych procesów w firmie (sprzedaż, wsparcie klientów, marketing), dlatego najczęściej pełni również funkcję centralnego systemu w organizacji.

Czym jest integracja?

Wyobraźmy sobie, że zakupiliśmy nową konsolę do gier. Jedyne, co musimy teraz zrobić, to bezpośrednio (P2P) podłączyć (zintegrować) urządzenie z telewizorem za pomocą przewodu HDMI (interfejs) oraz włączyć zasilanie. Okazuje się, że zasilacz posiada wtyczkę typu UK Plug niepasującą do gniazd typu EU (niezgodność interfejsów), na szczęście jednak posiadamy adapter (middleware). Ostatnia rzecz, to połączenie konsoli z siecią WiFi (router - middleware) i możemy zacząć pobieranie 100 GB modnej gry. Właśnie, w bardzo dziwny sposób, została opisana integracja czterech systemów (konsola do gier, telewizor, sieć energetyczna oraz sieć komputerowa), poprzez różne interfejsy. Urządzenia udostępniają unikalne zasoby i funkcjonalności, dodatkowo oczekując od integracji konkretnych zachowań, np. urządzenie podłączone do zasilania otrzyma prąd o napięciu 230V, a nie dane w formacie JSON. 

Generalizując, integracja systemów informatycznych jest procesem polegającym na połączeniu systemów tak, aby mogły one korzystać ze swoich zasobów oraz funkcjonalności. Systemy można ze sobą zintegrować poprzez interfejsy (API) na wiele sposobów, należy przy tym zwrócić szczególną uwagę na przeznaczenie oraz zakres integracji, jak i ograniczenia systemów integrowanych. Dlatego też bardzo ważną czynnością, którą należy przeprowadzić przed rozpoczęciem integracji, jest analiza biznesowa i techniczna. Dzięki niej będziemy w stanie lepiej zrozumieć oczekiwania i ograniczenia związane z integracją, co uchroni nas przed kulejącymi procesami, niekończącymi się data fixami i szybującymi kosztami. 

Patrząc na integrację od strony jej zastosowania, możemy wyróżnić 3 podstawowe typy:

  • integracja danych – występująca, gdy musimy zsynchronizować informacje pomiędzy systemami używanymi w firmie. Największym wyzwaniem tego typu integracji jest zapewnienie, aby różne systemy zawierały zgodne dane (data reconciliation). Przykład: system automatyzacji marketingu pobiera dane o klientach z CRM do przeprowadzania kampanii marketingowej.
  • integracja procesów – jest to możliwość wykorzystania funkcjonalności jednego systemu przez inne. Przykład: proces płatności online najczęściej jest delegowany, ponieważ zwykle interesuje nas wyłącznie status transakcji.
  • wirtualizacja – występująca, gdy jeden system jest w stanie wpływać na dane znajdujące się w innym systemie bez potrzeby replikowania danych w pierwszym z nich. Oznacza to np., że w środowisku wielu aplikacji istnieje możliwość sprawienia, aby większość użytkowników była w stanie poprzez jeden, główny system (np. CRM) pracować również na innych bez wiedzy o ich istnieniu.

Pod względem architektury technicznej integrację możemy podzielić na:

  • Point to Point (P2P) – integracja pomiędzy systemami może zostać osiągnięta poprzez bezpośrednie połączenie systemów. Tego typu integracje, najczęściej, są dość proste w implementacji (więc również dość tanie). Niestety, często są słabo skalowalne i przez możliwość bezpośredniego dostępu do systemu, wykazują większą podatność na ataki. Dodatkowo, możliwości zmian przesyłanych struktur danych, jak i trudności w utrzymaniu, znacząco rosną wraz ze wzrostem ilości połączonych systemów. Przypuśćmy, że zauważyliśmy różnice w zsynchronizowanych danych w dwóch systemach połączonych P2P – w takim przypadku znalezienie błędów powinno być dość proste, niestety sytuacja będzie wyglądała całkowicie inaczej, gdy tych systemów będzie siedem. Źle użyte podejście P2P może doprowadzić do powstania integracyjnego spaghetti.
  • Middleware – polega na wprowadzeniu dodatkowego narzędzia pomiędzy integrowane systemy, na przykład, gdy potrzebujemy dodatkowych mechanizmów, których nie zapewniają nam łączone systemy. Narzędzia tego typu najczęściej w bardzo prosty sposób umożliwiają dodawanie nowych systemów oraz dają możliwość transformacji i przekierowywania danych bez potrzeby bezpośrednich zmian w integrowanych systemach. Tego typu integrację rozwiązują większość problemów występujących w integracjach P2P, lecz najczęściej, podejście to wiąże się również ze zwiększeniem kosztów.

Gdy już wiemy jaki jest zakres integracji, następnym krokiem, który powinniśmy zrozumieć są możliwości i ograniczenia integrowanych systemów:

  • jakie mamy dostępne interfejsami (API)?
  • ile danych maksymalnie można przetworzyć?
  • ile żądań można przetworzyć?
  • jak długo maksymalnie może trwać żądanie?
  • jaki jest średni czas żądania?
  • dostępne sposoby autoryzacji i autentykacji?
  • jakie mamy opcje monitorowanie API?

oraz nanieść je na oczekiwania względem integracji:

  • ile i jak często chcemy wysyłać żądania?
  • ile danych oraz jak często chcemy przesyłać?
  • jaki poziom bezpieczeństwa musimy zapewnić?

Czym jest Salesforce?

Salesforce.com od wielu lat jest liderem wśród systemów klasy CRM. Firma już od 1999 roku udostępnia swoje oprogramowanie jako usługi w chmurze. CRM Salesforce jest produktem w pełni osadzonym w chmurze, dzięki czemu po wdrożeniu przestają nas dotyczyć problemy i koszta związane z utrzymaniem fizycznej infrastruktury serwerów, co najczęściej jest bardzo dużym plusem. Takie podejście również wymusza na Salesforce posiadanie bardzo dużych możliwości integracyjnych. Najpopularniejszymi rozwiązaniami Salesforce są:

  • Sales Cloud – system wspierający procesy sprzedażowe 
  • Service Cloud – system organizując procesy wsparcia klientów, (np. Call Center)
  • Marketing Cloud – platforma służąca do automatyzacji kampanii marketingowych
  • Commerce Cloud – platforma e-commerce
  • Tableau – jedna z najpopularniejszych platform umożliwiających analizę danych
  • Mulesoft – bardzo popularna platforma integracyjna (middleware) o ogromnych możliwościach integracyjnych.

Zachęcam do zapoznania się moim poprzednim artykułem Jak Salesforce pozwala zwiększyć performance firmy?, w którym dużo dokładniej opisałem tę platformę.

Salesforce jest firmą posiadającą wiele własnych produktów i usług. Dodatkowo istnieje wiele rozwiązań zbudowanych bezpośrednio na platformie,, które są dostępne poprzez sklep App Exchange. Oczywiście, jak można się spodziewać, wszystkie produkty Salesforce doskonale integrują się ze sobą. Jak już wspomniałem, są one w pełni osadzone w chmurze, co wymusza na platformie posiadanie bardzo dużych możliwości integracyjnych. Między innymi w tym celu, w 2020 roku, Salesforce przejął firmę Mulesoft, aby jeszcze bardziej uprościć integrację z innymi systemami. Mulesoft jest platformą integracyjną posiadającą setki gotowych, reużywalnych „connectorów”, umożliwiających bardzo szybkie zintegrowanie systemów takich, jak Salesforce, Oracle, SAP, Workday, Box, AWS, Azure i wielu innych. Dodatkowo bardzo pozytywnym aspektem Salesforce jest to, że większość, a już na pewno wszystkie najpopularniejsze narzędzia integracyjne, wspierają integrację z tą platformą.

Jakie interfejsy API oferuje Salesforce?

Najczęściej im więcej interfejsów API oferuje system, tym większymi możliwościami integracyjnymi dysponujemy. Wyobraźmy sobie np. 30-letni „legacy system”, który w celach integracji jedynie udostępnia możliwość generowania i konsumowania plików w formacie CSV. Jak można się domyślać, integracja tego typy systemu będzie dość trudna, a zrobienie tego w czasie bliskim rzeczywistemu, będzie skrajnie niemożliwe. Dlatego też przyjrzymy się API, które oferuje Salesforce:

  • REST API/SOAP API – bardzo prosty synchroniczny interfejs oparty o REST lub protokół SOAP, służący do manipulowania danymi przechowywanymi na platformie Salesforce. Salesforce, dla każdego obiektu (tabeli), automatycznie tworzy API umożliwiające wyszukiwanie, tworzenie, modyfikowanie i usuwanie rekordów (CRUD – create, read, update, delete). Tego typu API zostało zoptymalizowane do szybkiego przetwarzania małych ilości danych. Najczęściej jest używane, gdy oczekujemy wyników w czasie rzeczywistym, np. podczas budowania UI, integracją z aplikacjami mobilnymi,
  • Apex REST API/Apex SOAP API – Salesforce umożliwia zbudowanie własnych niestandardowych API opartych o protokół REST i SOAP za pomocą kodu Apex,
  • Bulk API – asynchroniczne API umożliwiające przetwarzanie milionów operacji CRUD. Często używane do migracji i replikacji danych,
  • Streaming API – interfejs oparty o protokół Bayeux, umożliwiający pobranie z Salesforce, w czasie rzeczywistym, strumienia opisującego zmiany danych dokonanych w Salesforce. To API może zostać wykorzystane do zaimplementowania procesu bardzo szybkiej replikacji danych. Dodatkowo ostatnio jest to jedna z moich ulubionych funkcjonalności, ponieważ umożliwia wprowadzenie Event-Driven Architecture (EDA) pozwalającego zmniejszyć zależności między systemami oraz pomagającego zwiększyć wydajność i szybkość systemu przez lepiej skalowalne procesy oraz lepsze możliwości rozkładania obciążeń,
  • Metadata API/ Tooling API – cała konfiguracja oraz kod zapisane są w Salesforce jako metadane, do ich modyfikacji służą właśnie Metadata i Tooling API. API można również użyć do procesów CD/CI oraz synchronizacji metadanych z innymi systemami.

Jak można zauważyć, Salesforce posiada bardzo duże możliwości integracyjne. Więcej szczegółowych informacji można znaleźć w dokumentacji Salesforce.

Dodatkowo, korzystając z niskopoziomowych API oraz abstrakcji platformy, Salesforce wprowadził kilka bardzo ciekawych i unikalnych rozwiązań:

  • Salesforce Hyperforce – pod koniec 2020 r. Salesforce umożliwił przeniesienie części platformy na infrastrukturę publicznych chmur takich, jak AWS czy Azure, dzięki czemu można budować skalowalne rozwiązania, które jeszcze lepiej integrują się z infrastrukturą wielu firm (aktualnie dostępny jedynie jako wersja pilotażowa w Indiach).
  • Salesforce Private Connect – pozwalający na bardzo proste stworzenie prywatnego i bezpiecznego połączenia z usługami osadzonymi na platformie AWS, (aktualnie dostępny jedynie w regionach AWS Regions us-east-1 i us-west-2).
  • Heroku Connect – umożliwiający łatwo konfigurowalną, dwukierunkową synchronizację danych między Salesforce i bazą danych, znajdującą się na platformie Heroku. Tego typu rozwiązanie stosuje się, gdy potrzebujemy bardzo dobrze skalowalnych usług dla setek tysięcy czy milionów użytkowników. Platforma Heroku jest jedną z platform Salesforce, na której można zrobić naprawdę wiele rzeczy, np.firma Gen25 stworzyła rozszerzenie Social25 korzystające z Heroku, które umożliwia komunikację poprzez komunikatory WeChat, WhatsApp, Messenger i inne, bezpośrednio z poziomu Salesforce.
  • Salesforce File Connect – oferuje możliwość dostępu do plików przechowywanych na zewnętrznych systemach bezpośrednio w Salesforce. Często używany do integracji z GDrive, Sharepoint, Box, Quip, DropBox i innymi podobnymi systemami. Jest to świetne rozwiązanie, gdy nasza organizacja wymaga przechowywania bardzo wielu dokumentów.
  • Salesforce Connect – jest to funkcjonalność umożliwiająca zaprezentowanie danych z zewnętrznych źródeł w Salesforce bez potrzeby replikowania danych. To bardzo potężne narzędzie, które jest w stanie prezentować oraz modyfikować dane z innego systemu poprzez interfejs OData. Użytkownicy nawet nie są świadomi, że dane nie znajdują się w systemie, ponieważ wyświetlane są one korzystając z UI Salesforce. Dodatkowo integracji dokonuje się za pomocą konfiguracji.
  • CTI Computer-Telephony Integration) – umożliwia wykonywanie połączeń telefonicznych bezpośrednio z systemu Salesforce z poziomu przeglądarki internetowej, co oczywiście jest nieodzowną częścią każdego Call Center.
  • IoT (Internet of Things) – platforma umożliwiająca zbieranie i analizowanie danych wysyłanych przez różne urządzenia (smartfony, czujniki, detektory) oraz pozwalająca na reagowanie na określone zdarzenie. Platforma umożliwia m.in. stworzenie systemu monitorującego stan nawodnienia upraw lub kondycję maszyn w fabryce.

Większość opisanych powyżej funkcjonalności oferuje nam narzędzia, które umożliwiają ogromne możliwości integracyjne oraz znacząco zmniejszają czas wdrożenia integracji (np. integracja z GDrive sprowadza się do kilkunastu kliknięć).

Przykładowe integracje z Salesforce:

Opisałem już możliwości integracyjne Salesforce, skoncentrujmy się teraz na kilku przykładowych integracjach, które często pojawiają w różnych organizacjach.

Integracje ułatwiające komunikację w firmach:

  • Gmail – integracja daje możliwość tworzenia rekordów Salesforce (Lead, Account, Contact) bezpośrednio z poziomu Gmail. Pozwala również na synchronizowanie danych o kontaktach oraz kalendarzy.
  • Microsoft Outlook – podobnie, jak integracja z Gmail, umożliwia nam synchronizowanie kalendarzy oraz tworzenie danych w Salesforce z poziomu aplikacji Outlook.
  • Slack – dzięki konfigurowalnym notyfikacjom wysyłanym automatycznie przez Salesforce oraz możliwościom wyszukiwania danych z Salesforce bezpośrednio z poziomu komunikatora, znacząco usprawnia komunikację w zespołach. 
  • Quip – narzędzie umożliwiające zespołom współpracę w czasie rzeczywistym nad dokumentami, arkuszami kalkulacyjnymi i prezentacjami.
  • Jira – to popularna platforma do zarządzania projektami i śledzenia postępów prac.

Integracje ułatwiające komunikację z klientami:

  • LinkedIn – umożliwia wyświetlenie informacji z tego portalu (ostatnie aktywności, relacje, wiadomości) bezpośrednio w CRM.
  • Zoom – umożliwia tworzenie i zarządzanie spotkaniami Zoom, automatycznie synchronizuje informacje o uczestnikach Zoom Webinar.
  • Social25 – umożliwia komunikację z klientami przez Facebook Messenger, WhatsApp, Twitter i inne oraz bezpośrednio z poziomu platformy Salesforce.
  • DocuSign – oferuje możliwość cyfrowego podpisu dokumentów.

Integracje wspierające Marketing Automation:

  • Marketing Cloud – rozbudowane narzędzie służące do automatyzacji marketingu B2C.
  • Pardot – narzędzie służące do automatyzacji marketingu B2B.
  • MailChimp – umożliwia wysyłanie wiadomości e-mail do kontaktów z CRM.
  • Marketo – kolejne narzędzie służące do automatyzacji marketingu B2B.

Inne ciekawe narzędzia:

  • Mulesoft (Anypoint Platform) – umożliwia integrację z wieloma systemami poprzez API.
  • Zapier – platforma integracyjna oferująca ponad 3000 różnych integracji dla Salesforce z ponad 350 różnymi systemami (m.in. PayPal, WordPress, monday.com, Twilio).
  • Conga Grid – upraszcza zarządzanie danymi poprzez wyświetlanie ich w sposób zbliżony do arkusza kalkulacyjnego.
  • Avenir – narzędzie umożliwiające generowanie dokumentów.
  • Conga Composer – kolejne narzędzie umożliwiające generowanie dokumentów.

Podsumowanie

Salesforce posiada ogromne możliwości integracyjne, dzięki którym możemy bardzo szybko rozszerzyć system o nowe funkcjonalności. Dobrze zaprojektowane i zaimplementowane integracje oszczędzają czas, zwiększając przy tym efektywność i produktywność firmy. Integracje pozwalające na zebranie wiedzy o kontrahentach, umożliwiają dostęp do tych informacji z jednego miejsca, co znacząco usprawnia procesy sprzedaży i wsparcia. Każda integracja zmniejszająca ilość zmarnowanego czasu na manualne operacje, jest warta przemyślenia (tj. wprowadzenia poprawek lub deduplikacji danych, zbieranie informacji i raportowanie na podstawie wielu systemów). Jak pokazał rok 2020, potencjał szybkiego wdrażania nowych integracji daje organizacjom zdolność błyskawicznego dostosowania się, a nawet uzyskania przewagi na zmieniającym się rynku.