LoginSignup
2
2

More than 3 years have passed since last update.

Salesforceのワークフローをプロセスビルダーに移行したTips

Last updated at Posted at 2020-03-21

なぜワークフローからプロセスビルダーに乗り換える

プロセスビルダー > ワークフローだから

 一例
  ・ プロセスビルダーは、どのような関連レコードでも更新できる
  ・ プロセスビルダーでは、条件の順序を制御できる
  ・ プロセスビルダーは、すべての関連レコードの項目にアクセス
  ・ ワークフローは拡張されない

ということで、すべてのワークフローをプロセスビルダーに移行した。

ワークフローで出来ることは、すべてプロセスビルダーでできる!

↓ こんな感じ
プロセスビルダー | Salesforce 2020-03-21 21-36-04.png

プロセスビルダーだからできた機能例

Slackへ通知する機能

こんな感じで記載する。
参考URL:https://blog.intracker.net/archives/2018

・ 設定 -> リモートサイトの設定より以下を作成しておく

設定名  内容
リモートサイト名 SlackAPI
リモートサイトのURL https://hooks.slack.com

・ Apexクラスを以下の通り作成する

/**
 * [SFDC] Slackからメール送信する。スキーマビルダーで使用。
 */
public with sharing class PublishToSlack{
    public class slackRequest { 
        @InvocableVariable(label='Slack Message' required=true) 
        public String slackMessage; 
        @InvocableVariable(label='Slack URL' required=true) 
        public String slackURL; 
    } 
    @InvocableMethod(label='Slack Message')
    public static void publishToSlack(List<slackRequest> requests) {
        for(slackRequest r:requests){
            JSONGenerator gen = JSON.createGenerator(true);
            gen.writeStartObject();
            gen.writeStringField('text', r.slackMessage);
            gen.writeStringField('username', 'Salesforce Bot');
            gen.writeEndObject();
            String body = gen.getAsString();
            System.enqueueJob(new qCallOut(r.slackURL, 'POST', body));
        } 
    }
    public class qCallOut implements System.Queueable, Database.AllowsCallouts {
        private final String url;
        private final String method;
        private final String body;
        public qCallOut(String url, String method, String body) {
            this.url = url;
            this.method = method;
            this.body = body;
        }
        public void execute(System.QueueableContext ctx) {
            HttpRequest req = new HttpRequest();
            req.setEndpoint(url);
            req.setMethod(method);
            req.setBody(body);
            Http http = new Http();
            HttpResponse res = http.send(req);
        }
    }
}

・ Apexテストクラスを以下の通り作成する

/**
* [SFDC] SlackのPostクラス
*/
@isTest(seeAllData=true)
public class TestPublishToSlack{
    static testmethod void testPublishToSlack(){
        Test.setMock(HttpCalloutMock.class,new  mockCallout());
        List<publishToSlack.slackRequest> requests=new List<publishToSlack.slackRequest>();
        publishToSlack.slackRequest r=new publishToSlack.slackRequest();
        r.slackMessage='THIS IS A TEST MESSAGE';
        r.slackURL='https://hooks.slack.com/services/XXXXXXX';
        requests.add(r);
        publishToSlack.publishToSlack(requests);
    }
    public class mockCallout implements HttpCalloutMock{
        public HttpResponse respond(HttpRequest request){
            HttpResponse res=new HttpResponse();
            res.setBody('{"text":"value"}');
            res.setStatusCode(200);
            return res;
        }
    }
}

・ プロセスビルダーからアクション種別をApexに設定して先程のApexクラスを設定して完了

プロセスビルダー | Salesforce 2020-03-21 21-12-12.png

項目  内容
Slack URL Slackで設定したWebhookのURL
Slack Message Slackで通知する内容
チェックボックス入れたらTodoを作成する

アクションを選択して定義からレコードを作成するからレコードタイプをTodoにして作成することができる

プロセスビルダー | Salesforce 2020-03-21 21-50-33.png

商談やTODOや行動の名前に日付を入れて保存する

数式に TEXT(NOW()+0.375) で記載する

スクリーンショット 2020-03-21 21.13.23.png

リードの取引先済みにしたときに取引先にリードのカスタムオブジェクトの参照関係をコピーする

リードを取引開始にすると、取引先にカスタムオブジェクトを移動できないため、プロセスビルダーで解決する

注意事項:リードの設定 -> 取引開始済みのリードに入力規則が必須にチェックを入れること

リードの設定 | Salesforce 2020-03-21 20-58-05.png

プロセスビルダーに条件で取引開始済みにする

スクリーンショット 2020-03-21 21.00.25.png

プロセスビルダーからレコードを更新選択

プロセスビルダー | Salesforce 2020-03-21 21-24-00.png

Leadに関するレコードを選択するから、参照関係にあたる項目を選択する

プロセスビルダー | Salesforce 2020-03-21 21-25-40.png

更新するカスタムオブジェクト先の項目にAccountをセットする

プロセスビルダー | Salesforce 2020-03-21 21-27-24.png

Accountに取引開始済みのAccountIDをセットして完了

プロセスビルダー | Salesforce 2020-03-21 21-26-47.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2