0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Stripe Updates] Customer Portalから定期課金をキャンセルする際に、「キャンセル理由」を聞くことができるようになります

Last updated at Posted at 2022-02-16

定期課金サービスを提供する上で、「なぜ顧客は解約したか」を知ることはとても重要です。
そのため、さまざまな企業やサービスで、解約時にアンケートを行うシステムを開発・実装しています。

Stripeを利用している場合、Customer Portalを利用することで、この解約理由アンケートを簡単に実装することができます。

Dashboardから設定する

もっとも簡単な設定方法は、Dashboardからの操作です。
[設定 > カスタマーポータル]から、[顧客によるサブスクリプションのキャンセルを許可]を有効化しましょう。

スクリーンショット 0004-02-03 19.05.36.png

その後、[キャンセル理由を収集する]をオンにします。

スクリーンショット 0004-02-03 19.05.41.png

[理由を編集]ボタンをクリックすることで、アンケートでユーザーが選択できる項目をカスタマイズできます。

スクリーンショット 0004-02-03 19.05.46.png

Customer Portalでのキャンセル理由アンケート画面を確認する

設定した内容の表示を確認してみましょう。
Stripe CLIを使うことで、簡単にURLを作成できます。

$ stripe billing_portal sessions create --customer cus_xxxx| jq .url
"https://billing.stripe.com/session/test_xxxxxxx"

サブスクリプションをキャンセルしてみましょう。

スクリーンショット 0004-02-14 19.23.07.png

キャンセルに成功すると、アンケート画面が表示されます。
回答せずに終了することもできる点には注意しましょう。

スクリーンショット 0004-02-03 19.07.27.png

アンケートの回答結果を確認する

対象のサブスクリプション詳細ページに移動すると、なぜ解約されたかを確認することができます。

スクリーンショット 0004-02-03 19.08.08.png

データの分析を行う場合、Stripe SigmaでSQLを実行する必要があります。

APIから設定する

Customer Portalは、APIからも作成できます。
APIから作成する場合の実装は、以下のようになります。

      const portal = await stripe.billingPortal.configurations.create({
        business_profile: {
          privacy_policy_url: 'https://example.com/privacy-policy',
          terms_of_service_url: 'https://example.com/terms-of-service',
        },
        features: {
          subscription_cancel: {
            enabled: true,
            mode: 'immediately',
+            cancellation_reason: {
+              enabled:  true,
+              options: [
+                'customer_service',
+                'low_quality'
+              ]
            }
          }
        },
        default_return_url: 'https://example.com'
      })

APIから作成した設定を利用してポータルを起動する場合の実装はこちらです。

      const portalSesison = await stripe.billingPortal.sessions.create({
+        configuration: "bpc_xxxxx",
        customer: 'cus_xxxx',
      })

設定のIDは、stripe.billingPortal.configurations.createのレスポンスなどから取得しましょう。

[2024/04追記] SQLを利用した分析方法などについて

SQLを利用した分析方法や、2023年にリリースされたアップデートを反映した記事を公開しました。

こちらも併せてご覧ください。

おわりに

Stripe BillingとCustomer Portalを活用することで、このようにサービス改善に活かせる新機能などを簡単に導入できるようになります。

この他にも便利な機能を用意していますので、ぜひテストアカウントでお試しください。

関連ドキュメント

[PR] Stripe開発者向け情報をQiitaにて配信中!

2021年12月よりQiitaにて、Stripe開発者のためのブログ記事更新を開始しました。

  • [Stripe Updates]:開発者向けStripeアップデート紹介・解説
  • ユースケース別のStripe製品や実装サンプルの紹介
  • Stripeと外部サービス・OSSとの連携方法やTipsの紹介
  • 初心者向けのチュートリアル(予定)

など、Stripeを利用してオンラインビジネスを始める方法について随時更新してまいります。

-> Stripe Organizationsをフォローして最新情報をQiitaで受け取る

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?