Slide 1

Slide 1 text

AWSでローコードにはじめる サブスクリプション運用の効率化 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ @hidetaka_dev Npv 2022 1 #AWSStartup

Slide 2

Slide 2 text

今日のトピック ● サブスクリプションサービスは、 「契約してから」が本番 ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで ローコードにサブスクリプションの運用WFを構築しよう ● 変化に素早く対応するために、 AWSのローコード・Serverlessツールを活用しよう 2 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 3

Slide 3 text

岡本 秀高 ( @hidetaka_dev ) ● Stripe Developer Advocate (ex-developer in Digitalcube) ● JavaScript / TypeScript developer ○ AWS Lambda / CDK ○ Next.js / React ○ WordPress / Alexa / etc ● AWS Samurai 2017 / AWS Community Day APAC 2017 ● QiitaでStripeに関する Dev blogを週2/3本で更新中 ○ https://qiita.com/hideoka moto ○ 年間120記事ペース 3 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 4

Slide 4 text

今日のトピック ● サブスクリプションサービスは、 「契約してから」が本番 ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで ローコードにサブスクリプションの運用WFを構築しよう ● 変化に素早く対応するために、 AWSのローコード・Serverlessツールを活用しよう 4 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 5

Slide 5 text

サブスクリプションは、「契約してからが本番」 ● サブスクリプションは、「契約し続けてもらう」必要がある ○ 使わないサブスクサービスは、解約される ■ 競合他社への乗り換え: 「もっと安いor便利なサービスにしよう」 ■ 需要の消失: 「子どもが成長したので、もう使わない」 ○ 「完全に解約」したいのか、「今だけお休み」したいのか ■ 長期出張のため、食品の定期注文を解約したい ■ 今期は見たい番組や作品がないから解約したい 5 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 6

Slide 6 text

解約・休会以外にも、サブスクには状態変化が多数ある ● サブスクリプション = 長期的な顧客との関係構築 ● さまざまなイベントや状態変化が発生する ○ カードの更新忘れや銀行振込の入金忘れ ○ 上位プランユーザーによるプランのダウングレード ○ ユーザーのミスによる高額な従量課金請求書の発行 ● 「契約や顧客の状態」が変わったことの検知と、 それに対応するフローの自動化が社内の運用コストや顧客体験を改善する 6 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 7

Slide 7 text

ただし・・・ ● 緊急性の高い問題(二重決済、不正請求対応など)以外は、 コア機能の開発にリソースを優先したい ● 休会や解約、顧客・契約情報の更新などは、 頑張れば人力である程度サポートできる ● 「重要だけども、緊急性の高くない非コア要件」を どのようにシステム化、効率化していくか? 7 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 8

Slide 8 text

Amazon SNSやAWS Chatbotでまずは社内通知から ● SNSを利用した社内通知 ○ Chatbot併用でSlackにも ● まずは「何かが起きた」ことを 素早く検知できる仕組みを作る ○ 顧客が問い合わせて来る前に 調査や対応を済ませたい ○ 人力でのサポートは継続 ただし初動が早くなる ● EventBridgeのルールなどで 要対応イベントかを事前トリアージ ○ 「オオカミ少年」化を回避する 8 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 9

Slide 9 text

AWS Step Functionsで、WFをローコードに ● ドラッグ&ドロップで AWS上にワークフローを構築可能 ● AWS APIの呼び出しやWF手動実行も GUIから設定・操作できる ● 設定をJSONなどで出力できるので、 「手軽に試して、手堅く運用」が可能 ○ ローコードにWFを試作 ○ テスト環境で評価 ○ CDKやCFNでコード化 ○ Go Live ! 9 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 10

Slide 10 text

ユーザー・契約の「状態」をシステムで把握する ● 個々の契約や顧客の状態を人力で把握するのは難しい ○ システム化・仕組み化して、素早く効率的に変化を検知する ○ ローコードでWFの試作・評価サイクルを素早く回す ● Q:「作ったWF」と「状態変化」をどう紐づけるか? ○ 手動実行(GUI / API / CLI / etc..) ○ Webhook API ○ AWSのイベント駆動型サービスを利用する ■ SQS, SNS, EventBridge 10 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 11

Slide 11 text

今日のトピック ● サブスクリプションサービスは、 「契約してから」が本番 ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで ローコードにサブスクリプションの運用WFを構築しよう ● 変化に素早く対応するために、 AWSのローコード・Serverlessツールを活用しよう 11 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 12

Slide 12 text

EventBridgeで、「状態の変化」とWFを紐づける ● 「発生したイベント」と 「実行したいWF」の 関係性(ルール)を作る ● AWS内のイベントや、 連携SaaSのイベント、 AWS SDKによる手動通知に対応 ● StripeやTwilioなどは、 クイックスタートで Webhookエンドポイントを用意 12 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ https://aws.amazon.com/jp/about-aws/whats-new/ 2022/08/amazon-eventbridge-supports-receiving- events-github-stripe-twilio-using-webhooks/

Slide 13

Slide 13 text

クイックスタート利用の場合 Sourceでstripe.comを指定 detail-typeで Stripeのリソース名を指定 detailで、JSON構造に対応した 条件を書くと、絞り込み 右の例: 「5000円以上の請求書」に 関する全てのイベント 13 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ EventBridgeでのStripeイベントのフィルター例

Slide 14

Slide 14 text

Webhook活用例1: フリートライアルのフォローアップ ● Stripeの「customer.subscription.trial_will_end」イベントを利用 ○ 3日前または手動でトライアルを終了させた場合に発火 ● Step FunctionsからSESで顧客に追加のフォローアップメール送信 ○ 自動解約の場合、リソースやアカウント削除などの注意喚起 ● Pinpointを使えば、LINEやSMSへの追加送信も可能 ○ ユーザー層によっては、メールよりもLINEやSMSが有効な場合も ○ LINE Message APIでは、プランアップグレードのCTA誘導なども可能 14 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 15

Slide 15 text

Webhook活用例2: 長期利用顧客のアップグレード提案 ● customer.subscription.updatedイベントを利用 ○ サブスクリプションの開始日と現在を比較 ○ 「12ヶ月以上契約の月額プランユーザー」などでフィルタ ● SESやPinpointで、顧客に年額プランなどの長期プランを自動提案 ● DynamoDBに累計支払額や契約数などを保存することで、 DynamoDB Stream経由で優良顧客の発見も可能 15 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 16

Slide 16 text

Tips: Stripe APIを呼び出すProxy Lambda 16 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ https://gist.github.com/hideokamoto-stripe/b1ed354a65f386db8218330252287b7d #AWSStartup

Slide 17

Slide 17 text

AWSリソースを活用して、サブスクの運用を効率化 ● Event Bridge + Step Functionsで、 コードを書かずにワークフローを作ることができる ● Event Bridge -> SNS -> Chatbotで、 社内Slackやメーリスに状態変化を通知するだけでも有用 ● Step Functions Workflow Studioを使って、 さまざまな運用効率化施策をローコードで実現させてみよう ○ 本番稼働させる際は、ぜひCDKやCFNでコード管理を 17 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 18

Slide 18 text

今日のトピック ● サブスクリプションサービスは、 「契約してから」が本番 ● Amazon EventBridge + AWS Step Functions & AWS Lambdaで ローコードにサブスクリプションの運用WFを構築しよう ● 変化に素早く対応するために、 AWSのローコード・Serverlessツールを活用しよう 18 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 19

Slide 19 text

「ビジネスのコア機能」じゃないからこそ、ローコード ● 開発リソースはコア機能の開発や改善に使いたい ● クリティカルではない決済・サブスク周りの施策は 「あればいいね」「できたら便利そう」になりやすい ○ Workflow Studioなら、 テスト環境で実際に動くものを用意・デモしやすい ○ 想定外のエラーや障害を起こさないために、 稼働しているDBや既存リソースの設定はなるべく触らない ● テスト環境で手早く試して、早く小さく失敗する 19 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 20

Slide 20 text

うまく行った改善は、Next SaaSの種 ● 自社でニーズのある改善は、他所でもニーズがあるかもしれない ● 疎結合なシステム構成を維持することで、 作ったシステムをas a service化する ● SaaS化する際にも、AWSは無限に使い倒そう ○ AWS Amplify (Cognito, Amplify SDK, Amplify Studio, etc..) ○ AppSync, API Gateway, Lambda, DynamoDB, ○ AppRunner, Fargate, ECS, etc 20 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 21

Slide 21 text

Stripe Appsの例: kintoneとStripeで顧客データ連携 21 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup

Slide 22

Slide 22 text

サブスクリプションシステムからDXをはじめよう ● 決済系SaaSを活用して、サブスクリプションの組み込みを効率的に ○ 効率化した分、 「契約し続けてもらうための施策」を決済方面からもトライしよう ● Webhookを活用して、「顧客や契約の状態変化」へ システムや社員がスムーズな対応ができる環境を目指そう ● 成功した施策や企画を抽象化して、 Stripe Appsなどで新しいas a Service化を目指そう 22 AWS Startup Tech Meetup 福岡 #2 ~ いくぜ!サーバーレス! ~ #AWSStartup