tva
← Insights

CRM のセルフホスティング:SaaS をやめた理由

SaaS CRM 市場に選択肢は豊富です。Salesforce、HubSpot、Pipedrive、Zoho — それぞれ独自の価格帯、機能マトリクス、そして次の上位ティアがなぜあなたのビジネスに必要かを説明するアカウントマネージャーを持ちます。長年これらのツールを使用してきて、ある時点でバリュープロポジションが逆転することに気づきました。

コストは最も目に見える症状です。Pipedrive は適切な価格から始まり、その後シートごとにスケールします。HubSpot の無料ティアは機能的ですが、そうでなくなる瞬間、有料プランへのジャンプは相当なものです。Salesforce はまったく別のカテゴリで動作します:設定と維持に専任の管理者を必要とする、相応の価格のエンタープライズソフトウェアです。数百の連絡先と少数のアクティブな案件を管理するコンサルティング会社にとって、これらの価格構造はいずれも特に効率的ではありません。

しかしコスト計算は純粋にサブスクリプション料金についてではありません。実際に何を購入しているかという質問もあります。

ロックインの問題

SaaS CRM ベンダーは利便性を売ります。その代わりに、彼らはあなたのデータの管理権、インターフェースの制御、そして独自の裁量で価格を変更する能力を保持します。これは論争的な観察ではありません — それがモデルです。Salesforce は複数回価格を引き上げました。HubSpot はティア全体で機能のゲートを再構成しました。Pipedrive は以前にはなかったプランにシート最低数を導入しました。これらの動きはそれぞれベンダーの権利内にあり、それぞれが前の条件に基づいてワークフローを構築した顧客に摩擦を生みます。

データポータビリティの問題は、ほとんどの議論が認めるよりも重要です。すべての主要な CRM は通常 CSV へのエクスポート機能を提供します。しかし連絡先データの CSV エクスポートは CRM データと同じではありません。連絡先と会社間の関係、活動履歴、案件タイムライン、カスタムフィールド — これらはクリーンにエクスポートに生き残ることはほとんどありません。実際には、SaaS CRM から移行するということは、運用履歴の重要な部分をゼロから再構築することを意味します。データは技術的にはあなたのものですが、使える形式で回収するには相当な労力が必要です。

Twenty CRM とセルフホスティングの選択肢

Twenty(twenty.com)は商業製品に対する真剣な代替として台頭してきたオープンソース CRM です。コードベースは活発に開発され、データモデルはよく構造化されており、インターフェースは実際に使えます。PostgreSQL 上で動作するため、標準的なデータベースツーリングが直接適用できます。このプロジェクトは趣味のリポジトリではありません — 資金を持つチームが背後にあり、明確なロードマップがあります。

私たちは既存の Hetzner インフラ、Web サイトと Traefik の背後で他のサービスを実行している CX53 インスタンスにデプロイしました。Twenty が提供する Docker Compose 設定は簡単です。コアサービスは API サーバー、フロントエンド、PostgreSQL データベース、そしてキャッシングとキュー管理のための Redis です。小規模チームの総リソースオーバーヘッドは控えめです:スタックはアイドル状態で 2 GB 未満の RAM を消費します。

セットアッププロセスは、DNS 設定と既存の Traefik リバースプロキシを通じた SSL 終端を含めて約 2 時間かかりました。Twenty のドキュメントは Docker デプロイのパスを明確にカバーしています。環境変数はよく文書化されており、ヘルスチェックは期待通りに機能し、最初のデータ移行は初回起動時に自動的に実行されました。意味のある障害はありませんでした。

コスト分析が実際に示すもの

すでに運用しているインフラで Twenty をセルフホスティングして運用するコストは、増分的な意味では事実上ゼロです。専用インフラでは、コストは月々のサーバー代です。私たちの Hetzner CX53 は月約 30 ユーロで稼働し、複数のサービスをホストしています — CRM は共有環境の 1 つのテナントであり、サーバーの存在理由ではありません。

一般的な SaaS の代替手段と比較してみましょう。Pipedrive はティアによってシートあたり月 24〜67 ドルです。3 人チームでは月 72〜201 ドル、年間 864〜2,412 ドルになります。自動化とカスタムレポートを解放する HubSpot のプロフェッショナルティアは 5 シートで月 800 ドルです。Salesforce Essentials — エントリポイント — はシートあたり月 25 ドルから始まりますが、ほとんどの営業チームが実際に必要とする機能はシートあたり 75 ドルのプロフェッショナルティアにあります。

これらの数字は、CRM の導入が測定可能なパイプライン価値を直接促進する大規模な営業組織にとって不合理ではありません。しかし CRM が主に連絡先データベースとエンゲージメント履歴であるテクニカルコンサルティング会社にとって、計算は異なります。セルフホスティングデプロイメントの運用オーバーヘッドは週単位ではなく年間何時間で測定されます。損益分岐点はすぐに達成されます。

実際のデータ所有権

CRM データが管理する PostgreSQL データベースにある場合、運用上の影響は具体的です。バックアップは標準的なデータベースダンプです — 日次の pg_dump エクスポートを Hetzner Object Storage に実行し、30 日間保持して月次スナップショットを 1 年間保持します。クエリは無制限です。CRM テーブルを独自データと結合したり、生スキーマに対してカスタムレポートを構築したり、エクスポートレート制限や API コールクォータなしに連絡先データを他の内部システムに送り込んだりできます。

これは最初に見えるよりも重要です。SaaS CRM はスケール時にアーキテクチャ上の制約となる API レート制限を課します。HubSpot の無料ティアはリクエストを 1 日 500 件に制限します。Pipedrive の制限はプランによって異なります。CRM データを外部システム — 請求ツール、プロジェクト管理、カスタムダッシュボード — と同期する必要がある場合、これらの制限はアーキテクチャ上実現可能な統合を形作ります。セルフホスティングの PostgreSQL データベースでは、唯一の制約はサーバーの容量です。

ベンダーが買収されたり、条件を変更したり、事業を停止したりした場合にデータがどうなるかという問いもあります。これらは主要ベンダーにとって低確率のイベントですが、ゼロではありません。データを所有することはリスクモデルを所有することを意味し、委譲することではありません。

開発パートナーなしのカスタマイズ

Twenty はメタデータ駆動のデータモデルを持つ GraphQL API 上に構築されています。任意のエンティティへのカスタムフィールドの追加はインターフェースで数秒かかります — フィールドタイプを定義すると、UI と API スキーマに即座に表示されます。設定のエクスポート、サンドボックスデプロイメント、サポートチケット、ティアのアップグレードは不要です。

これは SaaS CRM が提供するものと質的に異なります。Salesforce は広範なカスタマイズを許可しますが、カスタマイズモデルはその周囲にプロフェッショナルサービス産業全体を維持するほど複雑です。Pipedrive はほとんどのオブジェクトにカスタムフィールドを許可しますが、インターフェースのカスタマイズは制限されています。HubSpot のカスタマイズ機能は、どのプランを支払っているかに大きく依存します。

Twenty のアプローチ — オープンスキーマ、ローカル制御 — は、エンゲージメントがデフォルトのデータモデルがカバーしないトラッキング情報を必要とする場合、直接拡張できることを意味します。異常な案件構造やクライアント固有のメタデータをトラッキングする必要があることがあるコンサルティング会社にとって、この柔軟性は実際に有用であることが証明されました。

バックアップ戦略

バックアップ設定は意図的にシンプルです。Twenty の PostgreSQL データベースの日次自動 pg_dump、圧縮して Hetzner Object Storage にアップロード。アプリケーションデータ — プロフィール画像、添付ファイル — は同じスケジュールで restic によってバックアップされる Docker ボリュームに保存されます。保持期間は日次スナップショットが 30 日、月次スナップショットが 12 ヶ月です。

リカバリーテストは四半期ごとに実行します:バックアップをステージングデータベースにリストア、行数を確認、データの整合性をスポットチェック。バックアップから運用可能な Twenty インスタンスへのフルリストアは約 15 分かかります — リアルタイム運用のクリティカルパス上にないツールとして許容範囲です。Hetzner Object Storage は 1 TB あたり月 6 ユーロ;私たちの CRM バックアップはその割り当ての小さな部分を消費します。

ここで必要な運用上の規律は控えめです。バックアップジョブはホスト上の cron タスクとして実行され、結果を監視システムにログし、失敗時にアラートを出します。これはサーバーワークロードを実行するすべてのチームがすでに備えているべき標準的なインフラ実践です。

セルフホスティングが合理的な場合

CRM をセルフホスティングする論拠は、いくつかの条件が揃った場合に最も強くなります。チームが Docker コンテナを実行し PostgreSQL データベースを管理する本物の運用能力を持っていること — これは形式的なものではなく、真の前提条件です。すでに利用可能な容量を持つサーバーインフラを運用していること。CRM のユースケースが比較的安定していること、つまり次の四半期以内に必要になる機能についてベンダーのロードマップに依存していないことを意味します。

コストとデータ所有権の議論は現実のものですが、運用能力の問いに対して二次的です。セルフホスティングはお金を時間と専門知識に交換します。チームの運用時間が SaaS サブスクリプションより高価な場合、経済的には切り替えが有利でないかもしれません。損益分岐点は純粋に財務的なものではありません — チームのスキルと帯域幅が実際にどこにあるかの関数でもあります。

合理的でない場合

組織がディープなエンタープライズ統合を必要としている場合 — マーケティングオートメーションプラットフォーム、CDP、データウェアハウスに接続され、専任の RevOps 機能によって維持される CRM — セルフホスティングは誤った方向です。商業 CRM 周辺の統合エコシステムが深いのは、ベンダーが年をかけてそれを構築してきたからです。セルフホスティングの Twenty インスタンスは GraphQL API または直接データベースアクセスを通じて接続します。500 個の事前構築されたコネクタのライブラリはありません。

同様に、チームの誰も障害が発生した Docker コンテナを診断したり、PostgreSQL ログを読んだり、データベースバックアップからリストアしたりできない場合、運用の負担はすぐにコスト削減を超えます。セルフホスティングのパスは、すべてのチームが持っているわけではないインフラコンピテンシーのベースラインを必要とします — そしてそのコンピテンシーを習得することにはそれ自体のコストがあります。

コンプライアンス要件も方程式を変える可能性があります。ビジネスがテクノロジーベンダーからの認証済みデータ処理を必要とする規制のもとで運用されている場合 — SOC 2 認証、ISO 27001 監査 — セルフホスティングデプロイメントはそれらの認証が自社のインフラに適用されなければならないことを意味します。それが利点になるか負担になるかは既存のコンプライアンス姿勢によって異なります。

実際に運用していること

私たちの本番 Twenty デプロイメントは数ヶ月間、意味のある障害なく稼働しています。連絡先管理、会社記録、案件トラッキング、活動ログはすべて期待通りに機能しています。インターフェースは十分にクリーンで、オンボーディングに正式なトレーニングは不要でした。GraphQL API は CRM コンテキストを他の内部ツーリングに取り込むのに有用であることが証明されました — 具体的には、SaaS アドオンとして購入するのではなく自分たちで構築するクライアントレポートとエンゲージメントトラッキングに使用しています。

メンテナンスは予想より少なく済んでいます。Twenty は安定したペースでアップデートをリリースしており、デプロイは新しい Docker イメージをプルしてサービスを再起動するだけで、通常 5 分以内に完了します。PostgreSQL データベースは定期的なバックアップ確認以外に手動介入を必要としていません。

決定はイデオロギー的なものではありませんでした。SaaS が本質的に間違っているから、またはセルフホスティングが本質的に美徳だからという理由で SaaS CRM から離れたわけではありません。決定は運用上のものでした:私たちの特定のユースケースにとって、セルフホスティングのパスはよりシンプルで、より安価で、私たちに属するデータのより良いコントロールを提供します。異なる制約を持つ組織 — より大きな営業チーム、より深い統合要件、または限られたインフラ容量 — では結論が異なるかもしれません。要点は、最小抵抗のパスだからというデフォルトのサブスクリプションモデルではなく、計算を明示的に行うことです。


関連インサイト

関連記事