>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
TypeScript

DeskcommCRM:自有サーバーへのWhatsApp向けAIエージェント搭載オープンソースCRMのデプロイ方法

WhatsApp営業では、常にマネージャーの関与が必要、またはKommoやIntercomのような外部サービスを連携させる必要があります。顧客データベースが成長するにつれ月額料金とユーザー単位の課金は大きな負担となります。ブラジルの開発者Rafael MelgaraさんがGitHubでDeskcommCRMを公開しました。これはAIエージェントとMessenger連携を目的としたセルフホスト型の営業管理システムです。

このプロジェクトは中小規模の企業向けの営業管理システムとして位置づけられています。最初はNuvemshop連携のオンラインストア向けに構築されましたが、その後アーキテクチャが刷新されました。結果は、クリニック、不動産代理店、情報ビジネス、さらにはチャットからの問い合わせを受け付けるあらゆるサービスに対応した柔軟なソリューションとなっています。

技術スタックとアーキテクチャ

アーキテクチャ的に、DeskcommCRMはモダンなWebアプリケーションでおなじみのスタックの上に構築されています:

  • フロントエンドとバックエンド:Next.js 16(App Router)、React 19、TypeScript(strictモード)
  • データベースと認証:Supabase(PostgreSQL)、Row Level Security(RLS)メカニズムとベクトル検索用のpgvector拡張を активно活用
  • WhatsApp連携:NOWEBエンジン上で動作するWAHA(WhatsApp HTTP API)、Dockerコンテナで実行
  • AIレイヤー:Vercel AI SDK v7、Anthropic Claude、OpenAI、Google Geminiモデルの連携

システムにはビルトインのMCP(Model Context Protocol)サーバーが含まれています。これにより、外部のAIエージェントが共通プロトコルを介してCRMに接続し、セールストーンでの操作を実行できます。

通常の自動返信ではなくスマートエージェント

DeskcommCRMでは、AIエージェントは固定のシナリオツリーを持つ従来のチャットボットとは異なります。ボットは責任あるマネージャー 역할을担い、ダイアログの進行、リードの Qualification、 funnelカードでの移動、そして自立して回答できない場合に人間への転送を行います。

各クライアントに対して隔離されたナレッジベースが作成されます。正常に完了したダイアログはベクトルストレージにフィードバックされます。これにより、エージェントは徐々にコンテキストを蓄積し、一般的な質問への回答精度が向上していきます。同時に、人間への制御の移行はルールによって管理され、ボットが不必要なメッセージを送信することを防ぎます。

Webhookと処理キュー

外部のランディングページやフォームからのリクエスト受信には、Webhookエントリーポイントが用意されています。JSONまたはurlencoded形式のパラメータを含むPOSTリクエストは、funnelの必要なステージで即座にリードを作成します。

内部イベント処理の設定は興味深いものになっています。PostgreSQLトリガーをHTTPリクエストで過負荷にするのを避けるため、開発者はイベントテーブルパターンを採用しました。すべてのアクション(リードステータス変更、タグ出現、着信メッセージ)は{#1}テーブルに記録されます。バックグラウンドプロセスが1分ごとにキューからイベントを取得し、「when/if/then」タイプの自動化を実行します。

実際には、スキームは次のようになります:

Vercelクラウドでは、このルートが定期的なCron Jobをトリガーし、{#2}自有サーバーにデプロイする場合は、システム起動時に自動的に開始されます。

セキュリティとデータ隔離の確認

CRMがマルチテナンシーをサポートしているため、ある企業が他の企業の連絡先や会話を参照できないようにすることが重要です。DeskcommCRMでは、PostgreSQLのRLSポリシーによって隔離が構築されています。

リポジトリには、pullのたびにクリーンなデータベースインスタンスで364の不変性テストを実行するCIパイプラインが設定されています。主なテストの一つは、2つの異なる組織を生成し、ユーザーのJWTトークンをシミュレートし、データベースが他の企業から少なくとも1行返すかどうかを確認します。セキュリティポリシーが外部データをリークする場合、ビルドは失敗します。

ローカル環境でのクイックスタート

コードを探求するには、プロジェクトを数分でローカルに立ち上げることができます。Node.jsバージョン22、pnpm、Dockerが必要です。

VPSへの完全なデプロイメントには、作者が{#2}スクリプトのセットを用意しています。スクリプト自体はドメイン、Supabaseキー、ニューラルネットワークAPIキーを要求し、トークンを生成して、HTTPS証明書を含む готовыйスタックを起動します。

制限事項とプロジェクトの特徴

リポジトリを探索する際には、いくつかのニュアンスに留意してください:

  • コードコメントとドキュメントの一部はポルトガル語で書かれているため、プロジェクトは当初ブラジル市場向けだったためです。
  • リポジトリはまだ比較的新しく、GitHubでのスター数は300少しだけです。
  • WhatsApp連携はWAHAに依存しているため、メッセージアクティビティが高い場合は、番号のブロックを防ぐために遅延と送信間隔を設定することが重要です。

DeskcommCRM誰が役立つのか

このプロジェクトは、中小企業向けのターンキーCRMシステムを構築しており、外部サービスの月額サブスクリプション料金を支払いたくないWebスタジオやフリーランサーにとって役立ちます。コードはまた、品質リファレンスとして開発者にも価値があります:Next.js 16のクリーンな使用法、pgvectorによるRAGセットアップ、MCPサーバー実装、PostgreSQLでのRLSポリシーテストの実例が見つかり{@2}ます。

関連プロジェクト