はじめに
Slack integration は、成功した支払い、サブスクリプションの変更、異議申し立てなどの Dodo Payments イベントを、選択した Slack チャンネルに投稿します。チームはダッシュボードを確認しなくても、Slack から支払いを追跡し、異議申し立てに対応できます。Slack connector は、各 Dodo Payments イベントを transformation によって Slack メッセージに変換します。transformation は、配信前にイベント上で実行される JavaScript コードです。connector には transformation code が付属しているため、開始時にコーディングは必要ありません。Dodo Payments dashboard の Developer → Webhooks へのアクセス権と、Slack workspace にアプリを追加する権限が必要です。
始め方
1
Open the Webhook Section
Dodo Payments ダッシュボードで、Developer → Webhooks に移動し、Add endpoint をクリックします。

2
Select Slack Integration
Integration で Slack を選択します。ダッシュボードに Slack の transformation code が読み込まれ、How to connect Slack パネルに設定手順が表示されます。

3
Create a Slack Webhook URL
Slack で、通知を受け取るチャンネル用の incoming webhook を備えたアプリを作成します。
- api.slack.com/apps を開き、Create New App をクリックして、From scratch を選択します。
- アプリ名(例:
Dodo Payments Notifications)を入力し、workspace を選択して Create App をクリックします。 - サイドバーで Incoming Webhooks を開き、Activate Incoming Webhooks をオンにします。
- Add New Webhook to Workspace をクリックし、チャンネルを選択して Allow をクリックします。
- Webhook URL をコピーします。URL は
https://hooks.slack.com/services/で始まります。

4
Paste the Webhook URL
Slack webhook URL を Endpoint URL に貼り付けます。Slack に API key は必要ありません。
5
Select Events
Subscribed events には、Slack connector がサポートするイベントが一覧表示されます。transformation を変更する場合は、処理対象のイベントだけを残してください。Slack は Slack message ではないリクエストを拒否するため、transformation によって変更されないイベントは配信に失敗します。
6
Customize Transformation Code
Transformation code で handler を編集し、メッセージを投稿するイベントと各メッセージの形式を選択します。connector の code をそのまま使用するか、examples を基に開始します。

7
Test and Create
Test this code でイベントタイプを選択し、Simulate をクリックします。Result に Slack が受信するメッセージが表示されます。次に Create endpoint をクリックします。

8
Integration Complete!
これで Dodo Payments は、購読した各イベントを Slack チャンネルに投稿します。テストメッセージを投稿するには、endpoint の Testing タブを開き、イベントタイプを選択して Send example をクリックします。
Transformation Code の例
各 handler はwebhook.payload を Slack メッセージに置き換え、受信 webhook URL である webhook.url を保持します。Dodo Payments の金額は通貨の最小単位で表されるため、例では 100 で割り、通貨コードを表示しています。JPY や KRW などの小数点以下の桁がない通貨では、金額をそのまま使用してください。
基本的な Payment 通知
Payment が成功、失敗、または処理中になったときに、プレーンテキストのメッセージを投稿します。payment_notifs.js
リッチな Subscription 通知
Subscription が有効化、キャンセル、または更新されたときに、attachment fields を含む色分けされたメッセージを投稿します。subscription_notifs.js
Dispute 管理通知
Dispute が開始されたとき、または敗訴したときは赤いメッセージを、勝訴したときは緑のメッセージを投稿します。dispute_notifs.js
すべてのイベントに対応する包括的な handler
すべてのイベントタイプで同じ形式のメッセージを投稿します。独自のcase を持たないイベントには、イベントタイプと時刻を含む汎用メッセージが使用されます。
all_events_notifs.js
ベストプラクティス
Slack 通知を有用なものに保つため、次のプラクティスに従ってください。- 各イベントを明確にし、対応しやすくするため、色と fields を含む message attachments を使用します。
- チームがレコードをすばやく見つけられるよう、金額、customer email、ID などの重要なデータを含めます。
- イベントタイプに合わせて色を設定します。成功には緑(
good)、dispute または失敗には赤(danger)、キャンセルには黄色(warning)、情報イベントには青(#3aa3e3)を使用します。 - timestamp(
ts)を追加し、各メッセージにイベントが発生した時刻を表示します。
トラブルシューティング
Notifications Not Appearing in Slack
Notifications Not Appearing in Slack
- Slack webhook URL が正しく、対応する Slack app が引き続きインストールされていることを確認します。
- transformation code が有効な JavaScript であることを確認します。
- 購読しているイベントが発生していることを確認します。イベントを送信するには、endpoint の Testing タブで Send example を使用します。
- Slack app で Incoming Webhooks が有効になっており、channel に投稿できることを確認します。
Transformation Errors
Transformation Errors
- Developer → Webhooks の Logs タブを開き、失敗した delivery の response を確認します。
- code が読み取る payload fields が、そのイベントタイプの event payload と一致していることを確認します。
- Simulate と sample payload を使用して code をテストします。
- code が読み取る各 field が存在することを確認します。
error_messageなどの optional fields は、nullにできます。
Missing Event Types
Missing Event Types
- Subscribed events でイベントが選択されていることを確認します。選択を変更するには、endpoint を開いて Edit をクリックします。
- Slack connector がイベントをサポートしていることを確認します。Subscribed events には、connector がサポートするイベントのみが一覧表示されます。
- transformation にそのイベント用の
caseがあることを確認します。例では他のイベントを変更せずに残しているため、Slack に拒否されます。