소개
Slack integration은 성공한 결제, 구독 변경, 분쟁과 같은 Dodo Payments 이벤트를 사용자가 선택한 Slack 채널에 게시합니다. 팀은 대시보드를 확인하지 않고도 Slack에서 결제를 추적하고 분쟁에 대응할 수 있습니다.Slack connector는 각 Dodo Payments 이벤트를 변환을 거쳐 Slack 메시지로 전환합니다. 변환은 전송 전에 이벤트에서 실행되는 JavaScript 코드입니다. connector에는 변환 코드가 포함되어 있으므로 시작할 때 코딩이 필요하지 않습니다. Dodo Payments 대시보드의 Developer → Webhooks에 액세스할 수 있어야 하며, Slack workspace에 앱을 추가할 권한도 필요합니다.
시작하기
1
Open the Webhook Section
Dodo Payments 대시보드에서 Developer → Webhooks로 이동한 다음 Add endpoint를 클릭합니다.

2
Select Slack Integration
Integration에서 Slack을 선택합니다. 대시보드가 Slack 변환 코드를 불러오고 How to connect Slack 패널에 설정 단계를 표시합니다.

3
Create a Slack Webhook URL
알림을 받을 채널에 incoming webhook이 포함된 앱을 Slack에서 생성합니다:
- 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를 클릭합니다.
https://hooks.slack.com/services/로 시작하는 Webhook URL을 복사합니다.

4
Paste the Webhook URL
Slack webhook URL을 Endpoint URL에 붙여 넣습니다. Slack에는 API key가 필요하지 않습니다.
5
Select Events
Subscribed events에는 Slack connector가 지원하는 이벤트가 나열됩니다. 변환을 변경하는 경우 변환이 처리하는 이벤트만 유지합니다. Slack은 Slack 메시지가 아닌 요청을 거부하므로 변환이 변경하지 않은 이벤트는 전송에 실패합니다.
6
Customize Transformation Code
Transformation code에서 handler를 편집하여 메시지를 게시할 이벤트와 각 메시지의 형식을 선택합니다. connector의 코드를 유지하거나 예시에서 시작할 수 있습니다.

7
Test and Create
Test this code에서 이벤트 유형을 선택하고 Simulate를 클릭합니다. Result에는 Slack이 수신하게 될 메시지가 표시됩니다. 그런 다음 Create endpoint를 클릭합니다.

8
Integration Complete!
이제 Dodo Payments가 구독한 각 이벤트를 Slack 채널에 게시합니다. 테스트 메시지를 게시하려면 endpoint의 Testing 탭을 열고 이벤트 유형을 선택한 다음 Send example를 클릭합니다.
변환 코드 예시
각 핸들러는webhook.payload를 Slack 메시지로 대체하고, 수신 웹훅 URL인 webhook.url은 유지합니다. Dodo Payments 금액은 통화의 최소 단위로 표시되므로, 예시에서는 100으로 나누고 통화 코드를 표시합니다. JPY 및 KRW와 같은 소수점이 없는 통화는 금액을 그대로 사용합니다.
기본 결제 알림
결제가 성공하거나 실패하거나 처리 중일 때 일반 텍스트 메시지를 게시합니다:payment_notifs.js
서식이 있는 구독 알림
구독이 활성화되거나 취소되거나 갱신될 때 첨부 필드가 포함된 색상 코드 메시지를 게시합니다:subscription_notifs.js
분쟁 관리 알림
분쟁이 시작되거나 패소했을 때는 빨간색 메시지를 게시하고, 승소했을 때는 녹색 메시지를 게시합니다:dispute_notifs.js
모든 이벤트를 처리하는 종합 핸들러
모든 이벤트 유형에 동일한 형식으로 메시지를 게시합니다. 자체case가 없는 이벤트에는 이벤트 유형과 시간이 포함된 일반 메시지를 사용합니다:
all_events_notifs.js
권장 사례
Slack 알림을 유용하게 유지하려면 다음 사례를 따르세요:- 색상과 필드가 포함된 메시지 첨부를 사용하여 각 이벤트를 명확하고 쉽게 조치할 수 있도록 하세요.
- 금액, 고객 이메일, ID 등 핵심 데이터를 포함하여 팀에서 레코드를 빠르게 찾을 수 있도록 하세요.
- 이벤트 유형에 맞는 색상을 사용하세요. 성공에는 녹색(
good), 분쟁 또는 실패에는 빨간색(danger), 취소에는 노란색(warning), 정보성 이벤트에는 파란색(#3aa3e3)을 사용합니다. - 타임스탬프(
ts)를 추가하여 각 메시지에 이벤트가 발생한 시간을 표시하세요.
문제 해결
Notifications Not Appearing in Slack
Notifications Not Appearing in Slack
- Slack 웹훅 URL이 올바르고 해당 Slack 앱이 아직 설치되어 있는지 확인합니다.
- 변환 코드가 유효한 JavaScript인지 확인합니다.
- 구독한 이벤트가 발생하고 있는지 확인합니다. 이벤트를 보내려면 엔드포인트의 Testing 탭에서 Send example을 사용합니다.
- Slack 앱에서 Incoming Webhooks가 활성화되어 있고 채널에 게시할 수 있는지 확인합니다.
Transformation Errors
Transformation Errors
- Developer → Webhooks의 Logs 탭을 열고 실패한 전송의 응답을 확인합니다.
- 코드에서 읽는 페이로드 필드가 해당 이벤트 유형의 event payload와 일치하는지 확인합니다.
- Simulate와 샘플 페이로드를 사용하여 코드를 테스트합니다.
- 코드에서 읽는 각 필드가 존재하는지 확인합니다.
error_message와 같은 선택적 필드는null일 수 있습니다.
Missing Event Types
Missing Event Types
- Subscribed events에서 해당 이벤트가 선택되어 있는지 확인합니다. 선택을 변경하려면 엔드포인트를 열고 Edit를 클릭합니다.
- Slack 커넥터가 해당 이벤트를 지원하는지 확인합니다. Subscribed events에는 커넥터가 지원하는 이벤트만 표시됩니다.
- 변환에 해당 이벤트에 대한
case가 있는지 확인합니다. 예시에서는 다른 이벤트를 변경하지 않고 그대로 두지만, Slack은 이러한 이벤트를 거부합니다.