Upgrade to Pro — share decks privately, control downloads, hide ads and more …

StripeとNotion、AIで作る決済自動化の裏側

 StripeとNotion、AIで作る決済自動化の裏側

Avatar for Nakano as a Service

Nakano as a Service

July 29, 2025
Tweet

More Decks by Nakano as a Service

Other Decks in Programming

Transcript

  1.     +  Notion +  AI

    コミュニティ運営の救世主! Stripe とNotion 、AI で作る決済自動化の裏側 株式会社INFLU 中野 匡浩
  2. 自己紹介 中野 匡浩(まさひろ)  Nakano as a Service  役職

     株式会社INFLU のエンジニア  LINE でEC プラットフォーム「気軽にEC 『Lea = レア』 」のサブプロ ダクト 「レアパートナー」のPO  弊社コミュニティ運営の効率化プロジェクトリーダー  最近ハマっていること TypeScript のしょぼいライブラリ作成  UUID 短縮ライブラリ  UUID58  関数向けDI ヘルパー  Injecfn  エラーハンドリングヘルパー  tagged-error    
  3. 事業紹介 株式会社INFLU について  マーケティング支援コミュニティを運営  「生徒」に「講師」が伴走し、開業やローンチをサポート ビジネスモデル  生徒は月額会費制

     Stripe のPayment Link 機能でサブスクリプションを契約 月額会費の決済フロー  Payment Link   サブスク契約   月次自動決済  生徒 成長を目指す   INFLU コミュニティ運営   講師 専門知識を提供 マッチング・サポート   
  4. 私たちが抱えていた課題  増え続ける未払い対応 😱  生徒数の増加に伴い、会費の未払い対応が増加  このままではバックオフィス業務が破綻する危機  担当者の悲鳴

     " 誰が未払い?誰が支払済み?"  " 支払い状況のリアルタイムな把握が困難..."  " 対応しきれず、連絡が追いつかない..." 決済回収率  回収率の平均: 56% 支払い状況の管理が混乱  情報が散在  状況が変化  対応遅延 ? ✓ ? !   
  5. 1 Step 1 - Stripe リカバリーメールの有効化 やったこと  Stripe リカバリーメールの有効化

    - 決済失敗時に自動送信されるメール  見落としがちですが、これが最も簡単で効果的な施策!  特別な実装は一切不要 - Stripe ダッシュボードの設定のみ 効果  回収率が58% から86% に改善 🎉 リカバリーメールの仕組み  決済失敗   自動メール送信   支払い再開 月別回収率の推移 回収済み 未回収 回収率 導入前 導入後 未払い回収率が28% 向上! リカバリーメール導入   
  6. Step 2 – 決済状況の見える化 やったこと:決済失敗をDiscord に通知  Stripe からの通知をトリガーに、担当者チャネルへ自動投稿 

    リアルタイムで問題を検知できる環境を構築 運用方法  担当者が通知を確認後、Notion のカンバンに手動でタスクを起票  対応完了後、ステータスを手動で更新 新たな課題  決済が完了しても、Notion のステータスを手動で「完了」にするのが面倒...  コンプライアンス上、担当者はStripe ダッシュボードにアクセスできない 決済通知の流れ  Stripe 決済失敗を検知  make.com (ノーコードIPaaS )   Discord 担当者チャネルに通知   Notion タスクを手動で起票・完了 Notion カンバンでの課題 未対応 山田さん 2 回目の決済失敗 鈴木さん カード有効期限切れ 対応中 佐藤さん LINE 連絡済み 完了  手動更新が必要:決済完了の確認と「完了」へのステータス変更 田中さん 再決済完了   
  7. Step 3 - 本格的な自動化へ やったこと:Stripe Webhook × Notion API 

    決済失敗 → Notion カンバンに自動でタスクを追加  決済完了 → Notion カンバンのタスクを自動で「完了」に移動 開発の裏側  Cursor AI を活用し、ほぼ日本語の指示だけでコードを生成  少ない実装コストで、担当者のステータス管理業務をゼロに! // Cursor AI で生成したコードの例 app.post('/webhook', async (c) => { const body = await c.req.text() const sig = c.req.header("stripe-signature") event = stripe.webhooks.constructEvent(body, sig, "secret") if (event.type === 'invoice.payment_failed') { await notion.pages.create({ parent: { database_id: NOTION_DB_ID }, properties: { ... } }); } }); 自動化システムの仕組み  Stripe Webhook 決済イベント(成功/ 失敗)を検知 カスタマーID を含むペイロードを送信  API 処理サーバー Webhook イベントの種類を判定 Notion データベースのクエリ・更新 AI 生成コード がここで活躍!  Notion API タスクの自動追加・移動を実行 担当者は実際のカンバンでタスクを確認 未対応 対応中 完了   
  8. Step 4 LINE 連携でコミュニケーション自動化 次なる目標  生徒との主な連絡手段はLINE  手動での催促メッセージ送信をなくしたい 

    決済失敗時に自動で催促通知を送信 実現への壁  「Stripe の顧客」と「LINE の友だち」をどうやって紐付ける?  顧客ID とLINE ユーザーID の対応関係が不明  プライバシーとセキュリティを保ちながら連携する必要がある 現状 vs 目標 現状:手動対応      担当者による手動メッセージ 時間と手間がかかる 目標:自動通知      決済失敗を自動検知 LINE に自動通知 ID 紐付けの技術的課題 ?  Stripe 顧客情報 customer_id: cus_xxx email: [email protected] name: 山田太郎  LINE ユーザー情報 userId: U1234xxx displayName: やまだ pictureUrl: https://line... 紐付け方法が不明      
  9. LIFF アプリでID 連携を実現 仕組みの全体像 1 Notion 生徒名簿にStripe カスタマーID を手動で記録 2

    Notion 関数機能で生徒ごとのユニークURL を自動生成 3 生徒がURL をタップするとLINE 上でLIFF アプリが起動 4 LIFF アプリがLINE ユーザーID を取得し、Stripe メタデータに保存 これにより、Stripe カスタマーID とLINE ユーザーID の紐付けが完了! ID 連携プロセス  Notion 生徒名簿 Stripe カスタマー情報管理   Stripe カスタマーID 決済情報と連携   Notion 関数機能 自動URL 生成   ユニークURL 生徒ごとに固有のリンク   生徒 URL をタップ   LIFF アプリ LINE 上で起動   LINE ユーザーID ユーザー識別子   Stripe メタデータ 顧客情報に保存   
  10. LINE 連携が実現する体験 実現できること  決済失敗通知の自動化 決済に失敗した顧客のLINE へ、自動で催促メッセージを送信  顧客ポータルへの簡単アクセス LINE

    からいつでもStripe カスタマーポータルへアクセス可能に  カード情報変更の簡素化 LINE 上で簡単にクレジットカード情報を更新できる  ユーザーのアクション不要で完結:摩擦が少なく、継続率向上に貢献 決済失敗時の自動催促フロー  決済失敗   Webhook   LINE 通知  LINE で通知 「会費のお支払いに失敗しました。下記の リンクから更新をお願いします」 1  ポータルアクセス LINE からStripe カスタマーポータルへ直接 アクセスし、支払い情報を管理 2   
  11. 挑戦中:さらに高度な自動化 課題:長期未払いからの復帰  2 ヶ月以上未払いの場合、未払い期間分もまとめて請求したい  Stripe の標準機能では、サブスク再開はできても滞納分の一括請求はできな い 構想と現状

     構想:LIFF アプリ上で未払いを自動検知し、滞納分を合算した請求を動的に 生成  現状:テストの難易度が高く、まだ本番投入には至らず(今後の展望) 長期未払い自動検知・請求システム(構想)  現在の技術的ハードル:Stripe のサブスクリプション再開と過去分一括請求 の両立 LIFF 起動・自動ログイン ユーザーがLIFF アプリを開くと自動でログイン 計画段階 Stripe から履歴取得 Stripe API で過去の支払い記録を照会 開発中 滞納金額の自動計算 未払い月数 × 月額 + 今月分を自動計算 技術課題あり 動的決済リンク生成 Stripe API で滞納分を含めた一括決済リンクを生成 計画段階       
  12. まとめ  伝えたいこと Stripe, Notion, 少しのコード, そして AI があれば、 決済業務は劇的に改善できる!

    1 簡単な自動化から始める  リカバリーメールなどの 標準機能を有効活用 コスト:低 効果:高 2 API で連携を活用  API やWebhook を使えば サービス間の連携は意外と簡単 コスト:中 効果:高 3 AI でコスト削減  AI (Cursor など)を活用すれば 開発コストを大きく削減できる コスト:低 効果:高  次のステップ ビジネスの成長に合わせて、自動化の範囲を徐々に拡大していくことで、 より複雑な課題にも対応可能に。 技術スタック: + Notion + AI   