Box×Salesforce活用のススメ4(Box for Salesforce続編)

# はじめに
以前、Box for Salesforceをテーマに記事を書かせていただきました([記事はこちら](https://qiita.com/kamadhi/items/006626ddb0b66a70e902))が、もう少しBox for Salesforceを便利な活用の仕方を考えてみました。
今回のテーマは、 **取引先や商談レコードを作成したら、任意のフォルダ構成がBox上に自動で作成されるようにする** です。
Box for Salesforce、ヒジョーーーーーに便利ですけど、レコードを作成するたびにいちいちBoxのフォルダ作成するのって面倒ですよね。どうせ毎回同じフォルダ作るんだから自動で作られたらいいのに・・・と思っていたので **Box for SalesforceとSalesforceのフロー** で実現してみました。
まだまだ勉強途中ですので今後もっと発展させていきます！

# 目次
1. 動作イメージ①(取引先レコード新規作成時に自動でBoxフォルダが作成される)
2. 動作イメージ①を実現するために作成したフローについて
3. 動作イメージ②(商談レコード新規作成時に自動でBoxフォルダが作成される)
4. 動作イメージ②を実現するために作成したフローについて

# 1. 動作イメージ①(取引先レコード新規作成時に自動でBoxフォルダが作成される)
作成したものは以下のように動作します:writing_hand:

* 取引先を新規に作成すると、取引先配下に自動でBoxフォルダが作成される
* 作成する際に、顧客分類(取引先の項目)で何を選択するかで作成されるフォルダ構成が変わる
    * 顧客分類 = 顧客とした場合、「アカウントプラン」「ファイル受領用」「議事録・メモ」フォルダが作成される
    * 顧客分類 = パートナーとした場合、「コラボレーション用」「議事録・メモ」フォルダが作成される
    * 顧客分類 = (空欄)とした場合、その取引先用のフォルダが作成されるだけでそれ以外は作成されない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/9933085c-c616-fd43-2734-8f14c2160f3a.png)

# 2. 動作イメージ①を実現するために作成したフローについて
作成したフローは下記になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/9cb8dc8c-b9b0-68d6-6bd4-52368ea9e88b.png)

簡単に説明を記載します。
* 開始条件
    * 新規に取引先レコードが作成された時
* 取引先フォルダ作成 
    * Box for Salesforceをインストールした際に追加されるApexアクション「Create Folder For Record ID」を利用しています。
    * ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/5fd5cafd-95e9-ca39-8060-e713c837fa04.png)
* 顧客分類判定 
    * 取引先レコードの顧客分類の項目値によって分岐するようにしています。
* アカウントプランフォルダ作成 
    * Box for Salesforceをインストールした際に追加されるApexアクション「Create Folder」を利用しています。
    * ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/81c6610a-253f-2c05-712b-91979b47856f.png)
    * Folder Nameにはデータ型：テキストで入れた定数を設定しています(作成したいフォルダ名) →リソース作らないでテキストベタ打ちでもいいかも。
* その他全て 
    * 上記「アカウントプランフォルダ作成」と同様の設定しています。
    * 変えているのは「Folder Name」に入れる値だけです。

# 3. 動作イメージ②(商談レコード新規作成時に自動でBoxフォルダが作成される)
作成したものは以下のように動作します:writing_hand:

* 取引先配下に商談を作成すると、取引先配下に「商談」フォルダが新規に作成される（既にフォルが存在する時は無視）
* 「商談」フォルダ配下に、作成した商談の名前を持つフォルダが新規に作成される
* さらに、各商談系のフォルダの配下には「ROI算出シート」「提案書」「注文書・契約書」の３つのフォルダが自動で作成される。

こんなフォルダ構成になります。
取引先名のフォルダ>>商談>>商談名のフォルダ>>「ROI算出シート」「提案書」「注文書・契約書」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/a27fbc63-f8db-c20e-083d-4a768be4f439.png)

# 4. 動作イメージ②を実現するために作成したフローについて
作成したフローは下記になります。
これは、Box for Salesforceをインストールした際に自動で作成される「Opportunity Folder Under Account」フローを編集しているので、命名規則は一貫しておりません・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/4f8b683d-88ef-563d-a866-104b392df719.png)

簡単に説明を記載します。
* Get Account Folder
    * 「Opportunity Folder Under Account」フローにあったものそのままです
* Get Opportunity Folder
    * 「Opportunity Folder Under Account」フローにあったものそのままです
* 　商談フォルダ作成
    * 　Box for Salesforceをインストールした際に追加されるApexアクション「Create Folder」を利用しています。
    * 　Folder Nameにはデータ型：テキストで入れた定数を設定しています(作成したいフォルダ名)
    * ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/ac60a0af-0add-accc-0aea-5880725e521c.png)
* 　提案書フォルダ作成
    * 　Box for Salesforceをインストールした際に追加されるApexアクション「Create Folder」を利用しています。
    * 　Folder Nameにはデータ型：テキストで入れた定数を設定しています(作成したいフォルダ名)
    * 　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/40c48f37-c4f1-859a-f99d-940719e39e3d.png)
* 　ROI算出シートフォルダ作成 / 注文書・契約書フォルダ作成
    * 　提案書フォルダ作成と同じことをしています
* 　Move Opportunity
    * 　「Opportunity Folder Under Account」フローにあったもののNew Parent Folder IDのみ変えています。
    * 　New Parent Folder IDには、このフローで作製した商談のFolder IDを利用しています。
    * 　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986270/d430880c-8fcf-dd62-e05c-689d50c0135b.png)

# さいごに
Boxのフォルダを毎回毎回作成する。。。という単純作業は自動化してどんどん効率化していきたいですよね。
Box for SalesforceとSalesforceのフローを活用することでもっともっといろんなことができそうです。
Box for Salesforceをインストールしたときに作成されるApexアクションにはまだまだいろいろな種類があるので今後試していきたいと思います！