SaaS・サブスクの解約申請フォームの理由欄を分類し、引き留めの余地があるものをカスタマーサクセスへ、不具合が理由のものをサポートへ振り分ける
解約申請フォームに書かれた理由を読み、理由の種類と引き留めの余地、不具合の有無に分類します。引き留めの余地があるものはカスタマーサクセスの担当へ、不具合が理由のものはサポートへ、その日のうちに回します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- EC/IT・SaaS/教育
- 対象部門
- カスタマーサポート
- 対象業務
- 分類・仕分け/問い合わせ対応
- 主な課題
- 人手が足りない/属人化している/期限・対応漏れが起きる
- AIで行う処理
- 分類
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 解約申請が届くと、受付の窓口にメールで通知が来る
- 担当者が申請を開き、選択肢の理由と自由記述を読む
- 管理画面でその会社の契約の期間、プラン、直近の利用状況を確かめる
- 顧客台帳でカスタマーサクセスの担当者を探す
- 引き留めの余地がありそうなら、担当者へチャットで申請の内容を書き写して知らせる
- 不具合が書かれていれば、サポートのチケットを手で起こし、自由記述を貼り付ける
- 解約理由の集計表に、理由の種類を1行ずつ記入する
- 自動解約申請が送信されると、自社サービスから Zapier の Webhook に申請の内容が送られる
- 自動顧客台帳から、その会社のカスタマーサクセスの担当者と契約の大きさを引く
- 自動AI by Zapier が理由の選択肢と自由記述を読み、理由の種類・引き留めの余地・不具合の有無・要点を返す
- 自動分類の結果を、解約理由の台帳に1行で記録する
- 自動規則に従って行き先を決める。不具合が書かれていればサポートへ、引き留めの余地があればカスタマーサクセスの担当者へ、どちらでもなければ記録だけにする
- 自動分類の自信が低いものと、理由が読み取れないものは、受付の窓口のチャンネルへ回す
- 人受付の担当者が、窓口に回ったものだけを読み、行き先を決める
- 人受付の担当者が、毎日の終わりに当日の台帳を流し見て、明らかな誤りを直す
- 人カスタマーサクセスの担当者とサポートが、回ってきた件にそれぞれ対応する
各工程の詳しい説明を読む
- 解約申請が届くと、受付の窓口にメールで通知が来る
- 担当者が申請を開き、選択肢の理由と自由記述を読む
- 管理画面でその会社の契約の期間、プラン、直近の利用状況を確かめる
- 顧客台帳でカスタマーサクセスの担当者を探す
- 引き留めの余地がありそうなら、担当者へチャットで申請の内容を書き写して知らせる
- 不具合が書かれていれば、サポートのチケットを手で起こし、自由記述を貼り付ける
- 解約理由の集計表に、理由の種類を1行ずつ記入する
(a)月末に読む人が足りない。 月末の数日に200件を超える申請が届き、3名は他の問い合わせも抱えています。自由記述まで読まれるのは、手が空いた時間に開いた分だけです。 選択肢だけを見て「その他」と記録し、自由記述に書かれた不具合の話を見逃すことがあります。
(b)引き留めの連絡が解約日に間に合わない。 担当者へのチャットが申請の数日後になると、カスタマーサクセスが電話をかけたときにはすでに他社のサービスへの移行が終わっています。 解約日までに話を聞ける時間は、申請から数日しかありません。
(c)振り分けの基準が人によって違う。 「使いこなせなかった」を引き留めの余地ありと見る人もいれば、見ない人もいます。同じ理由でも、読んだ人によって担当へ回ったり回らなかったりします。 集計表の理由の種類も人ごとに付け方が違い、月ごとの比較ができません。
(d)不具合の話がサポートに届かない。 自由記述の「CSVの取り込みで毎回エラーが出る」は、サポートにとっては不具合の報告です。 しかしチケットを手で起こすのは忙しい月から省かれ、同じ不具合で解約が続いていることに誰も気づけません。
- 【自動】 解約申請が送信されると、自社サービスから Zapier の Webhook に申請の内容が送られる
- 【自動】 顧客台帳から、その会社のカスタマーサクセスの担当者と契約の大きさを引く
- 【自動】 AI by Zapier が理由の選択肢と自由記述を読み、理由の種類・引き留めの余地・不具合の有無・要点を返す
- 【自動】 分類の結果を、解約理由の台帳に1行で記録する
- 【自動】 規則に従って行き先を決める。不具合が書かれていればサポートへ、引き留めの余地があればカスタマーサクセスの担当者へ、どちらでもなければ記録だけにする
- 【自動】 分類の自信が低いものと、理由が読み取れないものは、受付の窓口のチャンネルへ回す
- 【人】 受付の担当者が、窓口に回ったものだけを読み、行き先を決める
- 【人】 受付の担当者が、毎日の終わりに当日の台帳を流し見て、明らかな誤りを直す
- 【人】 カスタマーサクセスの担当者とサポートが、回ってきた件にそれぞれ対応する
7番目と8番目が、受付の担当者に残る仕事です。 全件を読む仕事から、AIが迷ったものを読む仕事と、結果を流し見る仕事に変わります。
5番目を規則で決めているのは、行き先の決め方が後から変わるからです。 例えば「契約の小さい会社は引き留めの連絡をしない」と決めたら、直すのは規則の1行で済みます。AIへの指示を書き換えると、分類そのものがぶれます。
02今回想定するシステム構成
解約申請フォーム(自社サービスの管理画面) ▼【トリガー】申請の送信 Zapier(Webhooks by Zapier の Catch Hook) ├──▶ Google Sheets:顧客台帳から担当者と契約の大きさを引く ▼ AI by Zapier ── 理由を分類する │ 理由の種類/引き留めの余地/不具合の有無/要点/根拠の文 ▼ Google Sheets:解約理由の台帳に1行を記録 ▼ Paths by Zapier(最後の手順) ├─ A 不具合あり ──────▶ サポートのチケット+担当者への連絡 ├─ B 引き留めの余地あり ─▶ カスタマーサクセスの担当者へ ├─ C 余地なし ──────▶ 記録のみ └─ Fallback(判断できない)▶ 受付の窓口のチャンネルへ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Zapier(Webhooks、Google Sheets、Paths) | Make、n8n、Power Automate |
| 生成AI | AI by Zapier(Analyze and Return Data) | ChatGPT(OpenAI)、Claude、Gemini |
| 保管 | Google スプレッドシート(顧客台帳・解約理由の台帳) | Zapier Tables |
| 通知 | 社内チャット(担当者への連絡と受付の窓口) | メール |
| チケット | サポートのチケット管理 | 共有の受付アドレス |
自社サービスの管理画面、顧客台帳、チケット管理は今あるものを使います。 足すのは、Zapier の Zap が1本と、解約理由の台帳のシートが1枚です。自社サービスの側の作業は、解約申請が送信されたときに Webhook のURLへ申請の内容を送る処理を1つ足すことだけです。
起点は Webhooks by Zapier の Catch Hook です。 Zap を作ると専用のURLが発行され、そこへ送られた内容を受け取ります。Catch Hook は GET・PUT・POST の要求の本文を解析して項目に分け、JSONの配列を送ると、要素1つごとに Zap が1回動きます。 受け取れる大きさはトリガーで10MBまでで、解約申請の数行の文章には十分です。Webhooks は Free プランでは使えず、Professional・Team・Enterprise のプランで使えます。
分類は AI by Zapier に任せます。 Zap に生成AIの手順を足す組み込みの道具で、OpenAI、Anthropic、Google Gemini、Azure OpenAI、Amazon Bedrock に対応し、自社のAPIキーを持ち込むこともできます。 返してほしい項目を、名前・型・説明つきの出力のフィールドとして定義でき、定義した項目は後ろの手順に1つずつ渡せます。 モデルの段階は Standard(1タスク)、Advanced(3タスク)、Premium(5タスク)、自社のキー(1タスク)で、理由の分類は Standard で足りる仕事です。
行き先を分けるのは Paths by Zapier です。 1つのグループに最大10本の分岐を置け、分岐ごとに「独自の条件」「常に実行」「Fallback(他のどれも動かなかったときに動く)」を選べます。Paths と Filter の手順そのものはタスクに数えられません。
03どうやって実装するのか
処理の起点を決める
解約申請の送信を起点にします。 自社サービスの解約の処理の中に、Webhook のURLへ申請の内容を送る処理を足します。毎日の定時に未処理をまとめて読む作りにはしません。 引き留めの連絡は申請から数日が勝負で、半日の遅れがそのまま話を聞ける時間を削ります。
送るのは、解約の手続きが受け付けられた後です。 送信に失敗しても解約の手続きは止めません。Webhook の失敗で解約ができなくなる作りにすると、顧客は解約の画面でエラーを見ることになります。 解約の受付と社内の振り分けを、別々に失敗できるようにしておきます。
Zap を止めている間に届いた申請について、一つ注意があります。Zap を止めたり消したりすると Catch Hook は404を返すようになりますが、その切り替わりまでに数時間かかることがあり、その間は200が返ります。 自社サービスの側で「200が返ったから届いた」とみなすと、止めている間の申請が振り分けられずに消えます。 送った申請には自社の側で送信済みの印を付け、毎朝、台帳に記録が無い申請を突き合わせます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 解約申請 | 申請ID、会社ID、申請日時、解約日、理由の選択肢、自由記述 | 自社サービス(Webhook で受け取る) |
| 契約と利用の情報 | プラン、契約の月数、月額、直近30日の利用日数、直近のサポートへの問い合わせ件数 | 自社サービス(申請と一緒に送る) |
| 顧客台帳 | 会社ID、会社名、カスタマーサクセスの担当者、契約の大きさの区分 | Google スプレッドシート |
| 分類の手引き | 理由の種類の定義と、それぞれの例文 | 指示文に書き込む |
質を決めるのは、自由記述と分類の手引きです。 選択肢だけなら規則で振り分けられます。AIを使う理由は、選択肢で「料金」を選んだ人が自由記述に「CSVの取り込みが毎回失敗するので、この料金は払えない」と書くような、選択肢と本文が食い違う申請を読むためです。
契約と利用の情報は、申請と一緒に自社サービスから送ります。 Zapier から管理画面を見に行くより、申請を送る側が持っている値を添えるほうが確実で速く済みます。 AIはこの値を分類の参考にしますが、行き先を決める材料には使わせません。 契約の大きさで行き先を変えるのは、規則の側の仕事です。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 申請の内容と利用の情報 | Catch Hook が受け取った本文 | 分類の入力 |
| 担当者と契約の大きさ | 顧客台帳を Lookup Spreadsheet Row で会社IDから引く | 行き先と連絡先 |
| 分類の結果 | AI by Zapier の出力のフィールド | 台帳の記録と分岐の条件 |
顧客台帳は、会社IDで引きます。 会社名で引くと、「株式会社」の有無や支店名で引けない会社が出ます。Lookup Spreadsheet Row は探す列と値を指定し、最後の行から探す設定や、見つからないときに新しい行を作る設定を持っています。この構成では、見つからないときに行を作る設定は使いません。 台帳に無い会社は、作るのではなく受付の窓口へ回します。
同じ会社の過去の申請も見ておきます。 一度解約を取り下げた会社が再び申請してきた場合、カスタマーサクセスにとっては事情が違います。解約理由の台帳を会社IDで引き、最後の行から探す設定で直近の1件を取ります。
AIへ渡す前に整形する
- 空の申請を除く … 申請IDか会社IDが無いものは、分類せずに受付の窓口へ回します
- 重複を除く … 同じ申請IDが台帳にすでにあれば、二度目は処理しません。送り直しで同じ申請が二度届くことがあるためです
- 自由記述の空欄を印にする … 自由記述が空なら、
free_text_emptyを true にして分類へ渡します。選択肢だけで分類させ、AIに理由を作らせないためです - 個人の連絡先を落とす … 自由記述に電話番号やメールアドレスが書かれていれば、自社サービスの側で送る前に伏せ字にしておきます
- テスト申請を除く … 社内の検証用アカウントからの申請は、会社IDの一覧で除外します
3番目を省くと、空欄の申請に「料金が理由と思われる」といった理由が付きます。 選択肢しか無い申請は、選択肢どおりにしか分類できません。分からないことを分からないと返させるための印です。
AIに処理させる
させるのは、理由の種類を決め、引き留めの余地と不具合の有無に印を付け、根拠にした文を写すことだけです。
| 出力 | 中身 | 判断できないときの扱い |
|---|---|---|
| 理由の種類 | 料金/使いこなせない/機能不足/不具合・障害/他社へ移行/事業の終了・縮小/担当者の退職・異動/その他 | 当てはまらなければ other |
| 引き留めの余地 | high/medium/none | 書かれていなければ unknown |
| 不具合の有無 | 自由記述に不具合・障害・データの消失が書かれているか | 不具合か使い方の問題か分からなければ unclear |
| 要点 | 担当者が読む1〜2文 | 自由記述が空なら「記載なし」 |
| 根拠の文 | 判断に使った自由記述の一部をそのまま | 選択肢だけで判断したなら空 |
引き留めの余地の付け方は、分類の手引きに書きます。 「料金」「使いこなせない」「機能不足」は話を聞けば変わる可能性があり、「事業の終了」「会社の廃業」は変わりません。 ただし同じ「料金」でも「他社が半額だった」と「予算が削られた」では意味が違うので、最終的な余地の高さは自由記述で決めさせます。
| させないこと | 理由 |
|---|---|
| 行き先の決定 | 規則の側で決める。契約の大きさによる扱いの差も規則に置く |
| 値引きや契約の変更の提案 | 担当者が顧客と話して決める |
| 顧客への返信の作成 | 解約の受付の連絡は自社サービスから既に送られている |
| 不具合の原因の推測 | サポートが調べる。推測が付くと調べる前に結論が出る |
| 自由記述に無い理由の補完 | 空欄の申請は選択肢どおりにしか分類しない |
4行目が、いちばん起きやすい失敗です。 「エラーが出る」と書かれた申請に、AIが「ブラウザのキャッシュが原因と思われる」と添えると、サポートは調べる前にその前提で返事を書きます。 本当にサービスの側の不具合だった場合、顧客は二度、同じ説明をすることになります。
指示内容を固定する
あなたはSaaSのカスタマーサポートで、解約申請の理由を分類する立場です。
解約申請に書かれた内容だけを根拠にしてください。推測で補わないでください。
【理由の種類(reason_category)】次のどれか1つを選んでください。
- price ............. 料金が高い、予算が合わない
- adoption .......... 使いこなせない、社内に定着しなかった
- missing_feature ... 必要な機能が無い
- bug ............... 不具合、障害、データの消失、動作が遅い
- competitor ........ 他社のサービスへ移る
- business_end ...... 事業の終了・縮小、廃業、統合
- staff_change ...... 担当者の退職・異動で使う人がいなくなった
- other ............. 上のどれにも当たらない
【引き留めの余地(retention_signal)】
- high .... 条件が変われば続ける意思が読み取れる(例:「安ければ続けたい」)
- medium .. 理由が改善できる種類だが、続ける意思までは書かれていない
- none .... 事業の終了など、サービスの側で変えられない理由
- unknown . 自由記述が空、または判断できるだけの記載が無い
【厳守事項】
- 選択肢と自由記述が食い違うときは、自由記述を優先してください。
その場合は choice_conflict を true にしてください。
- 自由記述に不具合・エラー・データの消失・動作の遅さが書かれていれば、
理由の種類が何であっても bug_reported を true にしてください。
使い方の問題か不具合か分からないときは "unclear" にしてください。
- 不具合の原因を推測しないでください。対処方法も書かないでください。
- free_text_empty が true のときは、選択肢だけで分類し、
retention_signal は unknown にしてください。理由を書き足さないでください。
- 行き先、値引き、プランの変更の提案は書かないでください。
- evidence には、判断に使った自由記述の一部をそのまま写してください。
言い換えないでください。
- confidence は、分類にどれだけ迷わなかったかを high/low で書いてください。
理由が2つ以上同じくらい書かれているときは low にしてください。
【解約申請】
選択肢:{reason_choice}
自由記述:{free_text}
free_text_empty:{free_text_empty}
【参考:契約と利用の情報】{usage_info}
「理由の種類が何であっても bug_reported を true に」を書かないと、選択肢の理由に引っ張られます。 「料金」を選んで自由記述に不具合を書いた申請が price に分類され、不具合の印が付かないままカスタマーサクセスへ回ります。 理由の種類と不具合の有無を別の項目にしているのは、この申請を取りこぼさないためです。
「対処方法も書かない」は、AIが親切で書き足すのを止めるためです。 分類だけを頼んでも、不具合の申請には「再ログインで解決する場合があります」と添えがちです。要点の欄にこれが入ると、サポートの担当者が最初に読む1文が推測になります。
出力形式を固定する
AI by Zapier の出力のフィールドを、次の項目で定義します。 フィールドに分けておくと、後ろの手順で1つずつ条件や記録に使えます。
{
"reason_category": "price | adoption | missing_feature | bug | competitor | business_end | staff_change | other",
"retention_signal": "high | medium | none | unknown",
"bug_reported": "true | false | unclear",
"choice_conflict": "true | false",
"summary": "",
"evidence": "",
"confidence": "high | low"
}
1つ目の理由は、Paths の条件をこの値だけで書けることです。 文章の中から「不具合」という語を探す条件は、書き方が変わると外れます。値が決まった選択肢の中から返るので、条件が壊れません。
2つ目は、行き先を決める規則を表で持てることです。
| 分岐 | 条件 | 行き先 |
|---|---|---|
| A | bug_reported が true または unclear | サポートのチケット。担当者がいれば、その人にも知らせる |
| B | bug_reported が false で、retention_signal が high か medium | カスタマーサクセスの担当者 |
| C | bug_reported が false で、retention_signal が none | 記録のみ |
| Fallback | 上のどれでもない(unknown、confidence が low など) | 受付の窓口のチャンネル |
分岐の条件を重ならないように書くのが要点です。 Paths の分岐は左から順に1つずつ実行され、条件を満たした分岐はすべて動きます。 A と B の条件が重なると、不具合の申請がサポートとカスタマーサクセスの両方に回り、顧客に別々の部署から連絡が行きます。 B と C に「bug_reported が false」を入れているのは、そのためです。
confidence が low のものは、A〜C の条件にも「confidence が high」を足して、Fallback に落とします。 迷った分類を担当者に回すより、受付で1件読むほうが速く終わります。
3つ目は、台帳に同じ形で残ることです。 理由の種類が決まった選択肢なので、月ごとの件数を比べられます。 これまで人ごとにばらばらだった集計が、そのまま使えるようになります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 自社サービス | 解約の処理から Webhook のURLへ送る | 申請の内容と契約・利用の情報 |
| 顧客台帳 | Google Sheets の Lookup Spreadsheet Row | 担当者と契約の大きさを引く |
| AI by Zapier | Zap の手順 | 理由の分類 |
| 解約理由の台帳 | Google Sheets の行の追加 | 申請と分類の結果を1行で記録 |
| サポートのチケット管理 | Zapier のアクション、またはメールでの起票 | 分岐Aの件をチケットにする |
| 社内チャット | Zapier のアクション | 担当者への連絡と受付の窓口 |
台帳への記録を Paths の前に置くのは、Paths の制約のためです。 Paths の手順を足すと、それが Zap の最後の手順になります。 分岐の後ろに共通の記録の手順は置けないので、全件に必要な記録は分岐の前で済ませます。 分岐の後ろで記録しようとすると、分岐の数だけ同じ手順を作ることになります。
自社サービスと顧客台帳には書き込みません。 解約の手続きを変える経路を、この構成は持ちません。担当者が引き留めの話をして取り下げになった場合も、取り下げの操作は顧客自身か担当者が管理画面で行います。
分岐Aでは、サポートのチケットに自由記述をそのまま入れます。 要点は添えますが、サポートが読むのは顧客が書いた文です。 担当者がいる会社なら、担当者にも「サポートで調べている」とだけ知らせ、引き留めの連絡はサポートの回答が出るまで待ってもらいます。
人が確認する
人が読むのは、受付の窓口に回ったものと、毎日の終わりの流し見です。 分岐AとBの件は、それぞれの担当者が対応の中で読むので、受付の担当者は開きません。
- 受付の窓口に回ったものを読む … 自由記述と選択肢を読み、行き先を決めて担当者に回します。台帳の分類も、その場で直します
- 毎日の終わりに、その日の台帳を流し見る … 理由の種類と行き先の列だけを上から見て、明らかな誤りを直します
- 担当者から戻ってきた誤りを記録する … 「不具合ではなく使い方の問題だった」「引き留めの余地は無かった」を台帳の訂正の列に残します
- 月に一度、訂正の多い種類を見る … 同じ種類の誤りが続くなら、分類の手引きの例文を足します
3番目が、この構成を育てる記録です。 AI by Zapier は実行のたびに学習する仕組みではありません。 誤りを直しても、次の申請の分類は変わりません。直すには、分類の手引きの例文を人が書き足すしかなく、 そのための材料が訂正の列です。
目標は、450件をならして1件2分です。 受付の窓口に回るのが2割前後という想定で、それより多い月は、選択肢と自由記述の食い違いが増えているか、分類の手引きに無い理由が出てきています。
例外に対処する
| 起きること | 対応 |
|---|---|
| 顧客台帳に会社IDが無い | 行を作らずに受付の窓口へ。台帳の整備漏れを先に疑う |
| 担当者の欄が空 | 分岐Bの件は、カスタマーサクセスの共有のチャンネルへ回す |
| 自由記述が外国語 | そのまま分類させる。confidence が low なら受付の窓口へ |
| 自由記述に強い苦情や個人への批判 | 分類はそのまま行い、受付の窓口にも写しを送る |
| 同じ申請が二度届く | 申請IDで台帳を引き、二度目は処理しない |
| AI by Zapier がエラーを返す | 分類せずに受付の窓口へ。申請は台帳に「未分類」で残す |
| Zap が止まっていた | 自社サービスの送信済みの印と台帳を毎朝突き合わせ、漏れを再送する |
| 解約が取り下げられた | 自社サービスから取り下げを送り、台帳の行に印を付ける |
6行目で「未分類」を残すのは、件数を合わせるためです。 分類に失敗した申請が台帳から消えると、月の解約件数と台帳の件数が合わなくなり、 どの申請が漏れたかを後から探すことになります。
7行目は第7章のトリガーで書いた、Zap を止めたときの問題への備えです。 止めた直後の数時間は200が返るため、送った側の記録と受けた側の記録を突き合わせる以外に、漏れを見つける方法がありません。
記録を残す
- 申請の内容(選択肢・自由記述)と、受け取った日時
- 分類の結果(7項目すべて)と、そのとき使った分類の手引きの版
- 行き先(分岐A・B・C・Fallback のどれに入ったか)と、連絡した相手
- 人が分類を直した記録 … どの項目を、何から何に変えたか
- 担当者の対応の結果(連絡が取れた、取り下げになった、解約どおり)
- Zapier の Zap の実行の履歴(エラーになった実行を含む)
2つ目の「手引きの版」は、月ごとの比較のために残します。 例文を足すと分類の傾向が変わるので、「機能不足が先月より増えた」が顧客の変化なのか手引きの変化なのかを、版で見分けます。
5つ目の対応の結果は、引き留めの余地の付け方が合っていたかを確かめる材料になります。 high が付いた件の取り下げの割合が medium と変わらないなら、余地の高さの付け方を見直す時期です。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ貼り付けるので、月450件には使えません。分類の手引きを固めるための段階です。 半自動化で、1件6分が2分になり、この段階が本記事の想定です。 理由の分類、担当者を探す作業、書き写す作業、台帳への記入が自動になり、受付の担当者に残るのは、迷った申請を読むことと流し見だけです。 本格構成は、工数よりも振り分けの質のための段階です。 対応の結果が戻ると、どの理由が実際に取り下げにつながったかが分かります。
05工数削減シミュレーション
導入後 450件 × 2分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 中小企業向けの業務SaaSや、オンライン学習・定期購入などのサブスクを提供し、解約の申請を自社の画面のフォームで受け付けている会社。月に数百件の解約申請があり、理由の選択肢と自由記述をカスタマーサポートの担当が1件ずつ読んで、カスタマーサクセスとサポートに手で振り分けている場合。不具合が理由の解約が開発やサポートに伝わらないまま終わっている場合。Zapier の有料プランを使える場合。
- 解約が月に数十件で、担当者が全件を読んでも負担にならない場合。解約の理由を聞いておらず、フォームに自由記述の欄が無い場合。解約の申請を電話や書面でしか受け付けていない場合。なお、値引きや契約の変更を提案するかどうかの判断と、解約そのものの手続きは、この構成では行いません。
07最小構成で試す方法
- 先月の解約申請から50件を選ぶ(うち数件は、自由記述に不具合が書かれていたものを入れる)
- その50件を、当時の受付の担当者がどこへ回したか、台帳にどの理由で記録したかを書き出す
- 50件の選択肢と自由記述を、手元のAIサービスの画面に数件ずつ貼り付ける
- 第7章の指示文を貼り、理由の種類・引き留めの余地・不具合の有無を返させる
- 返ってきた分類を、当時の振り分けと突き合わせる
50件は必ず人が当時の振り分けと並べてください。 Zap を組む前に、「この分類の手引きで、受付の担当者と同じ振り分けになるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時の振り分けとほぼ同じになった | Zap を組む段階に進む |
| 自由記述の不具合を見落とした | 指示の書き方で直る。bug_reported の条件を強く書く |
| 当時の振り分けのほうが間違っていた | 基準を受付の3名でそろえるところから始める |
3行目が出ることは珍しくありません。 第3章の(c)のとおり、今の振り分けは担当者ごとに違います。AIとの食い違いを1件ずつ見ていくと、3名のあいだの基準の違いが表に出ます。 そこで基準を決めることが、この構成の最初の成果になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 不具合の申請がカスタマーサクセスにも回る | 分岐の条件を重ならないように書く。条件を満たした分岐はすべて動く |
| 分岐の後ろに記録の手順を置けない | Paths は最後の手順になる。 記録は分岐の前で済ませる |
| 選択肢に引っ張られて不具合を見落とす | 理由の種類と不具合の有無を別の項目にし、指示に明記する |
| 空欄の申請に理由が付く | free_text_empty を渡し、unknown を返させる |
| 要点に不具合の原因の推測が入る | 原因と対処を書かないことを指示に入れる |
| Zap を止めている間の申請が消える | 止めた直後も200が返ることがある。送信済みの印と台帳を突き合わせる |
| Webhook の失敗で解約ができなくなる | 解約の受付と送信を分け、送信の失敗で解約を止めない |
| 会社名で台帳を引いて見つからない | 会社IDで引く |
| 台帳に無い会社の行が勝手に増える | 見つからないときに行を作る設定を使わない |
| 分類を直しても次から変わらない | 学習はしない。訂正の列から例文を手引きに足す |
| 引き留めの連絡が多すぎて担当者が回らない | 契約の大きさで分岐Bの範囲を規則で絞る |
| 顧客に自動で連絡が飛ぶ | 作らない。 連絡は担当者が自分で行う |
上の2行が、この構成の失敗のほとんどです。 どちらも Paths の動き方から来ています。分岐は1本だけが選ばれるのではなく、条件を満たしたものがすべて動き、しかも最後の手順になる。 これを知らずに組むと、二重の連絡と記録の漏れが同時に起きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 契約している会社の名前と契約の内容、利用の状況、解約の理由として顧客が書いた自由記述です。自由記述には、担当者の名前や社内の事情が書かれていることがあります。
- 解約の手続きを妨げない … この構成は、申請された解約を止めたり遅らせたりしません。引き留めの連絡は解約の手続きと並行して行い、 連絡がつかないことを理由に解約を保留にしないでください
- 外部へ渡す範囲を分類に必要な項目までに限る … AI by Zapier に渡すのは、選択肢、自由記述、契約と利用の情報までです。会社名や担当者の連絡先は渡しません。 自由記述の中の電話番号やメールアドレスは前処理で伏せます
- 使うモデルの提供元を決めておく … AI by Zapier は複数の提供元に対応し、自社のキーも使えます。どの提供元のどの契約で処理されるかを、自社の取り扱いの基準と照らして決めます
- 自由記述の苦情を個人の評価に使わない … この台帳を社員の評価の材料にする用途は、別に決まりを作ってからにしてください
- 顧客への自動の連絡を作らない … 分類の結果を使って、顧客に割引の案内を自動で送る作りは避けます。解約を申し出た顧客に、読まれていない前提の定型文が届くのは逆効果です
- 台帳を見られる人を絞る … 解約理由の台帳は、どの会社がなぜ離れたかの一覧です。カスタマーサポートとカスタマーサクセスの担当者に限って共有します
誤りが起きた場合のリスクは、不具合の申請がサポートに届かないことと、余地の無い顧客に引き留めの連絡が行くことの2つです。 前者は bug_reported を理由の種類と分けることで、後者は Fallback と規則で範囲を絞ることで防ぎます。どちらも、AIに行き先を決めさせないことから出ている対策です。
10まず何から始めるか
1週目:理由の種類と例文を決める
受付の3名で、先月の申請を20件ほど読みながら、第7章の8種類の理由と引き留めの余地の付け方を、自社の言葉で決めます。 種類ごとに実際の自由記述から例文を2〜3文選び、分類の手引きにします。
2週目:50件で試す
先月の申請から50件を選び、手元のAIサービスで分類させます。当時の振り分けと並べ、不具合の申請を見落としていないかを最優先で見ます。
3週目:行き先の規則を決める
どの理由のどの余地なら、カスタマーサクセスへ回すのかを、カスタマーサクセスの責任者と決めます。あわせて、不具合の申請をサポートでどう受けるか、チケットの起こし方をサポートと決めます。
4週目:Zap を組む
自社サービスから Webhook へ申請を送る処理を足し、Zapier で受け取り、分類して台帳に記録するところまで作ります。この時点では Paths を付けず、台帳の分類だけを1週間見ます。
2か月目: Paths を足して行き先へ回し、受付の窓口に回る件数を毎週数えます。3か月目以降: 担当者の対応の結果を台帳に戻し、引き留めの余地の付け方と行き先の規則を見直します。受付の担当者が全件を読まなくなり、不具合の申請が毎月サポートに届くようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Catch Hook が GET・PUT・POST の要求の本文を解析すること。Catch Raw Hook は解析しない本文とヘッダーを返し、2MBまでであること。JSONの配列を送ると要素1つごとに動くこと。トリガーの本文が10MBまでであること。Zap を止めたり消したりすると404を返すが、切り替わりまで数時間かかり、その間は200を返すこと。Free プランでは使えず、Professional・Team・Enterprise のプランで使えること | Zapier: Trigger Zap workflows from webhooks | 2026-10-06 |
| AI by Zapier が Zap に生成AIの手順を足す組み込みの道具で、OpenAI、Anthropic、Google Gemini、Azure OpenAI、Amazon Bedrock に対応し、自社のキーも使えること。名前・型・説明つきの出力のフィールドを定義でき、後ろの手順に渡せること。Standard は1タスク、Advanced は3タスク、Premium は5タスク、自社のキーは1タスクであること。実行のあいだで学習しないこと。Professional・Team・Enterprise のプランで使えること | Zapier: Use AI by Zapier to analyze and return data | 2026-10-06 |
| Paths の分岐に「独自の条件」「常に実行」「Fallback」の3つの規則があり、Fallback は1グループに1つであること。1グループに最大10本の分岐を置けること。分岐は左から順に1つずつ実行されること。Paths と Filter の手順はタスクに数えられないこと。Paths を足すと、それが Zap の最後の手順になること。Free プランでは使えないこと | Zapier: Add branching logic to Zap workflows with Paths | 2026-10-06 |
| Lookup Spreadsheet Row が探す列と値を指定し、最後の行から探す設定と、見つからないときに新しい行を作る設定を持つこと。補助の検索列を指定できること | Zapier: Find and update spreadsheet rows in Google Sheets on Zapier | 2026-10-06 |
引き留めの連絡をする範囲と、値引きや契約の変更を提案するかどうかは、カスタマーサクセスの責任者が決めてください。 本記事は、製品の公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0622)についてのご相談はこちらから。
