Dodo Payments를 N8N을 통해 수천 개의 앱 및 서비스에 연결하세요. 결제 이벤트가 발생할 때 N8N 워크플로를 트리거하여 이메일 전송, 스프레드시트 업데이트, 작업 생성, 데이터베이스 작업 등 다양한 워크플로를 자동화할 수 있습니다.
이 통합은 워크플로 구성에서 N8N 웹훅 URL이 필요합니다.
시작하기
웹훅 섹션 열기
Dodo Payments 대시보드에서 Webhooks → + Add Endpoint로 이동하고 통합 드롭다운을 확장합니다. N8N에서 웹훅 생성
N8N에서 새 워크플로를 생성하고 트리거로 Webhook 노드를 추가합니다. POST 웹훅으로 구성하고 웹훅 URL을 복사합니다.
웹훅 URL 붙여넣기
N8N 웹훅 URL을 엔드포인트 구성에 붙여넣습니다.
변환 구성
N8N 워크플로에 맞게 데이터를 형식화하는 변환 코드를 편집합니다.
테스트 및 생성
샘플 페이로드로 테스트하고 Create를 클릭하여 통합을 활성화합니다.
워크플로 활성화
N8N에서 워크플로를 활성화하여 웹훅 이벤트를 수신하기 시작합니다.
완료!
🎉 이제 결제 이벤트가 자동으로 N8N 워크플로를 트리거합니다.
변환 코드 예제
기본 웹훅 페이로드
function handler(webhook) {
if (webhook.eventType === "payment.succeeded") {
const p = webhook.payload.data;
webhook.payload = {
event_type: webhook.eventType,
payment_id: p.payment_id,
amount: (p.total_amount / 100).toFixed(2),
currency: p.currency || "USD",
customer_email: p.customer.email,
customer_name: p.customer.name,
payment_method: p.payment_method || "unknown",
timestamp: webhook.payload.timestamp
};
}
return webhook;
}
구독 이벤트 핸들러
function handler(webhook) {
const s = webhook.payload.data;
switch (webhook.eventType) {
case "subscription.active":
webhook.payload = {
event_type: "subscription_started",
subscription_id: s.subscription_id,
customer_email: s.customer.email,
customer_name: s.customer.name,
product_id: s.product_id,
amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
frequency: s.payment_frequency_interval,
next_billing: s.next_billing_date,
timestamp: webhook.payload.timestamp
};
break;
case "subscription.cancelled":
webhook.payload = {
event_type: "subscription_cancelled",
subscription_id: s.subscription_id,
customer_email: s.customer.email,
cancelled_at: s.cancelled_at,
cancel_at_next_billing: s.cancel_at_next_billing_date,
timestamp: webhook.payload.timestamp
};
break;
}
return webhook;
}
분쟁 알림 핸들러
function handler(webhook) {
if (webhook.eventType.startsWith("dispute.")) {
const d = webhook.payload.data;
webhook.payload = {
event_type: webhook.eventType,
dispute_id: d.dispute_id,
payment_id: d.payment_id,
amount: (d.amount / 100).toFixed(2),
status: d.dispute_status,
stage: d.dispute_stage,
remarks: d.remarks || "",
urgent: webhook.eventType === "dispute.opened",
timestamp: webhook.payload.timestamp
};
}
return webhook;
}
인기 N8N 사용 사례
- 결제 확인을 위한 Gmail/Outlook 이메일 전송
- Mailchimp/ConvertKit에서 이메일 시퀀스 생성
- 웹훅을 통해 Slack/Discord 알림 전송
- Google Sheets에 자동으로 기록 생성
- Telegram/WhatsApp 메시지 전송
- HubSpot/Salesforce에 연락처 추가
- Pipedrive/Close에서 거래 생성
- Airtable에서 고객 기록 업데이트
- Monday.com에서 활동 기록
- PostgreSQL/MySQL 데이터베이스에 데이터 동기화
- Asana/Trello에서 작업 생성
- Notion에 할 일 항목 추가
- Google Calendar에서 캘린더 이벤트 생성
- Twilio를 통해 SMS 알림 전송
- 분쟁에 대한 GitHub 이슈 생성
- 결제 데이터 변환 및 보강
- 데이터베이스(PostgreSQL, MongoDB)에 이벤트 저장
- 메트릭 및 분석 집계
- 보고서 및 내보내기 생성
- 복잡한 다단계 워크플로 트리거
- N8N 노드 파싱을 쉽게 하기 위해 페이로드 구조를 간단하게 유지하세요.
- 모든 이벤트에서 일관된 필드 이름을 사용하세요.
- 워크플로 타이밍 및 스케줄링을 위해 타임스탬프를 포함하세요.
- 활성화하기 전에 샘플 데이터로 워크플로를 테스트하세요.
- 조건 논리 및 라우팅을 위해 N8N의 IF 노드를 사용하세요.
- 사용자 정의 데이터 변환을 위해 N8N의 Code 노드를 활용하세요.
- Switch 노드를 사용하여 서로 다른 이벤트 유형을 서로 다른 경로로 라우팅하세요.
- 실패한 웹훅 전송을 처리하기 위해 오류 워크플로를 설정하세요.
문제 해결
- 웹훅 URL이 올바르고 접근 가능한지 확인하세요.
- N8N에서 워크플로가 활성화되어 있는지 확인하세요.
- 웹훅 노드가 POST 메서드로 구성되어 있는지 확인하세요.
- N8N의 실행 기록에서 웹훅 전송을 테스트하세요.
- 방화벽/네트워크 설정이 수신 웹훅을 허용하는지 확인하세요.
- 구성된 경우 N8N 웹훅 인증 설정을 확인하세요.
- N8N 노드 구성에서 필드 이름을 확인하세요.
- 노드에서 예상 형식과 데이터 유형이 일치하는지 확인하세요.
- N8N의 테스트 기능을 사용하여 수신 데이터를 검사하세요.
- 변환 코드가 유효한 JSON을 반환하는지 확인하세요.
- 웹훅 노드의 응답 형식 설정을 확인하세요.
- Set 노드를 사용하여 필드 이름을 변경하거나 구조를 재구성하세요.
- N8N에서 실행 로그를 검토하여 자세한 오류 메시지를 확인하세요.
- 노드 연결 설정 및 자격 증명을 확인하세요.
- 페이로드에 모든 필수 필드가 포함되어 있는지 확인하세요.
- 샘플 데이터로 개별 노드를 테스트하세요.
- 오류를 포착하고 처리하기 위해 오류 워크플로를 활성화하세요.
- 연결된 서비스의 속도 제한 및 API 할당량을 확인하세요.