redirectUrl 활용하기

임베디드 기능은 임베디드 URL을 통해 문서 서명 요청, 서명 입력, 템플릿 열람 및 편집 등의 작업을 직접 사이트 내에서 수행할 수 있는 기능입니다. 이 과정에서 특정 작업 이후 사용자를 특정 페이지로 이동시키거나 후속 처리를 수행해야 하는 경우, redirectUrl 파라미터를 활용할 수 있습니다.

redirectUrl 사용 가능 API

다음 API들은 요청 body에 redirectUrl을 포함할 수 있으며, 해당 URL은 작업 완료 후 리디렉션됩니다:

  • 임베디드 초안 생성 API
  • 템플릿으로 임베디드 초안 생성 API
  • 임베디드 문서 열람 URL 조회 API
  • 임베디드 서명자의 보안링크 조회
  • 임베디드 템플릿 보기 URL 조회 API

redirectUrl은 HTTP URL 형식을 따르며, 리디렉션 시 다음과 같은 쿼리 파라미터가 함께 전달됩니다:

  • documentId 또는 templateId
  • eventType (작업 이벤트 정보)

또한, redirectUrl에 직접 추가한 커스텀 파라미터들도 유지되어 전달됩니다.
이 기능을 활용하면, 문서와 사용자에 대한 내부 정보를 함께 넘겨서 후속 처리를 자동화할 수 있습니다. 

redirectUrl 예시

이벤트 설명리디렉션 예시 URL
임베디드 서명 요청 시작https://example.com/redirect?documentId=DOCUMENT_ID&eventType=document_started
모든 서명이 완료됨https://example.com/redirect?documentId=DOCUMENT_ID&eventType=document_all_signed
해당 서명자만 서명 완료 (남은 서명자 존재)https://example.com/redirect?documentId=DOCUMENT_ID&eventType=document_signed
서명자가 서명 거절https://example.com/redirect?documentId=DOCUMENT_ID&eventType=document_rejected
임베디드 서명에서 나가기https://example.com/redirect?documentId=DOCUMENT_ID&eventType=exited
템플릿 생성 완료https://example.com/redirect?templateId=TEMPLATE_ID&eventType=template_created
템플릿 수정 완료https://example.com/redirect?templateId=TEMPLATE_ID&eventType=template_edited

redirectUrl 처리 예시 (내 사이트에서 처리하는 방식)

redirectUrl에 설정된 페이지에서는 아래와 같은 방식으로 eventType 값에 따라 후속 프로세스를 분기 처리할 수 있습니다.

// Query parameter에서 eventType과 documentId 추출
const params = new URLSearchParams(window.location.search);
const eventType = params.get('eventType');
const documentId = params.get('documentId');

// 부모 페이지로 메시지 전송 (선택사항)
if (eventType && documentId) {
  window.parent.postMessage({
    type: eventType,
    documentId: documentId
  }, 'https://yourdomain.com'); // 실제 부모 도메인으로 설정
}

// 이벤트 타입에 따라 이동할 경로 설정
let redirectPath = '/';
switch (eventType) {
  case 'document_all_signed':
    redirectPath = '/sign/complete';
    break;
  case 'document_rejected':
    redirectPath = '/sign/rejected';
    break;
  case 'exited':
    redirectPath = '/sign/exit';
    break;
  default:
    redirectPath = '/sign/unknown';
    break;
}

// 약간의 대기 후 페이지 이동
setTimeout(() => {
  window.location.href = redirectPath;
}, 1500);