HubSpotワークフロートリガを使って他の製品と連携する #hubspot #freee #API
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
HubSpot上で管理されているアクションをトリガとして他の製品と連携する方法の1つを実例をもとに説明します。
APIを使えばいろいろ出来るという一例として捉えていただければ幸いです。
HubSpotとは
マーケティング、セールス、カスタマサービスを行うCRMソフトウェアです。
https://www.hubspot.jp/
弊社でも利用を開始しており、今回は実際に弊社内でも利用している一例を紹介したいと思います。
今回紹介する利用シーン
以下図の紫色で囲われた部分になります(=HubSpot上で見積書を作成した際に、freee上でも見積書を作成する)
freee上で会計処理を行いたい、freeeで作られた見積書を顧客に送付したいなどの理由により、HubSpot & freeeの組み合わせを用いています。
freeeは会計ソフトになります。
https://www.freee.co.jp/
以降は技術的な要素も含めて書いていきます。
全体構成図
今回はAzureを利用しています。
1.と2.はHubspot上からのUI操作(見積書作成)になります。
HubSpot上で見積書作成検知(2.見積作成検知~3.ウェブフック)
HubSpotのワークフローのウェブフック機能を利用することで可能になります。
ウェブフック機能を用いることで、HubSpotのあるアクションを元に特定のURLに処理をリクエストすることができます。
https://knowledge.hubspot.com/jp/workflows/how-do-i-use-webhooks-with-hubspot-workflows
今回は、HubSpot上での見積書作成がされた場合に、特定のWebApp(API)を呼び出すことにします。
本記事執筆時点では、freeeと連携する仕組みがないため、今回はfreee上で見積書作成を行うWebApp(API)を自前で用意します。
ウェブフックリクエストのバリデーション
リクエストヘッダに含まれるX-HubSpot-Signature/X-HubSpot-Signature-Versionを用いてリクエストの検証を行うことが出来ます。
https://developers.hubspot.com/docs/faq/validating-requests-from-hubspot
Freee見積書作成(4.機密情報取得~7.見積作成API call)
Hubspotから詳細情報を取得する
ウェブフックリクエスト内容に見積もり関連の情報が格納されています。
また、アソシエーション(association)として、見積もりに紐づいているコンタクトID、製品情報ID、会社ID、取引IDも設定されています。
今回、freee上で見積書を作成するにあたってもこれらの情報が必要になるので、これらのIDを元にHubspotのAPIをcallすることにより、詳細を取得しています。
HubSpotのAPIをcallするために必要な認証情報は、Azure Key Vaultに格納し、そちらから取得します。
https://docs.microsoft.com/ja-jp/azure/key-vault/general/basic-concepts
HubSpotのAPI認証は、API KeyもしくはOAuthのどちらかになります。
https://hubspot.pensees.co.jp/crm/api
Freeeの見積書を作成する
freeeのAPIを用いて行うことができます。
https://developer.freee.co.jp/docs/accounting/reference#/Quotations/create_quotation
freeeのAPIはOAuth認証になります。
なお、API開発者向けのSDKが公開されていますので、こちらを利用すると開発が楽になります。
私もSDK(C#版)を利用させていただいておりますので、この場を通じて感謝申し上げます。
https://corp.freee.co.jp/news/freee-sdk-9494.html
なお、見積書作成API呼び出しに関しては、記事執筆時点ではSDKに含まれていないため、自前での実装が必要になります。
- HubSpotリクエストの取引先社がfreeeに存在しない場合、freeeに取引先社を追加するためのAPIを呼ぶ
- HubSpotリクエストの製品がfreeeに存在しない場合、freeeに製品を追加するためのAPIを呼ぶ
など、幾つかのAPI処理は上記SDKを用いて行っています。
最後に
HubSpotとFreeeの連携については、今後はfreee for HubSpotなどで柔軟に実現できるようになると思います。
https://support.freee.co.jp/hc/ja/articles/900000747946-freee-for-HubSpot-%E3%81%AE%E6%A6%82%E8%A6%81
冒頭にも記載しましたが、APIを使えばいろいろ出来るという1例として捉えていただければと思います。