Freshchat은 고객이 어디에 있든 쉽게 서비스를 제공할 수 있도록 WhatsApp, Line, ABC, GBM 및 FB Messenger와 네이티브 통합을 제공합니다. 이제 Freshchat에 자신만의 채널을 선택하고 통합할 수 있는 프레임워크를 마련했습니다. 이는 마켓플레이스 서버리스 컴포넌트, 제품 이벤트 및 API를 통해 달성할 수 있습니다. 우리는 이 프레임워크를 사용하여 마켓플레이스를 통해 Viber와 카카오톡 두 가지 통합을 수행했습니다.
Freshworks 앱의 서버리스 컴포넌트를 통해 Freshchat에 자신만의 채널(BYOC)을 가져올 수 있습니다. 본질적으로 필요한 것은 Freshchat과 통합하려는 채널 간의 양방향 통신입니다. 이는 Freshchat과 통합하려는 채널이 노출하는 API와 웹훅을 통해 달성할 수 있습니다.
통합하려는 채널이 Viber라고 가정해 보겠습니다.
사용자: Viber 앱을 사용하여 비즈니스와 대화를 시작하는 최종 사용자.
상담원: 사용자로부터의 메시지에 응답하는 비즈니스의 대표자.
양방향 통신을 설정하려면 Viber에서 Freshchat으로, 그리고 그 반대로 메시지가 전달되도록 해야 합니다.
하지만, 이들은 직접적으로 대화할 수 없습니다. 수신자가 이해할 수 있는 형식으로 메시지를 변환할 수 있는 레이어가 필요합니다.
마켓플레이스 서버리스 컴포넌트는 Viber(웹훅을 통해)와 Freshchat(제품 이벤트를 통해)에서 이벤트를 수신하고 API를 통해 수신자에게 메시지를 전달하는 레이어입니다.
마켓플레이스 앱은 위 이미지에 표시된 4가지 상호작용에 관여합니다.
1. Viber 웹훅
- 마켓플레이스 앱이 설치되면 onAppInstall 이벤트 6에서 대상 URL 3 생성이 가능하며, 이는 Viber에서 웹훅 설정 API 5를 사용하여 웹훅으로 등록할 수 있습니다.
- 웹훅이 등록된 후, Viber 사용자가 대상 비즈니스에 메시지를 보내면 Viber는 메시지와 사용자의 속성을 포함한 페이로드로 서버리스 앱의 externalEventUrl을 호출합니다.
- 이 페이로드에는 사용자의 고유 식별자(Viber 사용자 ID)가 포함됩니다.
2. FD 메시징 API
- 서버리스 앱이 메시지를 수신하면 FD 메시징에서 해당 사용자(Viber 사용자 ID 사용)를 조회해야 합니다.
- 이는 GET /users를 통해 수행할 수 있습니다.
- 사용자가 존재하지 않으면 POST /users 2를 사용하여 새 사용자를 생성합니다.
- 주어진 식별자에 대한 사용자가 존재하면 GET /users/{user_id}/conversations를 사용하여 기존 대화를 가져옵니다.
- 이제 사용자에게 속한 대화에 메시지를 보냅니다.
- 대화가 이미 존재하는지 여부에 따라 두 가지 대화 API 중 하나를 호출합니다.
- 대화가 존재하지 않으면 POST /conversations를 호출하여 새 대화를 생성하고 메시지를 보냅니다.
- 이미 대화가 존재하면 POST /conversations/{conversation_id}/messages를 사용하여 해당 대화에 메시지를 보냅니다.
3. 제품 이벤트
- 상담원이 대화에 응답하면 제품 이벤트 1를 통해 서버리스 앱에서 수신됩니다.
- onMessageCreate 이벤트는 전송된 메시지와 관련된 사용자 및 상담원 모델을 포함한 페이로드를 수신합니다.
- 사용자 모델에는 Viber에서 사용자를 고유하게 식별하는 데 사용할 수 있는 식별자(Viber 사용자 ID)가 포함됩니다.
4. Viber API
제품 이벤트에서 제공하는 사용자 식별자를 사용하여 Viber의 메시지 전송 API를 통해 사용자에게 메시지를 전달할 수 있습니다. 그러면 Viber가 사용자에게 메시지를 전달합니다.
위의 단계를 웹훅과 API를 노출하는 다른 메시징 채널과 함께 사용할 수 있습니다.
일부 경우에는 웹훅 등록이 수동 작업일 수 있습니다. 이 경우 onAppInstall 이벤트는 마켓플레이스에서 제공하는 데이터 저장소에 생성된 URL을 저장할 수 있습니다. 이는 앱의 사용자 정의 설정 페이지에서 다시 가져올 수 있으며, 관리자가 이를 수동으로 복사하여 대상 채널의 웹훅 구성에 붙여넣을 수 있습니다.
참고: 모든 메시징 채널이 API를 직접 사용할 수 있도록 허용하는 것은 아닙니다. Viber 메시징 파트너와 같은 API에 액세스하려면 파트너와 협력해야 합니다. Viber 메시징 파트너