背景
はじめまして、SinkCapitalの丸山です。
ギルド内部では主に FE × データアナリスト/エンジニア で活動させていただいています。
Pipedrive には、ウェブフォーム(Pipedrive Web Forms) という機能があります。
これは、リード管理機能の中の一つで、簡単にお問い合わせフォームや、資料ダウンロードフォームなどを作成でき、webサイトなどに埋め込むことができます。
詳しくはこちら↓↓
Web Forms
フォームから送信された情報は、Pipedrive によって自動で個人や企業の情報として登録されます。
今回はこの Pipedrive Web Forms の送信時に、utmを取得したいという要望を受け、調査を開始しました。
調査内容
一旦、pipedrive web forms を諦める
まず、最初にわかったことは、pipedrive web formsには、utm を取得するような機能はないということでした。そもそも、非表示のフォームを作ることができません。
(公式コミュニティでも数年前から、utmを取得する機能を欲する声が多数上がっているので、いずれは対応されることを願っています…!)
ということで、ここはひとつ、pipedrive web forms をハックできないかと、どんな実装をしているのか見てみると、webサイトへの埋め込みの際に、iframeを使用していることがわかりました。
クロスオリジンのiframe内のコンテンツにはアクセスできないので、utmをフォームの送信時に一緒に送ったりするような小細工はできない、ということです。
pipedrive API を試す
pipedrive にはAPIが充実しており、pipedrive の web forms で作成したフォームではなく、自作のフォームや、他のシステムからAPIを叩いて、リードなどを登録することができます。
しかし、APIを叩くためには、リクエスト時にAPIトークンをクエリパラメータに含める必要があります。 Authentication
そのため、webサイトに自作のフォームを配置しても、クライアントブラウザから直接APIを叩くことはできません。
やろうと思えば、やれないことはないのですが、もしやるとなると、クライアントブラウザからアクセス可能なソースコードの中にAPIトークンを含める必要があります。
つまり、APIトークンがあればリードの個人情報が全流出するので、これはセキュリティ的に絶対やってはいけないことなのです。
自作の簡易なAPIサーバーを作る?
企業のwebサイトなどは、静的サイトであることが多いのですが、pipedrive のAPIは、サーバー側で叩くしかないので、これはpipedrive の APIを叩くためだけに、自作のAPIサーバーを作る必要があるのか?と一瞬考えましたが、こういう場合、pipedriveと連携できるシステムが既に存在しているはず、と調べてみました。
そしたら、以下の動画を見つけました。
How to track marketing campaigns in Pipedrive
Jotform → Zaiper → Pipedrive でutmが取得できた!
Jotform は、名前からわかる通り、フォームを簡単に作れるツール。
詳しくはここ↓↓
Jotform (ジョットフォーム)とは?使い方・料金など詳しく解説!
Jotformは、非表示のフォームも作成でき、クエリパラメータに指定された情報を取得して指定のフォームに値を自動で入れてくれる機能があります。
Zapier は、僕が想像していた、パイプラインを作成できるツールでした。
今回は、上で作成したJotformのフォームが送信されたら、それをトリガーに、pipedrive のAPIを叩いて、既に登録済みの組織情報や個人情報を検索、見つからなければ新しい企業、個人として作成し、リードを作成してみました。
ということで、Jotformでフォームを作成して、Zapierでパイプラインを作成することで、 「Pipedrive Web Forms と同じことができて、かつ utmが取得できるもの」を作ることができました。
感想
- メンテコストを考えると、APIサーバーを自作するより、普通にJotformとZapierの料金を払う方がコスト的には安いはず…と思いました。
- How to track marketing campaigns in Pipedrive のお兄さんは、公式にpipederive マスターみたいなので、この方の設定内容が今のところのutm取得のベストプラクティスのようだと思いました。
- こういう外部サービスとの連携があるから、それぞれのツールの利用者も増えるし、ということは、pipedrive web forms 側でutm取得が実装される未来は来るのだろうか…。