Messenger 환경을 디자인하는 것은 모바일이나 웹용 앱을 디자인하는 것과는 다릅니다. 물론 일부 범용 UX 원칙이 적용되지만 다른 메시지 플랫폼과 비교했을 때도 도구 및 기대치가 매우 다릅니다.
기존 앱의 경우 디자인하기 까다로운 소통 방식을 Messenger에서는 간편하게 디자인할 수 있지만 반대로 기존 앱에서 비교적 간편하게 디자인할 수 있는 기능이 Messenger에서는 다른 방식이 적용되어야 하는 경우도 있습니다. Messenger에서 원하는 환경을 디자인하고 구현하는 방법에 관한 아이디어를 얻는 데 도움이 되도록 Messenger 플랫폼 사용 시 권장되는 몇 가지 환경을 기반으로 모범 사례와 가이드라인을 준비했습니다.
Messenger 플랫폼과 상호작용하려면 pages_messaging
권한이 있는 페이지 액세스 토큰이 필요합니다. 유효한 페이지 액세스 토큰은 기본적으로 페이지를 가장할 수 있는 권한을 앱에 부여합니다. 일반적으로 페이지 액세스 토큰을 사용자가 지원하는 경우, 이는 사용자가 액세스 권한을 관리하고 언제든 해당 액세스 권한을 정지할 수 있다는 의미입니다.
안정적인 프로덕션 앱의 경우, 사용자가 지원하는 페이지 액세스 토큰은 특정한 사용자 행동으로 인해 액세스 토큰이 무효화되고 앱이 정지될 위험이 있습니다. 앱이 중단되지 않도록 하려면 시스템 사용자가 지원하는 안정적 액세스 토큰이 필요합니다. 그러면 사실상 액세스 토큰을 개인이 아니라 비즈니스가 지원하게 됩니다. 액세스 토큰을 만들려면 앱과 페이지를 모두 동일한 비즈니스가 소유해야 합니다.
또한 그래프 API 오류 코드190
을 처리하는 것이 좋습니다. 이 오류는 액세스 토큰이 더 이상 유효하지 않다는 것을 나타냅니다. 비즈니스는 페이지를 가장하기 위한 앱 기능을 다시 활성화하려면 새 토큰을 발급해야 한다는 것을 해당 페이지/앱 관리자에게 경고하기 위한 알림을 구현해야 합니다.
{ "error": { "message": "Access token is no longer valid", "type": "OAuthException", "code": 190, "fbtrace_id": "ANtXl05DDie3Dau970_10Ah" } }
프로덕션 앱은 API 호출과 수신되는 Webhooks를 모두 보호하여 공격을 예방하고 기존 액세스 토큰에 대한 보안 침해를 완화하는 것이 반드시 필요합니다.
앱 시크릿 코드는 앱 대시보드 설정 > 기본 메뉴에서 가져올 수 있는 앱의 속성입니다. 같은 메뉴에서 앱 관리자는 기존 앱 시크릿 코드를 새로운 앱 시크릿 코드로 재설정할 수 있습니다. 앱 시크릿 코드는 다음과 같은 목적으로 사용됩니다.
X-Hub-Signature
라는 서명 HTTP 헤더로 Webhooks를 보호합니다.appsecret_proof
라는 서명 매개변수로 API를 보호합니다.수신되는 Webhooks는 제공된 서명을 검증함으로써 앱 시크릿 코드로 보호할 수 있습니다. 모든 수신되는 Webhooks에는 X-Hub-Signature
라는 HTTP 헤더가 있습니다. 수신되는 페이로드의 이 서명은 보내는 사람이 앱 시크릿 코드를 알고 의도된 수신자가 자신의 앱인지 확인하는 데 사용할 수 있습니다. 이는 다른 앱에 대해 동일한 콜백 URL이 설정되었을 때 Webhooks 주입 공격을 무시하고 혼란을 예방하는 데 도움이 될 수 있습니다. 수신되는 Webhooks를 검증하는 방법 알아보기
앱 대시보드에서 앱 시크릿 코드 요청 설정을 활성화하고 API 호출에 appsecret_proof
매개변수를 포함하여 API 호출에 대한 보안을 강화할 수 있습니다. 앱 시크릿 코드 증명을 설정하고 구현하는 방법 알아보기
자동화를 사용하거나 라이브 메시지를 구현할 때 자신과 Messenger에서 소통하는 사용자를 위해 만들고자 하는 환경을 정의하는 것이 중요합니다. 메시지를 보내기 전에 시간을 내서 다음을 생각해 보세요.
몇 가지 기능을 확실히 제공하는 것에 집중하세요. 너무 많은 기능을 제공하면 혼란이 생기고 환경의 품질이 저하될 수 있습니다.
모든 Messenger 환경은 어느 정도는 대화 형식을 취하게 됩니다. Messenger 플랫폼을 사용하여 만드는 모든 소통 방식은 휴대폰을 사용하는 사람들에게 친숙한 일종의 채팅 환경으로 인식됩니다. 봇의 응답이 완전히 자동화되어도 Messenger의 대화가 모바일 또는 웹 앱과의 소통보다 훨씬 더 인간적이고 친숙한 느낌을 줄 수 있는 이유도 여기에 있습니다. 대화야말로 가장 인간적인 활동이 아닐까요? 여기에 Wit.ai에서 기본 제공하는 자연어 처리 기능을 추가하면 수신된 메시지의 의도를 자동으로 분석 및 해석할 수 있어 더욱 자연스러운 Messenger 봇과의 대화 환경을 제공할 수 있습니다.
하지만 앱을 사용하는 사람들은 나올 수 있는 답변이 2~3개뿐인 경우에 일일이 요청과 응답을 입력하는 것보다 간단히 버튼을 클릭하거나 리스트에서 선택하는 것을 훨씬 선호할 수 있습니다. 그래픽 사용자 인터페이스(GUI)가 수십 년간 발전해오는 동안 UI에서 개체를 직접 조작(예: 이미지를 눌러 열거나 지도를 손가락으로 펼쳐 확대)하는 것이 매우 강력한 효과를 낼 수 있다는 점이 입증되어 왔습니다.
다행히도 Messenger는 단순한 텍스트 메시지부터 완전한 GUI에 이르기까지 전체적인 구성 요소를 제공합니다. 따라서 하나의 환경에 GUI의 강력한 인터랙티브 기능과 함께 단순하면서도 인간적인 채팅 기능을 조합하여 원하는 대화 환경을 유연하게 만들 수 있습니다.
다음은 Messenger 앱을 빌드할 때 고려해야 하는 몇 가지 디자인 원칙입니다. 여기에 나열된 원칙이 전부는 아니지만 시작 시 참고하기에 유용합니다.
대부분의 사람들이 봇을 사용하는 휴대폰은 물리적 환경, 다른 앱, Messenger의 다른 대화 등 집중에 방해가 되는 요소가 많습니다. 중단될 경우를 예상하세요. 사람들은 자신이 무엇을 하고 있었는지 잊어버릴 수도 있습니다. 이 문제를 해결하는 가장 쉬운 방법은 소통을 간결하게 유지하는 것입니다. 불가능한 경우에는 컨텍스트를 유지하고 복구하는 방법을 고려해 보세요.
봇은 특정한 응답 세트를 기대할 때 모달 상태로 설정됩니다. 예를 들어 사용자에게 검색 결과를 제시하고 전송된 다음 메시지를 자동으로 상세 검색 결과로 처리하고 싶을 수 있습니다. 하지만 작업 도중 사용자가 방해를 받으면 어떻게 될까요? 검색이 수행되는 동안 사용자가 봇을 중단하면 어떻게 될까요? 이는 혼동과 불편함의 원인이 될 있습니다. 한 가지 해결책은 상호작용을 간결하게 유지하고 봇을 임시 상태가 아닌 평소 상태로 두는 것입니다.
Messenger 플랫폼은 단순한 텍스트 메시지부터 구조화된 템플릿, WebView의 완전한 GUI 상호작용에 이르기까지 다양한 대화 구성 요소를 제공합니다. 각 구성 요소에는 이용 사례에 따라 장단점이 있습니다. Messenger에서 환경을 구축하는 경우 가장 간단하고 직관적인 환경을 만들 수 있는 형식을 신중하게 고려하세요. 일반적으로 대화 메시지와 UI 상호작용을 결합한 형식이 가장 권장됩니다.
언어, 에디토리얼 보이스, 메시지 길이, 봇의 응답 속도에 대해 신중하게 생각하세요. Messenger 봇이 자동화된 소통과 사람을 통한 소통을 모두 지원하는 경우 원활하지 않거나 혼란스러운 환경이 발생하지 않도록 사용자에게 어떤 수단을 통해 커뮤니케이션 중인지 명확하게 나타내야 합니다. 예를 들어 자동화된 소통을 실제 사람을 통한 소통으로 가장하지 마세요.
자유 입력 양식으로 답변을 보내는 것은 좋지만, 기능을 구현하기가 쉽지 않으며 봇에 문의하는 사람들이 오래 기다리게 될 수 있습니다. 버튼, 빠른 답장, 고정 메뉴를 사용하여 사용자 입력을 구조화합니다. 이렇게 하면 상호작용의 효율을 높이고 기대치를 명확히 전달하는 데 도움이 됩니다.
요청이 처리되었음을 확인시켜 주세요. 입력 표시 도구를 사용하여 사람들에게 봇이 실행 중임을 알려줄 수 있습니다. 구독에 대해 명확한 옵트인 기능을 제공하세요. 전달하는 내용 또는 시기를 동의 없이 변경하지 마세요.
모든 메시지에 푸시 알림이 필요하지는 않습니다. 알림의 효과를 높일 수 있는 방식을 신중하게 생각하세요.
요청을 이해하지 못하는 경우 도움말 기능을 강조 표시하거나, 버튼, 빠른 답장 및 고정 메뉴를 사용하여 기능을 다시 설명하고 요청을 이해하지 못했다는 점을 명확히 나타내야 합니다. 실패를 피드백으로 생각하세요. 사람들은 종종 예상치 못한 방식으로 봇에 응답합니다.
일반적으로 새 페이지를 만드는 것보다 Messenger 봇의 정체성을 기존 Facebook 페이지에 연결하는 것이 가장 좋습니다. 이렇게 하면 사람들이 더 쉽게 페이지를 찾을 수 있을 뿐 아니라 회원님 또는 회원님의 비즈니스에 대한 신뢰감을 가질 수 있습니다.
Messenger는 대화를 기반으로 구축된 플랫폼이자 소통이 발생하는 공간이기 때문에 사용자에게 봇이 제공하는 환경 및 이를 사용해야 하는 이유를 성공적으로 전달하기 위해서는 적절한 단어 사용이 중요합니다.
이러한 작성 관련 모범 사례는 사람들이 Messenger에서 여러분의 환경을 발견하고 친숙해짐에 따라 지속적으로 신뢰를 쌓는 데 도움이 됩니다. 더 많은 사람들이 소통 방식을 이해할수록 지속적으로 참여할 가능성도 커집니다.
플랫폼 도구는 Messenger에서 사용자에게 도달할 수 있는 방법일 뿐 소통은 여러분의 몫입니다. 보이스는 개성입니다. 자연스럽고 친숙한 톤을 사용하세요.
제시된 목표와 작업에 맞추어 사람들이 무엇을 할 수 있는지, 사람들에게 바라는 행동은 무엇인지 정확하게 설명된 메시지를 작성하세요. Messenger 봇의 핵심 기능을 최대한 자세하게 설명하세요.
봇의 환경을 이해할 수 있도록 사람들에게 현재 단계, 필요한 작업, 다음 단계와 같이 소통 방식의 모든 단계를 안내할 수 있도록 콘텐츠를 사용하세요.
Messenger에서 사용자와 소통하기 전에 이미 그들과 대화를 나눈 적이 있다고 가정하고 콜라보 게시물 및 응답에 관한 라이브러리를 만들어 보세요. 원하는 소통 방식 및 실제로 가능한 모든 소통 방식에 대해 생각해 보세요. 이 과정이 완료되면 이제 다음과 같은 작업을 진행해 보세요.
어떤 용어가 브랜드와 관련이 있나요? 사람들이 여러분과 대화하기 위해 어떤 언어를 사용할 가능성이 높나요? 가능한 언어 트리거와 변형을 모두 식별하면 도움말 명령어, 콜라보 게시물 및 응답을 정의하는 데 도움이 됩니다.
설정하려고 하는 작업, 기대치 및 컨텍스트에 따라 보낼 콜라보 게시물과 응답을 모두 작성하세요. 작성 과정에서 이용 가능한 메시지 유형을 고려하세요. 예를 들어, 메시지 유형(텍스트 전용 또는 버튼 포함)이 단어 선택 및 노출 위치에 어떤 영향을 미치는지 고려하세요.
모든 소통은 기존 환경 및 환경을 조성하는 메시지를 평가하고 개선할 수 있는 기회입니다. 사람들의 응답을 활용하여 기능 확장 방법 및 위치를 결정하세요.
좋은 품질의 사용자 환경을 만들기 위해서는 사용자가 받기를 기대하는 좋은 품질의 마케팅 메시지를 보내야 합니다.
사용자는 자신이 받을 마케팅 메시지를 예상할 수 있어야 합니다. 이러한 기대는 다음과 같이 설정할 수 있습니다.
마케팅 메시지는 사용자가 가치 있다고 생각할 가능성이 큰 사용 사례와 관련이 있고 이에 맞춤화되어야 합니다.
사용자는 메시지를 차단하는 것을 포함하여 메시지 경험에 대한 피드백을 제공할 수 있으며, 이러한 피드백에 따라 마케팅 메시지 사용이 제한될 수도 있습니다. 정기적으로 옵트인 요청과 마케팅 메시지를 검토하여 위의 모범 사례를 따르는지 확인해야 합니다. 마케팅 메시지 사용에 제한이 있거나 기능 제한이 있을 경우, 사용자에게 더욱 가치 있고 관련성 높은 메시지 환경을 제공할 방법을 찾아 보세요.
대화체는 작성 스타일의 하나로, 개발자가 구축하는 환경, 사용하는 메시지 유형 또는 실제로 전달하는 내용에 영향을 미치지 않습니다. 대화체를 유지하면 일상적인 구어를 사용하게 되지만 핵심 기능을 전달하지 못하고, 목적을 잘못 나타내고, 신뢰를 떨어뜨릴 정도로 격식 없이 메시지를 작성해야 한다는 것은 아닙니다.
기존 보이스에 대화체를 적용할지 결정할 때 소통 대상 및 상대방에게 수행하도록 요청할 작업을 고려하세요. 고객과 대화하거나 누군가에게 개인 정보 확인을 요구할 때 지나치게 격식이 없으면 불안함을 유발하거나 소통하고 싶은 생각을 떨어뜨릴 수 있습니다.
대화체는 환경을 지원해야 하며 환경을 정의해서는 안 됩니다. 소통에 대화체를 적용하려면 메시지의 의미를 변경하지 말고 다음의 몇 가지 간단한 팁을 참고해 보세요.
능동태 문장에서는 주어가 행동의 주체가 되는 반면, 수동태 문장에서는 목적어가 중심이 되어 주어가 수동적인 느낌을 줍니다. 능동태는 더 직접적이며 간단한 문장을 만드는 데 도움이 됩니다. "뉴스 속보가 CNN에 의해 전달됩니다."는 "CNN에서 뉴스 속보를 전달합니다."보다 명확하지 않고 길며 복잡합니다.
메시지를 대화체로 만드는 쉬운 방법은 축약된 단어 또는 단어 그룹을 사용하는 것입니다. 예를 들어, "We cannot wait to get started"는 기계적인 느낌을 주지만 "We can't wait to get started"는 가볍고 친근한 느낌을 줍니다.
메시지의 주체를 표준화하고 1인칭 단수('나', 개인이 말하는 경우처럼) 또는 1인칭 복수('우리' 또는 '스프링', 회사가 말하는 경우처럼) 중에서 결정하세요. 2인칭(여러분/회원님, 여러분의/회원님의, 여러분이/회원님이)을 사용하여 일방적이 아닌 서로 대화하는 것처럼 이야기하세요.
평소보다 편안한 톤으로 커뮤니케이션할 수 있지만 기본적인 문법에 어긋나는 것은 좋지 않습니다. 신뢰를 줄 수 있는 정도의 격식은 유지하세요. 올바른 철자, 대소문자 및 문장 구조를 사용함으로써 환경에 초점을 맞추고 명확한 내용을 전달할 수 있습니다.
마침표, 생략 부호, 느낌표 등을 사용하는 방법 및 위치도 Messenger에서 환경을 정의하는 데 있어 중요한 역할을 합니다. 각 구두점이 전체 어조에 어떤 영향을 미치는지 확인하고 구두점을 사용하여 메시지에 열정, 긴장감 또는 기타 감정을 전달하는 것을 두려워하지 마세요.
대화체로 작성한다고 해서 완전히 새로운 브랜드를 만드는 것을 의미하지 않습니다. 보이스는 개성이며 톤은 개성을 표현하는 방식입니다. 대화체는 간단히 말해 소통 시 더 친근한 분위기를 유지한다는 것을 의미합니다. 확신이 들지 않는다면 메시지 내용을 큰 소리로 읽어보고 어떻게 들리는지 확인해 보세요.
다음은 전달하려는 내용은 그대로 유지하면서 전달 채널에 따라 주문 확인의 어조가 어떻게 달라질 수 있는지 보여주는 예입니다.
웹사이트 | 이메일 | Messenger |
---|---|---|
주문이 처리되었습니다. 구매하신 목록입니다.
제품이 배송되면 알림을 보내드리겠습니다. | 주문을 접수했습니다. 다음 항목을 구매하셨습니다.
제품이 배송되면 확인 이메일을 보내드리겠습니다. | 주문해 주셔서 감사합니다! 운동화와 캐시미어 스웨터가 배송되면 알려드리겠습니다. |
정확하고 관련성 있는 내용을 작성하는 것이 가장 좋습니다. 브랜드와 환경을 가장 잘 알고 있는 것은 여러분이므로 자체적인 판단에 따라 가장 적합하다고 생각되는 메시지를 전달하고 적절히 조정하세요.
시기적절하고 환경과 관련된 메시지로 사람들에게 최신 정보를 제공하세요. 행동이 완료된 후 활동을 확인하는 메시지를 보내고 필요한 다음 단계를 알려주세요. 구독 모델을 만드는 경우 메일 같은 시간에 업데이트를 보내세요.
사람들에게 정보 또는 요청이 처리되었다는 점을 알리세요. 구매 영수증을 보내고 질문에 대한 답변을 검증하고 기본 설정을 확인하세요.
사람들에게 명확한 옵트인 방법을 제공하세요. 사람들에게 어떤 내용을 얼마나 자주 받게 되는지 자세히 알려주고 옵트아웃하거나 기본 설정을 업데이트할 수 있는 방법을 제공하세요.
보내는 정보의 유형을 동의 없이 변경하지 마세요. 사람들이 특정 알림에 가입하는 경우 기본 설정을 존중하세요.
푸시 알림을 사용하면 사람들에게 업데이트 및 알림의 미리 보기를 제공하고, 사람들이 Messenger를 사용하고 있지 않은 경우에도 새 메시지의 전송 사실을 알릴 수 있습니다. 또한 알림은 사람들의 재참여를 유도하는 간편한 방법입니다.
적극적으로 응대하세요. 사람들에게 전해야 할 메시지가 있을 때 여러분의 환경을 옵트인한 사람들에게 알려주세요.
'무음'으로 처리하는 것을 고려해 보세요. 많은 메시지를 보내는 경우 긴급하지 않은 메시지에 대한 무음으로 처리하세요.
메시지를 너무 많이 보내지 마세요. 알림이 지나치게 많을 경우 사람들은 대화를 완전히 무시하거나 내 활동을 차단할 수 있습니다.
도구를 사용하여 대화를 자동화했더라도 여전히 실제 사람과 소통한다는 점을 기억하세요. 즉, 메시지와 그 의도가 사람에 따라 다르게 해석될 수 있습니다. 이해하거나 인식하지 못하는 요청을 받으면 솔직하게 이야기하세요. 부가적인 설명을 요청하고 도움을 제공할 수 있는지/없는지 알려주세요.
사람들에게 정보를 반복해서 제공하세요. 사람들이 환경을 벗어나는 사항을 요청하면 기능을 다시 설명하고 도움말 명령어에 대해 설명하거나 버튼을 사용하여 옵션을 제공하고 리디렉션하세요.
각 실패 사례를 작동하는 기능, 작동하지 않는 기능 및 Messenger상의 커뮤니케이션 방식을 개선할 수 있는 방법에 대한 피드백의 일부로 간주하세요.
완벽함을 기대하지 마세요. 여러분이 얼마나 계획하고, 준비하고, 응답하는지와 관계없이 사람들은 상세 정보를 놓치고, 예상치 못한 질문을 하고, 상황을 벗어나려 하며, 결과적으로 쉽게 실망합니다.
동일한 실패 메시지를 여러 번 보내지 마세요. 사람들이 받는 실패 응답의 수를 제한하고 각 메시지의 언어를 다양화하여 마찰을 줄이세요.
적절한 소통 방법은 사람들의 지속적인 참여를 유도할 수 있습니다. 대화 시작을 위한 방법이든, 대화 유지를 위한 방법이든 관계없이 적절한 소통을 통해 환경을 이용하는 방식과 환경이 제공하는 가치에 대한 기대치를 지속적으로 설정하세요.