Що я побудував цього тижня: модулі Perfex CRM та UX адміністратора
Цього тижня я побудував два модулі Perfex CRM та провів ширшу перевірку UX адміністратора Perfex CRM. Це не була одна велика функція. Це була практична очистка роботи, яка сповільнює команду CRM щодня: знаходження правильного контексту, фільтрація списків без запам'ятовування кожного поля, сканування таблиць на мобільних пристроях та випуск оновлень модулів без здогадок.
Важливо, що я тримав роботу близько до Perfex CRM, а не будував другу систему поруч з нею. Нові елементи — це модулі, хуки, покращення списків та контрольні перевірки, які вписуються в існуючий робочий процес адміністратора.
Основна ідея: зберегти нативність Perfex, зробити роботу швидшою
Адміністративний шар Perfex CRM вже існує всередині Perfex CRM, тому мета полягала не в заміні Perfex. Мета полягала в усуненні тертя навколо нього.
CRM зазвичай стає заплутаною в дрібницях. Таблиці стають важкими для сканування. Контекст електронної пошти знаходиться поза лідів. Фільтри потужні, але співробітники повинні знати точні поля, перш ніж зможуть їх використовувати. Мобільні адміністративні сторінки технічно працюють, але вони відчуваються як настільні сторінки, стиснуті в телефон.
Це те, над чим я працював цього тижня. Два модулі були найважливішими: Історія електронної пошти та AI фільтри.
Що змінилося в практичних термінах
Робота розбивається на чотири практичні покращення: кращий контекст клієнта, швидша фільтрація CRM, чистіші адміністративні таблиці та безпечніші випуски модулів. Історія електронної пошти вирішує проблему контексту. AI фільтри вирішують проблему пошуку та сегментації. Проходження DataTables робить щоденні адміністративні екрани легшими для сканування. Контрольні точки випуску зменшують ризик випуску зламаного оновлення модуля Perfex CRM.
Для пошуку основна тема — модулі Perfex CRM, але справжня мета ширша: команди хочуть автоматизацію CRM, яка не витікає дані, не ламає нативні робочі процеси і не змушує співробітників вивчати нову панель.
Модуль 1: Історія електронної пошти для Perfex CRM
Модуль Історія електронної пошти додає режим перегляду розмови лише для читання до лідів та клієнтів Perfex.
Модуль імпортує відповідні повідомлення з налаштованих IMAP поштових скриньок або з каталогу .eml, а потім пов'язує повідомлення лише тоді, коли зовнішній учасник точно відповідає електронній пошті контакту ліда або клієнта в Perfex. Це правило точного збігу важливе. Воно зберігає модуль корисним, не перетворюючи його на вільний індекс пошуку електронної пошти.
Модуль не надсилає пошту, не відповідає на пошту, не видаляє пошту і не позначає повідомлення як прочитані. Він створений як доказ і контекст, а не як ще один вхідний ящик.
Для екрану ліда корисна частина проста: коли я відкриваю ліда, я можу бачити останній доступний контекст електронної пошти, не виходячи з CRM. Той самий контекст також може підтримувати рішення про наступні кроки в профілі ліда. Якщо лід замовк, якщо новий електронний лист змінює статус, або якщо співробітнику потрібен нагадування про останню реальну розмову, перегляд CRM має доказ під рукою.
Я також додав більш чіткі межі навколо внутрішньої пошти. Модуль підтримує ігноровану електронну пошту з одного домену та додаткові внутрішні домени компанії, щоб внутрішні розмови не забруднювали перегляд історії клієнта. Існуючі дані аудиту не видаляються лише тому, що правила видимості змінюються.
Обробка даних навмисно консервативна. Вона зберігає простий текст, учасників, заголовки, необхідні для перегляду, та точні зв'язки CRM. Вона не зберігає вкладення, не рендерить HTML, не завантажує віддалені зображення, не запускає пікселі відстеження і не показує iframes. Облікові дані шифруються, а імпорти можуть бути спочатку перевірені перед застосуванням змін.
Це той вид автоматизації CRM, якому я більше довіряю: лише для читання там, де це повинно бути лише для читання, строгий збіг там, де вільне збіг створювало б шум, і достатня аудиторність, щоб зрозуміти, що сталося.
Модуль 2: AI фільтри для Perfex CRM
Другий модуль — AI фільтри для Perfex CRM.
Ідея проста: співробітник описує список, який він хоче, простими словами, а модуль перетворює цей запит на нативні правила фільтрації Perfex.
Це корисно, оскільки CRM вже має логіку фільтрації, але користувачі часто не пам'ятають, де знаходиться кожне поле. Вони знають, що хочуть: прострочені рахунки, ліди високої вартості з джерела, активні проекти з певним статусом, квитки, які потребують уваги. Модуль перетворює цю мету на існуючу систему фільтрів, а не вигадує окремий шар пошуку.
Безпечна межа — це основна функція. Модуль надсилає запит користувача та доступні визначення фільтрів до OpenAI. Він не надсилає рядки з відфільтрованого списку. Він не надсилає збережені фільтри як дані. Модель не може повернути SQL, виконуваний код, сирі зворотні виклики або довільні імена стовпців. Сервер перевіряє вихідні дані проти списку дозволених перед застосуванням чого-небудь.
UI також побудовано навколо відновлення. Якщо запит AI не вдається, поточний фільтр користувача та введений текст залишаються незмінними. Очистка AI фільтра відновлює точний стан до AI-фільтра. Кнопка палички там для швидкості, але результат все ще потрапляє в нативну поведінку фільтрації Perfex.
Я також переніс конфігурацію модуля в нативну область налаштувань Perfex, додав обробку зашифрованих ключів API лише для запису та посилив очищення при видаленні навколо дозволів ролей. Для оновлень випуску модуль перевіряє незмінні активи випуску GitHub, метадані версії, дайджест SHA-256, шляхи архіву, синтаксис PHP та поведінку обміну в межах однієї файлової системи перед заміною файлів.
Це звучить нудно, поки оновлення модуля CRM не йде не так. Тоді це єдине, що має значення.
Адміністративні списки отримали найбільшу візуальну перевірку
Видима частина тижня була UX адміністративного списку.
Я працював над компактною обкладинкою картки для DataTables по всьому адміністративному шару Perfex CRM. Мета полягала в тому, щоб зробити екрани списків легшими для сканування, не змінюючи основне джерело даних. Заголовки отримали чистіші індикатори сортування. Активні стовпці сортування тепер показують сильнішу стрілку акценту, тоді як несортовані стовпці зберігають легший натяк. Дії рядків були стиснуті в маленьке меню, де це мало сенс, а переповнення тегів тепер використовує шаблон +N замість розтягування рядка.
Ліди також отримали сильнішу структуру. Статус перемістився вперед, дії з контактами стали чіткішою іконковою колонкою, а джерело перемістилося пізніше, де йому місце. Це робить таблицю більш схожою на робочу чергу, а не на сирий експорт бази даних.
Я також виправив проблеми з кешем навколо адміністративного CSS, використовуючи URL-адресу custom.css з версією md5. Це була маленька зміна з великим ефектом: незмінне кешування браузера не повинно залишати співробітників, які дивляться на стару таблицю стилів після випуску виправлення UX.
Мобільна робота адміністратора
Адміністратор CRM не повинен розпадатися на телефоні.
Цього тижня включалися мобільні перевірки по клієнтах, лідам, проектам, завданням, рахункам, витратам та оцінкам. Я посилив ключові стовпці, цільові зони дотику, введення, контраст пагінації, можливості прокрутки правого краю, кільця фокусу та поведінку в темному режимі.
Це не про те, щоб зробити CRM схожим на споживчий додаток. Це про те, щоб зробити швидку адміністративну роботу можливою, коли хтось далеко від столу. Якщо користувачеві потрібно лише перевірити ліда, просканувати рахунок або оновити завдання, сторінка не повинна карати їх за відкриття на мобільному.
Пошук бази знань був перероблений
Список бази знань також отримав реальний пошуковий прохід.
Я додав центральний пошуковий герой, живий рахунок, підсвічування, поведінку Enter та Escape, а також комбінацію клавіш. Це перетворює базу знань з статичного списку на щось ближче до внутрішнього інструменту. Співробітники повинні мати можливість швидко знайти правильну відповідь, особливо коли вони вже знаходяться в робочому процесі з клієнтом.
Наступний крок ліда став більш корисним
Віджет наступного кроку ліда тепер має кращий контекст для роботи. Історія електронної пошти може надати контекст нещодавньої комунікації, тоді як робочий процес тримає рішення близько до профілю ліда.
Це той напрямок, який мені подобається для AI в роботі CRM. AI не повинен плавати над системою. Він повинен сидіти поруч з фактичним записом, використовувати вузький контекст, пояснювати наступну дію і залишати користувача під контролем.
Контрольні точки випуску та тести важливіші за UI
Менш видима робота цього тижня може бути найважливішою.
Я посилив упаковку модулів і контрольні точки випуску, додав перевірки навколо міграцій Історії електронної пошти, протестував поведінку імпортера, охопив упаковку AI фільтрів і додав локальні перевірки TLS та розгортання навколо середовища панелі.
Урок простий: покращення UX адміністратора є лише правдоподібними, коли шлях випуску нудний. Гарна обкладинка таблиці недостатня, якщо оновлення модулів крихкі. Корисний AI фільтр недостатній, якщо модель може надавати небезпечний вихід фільтра. Контекст електронної пошти недостатній, якщо модуль зберігає занадто багато або занадто вільно пов'язує повідомлення.
Отже, робота була розділена між поверхнею продукту та операційною дисципліною: кращі екрани, суворіші модулі, безпечніші оновлення та менші режими збоїв.
Що я взяв з цього тижня
Найкраща кастомізація Perfex CRM — це не та, що демонструє найбільше кастомного коду. Це та, що робить існуючий CRM більш чітким, не ламаючи спосіб, яким команди вже працюють.
Історія електронної пошти робить запис CRM більш повним. AI фільтри роблять перегляди списків легшими у використанні. Робота з адміністративними таблицями робить щоденне сканування швидшим. Мобільні виправлення роблять ті ж робочі процеси менш болючими далеко від настільного комп'ютера. Контрольні точки випуску роблять роботу безпечнішою для відправки.
Це та версія автоматизації AI CRM, яку я хочу продовжувати будувати: вузька, корисна, тестована та пов'язана з реальною адміністративною роботою.