Welldoing.orgは、英国を代表するセラピスト名鑑およびメンタルヘルスコンテンツのプラットフォームです。 今回の課題は、基本的な名鑑機能と独立したWordPressブログという2つの分断されたシステムを統合し、単一の一貫性あるSaaSプラットフォームへと刷新することでした。
01. 課題と背景
ビジネスは、成長を妨げる深刻な技術的負債とUXの障壁に直面していました。 連携されていないシステムでの運用は、助けを求めるユーザーにとって摩擦を生んでいました。
- 分断されたアーキテクチャ: 記事を読んでいるユーザーには、セラピストを予約するための直接的な動線がありませんでした。2つのデータベース間での連携が行われていませんでした。
- マッチングの摩擦: 「自分に合った」セラピストを見つけることは、ただでさえ心細い状態のユーザーにとって、手作業での試行錯誤を強いられるプロセスでした。
- 予約システムの分断: セラピストがそれぞれ独自の予約システムを管理していたため、予約の取りこぼしや収益の損失が発生していました。
02. アーキテクチャ
1. プラットフォームの統合 (October CMS)
私はOctober CMS (Laravel) を使用して、ブログと名鑑を単一の統合プラットフォームにマージする完全な移行計画を策定・実行しました。 これにより、コンテンツのタグに直接リンクする独自の「Therapist(セラピスト)」モデルを構築でき、記事の閲覧から予約まで、シームレスなユーザージャーニーを実現しました。
class Therapist extends Model {
public $belongsToMany = [
'specialties' => ['Welldoing\Directory\Models\Specialty']
];
}
2. マッチングアルゴリズム
独自の「Therapist Match(セラピストマッチ)」システムを開発しました。このウィザードは、一連の診断質問を通じてユーザーをガイドし、位置情報を使用して結果をフィルタリングします。 ロジックは、ユーザーの特定のニーズ(認知行動療法、精神分析など)との関連性と近接性に基づいてセラピストをスコアリングし、最適なマッチング結果を即座に返します。
3. ダイアリー機能とStripeの統合
システムのループを完結させるため、プラットフォームに直接統合された独自のダイアリーシステムを構築しました。
- リアルタイムの空き状況: セラピストは専用のダッシュボードで予約枠を管理できます。
- シームレスな予約: ユーザーは検索結果から直接予約枠を確保できます。
- Stripe決済: Stripe APIを統合して安全な決済処理を実現し、セラピストへの支払いを自動化しました。
// 予約ロジック(簡略版)
public function bookSlot($user, $therapist, $slot) {
Stripe::charge($user->token, $slot->price);
$this->diary->reserve($therapist->id, $slot->time);
return "Appointment Confirmed";
}
03. システムの成果
この統合により、Welldoing.orgは単なるブログから機能的なSaaSプラットフォームへと変貌を遂げました。
- 統合されたユーザージャーニー: ユーザーは記事を読んでから2分以内に予約確定まで完了できるようになりました。
- 収益の創出: 自動化された予約・決済システムにより、プラットフォームに新たな収益源が生まれました。
- スケーラビリティ: October CMSとLaravelのスタックは、今後の長年の成長を支える堅牢な基盤を提供しました。