Googleカレンダー連携/同期機能の設定をする
Calsketでは、各個人がGoogleカレンダー上で設定している「マイカレンダー」「他のカレンダー」に追加しているカレンダーをCalsket上で参照可能にする「Googleカレンダー連携機能」とSalesforceの行動データとGoogleカレンダー(各個人のメインカレンダー)のデータを双方向で同期する「Googleカレンダー同期機能」の2種類の連携機能があります。詳しくは下記をご参考ください。
ここでは、これらの機能を使用する際の初期設定手順について説明します。
本設定を行う前に、Calsketのインストール手順の「3.権限セットの割り当て」以降の手順が正しく行われていることを確認してください。
サンドボックス環境でGoogleカレンダー同期機能を利用する場合(トライアル期間含む)はライセンスキーの設定が必要です。ライセンスキー未取得の場合は弊社までお問い合わせください。
Googleカレンダー同期機能には各種制限事項が存在します。こちらに同期仕様と合わせて記載してありますので、ご確認ください。
SalesforceのGoogleカレンダー同期機能である「Lightning Sync」など、他の同期ツールと併せてトライアルをされる場合、必ずLightning Syncや他の同期ツールを無効にした上で本設定を行ってください。有効にしたまま本設定を行った場合、お互いの同期処理が同時に処理され、行動が無数に追加される現象が発生します。
1. Google Calendar APIへのリモートサイトアクセスを有効にする
❶ Salesforce設定にて [セキュリティ] > [リモートサイトの設定]を開き、[GoogleAPI]の[編集]をクリックします。

❷ [有効]にチェックを入れ[保存]ボタンをクリックしてください。
Calsketのインストール後にリモートサイトの編集画面を開くと、「有効」にチェックが入った状態で表示されますが、上記画面上で「保存」ボタンをクリックし、保存する必要があります。ご注意ください。
2. Calsket用のGoogle APIサービスアカウントを作成する
Calsket用のGoogle APIサービスアカウントを作成します。
❶ Google Cloud Console (https://console.cloud.google.com)にGoogle Workplaceの特権管理者権限を持つアカウントでログインします。 ❷ ヘッダーの矢印を押し、[新しいプロジェクト]をクリックします。


❸ 適当な名称(例:「Calsket」)で新しいプロジェクトを作成します。

❹ [作成]ボタンを押下後、しばらく待つと作成が完了し、作成したプロジェクトの画面に切り替わります。
❺ [≡] > [APIとサービス] > [ライブラリ]を開きます。

❻ 一覧に表示されていない場合は、検索フォームに「Calendar API」と入れ絞り込み、検索結果の中から「Google Calendar API」を選択します。

❼ 「有効にする」をクリックします。

❽ 次に、メニューの [≡] > [APIとサービス] > [認証情報]を開きます。

❾ 「認証情報を作成」ボタンをクリックし、「サービスアカウント」を選択します。

❿ 「サービスアカウントの作成」画面に移動しますので、「サービス アカウントの詳細」にて、下記の情報を入力・選択して「作成して続行」ボタンをクリックしてください。
サービス アカウント名: 任意(例: Calsket)
サービス アカウントの説明:任意

「このサービス アカウントにプロジェクトへのアクセスを許可する (省略可)」にて「編集者」を選択し、「完了」ボタンをクリックします。
⓫ 続いて、G Suite ドメイン全体の委任を有効化します。作成したサービスアカウントの「メール」箇所をクリックします。

⓬ IDが生成されますので、このIDをテキストエディター等にコピーしておいてください。

⓭ 続いてサービスアカウントキーを作成します。「キー」タブをクリックしてください。
⓮ 「鍵」画面に移動しますので、「鍵を追加」ボタンをクリックし、「新しい鍵を作成」を選択してください。

⓯ 秘密鍵の作成ダイアログが表示されますので、「JSON」を選択し、「作成」をクリックしてください。

⓰ 「<プロジェクト名>-xxxxx.json」が生成されますので、任意の場所に保存します。このファイルは後の設定で利用します。

⓱ 以上で終了です。
3. Google Workspace 管理コンソールでサービスアカウントからのアクセスを許可
❶ Google Workspace管理コンソール(https://admin.google.com)に管理者でログインし、[セキュリティ]を開きます。

❷ [アクセスとデータ管理]>[APIの制御]を開き[ドメイン全体の委任を管理]を開きます。

❸ [新しく追加]を開きます。

❹ 以下のアクセス許可設定を追加し、[承認]をクリックします。
クライアントID: <手順2.⓬にて控えたID>
OAuthスコープ: https://www.googleapis.com/auth/calendar

❺ 以上で完了です。
4. 作成したサービスアカウントをCalsketに設定
❶ Calsketを開き、右上のアイコンもしくは歯車アイコンをクリックし、表示された「システム設定」をクリックしてください


❷ 「Google連携/同期」タブをクリックし、「接続設定」セクション右上の「編集」ボタンをクリックします。

❷ 「Googleサービスアカウントの秘密鍵(JSONファイル)をアップロード」に上記手順でダウンロードした[<プロジェクト名>-xxxxx.json]ファイルをアップロードし、「Google Workspaceアカウント(メールアドレス)が保存されている「ユーザー」オブジェクトの保存先項目のAPI参照名」にGoogle Workspaceアカウント(Emailアドレス)が格納されているユーザーオブジェクトの項目のAPI 参照名を設定し、「保存」ボタンをクリックします。

「Google Workspaceアカウント(メールアドレス)が保存されている「ユーザー」オブジェクトの保存先項目のAPI参照名」に指定する項目の記載場所
Salesforceにログイン>設定>オブジェクトマネージャー>ユーザー>項目とリレーションにて、
Google Workspaceアカウント(Emailアドレス)が格納されている項目の「項目名」を
Google Workspaceアカウント(メールアドレス)が保存されている「ユーザー」オブジェクトの保存先項目のAPI参照名に指定します。
※Google Workspaceアカウント(Emailアドレス)が格納されている項目が
存在しない場合は、
ログイン>設定>オブジェクトマネージャー>ユーザー>項目とリレーション>新規 からカスタム項目を新規作成し、ユーザー登録画面にて、作成したカスタム項目にGoogle Workspaceアカウント(Emailアドレス)を登録します。
❸ 以上で、Googleカレンダーと連携する準備が整いました。しかし、各機能はまだ無効になっています。各連携機能を利用するには機能の有効化が必要です。
5. Googleカレンダー連携機能を有効化
❶ Calsketを開き、右上のアイコンもしくは歯車アイコンをクリックし、表示された「システム設定」をクリックしてください


❷ 「Google連携/同期」タブをクリックし、「Googleカレンダー連携」セクションの「Googleカレンダー連携機能を有効にする」右脇のトグルボタンをクリックし、Googleカレンダー連携機能を有効にしてください。

❸ 以上で完了です。Googleカレンダー連携機能を有効化すると、CalsketにGoogleカレンダーの情報を重ねて表示することができます(詳細)。
6. Googleカレンダー同期機能を有効化
❶ Calsketを開き、右上のアイコンもしくは歯車アイコンをクリックし、表示された「システム設定」をクリックしてください


❷ 「Google連携/同期」タブをクリックし、「Googleカレンダー同期」セクションの「Googleカレンダー同期を有効にする」右脇のトグルボタンをクリックし、Googleカレンダー同期機能を有効にしてください。

❸ 以上で完了です。Googleカレンダー同期機能を有効化すると、Salesforceのカレンダーの更新情報は即座にGoogleカレンダーに反映され、Googleカレンダーの更新情報は5分おきにSalesforceのカレンダーに反映されます。設定終了後、まずはSalesforce側にデータを追加していただき、Googleカレンダーへデータが反映されていることをご確認ください。
同期のタイミングについて
SalesforceからGoogleカレンダーへの同期処理はCalsketのApexトリガを利用して即座に実行されます。
それに対して、GoogleカレンダーからSalesforceへの同期はCalsketの定期的なジョブにより5分ごとに実行されます。このとき、前回の処理が実行中の場合はスキップされるため、5分ごとに同期処理が完了するわけではありません。
GoogleカレンダーからSalesforceの同期時間は同期対象のユーザーやカレンダーの更新量に応じて変化し、規模によっては数時間かかることもございます。ご了承ください。
最終更新

