1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Salesforceの商談IDと商談名をRPAで楽々取得!】BizRobo!でSalesforceのREST APIを呼びだす方法

Last updated at Posted at 2023-11-10

本記事でできること

本記事では、SalesforceのREST APIを利用して「昨日登録された商談から商談IDと商談名を取得してタイプファイルに出力する」ロボットを作成します。
APIを用いて開発をすることでSalesforceと別システムの自動化が実現しやすくなると思います。
また、SalesforceのAPIの使い方やBizRobo!でAPIを利用するための設定方法について理解できます。

背景

BizRobo!はステップの編集だけで簡単にデジタルレイバー(ロボット)を作成できるので非エンジニアの方にもなじみやすいのが特徴だと思います。
ただ、画面操作だけの開発だとクラウドサービスのアップデート等でUIが変更になるとロボットが止まってしまって改修に時間がかかってしまう、、、というケースも少なくないと思います。
そういった状況を解決するためにAPIを利用するという方法があります。
ただ、非エンジニアの方の中には「APIって高度なイメージがあって難しそう」「ステップの操作でも実行できるから充分」と思う方もいらっしゃると思います。(かくゆう私もそう思っていた時期がありました)
そのような方に向けて弊社で利用しているAPIとその使い方について紹介したいと思います。

本記事はサードパーティーのツールを利用するため、動作を保証するものではございません。
APIを利用するための参考としてお考え下さい。

BizRobo!に搭載されているコネクター機能を用いてSalesforceを操作することも可能です。
コネクターを使う場合はこちらを参照ください。

事前準備

Salesforceの設定

Salesforceの認証を設定してください

  • ユーザのAPI有効化
  • OAuth設定の有効化

認証の設定が終わったらプロパティを用意します。
今回のロボットでは以下の値を利用します。

プロパティ ラベル
instance_name 組織のインスタンス
username ユーザ名
passsword パスワード
client_id コンシューマ鍵
client_secret コンシューマの秘密

利用バージョン

本記事で利用する各システムの情報は下記になります。

対象システム 利用バージョン
BizRobo! 11.3.0.2
Salesforce REST API 58.0

ロボットの作成手順

以下のステップにて実現します。
左から12個のステップごとに説明をしていきます。

image.png

①パスワード取得(Lookup Password)

ロボットにパスワードを持たせるのはセキュリティ的によくないのでMCのパスワードストアを利用します。
流れとしては以下になります。
A:ステップを用意する
B:MCのパスワードストアにパスワードを設定する
C:アクセストークンを取得する
D:MCのパスワードストアにアクセストークンを設定する

A:ステップを用意

ステップ選択: その他 > パスワード取得

image.png

パスワード取得ステップ設定

  1. ユーザー名: Salesforceのユーザ名(username
  2. ターゲットシステム: 任意の値
  3. 変数: パスワード型の変数を設定

image.png

B:MCのパスワードストア設定(パスワード)

  1. MCログイン
  2. リポジトリ > パスワードストア > パスワード ストア エントリを作成を選択
  3. ユーザー名: DSと同じユーザー名の値を入力
  4. ターゲットシステム: DSと同じターゲットシステムの値を入力
  5. パスワード: Salesforceのパスワード(passsword
  6. OKボタンクリック

image.png

C:アクセストークン取得

  1. DSに戻る
  2. ヘルプ > 製品について

Design Studio アクセス トークン をコピー

D:MCのパスワードストア設定(アクセス)

  1. MCログイン
  2. リポジトリ > パスワードストア > パスワード アクセス > パスワード アクセス エントリを作成を選択
  3. プロジェクト: 対象プロジェクト選択
  4. パスワード アクセス トークン: 先ほどコピーしたDesign Studio アクセス トークンを貼り付け
  5. 説明: パスワードについての説明を入力
  6. パスワード エントリ: ユーザー名@ターゲットシステムを選択
  7. OKボタンクリック

image.png

以上で設定完了です。
変数にパスワードが格納されていることを確認してください。

image.png

②アクセストークン生成(OAth)

アクセストークンを生成するステップを作成します。
流れとしては以下になります。
A:ステップを用意する
B:ステップの設定をする

A:ステップを用意

ステップ選択: Web サービス呼出 > REST Web サービス呼出

image.png

第3者が見てもわかりやすいようにコメントを記入しておくと良いでしょうか。
image.png

B:ステップの設定

  1. URL: REST APIのエンドポイント
    • https://[Salesforceの組織のインスタンス(instance_name)]/services/oauth2/token
  2. リクエスト: REST APIの操作方法
    • POST
  3. パラメータで指定
  4. パラメータ: REST APIに送信する追加情報
    • grant_type: password(固定値)
    • username: Salesforceのユーザ名(username
    • password: password(変数)
    • client_id: Salesforceのコンシューマ鍵(client_id
    • client_secret: Salesforceのコンシューマの秘密(client_secret
  5. エンコード:Form-urlencoded
  6. 出力値:ブラウザにロード
  7. 送信する追加ヘッダー: REST APIに送信する付加情報
    • Content-Type:application/x-www-form-urlencoded

SalesforceのOauthの詳細については開発者ガイドをご確認ください。

image.png

③レスポンスを読み取り専用で開く(View as JSON)

②で取得した情報をJSON形式で読み取り専用で開きます。

ステップ挿入: アクションを選択 > 開く(読み取り専用)
image.png

④アクセストークン取得(Extract Access Token)

③で表示されたJSONからアクセストークンを取得します。

access_tokenを選択して変数に抽出する
image.png

変数にアクセストークンが格納されていることを確認してください。
image.png

⑤昨日登録された商談を取得(query)

SOQLクエリを設定してSalesforceから情報を取得します。

  1. ステップ選択: Web サービス呼出 > REST Web サービス呼出
  2. ステップ名変更: Call REST Web Serviceからqueryへ変更
  3. URL: https://[Salesforceの組織のインスタンス(instance_name)]/services/data/v58.0/query
  4. リクエスト: GET
  5. パラメータ: SOQL クエリ
    • q: SELECT Id,Name FROM Opportunity WHERE CreatedDate=YESTERDAY
  6. 出力値:ブラウザにロード
  7. 送信する追加ヘッダー
    • エクスプレッションを選択して以下を設定
    • "Authorization:Bearer "+access_token

SOQLクエリの詳細についてはSalesforceの開発者ガイドをご確認ください。

image.png

⑥レスポンスを読み取り専用で開く(View as JSON)

⑤で取得したデータをJSON形式で出力します。

ステップ挿入: アクションを選択 > 開く(読み取り専用)

⑦件数取得(Extract Count)

⑥で出力されたJSONから検索結果に該当する件数を取得します。

totalSizeを選択して変数に抽出
image.png

⑧商談があるかどうか判定

該当データが0件の場合は処理が終了するため条件分岐を設定します。

ステップ選択: テスト > 変数判定
image.png

データが0件の場合、後続処理を行わない
image.png

0件はエラーで無いのでエラー処理のチェックを外す

image.png

Tips
本記事ではAPIの処理を優先する為エラーハンドリングを実施していませんが、検索結果0件の場合にログの出力を設定しておくと運用しやすくなります。

ステップ名変更: Test Variablesから商談チェックへ変更

⑨レスポンスJSONをループ(For Each 商談)

出力された商談のデータを取得します。複数のデータが存在する可能性があるためループ処理を実装します。

ステップ挿入

  1. recordsを選択(JSON)
  2. ループ > アイテム

ステップ名変更: For Each ItemからFor Each 商談へ変更

次のステップで必要となるタイプファイルを用意します。
Id,Nameを格納するタイプファイル作成
image.png

⑩商談ID抽出(Extract Id)

ループ処理が行われる際にidの情報を抽出します。

image.png
囲われた枠の左の+アイコンをクリックする

上記で作成したタイプファイルに抽出
image.png

⑪商談名抽出(Extract Name)

⑩の手順と同様に商談名を抽出します。

image.png

⑫結果確認(Return Value)

正常に動作しているか結果を確認します。

ステップ選択: 値返却
image.png

以上でロボットの作成は完了になります。

まとめ

今回はSalesforceのAPIを利用して商談データの取得を行ってみました。
SalesforceのAPIを利用するとロボットの構築の幅が広がり、メンテナンス性も向上できると思います。
APIを利用したロボットの開発のための一助となれば幸いです。

RPAテクノロジーズではSalesforceの操作を容易にする為にコネクターを開発しております。
APIで構築するよりも簡単に開発ができるツールになっているのでぜひご利用ください。
リンクはこちら

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?