サブスクリプションを運営していると、毎月一定の割合で「カードが通らない」というイベントが必ず発生します。 Stripe には Smart Retries が内蔵されているので大半は自動でリカバーできますが、カードの有効期限切れや番号変更など、リトライをいくらかけても絶対に通らない失敗もあります。こうした「リトライでは絶対に救えない決済」を、顧客とのコミュニケーションで取り戻すことを目的にした SaaS が DunnAI です。Stripe App Marketplace に並んでいるのを見かけたので、自分の Stripe アカウントにインストールして動きを確認してみました。

DunnAI とは何か
DunnAI は、 KozaWings Inc. が提供している Stripe 連携型のリカバリ SaaS です。 DunnAI は公式サイトで「SaaS 事業者は毎月 MRR の 5〜9% を失敗決済で失っている」という数字を掲げており、 Stripe のリトライ機能だけでは救えないケースを「顧客への個別メール」で取り戻すというアプローチを取っています。
公式サイトの説明を読んでいて面白いと感じたのは、失敗決済を「リトライで救えるもの」と「リトライでは絶対に救えないもの」に切り分けて整理している点です。前者は残高不足や一時的なカード制限といった、時間を置けば解決するタイプの失敗。後者はカード期限切れ、カード番号の変更、銀行によるブロックなどで、こちらは何度リトライしても絶対に通りません。 DunnAI が解決しに行くのは、明確に後者です。
後者を救うために、 DunnAI は「Maya」「Leo」「Nora」など 9 種類の Recovery Persona を持っていて、失敗の理由ごとに最適なメッセージを最適なタイミングで顧客へ送ります。 Day 1 にリトライと初回メール、 Day 3 にリマインダー、 Day 7 にサービス停止予告という 3 段階のエスカレーション設計です。「リトライを増やす」のではなく「顧客に会話を届ける」という発想で設計されているのが、 Stripe の Smart Retries との一番の差分だと感じました。
Stripe App Marketplace からインストールする
DunnAI は Stripe App として配布されているので、 Stripe Dashboard にログインした状態で Marketplace のアプリページ を開き、「Install app」ボタンをクリックするだけで導入できます。 API キーをコピペする必要はなく、 Stripe の OAuth フローでそのまま接続されます。

Marketplace ページの左カラムには、提供元・対応ダッシュボード・対応サンドボックスの情報が並んでいます。注意点として、 DunnAI は「Sandbox testing not available」と明記されています。動作確認をしたい場合は、本番アカウントに直接インストールする必要がある点だけ覚えておくと良さそうです。
「Install app」を押すと、アプリが Stripe アカウントへリクエストする権限の一覧がモーダルで表示されます。

権限要求が並んでいますが、 Account / Charges and Refunds / Customers / Invoices のすべてが Read-only になっています。公式サイトの説明を読むと、書き込み権限を持つのは「失敗済み Invoice のリトライ」だけで、新規 Charge を作る権限や決済手段を変更する権限、 transfer や payout 系の権限は一切要求しないと明言されています。決済アカウントへの権限付与は毎回緊張する作業ですが、 DunnAI の要求権限は素直に「リカバリ機能の動作に必要な分しか取らない」という設計になっていて、納得感のある内容でした。
権限を確認して「Install in live mode」で進めるとインストールが完了し、確認画面が表示されます。

Stripe CLI も Webhook 設定も触らず、ボタン数回でインストールまで進めました。 Stripe Apps のインストールフローはいつ触っても短いですが、リカバリ系のサービスをここまで簡単に Stripe アカウントへ繋げられるのは、運用責任を負う立場からするとそれなりにインパクトのある体験だと感じます。
Stripe Dashboard 内に DunnAI ウィジェットが現れる
インストールが完了すると、 Stripe Dashboard の右側に DunnAI のサイドパネルが表示されるようになります。トップ画面ではアプリ全体の説明と、 DunnAI 本体ダッシュボード(getdunnai.com)への導線が表示されます。

面白いのは、 Stripe の顧客詳細ページを開いたときの挙動です。顧客ごとに DunnAI のリカバリ状態が右側のパネルに表示され、その顧客に失敗決済が無い場合は ✅ All Clear / No failed payments for this customer. と表示されます。

Stripe Dashboard を操作している人が、わざわざ DunnAI の管理画面に切り替えなくても、その顧客に対するリカバリの状態がその場で確認できるのは普通に便利です。 Stripe Apps が「ダッシュボード組み込み」を売りにしている理由は、こういう「文脈を離れない情報提示」を作れる点にあるなと改めて思いました。
DunnAI 本体ダッシュボードを開いてみる
パネル内の「Open DunnAI Dashboard」リンクから、 getdunnai.com 側の本体ダッシュボードへ移動できます。こちらが DunnAI のメイン画面です。

画面上部に「DunnAI is actively monitoring your Stripe account」というステータスが表示され、 REVENUE RECOVERED / EMAILS SENT / RETRIES ATTEMPTED / SUCCESS RATE の 4 つのメトリクスがカード形式で並んでいます。 Activity 欄では、 DunnAI が実行したアクション(リトライのスケジュール、メール送信など)がイベント単位で時系列に並びます。今回の画面では retry_scheduled イベントが記録されていて、「2 retries scheduled. Next in 24h.」と次回リトライまでの時間が表示されています。各イベントには「Why did DunnAI do this?」というリンクがあり、 DunnAI の判断根拠を後から追えるようになっています。
もう一つ目を引いたのが料金体系の表示です。上部に「Recovered $0 / $49 · Free until then」というプログレスバーが置かれていて、 DunnAI が $49 を回収するまでは課金が発生しない仕組みが、ダッシュボード上でそのまま可視化されています。 SaaS が SaaS に対して「成果報酬」を出すのはそれなりに尖った設計で、ダッシュボードのトップにこのバーを置くという見せ方も、提供側の自信の表明として効いていると感じました。
触ってみた感想
DunnAI は「Stripe の Smart Retries で救えない失敗決済を、顧客とのコミュニケーションで取り戻す」という、かなり明確に絞り込まれたユースケースを持った SaaS でした。 Stripe Apps として配布されているため、 API キーの発行やウェブフックの設定を一切触らずに、ボタン数回で Stripe アカウントへ接続できる点と、要求される権限が必要最小限(書き込みは失敗 Invoice のリトライのみ)になっている点は、運用責任を持つ立場として安心して触れる設計だと思います。 SaaS のリカバリ施策を内製するコストとの比較で考えると、「Free until $49 recovered」という料金体系も、最初の一歩を踏み出す心理的ハードルを下げる作りになっていて、よく出来ているなと感じました。
失敗決済のリカバリは、 Stripe の Smart Retries を入れて満足してしまいがちな領域です。けれども実際には「リトライでは絶対に通らない決済」が常に一定割合で残り続けるので、そこを顧客との会話で取り戻すというアプローチは、サブスクリプション運営者が一度は試してみる価値のある考え方だと思います。