HubSpot CRMと他のツールの連携
HubSpotはオールインワンプラットフォームですが、全てのことができる訳では当然ありません。また、既に社内に導入されているSFAや基幹システムがあるなど、ときに他のツールと連携する必要もでてくるでしょう。
本ページでは、ツール同士を連携するサービスである Zapier (ザピアー)の無料プラン を利用して、GoogleスプレッドシートのデータをHubSpot CRMに自動的に送信する方法を解説します。
目次
使用するGoogleスプレッドシート
今回はサンプルとして、次のキャプチャのスプレッドシートを使用します。
今回使用するスプレッドシート
世界的に一般的なサービスであればZapierでそのサービスとHubSpot CRMを直接連携させることができますが、日本製のSFAや独自の基幹システムなどではそうはいきません。データの流れとしては、SFAや独自システムから一度上記スプレッドシートにデータを吐き出し、それをZapierを介してHubSpot CRMに自動的に取り込むイメージです。
データの流れ
なお今回の列名として
- 姓
- 名
- Eメール
- プライバシーポリシーに同意
- …
などありますが、これらの列名は必ずしもHubSpot CRMのプロパティーのラベルと一致している必要はありません。
Zapierのセットアップ
データは用意したので、次にZapierのセットアップをします。 https://zapier.com/ にアクセスし、任意の方法でサインアップを行います。
Zapierのトップページ
サインアップ・ログインが完了したら https://zapier.com/app/dashboard にリダイレクトされますので、そこから右上の「Make a Zap!」をクリックします。この「Zap」というのが、自動処理を行うタスクにあたります。自動で行いたいタスクの数だけ、このZapを作成するイメージです。
Zap(タスク)の作成
「Make a Zap!」をクリックすると、次のような画面になります。
Zap作成画面
この「1. When this happens ...」の指していることについて、少し解説します。
Zapの基本は
- 何があったら(自動処理が走るきっかけとなる条件を指定)
- どうする(実際にやりたい処理を設定)
という形になっており、この1、2などそれぞれを「ステップ」と呼びます。
今回は
- スプレッドシートに変更があったら
- HubSpot CRMの該当するコンタクトのプロパティーを更新する
という流れになり、図にすると次のようなイメージです(なお日本製のSFA/独自の基幹システムからスプレッドシートにデータをパブリッシュする箇所については、Zapierの範囲外であるため今回は考えません)。
今回のZapの構成の図解
この「スプレッドシートに変更があったら」という条件をステップ1「1. When this happens ...」に指定する形になります。
ステップ1. スプレッドシートの設定
Choose App & Event
検索欄に「google」と入力し、「Google Sheets」を選択します。
スプレッドシートの選択
次に「Choose Trigger Event」を指定します。今回使用するのは「New or Updated Spreadsheet Row」ですが、スプレッドシートがGoogle Driveのチームドライブに格納されている場合は「(Team Drive)」と付いている方を選択してください。私のスプレッドシートはチームドライブに格納されていますので、「(Team Drive)」の方を選択します。
「Choose Trigger Event」に「New or Updated Spreadsheet Row」を選択
選択したら、「CONTINUE」ボタンをクリックします。
Choose Account
次に「Choose Account」と表示されるので、青の「Sign in to Google Sheets」ボタンをクリックし、表示されるポップアップでGoogleアカウントにログイン、ZapierがGoogleアカウントへアクセスすることを許可します。無事ログインとアクセス許可が完了したら、Googleアカウントのメールアドレスが表示されます。問題なければ、CONTINUEをクリックします。
Googleアカウントのメールアドレスが表示された
Customize Spreadsheet Row
次にスプレッドシートのファイルと、シート選択画面に移ります。「シート」とは、スプレッドシートの下部にタブ表示されているもののことですね。
スプレッドシートのシート
Zapierの「Customize Spreadsheet Row」画面に戻ります。先ほどチームドライブを選択した場合は「Drive」欄が表示されますので、読み込みたいスプレッドシートが格納されているチームドライブを選択します。
チームドライブの選択
続いて「Spreadsheet」にはスプレッドシートのファイル名を選択します。目的のファイル名が一覧に出てくればよいですが、数が多いとときに見つけられないこともあるでしょう。そういった際は、「Use a Custom Value (advanced)」を選択し、スプレッドシートのIDを直接入力することも可能です。スプレッドシートのIDは、スプレッドシートを開いているURLのうち、次の太字部分に該当します。
https://docs.google.com/spreadsheets/d/1l6cC0YobNCOvSU-R9bU9HFulUZEiKgbAlFofm8xZZzM/edit#gid=0
「Use a Custom Value (advanced)」の選択項目
次の「Worksheet」の項目ですが、スプレッドシートファイルの指定に問題がなければ、こちらも自動で読み込まれます。目的のシートを選択します。
「Worksheet」から目的のシートを選択
「Trigger Column」は「どの列のセルが更新されたら、スプレッドシートにアップデートがあったとみなすか」です。基本的に「any_column」のままでよいでしょう。
余談ですが、今回は試しにSpreadsheetにCustom Valueを使用したため、ぱっと見てどのスプレッドシートを指定しているかわかりません(Worksheetは「シート1」が選択されていることがすぐわかります)。Custom Valueを利用してIDを直接指定することは、こういった弊害があることを覚えておいてください。
設定に問題なければCONTINUEボタンが現れるのでクリックします。
Find Data
最後にデータが正常に取得できているか確認します。今回は青いボタンではなく白抜きの「TEST & REVIEW」ボタンをクリックします。
するとスプレッドシートから取得してきた行が幾つかサンプルとして表示されますので、セル内のデータがきちんと取れているか確認します。問題なければ、HubSpot CRMに同期テストするうえで1番理想的なデータを持つ行を選択します。実際にこのデータを利用して、次のステップでHubSpot CRMにデータを送信するテストを行います。
データの確認と、次のステップへの遷移
データを選択したら、次のステップの「2. Do this ...」をクリックしてください。 なお今回はCONTINUEボタンをクリックしていないため、右側に1件のエラーが表示されます。しかしこれは問題ありませんので、このまま進めてください。
エラー表示
ステップ2. HubSpot CRMへ送信するデータの設定
Choose App & Event
続いてHubSpot CRMへ送信するデータの設定に移っていきます。ステップ1と同じように、まずはアプリケーションを選択します。HubSpotは2つ選択肢がありますが、今回は「HubSpot CRM」の方を選択します。続いて、「Choose Action Event」には「Create or Update Contact」を選択してください。
HubSpot CRMと「Create or Update Contact」を選択
Choose Account
続いて、スプレッドシートの場合と同じように、ZapierにHubSpotポータルへのアクセス許可を行います。「Sign in to HubSpot CRM」をクリックし、コンタクトを更新したいポータル選択、特に問題なく進めばZapierに「HubSpot CRM Hub: 【ポータルID】」と表示されます。
アクセス許可を行うボタンと、表示されるポップアップ
Customize Update Contact
次に、スプレッドシートのセルのデータとHubSpot CRMのコンタクトプロパティーの対応づけを行います。冒頭でも示しましたが、スプレッドシートは次のキャプチャのような構造・データになっています。
今回使用するスプレッドシート
まずは先にこれらをざっとZapier上で対応づけした画面をお見せします。なお、わかりやすく解説するために、ブラウザの開発者ツールを使用して下記の調整を施しています。
- 今回のデータに関係のないコンタクトプロパティーは非表示に
- スプレッドシートの列順になるよう、Zapierの項目を並び替え(本来はバラバラに並んでいます)
全て対応づけすると、次のような状態になります。
スプレッドシートのデータとHubSpot CRMのコンタクトプロパティーの対応づけ
ただし、この対応づけ、及びこの対応づけを利用したHubSpot CRMへのデータ送信テストが、Zapierを利用した連携の1番のハマりポイントです。HubSpot CRMのコンタクトプロパティーのフィールドタイプも関わる話ですので、1つずつ詳細に解説していきます。
なおコンタクトプロパティーのフィールドタイプは、HubSpotの [コンタクト] → [コンタクト] → [アクション] → [プロパティーを編集] より確認できます。
コンタクトプロパティーのフィールドタイプの確認方法
姓・名・Eメール
これらのコンタクトプロパティーのフィールドタイプは全て単行テキストですので、特に迷うことはありません。Zapier上の選択ボックスの右側がこのアイコンになっている場合、スプレッドシートのセルからデータを直接取得できていることを意味します。
セルからデータを直接取得できている場合のアイコン
プライバシーポリシーに同意
プライバシーポリシーに同意のフィールドタイプは、「1つのチェックボックス」です。ではこれをHubSpot CRMの方でどのような内部値として持っているか見てみると、内部値は「false」と「true」のいずれかを受け付けるようになっていることがわかります。
HubSpot CRMのプロパティー詳細画面
ここからが大変ややこしいのですが、スプレッドシートの方でBoolean(ライク)な値として次のようにデータを持っても、HubSpot CRMに送信する段階で全てエラーとなってしまいます。
チェックボックス、trueを表す1、trueの文字列 これらは全てエラーになる
フィールドタイプが「1つのチェックボックス」の場合は、スプレッドシートの [データの入力規則] → [リストを直接指定] で予め「false」「true」を用意しておくことにより、正常にHubSpot CRMに送信できます。
「データの入力規則] → [リストを直接指定]の設定
またHubSpot CRMのプロパティーのフィールドタイプが
- 1つのチェックボックス
- 複数のチェックボックス
- ドロップダウン選択
の場合はZapierの方でスプレッドシートのデータを直接読み込めていません。右側のアイコンが下向き矢印になっているのが目印です。そのため、一度「Use a Custom Value (advanced)」を選択した上でスプレッドシートのデータを指定する形になります。
「Use a Custom Value (advanced)」を選択した上でスプレッドシートのデータを指定する
アクティブ化-マッチング日付
アクティブ化-マッチング日付のフィールドタイプは「日付選択カレンダー」です。これに関しては、スプレッドシートの方で [表示形式] → [数字] → [日付] をきちんと設定していれば、特に注意することはありません。
スプレッドシートでの日付設定
メンバーシップのメモ・フォロワー数
次にメンバーシップのメモとフォロワー数です。これらのフィールドタイプはそれぞれ
- メンバーシップのメモ:複数行テキスト
- フォロワー数:数値
ですが、特に注意する点はありません。複数行テキストにおいては、改行などもそのままきちんとHubSpot CRMに反映されます。
優先言語
優先言語のフィールドタイプはドロップダウン選択です。これは1つのチェックボックスと似ており、内部値をそのまま指定する必要があります。優先言語の内部値を見ると、次のようになっています。
HubSpot CRM上での優先言語の内部値
スプレッドシートのテキストがきちんとこの通りになっていれば、1つのチェックボックスのように入力規則まで用意する必要はありません。ただしZapier上で一度「Use a Custom Value (advanced)」を選択してから、スプレッドシートのデータを指定する必要があるのは変わりません。
「Use a Custom Value (advanced)」を選択した上でスプレッドシートのデータを指定する
興味のあるHubSpot製品
最後にフィールドタイプが「複数のチェックボックス」である「興味のあるHubSpot製品」です。内部値を正確に指定することは変わりませんが、複数のチェックボックスはそれに加え、 複数の値を入れる場合はセミコロンで区切る 必要があります。
- CRMだけにチェックを入れたい場合: crm
- CRMとSales Hubにチェックを入れたい場合:crm;sales_hub
それさえ気をつけていれば、データ送信時にエラーとなることはないでしょう。参考までに、HubSpot CRMのプロパティー詳細画面と、Zapierのデータ指定箇所をキャプチャを掲載します。
HubSpot CRM上での興味のあるHubSpot製品の内部値
「Use a Custom Value (advanced)」を選択した上でスプレッドシートのデータを指定する
とても長くなりましたが、ここまで設定し問題なければ、CONTINUEボタンをクリックして次の設定に移動します。
Send Data
最後に、スプレッドシートのデータと対応づけの設定を利用して、実際にHubSpot CRMにデータを送信してみます。 このテストではHubSpot CRMのデータがアップデートされますので、テストするコンタクトには注意してください。 白抜きの「TEST & REVIEW」のボタンをクリックします。
設定や、スプレッドシートのデータの持ち方に不備が無ければ、次のキャプチャのように緑色の背景でテストが成功したことが告げられます。
テストが成功した様子
念のため、本当にコンタクト情報が更新されたのか、HubSpot CRMでも確認してみましょう。該当のコンタクトの詳細画面を開き左側の [プロパティーの履歴を表示] をクリックします。
[プロパティーの履歴を表示] からデータが更新されたか確認する
優先言語が更新されていることが確認できましたね。Zapierを利用した場合は、右カラムの「ソース」に「Integration」と表示されます。
万が一テストに失敗した場合
万が一テストに失敗した場合、多くは「スプレッドシートのデータと、HubSpot CRMのプロパティーのフィールドタイプとの不整合」にあります。例えば
- 「1つのチェックボックス」のフィールドタイプに false/true 以外の値を送信している
- 「ドロップダウン選択」のフィールドタイプに送信する内部値が間違っている
- 「複数のチェックボックス」に対応するスプレッドシートのデータが、セミコロン区切りになっていない
などがよくあるエラーでしょう。
そういった場合は、
- スプレッドシートのデータを見直す
- ステップ1のFind Dataの設定に遡ってサンプルデータを更新する
- ステップ2のCustomize Update Contactの設定を見直す(必要に応じて)
- 再テストする
という流れを、エラーが無くなり期待通りにHubSpot CRMにデータが送信されるまで繰り返します。
試しにわざと「興味のあるHubSpot製品」をセミコロンではなくカンマ区切りにしてエラーを発生させ、そのエラー解消する流れをデモしたのが次のキャプチャです。エラーが発生した際の参考にしてください。
エラーが発生した際の解消の流れ
エラーが解消し、HubSpot CRMにきちんとデータが送信されたことが確認できたら、Zapの作成は完了です。「Done Editing」をクリックし、最後に右側のトグルをONにしてZapを有効化します。
Zapの作成完了と有効化
Zapを手動で動かしてみる
作成時にテストは充分行いましたが、念のため有効化したZapが本当に動くかどうか、手動でZapを動かして確認してみましょう。現在HubSpot CRM上では名前が漢字で入っていますが、これをスプレッドシートの方で英語表記に変更し、Zapを動かしてHubSpot CRMに反映させてみます。
Zapを手動で動かすにはMy Zapsページへ移動し、該当のZapのメニューから「Run」を選択するだけです。
Zapの手動実行の様子
Zapが無事動いていることが確認できました。無料プランでは、Zapは約15分ごとに自動的に動きます。またZapが過去どのように動作したかを確認するには、Task Historyを利用して確認します。
Task Historyを利用したZapの実行履歴の確認
無料プランの注意点
ここまでZapierを使用したスプレッドシートとHubSpot CRMの連携について解説してきました。ただし 無料プランでは、
- 有効化して実運用できるZapは5つまで(下書きは5つ以上作成可能)
- 各Zap内のステップは2つまで
- タスク(実際にZapが動いた回数。Task Historyで確認できるもの)はひと月に100回まで(各Zapではなく、全Zap合計)
という制限があります。特に実際には100回までしかZapを動かせない制約はとても強いため、データが頻繁に更新され、頻繁に動作するようなZapは無料プランでは厳しいでしょう。
なおタスクのカウント方法に関しては「15分ごとに、必ず1回カウントされる」ではなく、「15分ごとにデータをチェックし、変更があればZapが動作し、カウントされる」となります。
また今回はスプレッドシートのデータを、可能な限りHubSpot CRMにフィールドタイプの書式に合わせる形で予め調整しました。しかし現実として、スプレッドシートの方で書式設定やデータの整形などができないこともあるでしょう。
そういった場合はZapの方で、スプレッドシートのステップとHubSpot CRMのステップの間に「Formatter」というステップを新たに追加し、Formatterで予めデータを整形してからHubSpot CRMのステップへ渡すこともできます。しかし無料プランのステップ数は2つまでであるため、これも無料プランではできません。
どうしても無料プランで収めようとするのであれば、ステップ2でHubSpot CRMを選択するのではなく、独自コードを選択する方法があります。ZapierのステップとしてJavaScriptかPythonを利用して独自のコードを動作させることができるため、そのコード内で自らデータ整形し、HubSpot APIを利用してHubSpot CRMへデータを送ります。
参考:ステップとしてJavaScriptを実行する設定画面
しかし当然プログラミングの知識が必要であるため、手軽に試せる方法ではありません。あくまで選択肢の1つとしてご紹介に留めておきます。
まとめ
以上、Zapierを利用したHubSpot CRMと他ツールの連携について解説しました。
- 頻繁にZapが動作する
- Zap内において複数ステップが必要である
などの場合は無料プランでは厳しいものがありますが、逆にそうでなければ無料プランのままでも充分役立つでしょう。プログラミングやAPIの知識が無くとも、ツール同士の連携が容易にできてしまうのがZapierの1番の強みです。