소개
결제 및 구독 이벤트가 발생할 때 트랜잭션 이메일을 자동으로 전송합니다. 결제 확인, 구독 업데이트, 실패 알림을 미들웨어 서버 없이 Keplars를 통해 전송할 수 있습니다. Dodo Payments가 JavaScript transformation handler를 사용하여 Keplars API를 직접 호출합니다.이 통합은 Keplars API key로 인증합니다. Keplars dashboard의 Settings → API Keys에서 API key를 찾고, Domains에서 sender domain 또는 address를 확인합니다.
시작하기
1
Open the Webhook Section
Dodo Payments dashboard에서 Developer → Webhooks로 이동한 다음 Add endpoint를 클릭합니다.
2
Select Keplars
Integration에서 Keplars를 선택합니다. 템플릿이 Keplars API URL과 변환 코드를 입력합니다.

3
Enter API Key
Keplars API key를 API key에 붙여 넣습니다. Dodo Payments는 모든 요청에 Bearer token으로 이 키를 전송합니다. Subscribed events에서 이메일을 전송할 이벤트를 선택합니다.

4
Configure Transformation
Transformation code에서 코드를 편집하여 Keplars용 이메일 형식을 지정합니다. 자리 표시자 템플릿 ID를 본인의 ID로 바꿉니다.
5
Test & Create
Test this code에서 이벤트 유형을 선택하고 Simulate를 클릭하여 sample payload에 transformation을 실행합니다. 그런 다음 Create endpoint를 클릭하여 이메일 전송을 시작합니다.
6
Done
이제 Dodo Payments 이벤트가 Keplars를 통해 트랜잭션 이메일을 전송합니다.
변환 코드 예제
각 handler는webhook.url를 Keplars high-priority send endpoint로 설정하고, webhook.payload를 Keplars 요청으로 다시 작성합니다. Dodo Payments는 API key를 Bearer token으로 추가합니다. your-keplars-*-template-id를 템플릿 ID로 바꿉니다. Keplars send API에는 from 필드가 없으므로, Keplars는 Keplars dashboard에서 설정한 sender를 사용해 각 이메일을 전송합니다.
결제 확인 이메일
payment_succeeded.js
결제 실패 알림
payment_failed.js
구독 환영 이메일
subscription_active.js
구독 취소 이메일
subscription_cancelled.js
팁
- 전송 가능성을 높이려면 인증된 도메인 또는 주소에서 이메일을 보내세요.
- 이벤트 유형마다 Keplars 템플릿을 하나씩 만들어 각 이메일의 브랜드와 메시지를 일관되게 유지하세요.
params에 이름, 금액, 결제 ID 등의 고객 데이터를 전달하여 각 이메일을 개인화하세요.- 먼저 sandbox 모드에서 테스트하세요. Keplars는 sandbox 전송을 실제로 전달하지 않고 Test Inbox에 저장합니다.
문제 해결
Emails not being sent
Emails not being sent
- Keplars의 Settings → API Keys에서 API key가 올바르고 활성 상태인지 확인하세요.
- sender 도메인 또는 주소가 인증되었는지 확인하세요.
- Dodo Payments dashboard에서 Developer → Webhooks의 Logs 탭을 열고 메시지를 확인하세요. 각 전송 시도에는 Keplars의 원시 오류 응답이 표시됩니다.
Template not found
Template not found
- handler의
template_id가 Keplars 계정의 활성 템플릿과 일치해야 합니다. Keplars dashboard에서 ID와 템플릿 활성 상태를 확인하세요.
Wrong event triggered
Wrong event triggered
- 각 handler는
webhook.eventType를 확인하고, 이벤트가 일치하지 않으면 webhook을 변경하지 않고 반환합니다. endpoint의 Subscribed events에 원하는 이벤트만 포함되어 있는지 확인하세요.