Две връзки вършат почти цялата работа: събития на живо за известието „кой звъни" и дневникът на разговорите за историята. Какво трябва от централата, какво не бива да се прави и защо номерът е ключът.
Нужни са ти две връзки, не една. Събития на живо от централата, за да разбереш, че някой звъни точно сега — оттам идва известието с контекста на клиента. И дневникът на разговорите, за да имаш история и записи след това. Ключът, който свързва обаждането с клиента, е телефонният номер, приведен към един вид.
Дневникът е таблица с приключилите разговори — кой на кого се е обадил, кога, колко е продължило, къде е записът. Той е точен, но закъснява: редът се появява след разговора. За история и анализ е достатъчен. За известие „кой звъни" е безполезен.
Събитията на живо са потокът, който централата излъчва в момента, в който апаратът звъни. Оттам знаеш номера, преди човекът да е вдигнал. За сметка на това потокът не пази нищо — ако не си слушал, събитието е минало.
Затова двете вървят заедно: събитията дават момента, дневникът дава следата.
Един и същ телефон се записва по три начина: с нула отпред, с код на държавата, с плюс. Ако търсиш точно съвпадение, не намираш нищо.
Практическото решение е да сравняваш по последните девет цифри. Покрива всички варианта на български номер без списък от правила. Същата нормализация трябва да важи и при въвеждане на клиент, иначе базата се пълни с дубликати.
Стойността му не е в номера, а в контекста. Номер сам по себе си не помага — търговецът пак трябва да търси. Полезното известие носи името, броя поръчки, отворените сервизни случаи и линк към пълната справка. Всичко това се сглобява, докато телефонът звъни.
Два практически детайла, които се разбират чак при внедряване. Първо, справката се кешира по номер — иначе всяко подсещане удря базите на магазина и на тикетите. Второ, известието трябва да стигне и когато табът е на заден план; браузърната нотификация решава това, а тостът в страницата е за случая, когато човекът гледа системата.
Не давай на интеграцията право да звъни и да променя. За известието е нужно само четене на събития от типа „обаждане". Отделен потребител с минимални права и ограничение по IP.
Не дръж пароли в PHP файл на видимо място. Класическият стар инструмент за справки по телефон обикновено е точно това — един файл с достъп до базата в чист текст.
Не разчитай на вътрешния номер, за да разбереш кой е говорил. Телефоните се споделят и се редуват. Вътрешният номер е добра първа хипотеза, не отговор.
Централата е FreePBX. Връзката за събития е отделен потребител с право само за четене на обаждания и достъп само от адреса на сървъра. Слушателят е постоянен процес, който хваща момента на позвъняване и записва краткотраен ключ в паметта, заедно с предварително загрята справка за номера.
Браузърът пита на няколко секунди и спира, когато табът е скрит. При звънене излиза лента горе вдясно — име, брой поръчки, брой тикети — плюс браузърна нотификация за скрит таб. Има и пълна справка на отделна страница: поръчки, сервизни случаи, свързан клиент от офертите, последни разговори, бутон за обратно обаждане.
Отделно има търсене по телефон, име или номер на поръчка, с транслитерация кирилица–латиница, защото едно и също име се пише и по двата начина.
Дневникът се чете периодично и създава записа на разговора със записа към него. Оттам нататък тръгва транскрипцията и анализът. Неотговорените обаждания се прибират също — те са най-скъпите, защото са клиент, който е звънял и не го е хванал никой.
Кой е говорил се определя на три нива: присъствие на вътрешния номер, мапинг на вътрешните към хората, а при неяснота — по представянето в началото на транскрипта.
Какво трябва да поддържа централата? Дневник на разговорите със записите и поток от събития на живо. FreePBX и Asterisk имат и двете; повечето съвременни централи също.
Трябва ли софтуер на всеки компютър? Не. Известието идва в браузъра, в който операторът вече работи. Стар подход с приложение на всяка машина не е нужен и е по-трудно да се поддържа.
Как се свързва обаждането с клиента? По телефонния номер, сравнен по последните девет цифри, за да съвпадат вариантите с нула, с код на държавата и с плюс.
Какво се вижда при позвъняване? Име на клиента, брой поръчки, отворени сервизни случаи и линк към пълна справка. Информацията се подготвя, докато телефонът още звъни.
Какви права трябва интеграцията? Само четене на събития за обаждания, с отделен потребител и ограничение по IP. Право да набира или да променя настройки не е нужно за справките.
Записват ли се неотговорените обаждания? Да. Те са отделна категория и се виждат в списъка — това е клиент, който е звънял и никой не го е хванал.
Може ли да се разбере кой търговец е водил разговора? Да, на три нива: присъствие, мапинг на вътрешния номер и — при неяснота — представянето в началото на разговора.
Разкажете ни какво изяжда деня на екипа ви. Ще ви покажем — върху собствената ни работеща система — колко от него може просто да изчезне.