TypeScript

위와 같은 head 코드의 i.src 끝에 '&mode=sdk'를 붙여줍니다. 예를 들어, 위 코드를 수정하면 아래와 같이 됩니다.

TypeScript

SDK 모드가 정상적으로 활성화 됐다면, 개발자 도구의 console 에서 window.recatch 객체를 확인할 수 있습니다.

주의: SDK 모드를 활성화하면 form class를 통한 submit interceptor는 작동하지 않습니다.

주의: Team Slug, 예약페이지 or 라우터 ID, Form class, Theme은 적절한 값으로 대체 해야 합니다. 대체할 때, 꺽쇠 괄호(<<, >>)는 지워주세요.

2-1. SDK 모드가 활성화 됐는지 확인하기

정상적으로 SDK 모드가 활성화 되면 window.recatch 객체 내부에 open 메소드가 존재합니다. window.recatch.open() 와 같이 함수를 호출하여 리캐치 모달이 잘 뜨는지 확인합니다.

2-2. 커스터마이징

open 메소드의 시그니처는 아래와 같습니다. 문법은 TypeScript 문법입니다.

TypeScript

각 option에 대한 설명은 아래와 같습니다.

  • initialFormValues: 고객이 리캐치 모달에서 미팅 시간을 선택했을 때 나타나는 form의 default value입니다.

    • key는 name, email, phone, additional 로 각각 이름, 이메일, 전화번호, 전달 사항을 의미합니다.

위 이미지는 initialFormValues를 아래와 같이 설정했을 때 나타나는 모습입니다.

TypeScript
  • formAnswers: 리드 라우터를 사용할때만 활용할 수 있는 option입니다. 리드 라우터 생성시 작성한 폼연동 의 name들과 매칭할 form answer를 object 형태로 전달합니다.

  • key로 name을, value로 form answer를 넣어줘야 합니다. 예를 들어, 위와 같은 리드 라우터가 설정되어 있는 상황에서 고객이 입력한 답변이 이름: 이캐치, 이메일: catch.lee@recatch.cc 라고 가정하면 { name: '이캐치', email: 'catch.lee@recatch.cc' } 가 됩니다.

  • onBookingComplete: 예약이 확정됐을 때 호출되는 콜백함수입니다.

  • onCloseByUser: 고객이 X버튼을 눌러 리캐치 모달을 껐을 때 호출되는 콜백함수입니다.

커스터마이징을 적용한 최종 예시코드는 아래와 같습니다.

TypeScript

window.recatch.open 함수에서 제공 하는 callback 함수 뿐만 아닌 다음과 같은 트리거에 대해서 이벤트 메세지를 postMessage를 통해 제공 합니다.

[이용 방법]

다음과 같이 메세지에 대한 이벤트 리스너를 생성하여 필요한 이벤트를 필터해서 사용 하실 수 있습니다.

TypeScript

[이벤트 목록]

  • bookingComplete (미팅 일정 예약이 완료 되었을 때)

    • 제공 되는 event data

      • routerId: 워크플로우 및 예약페이지 ID

      • fieldAnswers: 유저가 입력한 폼의 값

  • closeModal (모달이 닫혔을 때)

    • 제공 되는 event data

      • routerId: 워크플로우 및 예약페이지 ID

      • type: 'byUser' | 'bookingComplete' | 'disqualified'

        • byUser : 유저가 직접 모달창을 닫았을 때

        • bookingComplete: 미팅 예약 후 닫혔을 때

        • disqualified: 라우팅 조건에 따라 미팅 미배정으로 처리되었을 때

  • disqualified (라우팅 조건에 따라 미팅 미배정 되었을 때)

    • 제공 되는 event data

      • routerId: 워크플로우 및 예약페이지 ID

      • fieldAnsers: 유저가 입력한 폼의 값

  • formReady (폼 로딩이 완료 되었을 때)

    • 제공 되는 event data

      • workflowId: 워크플로우 및 예약페이지 ID

  • openRecatchModal (폼 제출 후 리캐치 모달창이 열렸을 때)

    • 제공 되는 event data

      • routerId: 워크플로우 및 예약페이지 ID

      • formValues: 유저가 입력한 폼의 값