SalesforceのExperience Cloudを使用してポータルサイト、Webサイトを構築している組織は数多くあると思います。(そもそもExperience Cloudとは?という話は、また別の記事でまとめる予定です)
そのサイトを改修している中で起こしてしまった失敗を、忘備録として残しておきます。
サイト名とは
サイトの作成時、特にテンプレートを使用しなければClassicのデザインを踏襲したサイトが構築されます。左上にはサイト作成時に設定したサイトの名前が表示されます。(下図赤枠部)
設定からアクセスできるサイトの詳細画面では、サイトの名前は表示ラベル(SiteオブジェクトのMasterLabel項目)として確認できます。表示ラベルが英字の場合、サイト名(SiteオブジェクトのName項目)は表示ラベルと同じ。こちらの項目、公式ドキュメントでは「API でサイトを参照するときに使用される名前」と説明されています。
サイト名を変更する
さて、サイト名を変更したいという要望があったのでサイトのワークスペースから管理画面にアクセスし、名前を変更しました。今度は日本語。URLはそのまま。
保存し、サイトを確認。変更されています。完了!
サイトの詳細を確認する
数日後、問い合わせが来ました。組織から送信するメールの中に、このサイトのURLを記載しているものがあるのですが、URLが載っていないとのこと。
メール本文中に埋め込むURLは、Apex内でSiteオブジェクトをName項目を条件にクエリし、それに紐づくSiteDetailオブジェクトに保存されているSecureUrl項目を取得してきています。Name項目は変更していないはずなので、なぜ取得できていないのか。ともかくサイトの詳細画面を確認しました。
サイト名が変わっていました…
よく見れば画面下部には変更履歴もありますし。
サイトのラベルを日本語にするとサイト名は問答無用でSiteになるようです。このあとさらに変更するとSite2に更新されていました。
ラベルを変更するとName項目まで書き換わることを知らず驚きました。どんなに軽微と思われる変更でも、動作確認は丁寧に行うべきという教訓を得ました。