女子WEBエンジニアのTechメモ

都内の某企業でマーケッターやってます。営業→WEBエンジニア・オフショア開発チーム駐在→マーケッター(SEO)ちょっと便利だなと思ったことをメモしています。

Marketoのアクションをトリガーにしてチャットワークに通知をする(チャットワークAPI)

Marketoを触る機会があったので。

Marketoには、デフォルトでメールでアラート通知をする機能がついています。

しかし、会社によってはメールをほぼ利用しておらず、メール通知だと気づかない…という場合がありますよね。

そんなチームのために、チャットワークのAPIとマルケトのwebhookを利用して、チャットワーク通知を設定しました。

※開発不要なので、非エンジニアでもMarketo管理画面から設定できます。

今回やろうとしていること

ユーザーが特定のフォームに回答したときに、あるチャットワークのトークルームに「◆さんからエントリーがありました」と通知する。

※トリガー、メッセージ内容などは変更できます

設定手順

1:チャットワークAPIを用意する

f:id:bombomprin:20180903164150p:plain

チャットワークのプロフィール部分から「API設定」に飛びます。

f:id:bombomprin:20180903164332p:plain

「API Token」から、APIトークンを確認できる状態にしておきます。

まだトークン発行していない方は、発行しておいてください。

2:マルケトでウェブフックを設定する

マルケトにログインし、「管理」の「ウェブフック」を開きます。

新規ウェブフックを作成し、下記のように設定します。

f:id:bombomprin:20180903163925p:plain

  • ウェブフック名:なんでも良い
  • 詳細:なんでも良い
  • URL:https://api.chatwork.com/v2/rooms/{通知したいルームID}/messages
    ※ルームIDの確認方法:ブラウザでチャットワークのルームを開きます。URLのrid以降がルームIDです。(#!rid9999なら、ルームIDは9999)
  • リクエストタイプ:POST
  • テンプレート:body={メッセージ内容}&self_unread=0
  • リクエストトークンのエンコード:フォーム/URL
  • 応答タイプ:JSON

メッセージ内は、設定した改行がそのまま反映されます。(入力しにくいので、別エディタ等で編集したほうが良いです。)

今回は、メッセージ内にカスタムトークン携帯電話番号を挿入し、パラメーターに付与しています。携帯電話以外の他のトークンでも、問題なく動作しました。

メッセージ内にURLを記入したい場合、URLのみエンコードが必要です。

ちなみに、下記はテンプレートのサンプルです。

body=これはBOTです。
マルケトから登録がありました!
[info][title]URL[/title]https%3a%2f%2fwww%2egoogle%2eco%2ejp%2f%3fparam%3d{{lead.Mobile Phone Number:default=不明}}[/info]&self_unread=0

3:Marketoでwebhookにカスタムヘッダを設定する

f:id:bombomprin:20180903163934p:plain

ウェブフック作成後、作成したウェブフックを開き、「ウェブフックアクション」から「カスタムヘッダの設定」を開きます。

ヘッダ「X-ChatWorkToken」と入力し、値にチャットワークで確認したAPIトークンを貼り付けます。

4:Marketoでキャンペーンにwebhookを設定する

「マーケティング活動」から、通知を送りたいキャンペーンを選択します。

フローで「ウェブフックを呼び出す」を追加し、追加したウェブフックを設定します。

 

完成!

今回やっていないけど試してみたいこと

ウェブフックに直接メッセージを書くのは拡張性がないので(通知メッセージ内容が違う複数キャンペーンで利用できない)、キャンペーンのマイトークン等でメッセージ内容を設定したい。

※以前別サービスを連携したときに、キャンペーンのマイトークンにセットしてウェブフックで呼び出すようにしたら、{{lead.Last Name}}とかに値が挿入されなかった。メッセージを1to1でカスタマイズしたいときは、マイトークンが使えないのかも?

(試したことがある方いたら、ぜひコメントください)