Documentation menu

Zapier & CRM自動化

MailInAppには公式のZapierアプリはまだありませんが、必要ありません。プロジェクトのWebhookは、すでにHTTPS経由の署名付きプレーンJSONであり、Zapierの汎用トリガーであるWebhooks by Zapierが想定している形式そのものです。任意のZapに向けるだけで、投票、フォーム送信、クイズの結果、商品の購入といったすべてのインタラクションが、コード不要でCRM、スプレッドシート、Slack、その他Zapierが届く場所ならどこへでも届きます。

同じ方法は、受信Webhookを受け取れるMake、n8n、Pipedream、その他の自動化ツールでも機能します — このガイドでは、最もリクエストの多いZapierを例に説明します。

設定する

  1. Zapierで新しいZapを作成し、トリガーアプリとしてWebhooks by Zapierを選び、イベントはCatch Hookにします。
  2. Zapierが一意のCatch Hook URLを発行するので、それをコピーします。
  3. MailInAppでダッシュボード → 対象のメール → 回答を開き、そのURLをWebhookフィールドに貼り付けて有効化をクリックします。
  4. MailInAppが表示する署名シークレット(whsec_…)をコピーします — これは一度しか表示されません。最も単純なZapではこれは不要ですが、後で署名を検証する予定があるなら、安全な場所に保管しておいてください。
  5. 実際のインタラクションを発生させます — 投票に回答する、フォームを送信する、あるいはプロジェクトのテスト送信を使う、のいずれかです — その後Zapierに戻ってTest triggerをクリックします。MailInAppが送ったばかりのペイロードが表示され、event.actionevent.valuerecipient.rowといったフィールドが確認できるはずです。
  6. 任意のアクションステップを追加します — 「Create row in Google Sheets」「Create record in HubSpot/Salesforce/Airtable」「Send Slack message」など — 受け取ったペイロードから必要なフィールドをマッピングします。
  7. Zapを有効にします。

これで完了です — 以降、そのプロジェクトで発生するすべてのインタラクションが自動的に流れてきます。マッピングに使えるすべてのフィールドはWebhookペイロードのリファレンスに記載されています。

重要なものだけに絞り込む

ほとんどのCRM用途では、一部のインタラクションだけが重要です — すべての開封ではなく、完了したフォームだけ、といったように。トリガーの直後にFilter by Zapierステップを追加します。

  • event.actionsubmit(またはvoteratepurchaseなど)と正確に一致する場合のみ続行するようにすると、特定のアクションだけに反応できます。
  • event.blockIdが特定のブロックのid(スタジオのブロックインスペクターで確認できます)と正確に一致する場合のみ続行するようにすると、同じプロジェクト内の他のブロックを無視して、特定の1つのブロックだけに反応できます。
  • lowScoretrueの場合のみ続行するようにすると、CSAT/NPSの低評価な回答を管理者に通知するZapを構築できます — これはMailInApp自身のアプリ内低評価アラートが使う信号と同じもので、それを自分の自動化経由に置き換えるものです。

連絡先を逆方向に反映する

自動化は通常、両方向に機能します。ヘルプデスクのチケットが解決したら、フォローアップ送信のためにその人をMailInAppの連絡先リストに追加(または更新)したい、しかも人手でCSVを再エクスポートしたくない、というケースです。任意のZapの最後のステップとしてWebhooks by Zapier → POSTアクションステップを使います — 「チケット解決」「商談成立」「他の場所でのフォーム送信」など — 連絡先リストの行アップサートエンドポイントに向けることで、MailInAppの送信リストを自動的に最新の状態に保てます。このエンドポイントは1回の呼び出しにつき最大500行を受け付け、APIキーごとに1分あたり30リクエストのレート制限があります。個々のイベントごとに発火するZapにとっては十分な余裕がありますが、代わりに大量のバックフィルをまとめて流す場合は知っておく価値があります。

配信が失敗した場合

存在しないZapのURL、一時停止中のZap、Zapierの一時的な障害は、いずれもMailInApp側では配信失敗としてカウントされます。通常のレスポンスの代わりにリダイレクトを返す受信URLも同様です — MailInAppはWebhook配信でリダイレクトを追わないためです。単純に応答が遅すぎる配信も失敗になります。MailInAppが失敗と判断するまでの応答時間は5秒です。配信はバックオフを伴って自動的に再試行され、それでも失敗し続けている配信は回答ページの失敗した配信に、手動の再配信ボタンとともに表示されます — 再試行の全スケジュールについては配信の仕組みを参照してください。何かが黙って失われることはありません。インタラクション自体は、Webhookの配信結果にかかわらず、常にまずMailInApp側に保存されます。