Mark Hammer's blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

Trailhead モジュール:認定アドミニストレーター資格の更新 (Winter '20)

※この内容は2019/12時点のものです。

Winter '20 の新機能の学習

https://trailhead.salesforce.com/ja/content/learn/modules/administrator-certification-maintenance-winter-20/learn-whats-new-in-winter-20

  • 説明:日本語
  • Challenge:日本語選択問題

コンプライアンス分類の記録のハンズオン

https://trailhead.salesforce.com/ja/content/learn/modules/administrator-certification-maintenance-winter-20/get-handson-with-record-compliance-categorization

  • 説明:日本語
  • Challenge:英語ハンズオン

【Challenge要約】

※このChallengeには、Salesforce公式解説があります。

取引先責任者オブジェクトの以下の項目に、指定されたコンプライアンス分類を設定してください。

  • メール
    • コンプライアンス分類:GDPR
  • 電話
    • コンプライアンス分類:PII
  • 誕生日
    • コンプライアンス分類:HIPAA

Trailhead モジュール:Package.xml Metadata Management

※この内容は2019/12時点のものです。

Get to Know the Package.xml Manifest

https://trailhead.salesforce.com/ja/content/learn/modules/package-xml/package-xml-adventure

  • 説明:英語
  • Challenge:英語選択問題

Explore Salesforce APIs

https://trailhead.salesforce.com/ja/content/learn/modules/package-xml/package-xml-api

  • 説明:英語
  • Challenge:英語選択問題

Prepare Your Org and Install Developer Tools

https://trailhead.salesforce.com/ja/content/learn/modules/package-xml/package-xml-get-gear

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • Dev Hubを有効にしたTrailhead Playground組織を用意してください。
  • Dev Hubを有効にしたTrailhead Playground組織にログインし、Salesforce CLIで接続してください。
  • この未管理パッケージをインストールしてください。

Build a Package.xml Manifest

https://trailhead.salesforce.com/ja/content/learn/modules/package-xml/package-xml-manifest

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • Salesforce CLIを使い、スクラッチ組織を作成してください。

Deploy Metadata Using the Manifest

https://trailhead.salesforce.com/ja/content/learn/modules/package-xml/package-xml-deploy

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • スクラッチ組織で、以下内容の権限セットを作成してください。
    • 表示ラベル:Sticker Manager
    • API参照名:Sticker_Manager
    • Stickerオブジェクト設定:
      • タブの設定:利用可、参照可能
      • オブジェクト権限:参照、作成、編集、すべて表示
  • package.xmlマニフェストを用いて、作成した権限セットをTrailhead Playground組織にデプロイしてください。

Trailhead モジュール:Salesforce Surveys for Admins

※この内容は2019/12時点のものです。

Translate Your Survey

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-surveys-for-admins/translate-your-surveys

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • トランスレーションワークベンチを有効化してください。
  • 「使用言語」でイタリア語の翻訳者が自分自身のユーザになるように設定してください。
  • 顧客満足度調査の文章を翻訳してください(この設定内容は確認しません)。
    • 顧客満足度:Soddisfazione del cliente
    • 一時停止メッセージ:Sondaggio in pausa. Per riprendere da dove eri rimasto, aggiorna questa pagina o fai clic sul link nell'invito al sondaggio.
    • 質問1/2:Come giudichi il nostro servizio?
    • 無効:male
    • 良い:bene
    • 質問2/2:Hai commenti o feedback per noi?
    • 感謝のメッセージ:Grazie per aver partecipato!

Begin and Close Cases with Survey Invitations

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-surveys-for-admins/surveys-case-scenario

  • 説明:英語
  • Challenge:英語選択問題

Automate Your Survey Invitations

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-surveys-for-admins/automate-your-survey-invitations

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • プロセスビルダーにて、以下内容でプロセスを作成してください。
    • プロセス作成
      • プロセス名:Survey Invitation on Opportunity Closure
      • API 参照名:Survey_Invitation_on_Opportunity_Closure
      • プロセスを開始するタイミング:レコードが変更されたとき
    • オブジェクトを選択してプロセスを開始するタイミングを指定
      • オブジェクト:商談
      • プロセスを開始:レコードを作成または編集したとき
    • アクショングループの条件
      • 条件名:Closed Opportunity
      • アクションの実行条件:条件を満たしている
      • 条件を設定:
        • 項目:フェーズ
        • 演算子:次の文字列と一致する
        • 種別:選択リスト
        • 値:Closed Won
      • 条件:すべての条件に一致 (AND)
    • アクション
      • アクション種別:アンケートへの招待を送信
      • アクション名:Send Survey Invitations to Sales Reps
      • アンケート:顧客満足度
      • メールコンテンツ:アンケートリンク
      • メールテンプレート:Embed_a_Survey_Link
      • 受信者種別:組織のユーザ
      • 受信者:所有者ID>ユーザID
  • プロセスを有効化してください。
  • 商談名が「My first opportunity!」の商談を作成し、フェーズを「Closed Won」としてください。

Analyze Your Responses

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-surveys-for-admins/analyze-your-survey-responses

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • 商談名「My first opportunity!」のフェーズが「Closed Won」となったことで送信された顧客満足度調査アンケートに回答してください。
  • 以下内容でカスタムレポートタイプを作成してください。
    • 主オブジェクト:アンケートの質問のスコア
    • レポートタイプの表示ラベル:All Survey Question Responses
    • レポートタイプ名:All_Survey_Question_Responses
    • 説明:Use to review responses for all survey question types apart from text.
    • カテゴリに格納:その他のレポート
  • 以下内容でレポートを作成してください。
    • レポート名:Scored Responses: Customer Satisfaction
    • レポートタイプ:All Survey Question Responses
    • レポートに表示する列:質問名、質問スコア種別、回答の値、回答数、スコア
    • 検索条件:
      • 項目:アンケート:名前
      • 演算子:次の文字列と一致する
      • 値:顧客満足度

Trailhead モジュール:Insurance Agent Console for Sales and Service

※この内容は2019/11時点のものです。

Get Started with Insurance Agent Console

https://trailhead.salesforce.com/ja/content/learn/modules/insurance-agent-console-for-sales-and-service/get-started-with-insurance-agent-console

  • 説明:英語
  • Challenge:英語選択問題

Give Sales Agents a 360-Degree View of Policyholders

https://trailhead.salesforce.com/ja/content/learn/modules/insurance-agent-console-for-sales-and-service/give-sales-agents-a-360-view-of-policyholders

  • 説明:英語
  • Challenge:英語選択問題

Create a New Life Event

https://trailhead.salesforce.com/ja/content/learn/modules/insurance-agent-console-for-sales-and-service/create-a-new-life-event

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

※筆者注:このChallengeの前に、Financial Services Cloud Developer Edition のサインアップをしてください。

以下内容でRachel Adamsの新規ライフイベントを作成してください。

  • イベント名:Purchase a new car
  • イベント種別:Car
  • イベント日付:好きな日付を設定してください(この項目はチェックしません)
  • 主要な人物:(Sample) Rachel Adams

※筆者注: 設定を正しく実施しても

We can’t find a life event named ‘Purchase a new car’ for Rachel Adams.

というエラーが発生する場合は、Challenge用組織のユーザ地域を[英語(アメリカ合衆国)]に変更し、再度Challengeの確認を実施してください。

Review the Policies Tab

https://trailhead.salesforce.com/ja/content/learn/modules/insurance-agent-console-for-sales-and-service/review-the-policies-tab

  • 説明:英語
  • Challenge:英語選択問題

Give Service Reps a 360-Degree View of Policyholders

https://trailhead.salesforce.com/ja/content/learn/modules/insurance-agent-console-for-sales-and-service/give-service-reps-a-360-view-of-policyholders

  • 説明:英語
  • Challenge:英語選択問題

Automate Repetitive Business Processes with Lightning Flows

https://trailhead.salesforce.com/ja/content/learn/modules/insurance-agent-console-for-sales-and-service/automate-repetitive-business-processes-with-lightning-flows

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

Rachel Adams の auto policy に以下の通りドライバーを追加してください。

  • First Name: Madeline
  • Last Name: Reddy
  • Email Address: mreddy@mail.com
  • Phone: 415-901-7040
  • Driver's License Number: D2345897
  • License Issue Date: 好きな日付を設定してください(この項目はチェックしません)
  • License Expiration Date: 好きな日付を設定してください(この項目はチェックしません)
  • driver's license: ファイルアップロードは不要です(「次へ」→「完了」の順にクリックしてください)

Lightning Experience で表示される 参照カウント について調べてみた

Lightning Experience では Salesforce Classic と違い、Chatter投稿に「〇人が参照」、「再生回数〇回」といったChatter参照カウントが表示されます。
「〇人が参照」の場合は、リンクをクリックするとその投稿にいいね! と言ったり、コメント、編集、共有をした、または投稿の詳細ビューに移動したユーザ名が表示されますが、「再生回数〇回」の場合はリンクがなく、どのユーザが何回アクションを行ったのかは分かりません。

f:id:mark-hammer:20191112021945p:plain
「〇人が参照」画面

f:id:mark-hammer:20191112021948p:plain
「再生回数〇回」画面

今回はこの参照カウントの表示について調べてみました。
※この内容は 2019/11(Winter'20) のものです。

参照カウントの表示ルール

ページによって、参照カウント表示ルールが決められています。

非公開Chatterグループ

  • グループに参加しているユーザであれば、「〇人が参照」が表示されます。
  • ただし、プロファイルや権限セットで「[表示先] リストを非表示」にチェックがあるユーザには「再生回数〇回」が表示されます。
    • これは「すべてのデータの編集」または「すべてのデータの参照」権限を持つユーザであっても同様です。

リストに記載しないChatterグループ

  • グループに参加しているユーザであれば、「〇人が参照」が表示されます。
  • ただし、プロファイルや権限セットで「[表示先] リストを非表示」にチェックがあるユーザには「〇人が参照」、「再生回数〇回」どちらも表示されません。
    • これは「すべてのデータの編集」または「すべてのデータの参照」権限を持つユーザであっても同様です。

上記以外

公開Chatterグループ、レコード画面、ユーザ画面等に表示されるChatter投稿が該当します。

  • 以下両方を満たすユーザには「〇人が参照」が表示されます。
    • 「すべてのデータの編集」または「すべてのデータの参照」権限を持つユーザである。
    • プロファイルや権限セットで「[表示先] リストを非表示」にチェックがないユーザである。
  • それ以外のユーザには「再生回数〇回」が表示されます。

特殊ケース

「〇人が参照」が表示されるケースなのに、「再生回数〇回」が表示される

これは、「〇人が参照」は投稿者本人のアクセスを含まないのに対し、「再生回数〇回」は投稿者本人のアクセスを含むために起こります。
つまり、「その投稿に『いいね!』をクリックしたり、コメントまたは共有したり、投稿の詳細ビューに移動したのが投稿者本人だけ」の場合、「再生回数〇回」の表示になります。
その後投稿者本人以外が投稿に対しアクションを行った場合は、「〇人が参照」に表示が切り替わり、以後「再生回数〇回」は表示されません。

レコード画面で非公開Chatterグループをメンションした場合の表示

メンションした非公開Chatterグループに参加しているユーザはレコード画面、ユーザ画面、非公開ChatterグループでChatter投稿を見ることができますが、参照カウントの表示はそれぞれの画面のルールに従います。
つまり、「すべてのデータの編集」または「すべてのデータの参照」権限がない、かつ「[表示先] リストを非表示」のチェックがないユーザの場合、以下の動作になります。

  • 非公開Chatterグループ画面
    • 「〇人が参照」が表示される。
  • 上記以外の画面
    • 「再生回数〇回」が表示される。

参考URL

Chatter 投稿の構造 - Salesforce Help
Chatter カウントの特性 - Salesforce Help

Trailhead モジュール:Permission Sets for Unlocked Packages

※この内容は2019/10時点のものです。

Learn About Profiles and Permission Sets

https://trailhead.salesforce.com/ja/content/learn/modules/permission-sets-for-unlocked-packages/learn-about-profiles-and-permission-sets

  • 説明:英語
  • Challenge:英語選択問題

Develop a Profile and Permission Set Packaging Strategy

https://trailhead.salesforce.com/ja/content/learn/modules/permission-sets-for-unlocked-packages/develop-a-profile-and-permission-set-packaging-strategy

  • 説明:英語
  • Challenge:英語選択問題

Create an Unlocked Package

https://trailhead.salesforce.com/ja/content/learn/modules/permission-sets-for-unlocked-packages/create-an-unlocked-package

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • Trailhead Playground組織でDev Hubを有効化してください。
  • sfdx force:auth:web:login -d -a DevHub コマンドを使って、Salesforce CLIからDev Hubを有効化したTrailhead Playground組織に接続してください。

Create a Permission Set and Add it to Your Package

https://trailhead.salesforce.com/ja/content/learn/modules/permission-sets-for-unlocked-packages/create-a-permission-set-and-add-it-to-your-package

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • スクラッチ組織を作成してください。
  • sfdx-package-profiles-to-permsets プロジェクトから、メタデータをスクラッチ組織にPushしてください。
  • スクラッチ組織で、以下の権限セットを作成してください。
    • 表示ラベル:Sales Manager
    • API参照名:Sales_Manager
    • Servicesオブジェクトの「参照」、「すべて表示」権限を付与
    • SKUsオブジェクトの「参照」、「すべて表示」権限を付与
  • Sales Manager権限セットをPullしてください。

Release Your Updated Package

https://trailhead.salesforce.com/ja/content/learn/modules/permission-sets-for-unlocked-packages/release-your-updated-package

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • 前のユニットでDev Hubを有効化したTrailhead Playground組織にsalesAppsパッケージをインストールしてください。

Trailhead モジュール:Salesforce CPQ Order Generation

※この内容は2019/10時点のものです。

Get Started with Salesforce CPQ Order Generation

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-cpq-order-generation/get-started-with-salesforce-cpq-order-generation

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

「Sign Up for a Developer Edition Org with Salesforce CPQ」節の手順に従って、CPQが有効化されたDeveloper Edition組織をTrailheadに接続してください。

Generate Your First Order

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-cpq-order-generation/generate-your-first-order

  • 説明:英語
  • Challenge:英語選択問題

Generate Multiple Orders from a Single Quote

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-cpq-order-generation/generate-multiple-orders-from-a-single-quote

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • 以下内容で、既存の見積レコードから新しく注文レコードを作成してください。
    • 取引先名:Kevco Inc.
    • 注文開始日:2019/1/1 (年は任意)
    • 見積:Q-00023
  • 作成した注文レコードで、「注文商品を編集」から以下注文商品を追加してください。
    • WiFi Installation
    • Warranty
  • 残りの見積品目を使って、同じ見積レコードから2つ目の注文レコードを作成してください。
    • 取引先名:Kevco Inc.
    • 注文開始日:任意
    • 見積:Q-00023
    • ヒント:「注文」項目のチェックボックスを使って、この注文レコードを生成できます。

Automatically Split a Quote into Multiple Orders

https://trailhead.salesforce.com/ja/content/learn/modules/salesforce-cpq-order-generation/automatically-split-a-quote-into-multiple-orders

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • 見積オブジェクトの「注文単位」項目(API参照名:SBQQ__OrderBy__c )の選択リスト値に、「 SBQQ__EffectiveStartDate__c 」を追加してください。
  • 見積レコード Q-00026 を以下内容で編集して、各見積品目レコードの「開始日」に基づいた複数の注文を生成してください。
    • 注文単位: SBQQ__EffectiveStartDate__c
    • 注文:チェックを入れる

Salesforce Authenticator のアカウント紐付けを削除してしまった場合の対応策

Salesforceにログインする際に、セキュリティを高めるために2段階認証を有効にしているユーザの方もいらっしゃるかと思います。
Salesforceにて2段階認証を有効にする際、一般的には Salesforce Authenticator にアカウントの紐付けを行うと思いますが、もし Salesforce Authenticator の紐付けを誤って削除してしまうとどうなるでしょう。

Salesforce Authenticator のアカウント紐付けを削除すると起こること

Salesforce Authenticator の紐付けを行ったアカウントを用意し、 Salesforce Authenticator 側でアカウントの削除を行った後にSalesforceにログインすると、以下画面が表示されます。

Salesforce Authenticator から紐付けを削除した場合のログイン後画面

画面には「モバイルデバイスでアカウントをアプリケーションから削除した場合、個人設定でアカウントを再接続できます。」とありますが、ログインが成功しないため個人設定画面に遷移することはできません。
また、「別の検証方法を使用してください」というリンクもありますが、 Google Authenticator など他のワンタイムパスワードジェネレータを登録していない場合、使用できる別の検証方法がありません。

つまり、「パスワードも、パスワードリセットに使う秘密の質問の回答も忘れた」のと同じく、Salesforceにログインできないアカウントとなってしまいます。

誤って紐付けを削除した場合の回避策

このような状況を避けるため、 Salesforce Authenticator にはバックアップ作成機能がありますが、バックアップをとっていない場合は「諦めて別のアカウントを作成するしかないのか」と思うかもしれません。
しかし、状況によっては Salesforce Authenticator の紐付けを削除したアカウントを、再度ログイン可能にすることができます。

具体的にフローチャートにしたものが以下になります。

f:id:mark-hammer:20190925225742p:plain
紐付け削除時の対応フローチャート

パターン1: 同じ組織に他のシステム管理者がいる場合

これは自分が一般ユーザ、または複数のシステム管理者が同じ組織にいる状況となります。

この場合は、以下手順を他のシステム管理者に実行してもらうことで Salesforce Authenticator のアカウント紐付けをリセットすることができます。

  1. システム管理者にSalesforceにログインしてもらい、設定画面の「ユーザ」画面を表示する。
  2. アカウント紐付けを削除してしまったアカウントの詳細画面を表示する。
  3. 「アプリケーション登録: Salesforce Authenticator」の「切断」リンク(下図)をクリックする。
  4. アカウント紐付けを削除してしまったアカウントで再度ログインすると2段階認証登録画面に遷移するので、ここで新たに Salesforce Authenticator の紐付けを行う。

手順3. の「切断」リンク

パターン2: 同じ組織に他のシステム管理者がおらず、Salesforceサポートに問い合わせができる場合

これはSalesforceの有償組織(Enterprise Edition, Professional Edition等)を使用しており、かつ自分以外にシステム管理者がいない組織が該当します。

この場合は、自分の組織内でアカウント紐付けを解除することができないため、Salesforceサポートに問い合わせて対応を依頼することになります。
なお、ログインできないためヘルプ&トレーニングからのケース登録ができないので、Salesforceサポートに電話でお問い合わせが必要になります。

パターン3: 同じ組織に他のシステム管理者がおらず、Salesforceサポートに問い合わせができない場合

これはDeveloper Edition組織、かつシステム管理者用ユーザを他に用意していない組織が該当します。

この場合は対応策がないですが、Developer Edition組織は無償、かつ無制限に作成可能なため、「新しくDeveloper Edition組織を作成してください」が回答となります。

ただし、Trailheadが紐付いているアカウントの場合、TrailheadサポートにLogin Issueとして問い合わせをすると解消してもらえるかもしれません。

なお、Trailheadは無償であり、サポートもSLAがないと思われるためいつ返事がもらえるかは分かりません。
運がよければ解消してもらえる程度に考えた方がいいかもしれません。*1

おわりに

ちなみに、今回の手順は2段階認証に Google Authenticator 等、別のワンタイムパスワードジェネレーターを使用しているユーザにも適用できます。*2

この投稿が困ったときの一助になれば幸いです。

*1:Login Issueはユーザにとって重大なため、対応はしてもらえると思うのですが、「Trailheadサポートに対応してもらえました」というコメントを今まで見たことがないのです。

*2:前節パターン1の手順3で、「アプリケーション登録: ワンタイムパスワードジェネレータ」の右にある「切断」リンクをクリックすれば対応できます。

Trailhead モジュール:AppExchange Solutions

※この内容は2019/9時点のものです。

Discover AppExchange Solutions

https://trailhead.salesforce.com/ja/content/learn/modules/appexchange-solutions/discover-appexchange-solutions

  • 説明:英語
  • Challenge:英語選択問題

Find Your Way Around AppExchange

https://trailhead.salesforce.com/ja/content/learn/modules/appexchange-solutions/find-your-way-around-appexchange

  • 説明:英語
  • Challenge:英語選択問題

Tour Solutions by Type

https://trailhead.salesforce.com/ja/content/learn/modules/appexchange-solutions/tour-solutions-by-type

  • 説明:英語
  • Challenge:英語選択問題

Install an AppExchange Solution

https://trailhead.salesforce.com/ja/content/learn/modules/appexchange-solutions/install-appexchange-solution

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

  • AppExchangeより「Flow Video Player & File Viewer」フローソリューションをインストールしてください。
  • Flow Builderにて以下作業を実施してください。
    • 画面フローを新規作成してください。
    • 以下の通り画面コンポーネントをフローに追加してください。
      • 表示ラベル:Welcome Video
      • API参照名:Welcome_Video
    • インストールしたYoutube Playerコンポーネントを画面コンポーネントに追加してください。
      • API参照名:VideoViewer
      • Youtube Video ID:n6lsAsgCnH8
    • フローの各要素を接続してください。
    • 画面フローを保存してください。
      • フローの表示ラベル:Welcome Video Flow
      • フローのAPI参照名:Welcome_Video_Flow
  • 画面フローを実行して、Youtube Videoを参照してください。

Trailhead モジュール:認定 Platform デベロッパー資格の更新 (Summer '19)

※この内容は2019/9時点のものです。

Summer '19 の Platform デベロッパー向けの新機能の学習

https://trailhead.salesforce.com/ja/content/learn/modules/platform-developer1-maintenance-summer19/learn-whats-new-for-platform-developers-summer19

  • 説明:日本語
  • Challenge:日本語選択問題

Apex 一括処理クラスからのプラットフォームイベントの使用のハンズオン

https://trailhead.salesforce.com/ja/content/learn/modules/platform-developer1-maintenance-summer19/get-hands-on-using-platform-events-from-batch-apex-classes-summer19

  • 説明:英語
  • Challenge:英語ハンズオン

【Challenge要約】

※本Challengeには公式が作成した解説があります。

※筆者注:Challengeの前に「ハンズオン Challenge への準備」節の手順に従って未管理パッケージをインストールしてください。

  • Database.RaisesPlatformEventsインターフェースを実装するよう、BatchLeadConvertクラスを更新してください。
  • BatchApexErrorEventオブジェクトタイプに対するApexトリガ「BatchApexErrorTrigger」を作成してください。また、各イベントレコードについて、以下の通りBatchLeadConvertErrors__cレコードの対応する項目に、イベントレコードからキャプチャしたデータを保存するようロジックを実装してください。
    • AsyncApexJobId: AsyncApexJobId__c
    • JobScope: Records__c
    • StackTrace: StackTrace__c
  • トリガが安全に一括処理されるように、1つのDML文で新規レコードのリストを全部挿入するようにしてください。