GASでSalesforceのOpportunityテーブルを更新する。

この記事は GMOアドマーケティング Advent Calendar 2022 6日目の記事です。

皆さんこんにちは。
広告配信システムの管理画面開発と全社業務自動化のRPA開発を担当してるR.Aです。
以前UiPathでSalesforceのOpportunityテーブルの更新ロボットについて執筆を行いましたが、今回はGoogle Apps Script(GAS)でAPIを使用しSalesforceのOpportunityを更新するロボットについて説明したいと思います。
社内では、営業管理・顧客管理のためSalesforceを使用していますが、フェーズ管理で更新を行う時に一つ一つログインを行い、更新を行わないといけないためとても負担となっておりました。
以前はUiPathを使用しておりましたが、現在はGASでほぼ自動化をしており、今回は実際に稼働しているGASを紹介できればと思います。

1、Salesforceのアクセストークンの取得

①Salesforceの設定画面より接続アプリケーションの作成
まず、Salesforceで更新を行うためのアクセストークンを取得します。
設定画面 -> アプリケーションの設定 から接続アプリケーションを選択し、作成を行います。
作成を行うと上記のようにコンシューマ鍵・コンシューマの秘密が取得できます。
上記2つのキーとID・パスワードを使用し、アクセストークンを取得します。

②アクセストークンの取得
上記のコンシューマ鍵・コンシューマの秘密鍵を使用しアクセストークンを取得します。
その際にメールアドレス・ログインパスワードも一緒にリクエストを行います。 上記を取得するとhttpリクエストを行い、jsonにアクセストークンが格納されます。

2、更新に必要なパラメータの取得

SalesforceでOpportunity更新を行うためには、更新するOpportunity情報とユーザーID(User__c)を取得する必要があります。それぞれの情報は以下のSQLで取得します。
UserIDの取得 Opportunity情報

3、取得した情報を元にOpportunityの更新

2で取得した情報を元に更新を行いたい要素を更新します。
今回はOpportunityのメニュー名を変更する例を紹介させていただきます。 更新の詳細は以下のドキュメントを参考にしてください。
https://developer.salesforce.com/docs/atlas.ja-jp.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm UrlFetchApp.fetchでSalesforceにリクエストを行います。
リクエストを送る際にpayloadに更新情報・headersのAuthorizationに1で取得を行ったアクセストークンを付与いたします。 実際にOpportunityの確認を行うと以下のように値が更新されている事が確認できます。

いかがだったでしょうか。 GASのみでSalesforceのOpportunityを更新することができました。
こちらを応用し、Opportunityの作成やユーザーの取得を行うことも可能です。

明日は@mSpringさんによる「BigQueryでCIDRに含まれるIPアドレスを探す(IPv6対応)」です。
引き続き、GMOアドマーケティング Advent Calendar 2022 をお楽しみください!
■学生インターン募集中!
https://note.gmo-ap.jp/n/nc42c8a60afaf
■エンジニア採用ページはこちら!
https://note.gmo-ap.jp/n/n02cbeb6edb0d
■GMOアドパートナーズ 公式noteはこちら!
https://note.gmo-ap.jp/