今週私が構築したもの: Perfex CRM モジュールと管理 UX
今週、私は2つのPerfex CRMモジュールと、より広範なPerfex CRM管理UXの改善を行いました。それは一つの大きな機能ではなく、CRMチームの日々の作業を遅らせる要因を実践的に整理するものでした: 適切なコンテキストを見つけること、すべてのフィールドを覚えずにリストをフィルタリングすること、モバイルでテーブルをスキャンすること、そして推測せずにモジュールの更新を出荷すること。
重要な点は、私はPerfex CRMに近い作業を維持し、隣に別のシステムを構築するのではなく、既存の管理ワークフローにフィットするモジュール、フック、リストの改善、リリースチェックを追加したことです。
コアアイデア: Perfexをネイティブに保ち、作業を速くする
Perfex CRMの管理レイヤーはすでにPerfex CRM内に存在しているため、目標はPerfexを置き換えることではありませんでした。目標はそれに関する摩擦を取り除くことでした。
CRMは通常、小さな方法で混乱します。テーブルはスキャンしにくくなります。メールのコンテキストはリードの外にあります。フィルターは強力ですが、スタッフはそれを使用する前に正確なフィールドを知っている必要があります。モバイル管理ページは技術的には機能しますが、デスクトップページが電話に押し込まれたように感じます。
それが私が今週取り組んだことです。最も重要な2つのモジュール構築は、メール履歴とAIフィルターでした。
実際の用語での変更点
作業は4つの実践的な改善に分かれます: より良い顧客コンテキスト、より速いCRMフィルタリング、クリーンな管理テーブル、そして安全なモジュールリリース。メール履歴はコンテキストの問題を扱います。AIフィルターは検索とセグメンテーションの問題を扱います。DataTablesの改善は、日々の管理画面をスキャンしやすくします。リリースゲートは、壊れたPerfex CRMモジュールの更新を出荷するリスクを減少させます。
検索に関しては、主なトピックはPerfex CRMモジュールですが、実際の意図はより広範です: チームはデータを漏らさず、ネイティブワークフローを壊さず、スタッフが新しいダッシュボードを学ぶことを強制しないCRM自動化を望んでいます。
モジュール1: Perfex CRMのメール履歴
メール履歴モジュールは、Perfexのリードと顧客に対して読み取り専用の会話ビューを追加します。
このモジュールは、設定されたIMAPメールボックスまたは.emlディレクトリから一致するメッセージをインポートし、外部参加者がPerfexのリードまたは顧客の連絡先メールと正確に一致する場合にのみメッセージをリンクします。この正確な一致ルールは重要です。それはモジュールを便利に保ちながら、緩いメール検索インデックスに変えることを防ぎます。
このモジュールは、メールを送信したり、メールに返信したり、メールを削除したり、メッセージを既読としてマークしたりしません。これは証拠とコンテキストとして構築されており、別の受信トレイではありません。
リード画面にとって、便利な部分はシンプルです: リードを開くと、CRMを離れることなく最新のアクセス可能なメールコンテキストを見ることができます。同じコンテキストは、リードプロファイル内の次のステップの決定をサポートすることもできます。リードが静かになった場合、最新のメールがステータスを変更する場合、またはスタッフメンバーが最後の実際の会話のリマインダーを必要とする場合、CRMビューには近くに証拠があります。
私はまた、内部メールの周りにより強い境界を追加しました。このモジュールは、無視された同ドメインのメールと追加の内部会社ドメインをサポートしているため、内部専用の会話が顧客履歴ビューを汚染することはありません。既存の監査データは、可視性ルールが変更されたからといって削除されることはありません。
データ処理は意図的に保守的です。プレーンテキスト、参加者、ビューに必要なヘッダー、そして正確なCRM関係を保存します。添付ファイルを保存したり、HTMLをレンダリングしたり、リモート画像を読み込んだり、トラッキングピクセルを実行したり、iframeを表示したりしません。資格情報は暗号化され、インポートは変更を適用する前にドライランできます。
それが私がもっと信頼するCRM自動化の形です: 読み取り専用であるべきところは読み取り専用であり、緩い一致がノイズを生むところでは厳密な一致があり、何が起こったのかを理解するための十分な監査可能性があります。
モジュール2: Perfex CRMのAIフィルター
2つ目のモジュールは、Perfex CRMのAIフィルターです。
アイデアは簡単です: スタッフメンバーが自分が欲しいリストを平易な言葉で説明し、そのリクエストをネイティブなPerfexフィルタールールに変換します。
これは便利です。なぜなら、CRMにはすでにフィルタリングロジックがあるからですが、ユーザーはしばしばすべてのフィールドがどこにあるかを覚えていないからです。彼らは自分が何を望んでいるかを知っています: 過期の請求書、特定のソースからの高価値のリード、特定のステータスを持つアクティブなプロジェクト、注意が必要なチケット。モジュールはその意図を既存のフィルターシステムに変換し、別の検索レイヤーを発明するのではありません。
安全な境界が主な機能です。このモジュールは、ユーザーのリクエストと利用可能なフィルタ定義をOpenAIに送信します。フィルタリングされたリストの行は送信しません。保存されたフィルターをデータとして送信しません。モデルはSQL、実行可能なコード、生のコールバック、または任意の列名を返すことはできません。サーバーは出力を許可リストに対して検証してから適用します。
UIも回復を中心に構築されています。AIリクエストが失敗した場合、ユーザーの現在のフィルターと入力されたテキストはそのまま保持されます。AIフィルターをクリアすると、正確なAIフィルター前の状態が復元されます。ワンドボタンはスピードのためにありますが、結果は依然としてPerfexのネイティブフィルター動作内に収まります。
私はまた、モジュール設定をネイティブなPerfex設定エリアに移動し、暗号化された書き込み専用APIキー処理を追加し、役割の権限周りのアンインストールクリーンアップを厳しくしました。リリース更新のために、モジュールは不変のGitHubリリースアセット、バージョンメタデータ、SHA-256ダイジェスト、アーカイブパス、PHP構文、同じファイルシステムのスワップ動作をチェックしてからファイルを置き換えます。
それは退屈に聞こえますが、CRMモジュールの更新が失敗したとき、それが唯一重要なことになります。
管理リストは最も大きなビジュアルパスを得た
今週の目に見える部分は、管理リストのUXでした。
私はPerfex CRM管理レイヤー全体にわたってDataTablesのコンパクトなカード行スキンに取り組みました。ポイントは、基礎データソースを変更せずにリスト画面をスキャンしやすくすることでした。ヘッダーにはクリーンなソートインジケーターが付きました。アクティブなソート列はより強いアクセント矢印を示し、ソートされていない列はより軽いヒントを保持します。行アクションは、意味のあるところで小さなメニューに圧縮され、タグのオーバーフローは行を伸ばすのではなく、+Nパターンを使用します。
リードもより強い構造を得ました。ステータスが前に移動し、連絡先アクションがより明確なアイコン列になり、ソースが適切な場所に移動しました。これにより、テーブルは生のデータベースエクスポートではなく、作業キューのように読みやすくなります。
私はまた、md5バージョン付きのcustom.css URLを使用して管理CSSのキャッシュの問題を修正しました。それは小さな変更ですが大きな効果を持ちます: 不変のブラウザキャッシングは、UX修正が出荷された後にスタッフが古いスタイルシートを見つめることを許してはいけません。
モバイル管理作業
CRM管理は電話で崩れないべきです。
今週は、クライアント、リード、プロジェクト、タスク、請求書、経費、見積もりにわたるモバイルパスが含まれていました。私は主要な列、タッチターゲット、入力、ページネーションのコントラスト、右端のスクロールの使いやすさ、フォーカスリング、ダークモードの動作を厳しくしました。
これはCRMを消費者アプリのように感じさせることではありません。デスクから離れているときに迅速な管理作業を可能にすることです。ユーザーがリードを確認するだけ、請求書をスキャンするだけ、またはタスクを更新するだけで済む場合、ページはモバイルで開くことに対して罰を与えるべきではありません。
ナレッジベース検索が再構築された
ナレッジベースリストも本格的な検索パスを得ました。
私は中央の検索ヒーロー、ライブカウント、ハイライト、EnterおよびEscapeの動作、キーボードショートカットを追加しました。それにより、ナレッジベースは静的なリストから内部ツールに近いものに変わります。スタッフは、特に顧客ワークフローの中にいるときに、正しい答えを迅速に見つけることができるべきです。
リードの次のステップがより便利になった
リードの次のステップウィジェットは、より良いコンテキストを持つようになりました。メール履歴は最近のコミュニケーションコンテキストを提供でき、ワークフローはリードプロファイルに近い決定を保持します。
それが私がCRM作業におけるAIに望む方向性です。AIはシステムの上に浮かぶべきではありません。実際のレコードの隣に座り、狭いコンテキストを使用し、次のアクションを説明し、ユーザーをコントロール下に置くべきです。
リリースゲートとテストはUIよりも重要
今週の目に見えない作業は、最も重要かもしれません。
私はモジュールパッケージングとリリースゲートを強化し、メール履歴の移行に関するチェックを追加し、インポータの動作をテストし、AIフィルターのパッケージングをカバーし、パネル環境周りのローカルTLSとデプロイメントチェックを追加しました。
教訓はシンプルです: 管理UXの改善は、リリースパスが退屈であるときにのみ信頼できます。素敵なテーブルスキンは、モジュールの更新が脆弱であれば十分ではありません。便利なAIフィルターは、モデルが安全でないフィルター出力を押し出すことができる場合には十分ではありません。メールコンテキストは、モジュールが過剰に保存したり、メッセージを緩くリンクしたりする場合には十分ではありません。
したがって、作業は製品表面と運用の規律の間で分割されました: より良い画面、より厳格なモジュール、安全な更新、そして小さな失敗モード。
今週から得たこと
最高のPerfex CRMカスタマイズは、最もカスタムコードを誇示するものではありません。チームがすでに作業している方法を壊すことなく、既存のCRMをよりシャープに感じさせるものです。
メール履歴はCRMレコードをより完全にします。AIフィルターはリストビューを使いやすくします。管理テーブルの作業は日々のスキャンを速くします。モバイルの修正は、デスクトップから離れても同じワークフローを痛み少なくします。リリースゲートは、作業を出荷する際の安全性を高めます。
それが私がこれからも構築し続けたいAI CRM自動化のバージョンです: 狭く、有用で、テスト可能で、実際の管理作業に結びついています。