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