본문으로 건너뛰기
도움말

외부 랜딩페이지에서 API로 리드 접수하기

외부 랜딩페이지 폼을 DID API에 연결해 리드를 접수합니다. 엔드포인트, 필드 규칙, 요청 예시를 안내합니다.

목차

DID 설치 코드를 붙일 수 없는 외부 랜딩페이지나 자체 서버에서 받은 문의도 API로 보내면 리드로 접수됩니다. 이 글은 개발자가 요청을 만들 때 필요한 주소, 인증, 필드 규칙을 안내합니다.

시작하기 전에

  • 개인정보 처리 위탁 계약에 서명해야 합니다. 서명하지 않으면 요청이 403 lead_agreement_required 오류로 거절됩니다.
  • 사이트 키가 필요합니다. 사이트 > 설정 > 사이트 설정의 사이트 키 영역에서 확인합니다. 비공개 키는 키를 볼 권한이 있는 멤버만 확인할 수 있습니다.
  • 접수 요청은 비공개 키로 보냅니다. 공개 키로 보낸 쓰기 요청은 403 오류로 거절됩니다.
  • 비공개 키는 서버 연동에만 사용합니다. 방문자의 브라우저 코드에 포함하면 키가 노출됩니다.

순서

  1. 사이트 > 설정 > 수집 설정을 선택하고 API 연동 탭을 선택합니다.
  2. 엔드포인트 영역에서 메서드, URL, 인증, 형식을 확인합니다. 메서드는 POST, 형식은 application/json이고, 인증은 Authorization: Bearer <사이트 키> 헤더입니다.

API 연동 화면. 엔드포인트와 요청 필드 규칙이 표시됩니다.

  1. 요청 필드 규칙에 맞게 본문을 작성합니다.
    • fields.email 또는 fields.phone 중 하나는 필수입니다.
    • fields에는 email, phone, name, company, consent_personal, consent_marketing, consent_third_party를 보낼 수 있습니다.
    • 그 밖의 항목은 attributes로 보냅니다. 최대 50개까지 저장됩니다.
    • 접수된 위치는 context.entry_point로 구분합니다. 접수 위치 영역의 허용 접수 위치에 표시된 값을 사용합니다.
    • 담당자를 지정하려면 assignment.assignee_ulid에 담당자의 ULID를 보냅니다.
  2. 요청 예시 영역의 cURL 복사를 선택해 예시를 복사하고, 키와 값을 실제 값으로 변경합니다. 예시는 다음과 같습니다.
curl -X POST 'https://did.kr/api/v1/leads' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer your_app_secret_key' \
  -d '{
    "fields": {
      "email": "[email protected]",
      "phone": "010-2334-5678",
      "name": "Jane",
      "company": "DID",
      "consent_personal": true,
      "consent_marketing": false
    },
    "attributes": {
      "점포보유여부": "1",
      "예산": "5500 미만",
      "address": "서울 강남구"
    },
    "context": { "entry_point": "homepage" }
  }'
  1. JavaScript 예시 영역의 Fetch 복사를 선택하면 같은 요청을 fetch 코드로 복사할 수 있습니다.
  2. 요청을 보낸 뒤 응답을 확인합니다. 접수되면 상태 코드 201과 함께 data.status와 data.ulid가 돌아옵니다. data.status가 created이면 새 리드, updated이면 기존 리드에 합쳐진 것입니다.
  3. 사이트 > 설정 > 접수 내역이나 리드 목록에서 문의가 들어왔는지 확인합니다.

접수 위치와 요청 예시 영역

응답과 오류

상태 뜻 확인할 점
201 접수됐습니다 data.status로 새 리드인지 합쳐진 리드인지 구분합니다.
202 요청은 받았지만 리드로 바로 등록되지 않았습니다 접수 규칙이나 확인 절차에 걸려 보관됐을 수 있습니다. 접수 내역에서 확인합니다.
401 인증에 실패했습니다 Authorization: Bearer 헤더와 키 값을 확인합니다.
403 키 종류나 계약이 맞지 않습니다 공개 키가 아닌 비공개 키를 사용하고, 위탁 계약 서명 여부를 확인합니다.
422 값이 규칙에 맞지 않습니다 이메일과 전화번호 중 하나가 있는지, 접수 규칙에 맞는지 확인합니다.

이후에는

  • 접수된 문의는 리드 목록에 등록되고 접수 내역에 원본이 남습니다.
  • 같은 전화번호나 이메일로 병합 기간 안에 다시 보내면 새 리드가 만들어지지 않고 기존 리드에 합쳐집니다. 기간은 접수 규칙과 중복 접수 설정에서 정합니다.
  • 설치 코드가 있는 페이지에서 보낼 때는 JavaScript 예시처럼 window.DID로 유입과 방문 정보를 함께 보낼 수 있습니다.

안 될 때

증상 원인 해결
필수 값이 없다는 오류가 납니다 fields.email과 fields.phone이 모두 비었습니다 둘 중 하나 이상을 보냅니다.
항목이 리드 상세에 나타나지 않습니다 필드 이름이 규칙과 다릅니다 기본 항목은 fields, 그 밖의 항목은 attributes 아래에 보냅니다. 이름의 철자를 화면 예시와 맞춥니다.
401 오류가 납니다 키가 없거나 잘못됐습니다 사이트 설정의 사이트 키를 다시 복사합니다. 키 앞에 Bearer 와 공백이 있어야 합니다.
키가 노출됐습니다 비공개 키가 브라우저 코드나 저장소에 포함됐습니다 노출이 의심되면 고객 지원에 알려 주세요. 앞으로는 서버에서만 호출합니다.
같은 문의를 여러 번 보냈는데 리드가 하나입니다 병합 기간 안의 같은 번호나 이메일입니다 정상 동작입니다. 병합 기간은 수집 설정의 중복 접수 처리에서 확인합니다.
접수는 됐는데 리드 목록에 없습니다 접수 규칙에 맞지 않아 보관됐습니다 사이트 > 설정 > 접수 내역의 확인 필요 항목을 확인합니다.

관련 글

의견이 접수되었습니다. 감사합니다.

이 글이 도움이 되었나요?

마지막 수정일