tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Quip Live Appsの開発を試してみました

Quip Live Appsを試してみました。Quipのトライアル環境作成などはこちら。


Live Appsのイメージ

プロジェクトに必要なもの

  • Quipアカウント
  • Node.jsがインストールされたローカル環境

Nodeってそういえば最新バージョンいくつだろうと確認してみたところ、v9.3.0まででてました。せっかくなのでアップデート。
f:id:tyoshikawa1106:20171228125927p:plain

Install the Quip SDK

下記リンク先からダウンロードできます。

https://quip.com/dev/sdk/download

デスクトップにappフォルダを用意してそこに解答しました。
f:id:tyoshikawa1106:20171228130234p:plain


ターミナルを起動してcdコマンドで移動します。
f:id:tyoshikawa1106:20171228130256p:plain


Quipにはシークレット・ウィンドウモードでログインしておきます。(Chromeで実施)

Quip Developer Portalを開く

サイドメニューのアプリを選択します。
f:id:tyoshikawa1106:20171228130516p:plain:w200


ポップアップが表示されます。
f:id:tyoshikawa1106:20171228130559p:plain


Build your own live app のリンクをクリックします。
f:id:tyoshikawa1106:20171228130715p:plain


次の画面が表示されました。
f:id:tyoshikawa1106:20171228130745p:plain

ライブアプリを作成する

右上のCreate a Live Appのリンクをクリックします。App IDが画面に表示されるので記録します。
f:id:tyoshikawa1106:20171228131022p:plain

Quip Live アプリをビルド

基本的なコードは用意されています。先ほどcdコマンドでSDKフォルダに移動したのでそこから下記コマンドを実行します。

./bin/quip-apps init “$APP_NAME” $APP_ID 

※$APP_NAMEは任意の名前に変更します。
※$APP_ID は先ほど確認したIDに変更します。

$ ./bin/quip-apps init my_quip_app VXXXXXD

f:id:tyoshikawa1106:20171228131508p:plain


これでmy_quip_appフォルダが生成されます。React.jsアプリとのこと。

ライブアプリをパッケージ化する

パッケージ化してQuipプラットフォームにアップロードしてQuip内でアプリを実行できます。まずはcdコマンドで移動します。

$ cd <quip-sdk-folder>/apps/<your app name>

f:id:tyoshikawa1106:20171228131738p:plain


npm install を実行します。
f:id:tyoshikawa1106:20171228131917p:plain


npm run build を実行します。
f:id:tyoshikawa1106:20171228132127p:plain


warningという文字が出ましたがひとまず問題ありませんでした。次のコマンドを実行します。(※my-quip-appは最初に指定したアプリ名)

$ cd ../../
$ bin/quip-apps pack apps/my-quip-app/app

f:id:tyoshikawa1106:20171228133041p:plain


これで「app.ele」ファイルが生成されます。
f:id:tyoshikawa1106:20171228133121p:plain


QuipのEdit Live Appページに戻りapp.eleファイルをアップロードします。
f:id:tyoshikawa1106:20171228133323p:plain


検証時には何かがうまくいかなかったみたいでもう一度実施したのですが、次の画面が表示されれば成功です。
f:id:tyoshikawa1106:20171228133801p:plain

あなたのライブアプリをQuipでテストする

Quipに移動して新規文書を作成します。@の挿入機能を使い、アプリ名を入力します。
f:id:tyoshikawa1106:20171228133955p:plain


これで自作のアプリをQuipで動かすことができました。
f:id:tyoshikawa1106:20171228134025p:plain


今回はHello Woldとテキストが表示されるだけですが、いろいろなQuipアプリを開発できそうです。

SFDC:Einstein Platform Servicesを試してみました

Einstein Platform Servicesを試してみました。SalesforceかHerokuのどちらかで試せるみたいです。

f:id:tyoshikawa1106:20171227192401p:plain

https://api.einstein.ai/signup


専用のトライアル組織ではなく既存の組織に権限を付与して利用できます。
f:id:tyoshikawa1106:20171227192640p:plain


既に登録済みのメールアドレスは利用できないみたいです。
f:id:tyoshikawa1106:20171227193705p:plain


正常に実行すると認証キーが発行されます。忘れずにダウンロードしておけばいいみたいです。
f:id:tyoshikawa1106:20171227194109p:plain

注意

[Download Key (鍵をダウンロード)] ボタンは、Google Chrome™ ブラウザの最新バージョンでのみサポートされます。異なるブラウザを使用している場合、鍵を切り取ってテキストファイルに貼り付け、einstein_platform.pem として保存できます。

APIのガイドはこちらで確認できるそうです。
f:id:tyoshikawa1106:20171227194147p:plain

Introduction to Salesforce Einstein Vision · Einstein Platform Services


KeyファイルはSalesforce Filesに保存して利用します。
f:id:tyoshikawa1106:20171227194352p:plain

サンプルコードの取得

GitHubからダウンロードできるようになっています。

  1. ブラウザで、https://github.com/salesforceidentity/jwt に移動します。
  2. [Clone or download (コピーまたはダウンロード)] をクリックします。
  3. [Download ZIP (ZIP をダウンロード)] をクリックして、JWT トークン処理を扱うクラスをダウンロードします。
  4. ブラウザで要求された場合は、[OK] をクリックして、jwt-master.zip ファイルをローカルに保存します。
  5. https://github.com/MetaMind/apex-utils に移動します。
  6. [Clone or download (コピーまたはダウンロード)] をクリックします。
  7. [Download ZIP (ZIP をダウンロード)] を選択して、Apex クラスと Visualforce ページのコードをダウンロードします。これらのコード要素は、Einstein Image Classification API をコールするものです。
  8. ブラウザで要求された場合は、[OK] をクリックして、apex-utils-master.zip ファイルをローカルに保存します。
  9. ファイルエクスプローラから、.zip ファイルを保存したフォルダに移動し、各ファイルを抽出します。後でクラスを作成するときに使用するため、コードを抽出した場所をメモしておきます。

f:id:tyoshikawa1106:20171227194746p:plain


下記のコマンドでダウンロードできます。

$ cd desktop
$ mkdir app
$ cd app
$ git clone https://github.com/salesforceidentity/jwt
$ git clone https://github.com/MetaMind/apex-utils

f:id:tyoshikawa1106:20171227195021p:plain


apexファイルをダウンロードできました。
f:id:tyoshikawa1106:20171227195116p:plain


中身は普通のApexコードなのでコピペでDE組織に保存できます。
f:id:tyoshikawa1106:20171227195335p:plain

リモートサイトの設定

  1. Salesforce にログインします。
  2. [設定] から、[クイック検索] ボックスに「リモートサイト」と入力し、[リモートサイトの設定] を選択します。
  3. [新規リモートサイト] をクリックします。
  4. [リモートサイト名] に「EPS_API」と入力します。
  5. [リモートサイトの URL] に「https://api.einstein.ai」と入力します。
  6. [保存] をクリックします。

f:id:tyoshikawa1106:20171227195627p:plain

Apexクラスの作成

READMEファイルにもコードが記載されているのでコピーしてDE組織に保存します。
f:id:tyoshikawa1106:20171227200004p:plain


VisionController内のメールアドレスは自分のメールアドレスに変更します。
f:id:tyoshikawa1106:20171227200247p:plain

サンプルページの実行

コードをすべてDE組織に保存したらVFページのPreview機能でページにアクセスします。
f:id:tyoshikawa1106:20171227200530p:plain


このように表示されたらOKとのことです。
f:id:tyoshikawa1106:20171227200627p:plain


ひとまず動いたのでAPI開発が必要になったときの流れは理解できた気がします。

SFDC:Einstein Prediction Builderを試してみました

Einstein Prediction Builderを試してみました。日本語だとEinstein 予測ビルダーです。トライアル環境が用意されています。

f:id:tyoshikawa1106:20171227163528p:plain

Einstein builder | Salesforce Developers


ログインするとEinstein 予測ビルダーなどが利用できることを確認できました。
f:id:tyoshikawa1106:20171227163928p:plain


※ 検証前にカスタム項目を2つ作成します。
f:id:tyoshikawa1106:20171227171911p:plain

f:id:tyoshikawa1106:20171227171929p:plain


設定からEinstein 予測ビルダーにアクセスして新しい予測ボタンをクリックして設定を行います。
f:id:tyoshikawa1106:20171227164942p:plain


まずは名前とAPI名を指定します。
f:id:tyoshikawa1106:20171227165019p:plain


予測対象のオブジェクトを選択します。
f:id:tyoshikawa1106:20171227165045p:plain


対象の項目を選択します。
f:id:tyoshikawa1106:20171227165120p:plain


分析に必要な項目を選択します。
f:id:tyoshikawa1106:20171227165216p:plain


予測の保存先を選択します。
f:id:tyoshikawa1106:20171227165248p:plain


予測を構築ボタンをクリックして設定完了です。
f:id:tyoshikawa1106:20171227165314p:plain


件数が多い場合など最大24時間かかるそうです。
f:id:tyoshikawa1106:20171227165343p:plain


これで準備ができました。
f:id:tyoshikawa1106:20171227165406p:plain


予測オファーの可能性のあるレコードを抽出したりができます。検証用にプロセスビルダーを作成します。
f:id:tyoshikawa1106:20171227170610p:plain

f:id:tyoshikawa1106:20171227170623p:plain

f:id:tyoshikawa1106:20171227170647p:plain

f:id:tyoshikawa1106:20171227170659p:plain

修正

所有者IDを更新処理の更新後ユーザは「Chen Alice」でした。


赤枠内の項目の値がEinsteinが値を算出して自動セットしてくれた値です。プロセスビルダーが正しく動いていれば、70以上の場合に所有者が正しく更新されていることを確認できます。

f:id:tyoshikawa1106:20171227171751p:plain

参考

詳細はこちら。

SFDC:QuipのSalesforce連携を試してみました

QuipのSalesforce連携を試してみました。トライアル環境で無料で試すことができます。

Quip へのサインアップ

下記リンク先からトライアルアカウントを作成できます。

https://quip.com/account/login

Trailheadのお知らせ

仕事用のメールアドレスを入力するようにメッセージが表示されますが、個人用のメールアドレスも使用できます。

アカウント作成の流れ

Quipへようこそ
f:id:tyoshikawa1106:20171227143951p:plain


プロフィール設定
f:id:tyoshikawa1106:20171227144027p:plain


チーム情報を設定
f:id:tyoshikawa1106:20171227144047p:plain


キャンペーン参加の確認 (不参加で試しましたが普通に進みました)
f:id:tyoshikawa1106:20171227144200p:plain


メンバーの追加 (自分のメールアドレス入力もたぶん必要)
f:id:tyoshikawa1106:20171227144243p:plain


これでQuipサイトにログインできました。
f:id:tyoshikawa1106:20171227144427p:plain


準備完了
f:id:tyoshikawa1106:20171227144309p:plain

AppExchangeのインストール

DE組織などにインストールします。
f:id:tyoshikawa1106:20171227143917p:plain

https://appexchange.salesforce.com/listingDetail?listingId=a0N3A00000EFoIbUAL


ALLでやっておきやっておきました。
f:id:tyoshikawa1106:20171227144941p:plain


リードの編集ページでQuip Document (Quipドキュメント)コンポーネントを追加します。
f:id:tyoshikawa1106:20171227145229p:plain


これでSalesforceからQuipコンポーネントにアクセスできるようになりました。
f:id:tyoshikawa1106:20171227145711p:plain

Quipを開始のリンクでログインや既にログイン済みのQuipサイトに移動できるみたいです。

注意

やってみてわかったのですが、ブラウザで既にQuipにサインインしている場合はそのアカウントで自動的にサインインされました。実際に利用している別アカウントなどはログアウトして、検証用のアカウントでサインインしている状態で試したほうが良さそうです。

Quip にエクスポートできるレポートを Salesforce で作成

リードのレポートを作成します。
f:id:tyoshikawa1106:20171227145929p:plain

Quip でのレポートの操作

アプリケーションランチャーでOpen Reports in Quipが表示されるようになっているので選択します。
f:id:tyoshikawa1106:20171227150108p:plain


先ほど作成したレポートが表示されていると思います。
f:id:tyoshikawa1106:20171227150129p:plain


Open in Quipボタンをクリックして操作を続けると認証画面が表示されます。ここも承認して次に進めます。
f:id:tyoshikawa1106:20171227150256p:plain


これでレポートで抽出した情報がQuipドキュメントにエクスポートされました。☁マークのリンクをクリックするとSalesforceのページに移動できます。
f:id:tyoshikawa1106:20171227150344p:plain


データのメニューからソートやフィルタの操作を行うことが可能です。
f:id:tyoshikawa1106:20171227150553p:plain

f:id:tyoshikawa1106:20171227150608p:plain

f:id:tyoshikawa1106:20171227150624p:plain

Quipドキュメントをリードに添付

先ほど追加したコンポーネントで「Lead」と検索するとQuipドキュメントが選択できます。
f:id:tyoshikawa1106:20171227150939p:plain


選択するとリンクが記録されてリードの詳細ページから簡単に移動することができるようになります。
f:id:tyoshikawa1106:20171227150956p:plain


QuipとEXCEL / Google SpreadSheetとの違いはSalesforce側が更新されるとQuip側も自動で更新されることです。リアルタイムではありませんが、手動ですぐに同期をとることもできます。
f:id:tyoshikawa1106:20171227151327p:plain


この手順の詳細はTrailheadで確認できます。
f:id:tyoshikawa1106:20171227151425p:plain

クイックスタート: Quip と Salesforce のインテグレーション | Salesforce Trailhead