Na pytanie czy byłbym w stanie stworzyć CRM-a mogłem udzielić tylko jednej odpowiedzi… Niewiem. Jednak po dłuższym zastanowieniu zmieniłem odpowiedź na: „a jakie są do niego wymagania?”. Koniec końców odpowiedź brzmiała „tak” i tak o to zaczął powstawać mój pierwszy CRM.
Początkowo wymagania nie wydawały się skomplikowane. Obsługa kliku skrzynek mailowych, integracja z CMS-em oraz z telefonami voip. Poczta działała na serwerze exchange więc do jej obsługi mogłem wykorzystać EWS. Integracja z CMS-em miała być jednostronna, tylko pobieranie danych więc wystarczył dostęp do bazy. Co do telefonów, skoro mowa o voip-ie to oznacza, że aparaty telefoniczne to nic innego jak odpowiednio zaprogramowane hosty. Wyszedłem z założenia, że na pewno będzie się dało wpiąć do centrali i odczytywać jaki numer aktualnie łączy się z jakim hostem. Wiele z takich centrali posiada swoje interface-y, z których można skorzystać aby się z nimi komunikować. Tak więc ogólny zarys już miałem, mogłem przejść do szczegółów.
Cały system obsługi miał opierać się na ticket-ach lub jak kto woli zgłoszeniach. Każda nowa sprawa Klienta zgłoszona mailowo lub telefonicznie to nowy ticket, który posiada swój unikatowy numer. Można je przypisywać do konkretnych osób lub grup. Nadawać im priorytety, ustawiać, typy, statusy itp. Zgłoszenia telefoniczne muszą być tworzone ręcznie przez użytkownika na koncie Klienta. Maile powinny automatycznie tworzyć nowe zgłoszenia również na koncie odpowiedniego klienta. Prócz tego, każdy użytkownik CRM-a może tworzyć zgłoszenia niedotyczące klientów np. zmiana banera na stronie. Po zalogowaniu się do systemu, użytkownik widzi listę zgłoszeń przypisanych bezpośrednio do siebie, do grup do których należy oraz listę zgłoszeń nieprzypisanych. Metoda pracy jest ustalana na bieżąco w zależności od aktualnych potrzeb.
Integracja z CMS-em, jak już wspomniałem miała być jednostronna read-only. Więc wystarczył dostęp do bazy, kilka godzin na rozgryzienie jej schematu i następnie projektowanie w jaki sposób będą się prezetowały pobierane dane. Formularz do wyszukiwania Klientów, tabela z wynikami wyszukwania oraz karta z danymi wyszukanego Klienta. Ponieważ CMS-ów, które miały być obsłużone było kilka i każdy miał swoją bazę danych to podczas wyszukiwania trzeba było każdą przeszukiwać. Chyba, że użytkownik zaznaczył, że interesuje go jedna konkretna. Po odnalezieniu Klienta system sięgał jeszcze do swojej bazy aby znaleźć i wyświetlić historię Jego kontaktów z firmą.
Integracja z pocztą na serwerach exchange z pozoru wydawała się również prosta. Microsoft do jej obsługi udostępnił usługę EWS (Exchange Web Services). Dzięki niej można obsługiwać skrzynki pocztowe tak jak robi to outlook. Dostępne są wszystkie podstawowe funkcje takie jak wysyłanie maili, odczytywanie, usuwanie, odpowiadanie, przesyłanie dalej. Prócz tego można też wyszukiwać, filtrować i co tylko chcemy. Dzięki tym funkcjom stworzyłem usługę, która monitorowała wybrane skrzynki. Jeśli pojawiła się jakaś wiadomość to na podstawie jej tematu ustawiała odpowiednią kategorię, na podstawia adresu nadawcy znajdowała konto klienta i tworzyła nowe zgłoszenie. Jeśli była to odpowiedź na maila, który został wcześniej wysłany to zamiast nowego zgłoszenia, dodawała się interakcja do już istniejącego.
Cały system miał składać się z kilku elementów. Interface-u webowego dla użytkowników końcowych. Aplikacji stacjonarnej do obsługi połączeń telefonicznych oraz usługi zarządzającej skrzynkami pocztowymi.
CRM miał ułatwić pracę w BOK-u. Sprawić, że wszystkie informacje dotyczące klientów będą dostępne w jednym miejscu. Bez względu na to którego CMS-a sprawa będzie dotyczyła to znaleźć ją będzie można za pomocą jednej wyszukiwarki. Nie ważne czy klient dzwonił w jakiejś sprawie, czy może wysłał maila informacje o każdym kontakcie będą zapisane na jego karcie i widoczne dla każdego pracownika.
Projekt niestety nie zakończył się sukcesem. Przynajmniej nie w 100%. System nie został ukończony ze względu na brak czasu i inne ważniejsze tematy. Napotkałem na kilka problemów, z którymi nie zdążyłem się uporać. Jeden z nich to tworzenie treści wiadomości. Użytkownicy byli przyzwyczajeni do outlooka gdzie tworząc wiadomość można dodać sobie grafikę metodą drag and drop. Tak samo można dodawać załączniki. Do tego wstawianie tabel i innych tym podobnych rzeczy. To był jeden z elementów, który nie został ukończony. Nie zdążyłem też zająć się integracją z telefonami.
Ogólnie uważam to za moją porażkę ale taką, z której wyniosłem dużo nowej wiedzy i doświadczenia. Nie tylko programistycznego ale też projektowego. Kto wie, może kiedyś projekt odżyje lub powstanie nowy oparty na zdobytym doświadczeniu.