R言語でSalesForceに入門する~salesforcerの紹介~
業務でSalesForceというツールを触らなければいけなくなったので入門した。
R言語を通して入門した方がわかりやすい部分もあるのかもしれないと思い、RでSalesForceを操作するパッケージ、「salesforcer」について調べたので紹介する。
そもそもSalesForceとは
SalesForceとは、CRMプラットフォームのひとつ。
CRMとは、「Customer Relationship Management」の略で、顧客と従業員の関係を管理するもの。
営業の現場でよく使われるらしく、例えば、顧客Aとは名刺交換しただけとか、顧客Bとは商談が進められているとか、顧客Cとはすでに契約が終わったとか、そういった情報を一元管理するもの。
CRMプラットフォームの中では、他のサービスと比較して、かなり広く使われている様子。
無料のデモアカウントが用意されており、登録後のトップページは以下のような感じ。
https://developer.salesforce.com/signup
salesforcerとは
このSalesForceをR言語を使って操作していく。それを簡単にできるのが「salesforcer」というパッケージ。以下で使用方法を見ていく。
まずは認証情報を設定してSalesForceに接続。
ユーザー名、パスワード、セキュリティトークンを引数に渡すと接続できる。
セキュリティトークンは、個人設定から「私のセキュリティトークンのリセット」を選択すると登録してあるメールアドレスに送られてくる。アカウントにIP制限がかかっていると、個人設定に「私のセキュリティトークンのリセット」という項目が出てこないので、制限を一時的に解除する必要がある。
オブジェクトとは
「オブジェクト」とは、SalesForceの用語でテーブルのようなもの。GUIの上の方に並んでいるタブのひとつひとつがオブジェクト。
表示されているものは全てではない。sf_list_objects()でオブジェクトのメタデータを取得できるので、そこからオブジェクト一覧を抽出して確認できる。デフォルトで663個もあるらしい。
SOQLとは
SOQLという用語もあり、これはSQLのSalesForce版。
ちなみにSQLは正式には何かの略語ではないらしい。知らなかった。
文字列でクエリを書いてsf_query()という関数に渡すと実行される。FROMにはオブジェクトを指定する。
レポートとは
他のオブジェクトから集計したものをレポートと呼ぶ。
sf_create_report()という関数で作成する。nameという引数にレポート名、report_typeという引数には、「レポートタイプ」を指定する。レポートタイプはsf_list_report_types()で取得できる。
GUI上だと、集計したりできるようだが、salesforcerではあまり自由が効かないのか、フィルターをかけるくらいしかできない?そんな訳ない気がするので要調査。フィルターはlist形式で作成して、sf_run_report()のreport_filtersという引数に渡すと適用されたレポートが作成される。
終わり
レポートを自由に作れると便利かもと思ったけど、そんなに自由に動くわけではなさそうかも。
データの取得は簡単にできるので、R言語でなんやかんやして、どこか別の場所に結果を返すのはできそう。
初見でGUI操作のチュートリアルに入るよりも、R言語通した方が分かりやすかった感覚はあるので、BIツールの入門方法としてありかもしれない。
全スライドは以下に置いてあり、本記事のR言語でやったことをGUIでやる場合はどうするのかも紹介している。
start-salesforce-with-r - Speaker Deck
参考文献
・Qiita, 「エンジニアのためのsalesforce超入門」
https://qiita.com/tarokamikaze/items/0bc2988534f63d4b65c5
ER図とかも描いてあるQiitaの入門記事。エンジニアは大変らしい。
・TRAILHEAD
https://trailhead.salesforce.com/ja/home
公式が用意しているチュートリアル。かなり量があるので必要なところを。
・GitHub, 「An Implementation of Salesforce APIs Using Tidy Principles • salesforcer」
https://stevenmmortimer.github.io/salesforcer/index.html
・CRAN, 「Package salesforcer」
https://cloud.r-project.org/web/packages/salesforcer/index.html