{"id":35745,"date":"2026-01-11T01:35:26","date_gmt":"2026-01-10T18:35:26","guid":{"rendered":"https:\/\/dps.media\/huong-dan-tich-hop-viber-vao-chatwoot-toan-tap-giai-phap-cho-nguoi-moi\/"},"modified":"2026-01-11T01:35:26","modified_gmt":"2026-01-10T18:35:26","slug":"guide-integrate-viber-into-chatwoot-complete-solution-for-beginners","status":"publish","type":"post","link":"https:\/\/dps.media\/en\/guide-integrate-viber-into-chatwoot-complete-solution-for-beginners\/","title":{"rendered":"Viber Integration Guide into Chatwoot (Complete): Solution for Beginners"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p><img decoding=\"async\" src=\"https:\/\/dps.media\/wp-content\/uploads\/mcp\/2026\/01\/viber_chatwoot_banner_1768069868941-1.jpg\" alt=\"Integrate Viber into Chatwoot\" title=\"\"><\/p><p>You are using Chatwoot to manage multi-channel customer care but missing an important channel in Vietnam: <strong>Viber<\/strong>?<\/p><p>M\u1eb7c d\u00f9 Chatwoot hi\u1ec7n h\u1ed7 tr\u1ee3 native (t\u00edch h\u1ee3p s\u1eb5n) cho Facebook, Telegram, Zalo (qua Official Account), nh\u01b0ng Viber v\u1eabn ch\u01b0a c\u00f3 m\u1eb7t trong danh s\u00e1ch \u201cout-of-the-box\u201d. Tuy nhi\u00ean, \u0111\u1eebng lo l\u1eafng! V\u1edbi ki\u1ebfn tr\u00fac m\u1edf c\u1ee7a Chatwoot th\u00f4ng qua <strong>API Channel<\/strong>, it's completely possible to bring messages from Viber to Chatwoot for centralized management.<\/p><p>This article will guide you in detail on how to do that.<\/p><h2>Why isn't there native integration yet?<\/h2><p>Chatwoot is an open-source platform, and community integrations are being developed. While waiting for the official update, we will use the method <strong>\u201cC\u1ea7u n\u1ed1i\u201d (Bridge)<\/strong>.<\/p><p><strong>Operating principle:<\/strong><br>\nWe will need a middleware station to stand in between:<\/p><ol>\n<li><strong>Viber Webhook<\/strong> nh\u1eadn tin nh\u1eafn t\u1eeb ng\u01b0\u1eddi d\u00f9ng -> G\u1eedi \u0111\u1ebfn Middleware.<\/li>\n<li><strong>Middleware<\/strong> chuy\u1ec3n \u0111\u1ed5i \u0111\u1ecbnh d\u1ea1ng -> G\u1ecdi API Chatwoot \u0111\u1ec3 t\u1ea1o tin nh\u1eafn.<\/li>\n<li><strong>Chatwoot Webhook<\/strong> (khi nh\u00e2n vi\u00ean tr\u1ea3 l\u1eddi) -> G\u1eedi \u0111\u1ebfn Middleware.<\/li>\n<li><strong>Middleware<\/strong> g\u1ecdi API Viber -> G\u1eedi tin nh\u1eafn \u0111\u1ebfn ng\u01b0\u1eddi d\u00f9ng.<\/li>\n<\/ol><p><img decoding=\"async\" src=\"https:\/\/dps.media\/wp-content\/uploads\/mcp\/2026\/01\/integration_logic_diagram_1768069921467-1.jpg\" alt=\"Operation principle diagram\" title=\"\"><\/p><p>For simplicity and no coding required (No-code\/Low-code), this guide will suggest using <strong>n8n<\/strong> \u2013 m\u1ed9t c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng h\u00f3a m\u1ea1nh m\u1ebd m\u00e0 ch\u00fang t\u00f4i th\u01b0\u1eddng xuy\u00ean gi\u1edbi thi\u1ec7u.<\/p><hr><h2>Preparation<\/h2><p>Before starting, you need:<\/p><ol>\n<li><strong>Viber Admin Panel account<\/strong>: To create Bot and get Token.<\/li>\n<li><strong>Chatwoot<\/strong>: Installed and running (Cloud or Self-hosted version).<\/li>\n<li><strong>n8n (or middleware server)<\/strong>: To run the connection workflow.<\/li>\n<\/ol><hr><h2>B\u01b0\u1edbc 1: T\u1ea1o Viber Bot & L\u1ea5y Token<\/h2><p>\u0110\u1ea7u ti\u00ean, b\u1ea1n c\u1ea7n t\u1ea1o m\u1ed9t \u201ccon bot\u201d tr\u00ean Viber. \u0110\u00e2y s\u1ebd l\u00e0 b\u1ed9 m\u1eb7t doanh nghi\u1ec7p c\u1ee7a b\u1ea1n tr\u00ean Viber.<\/p><ol>\n<li>Access <strong><a href=\"https:\/\/partners.viber.com\/\" rel=\"nofollow noopener\" target=\"_blank\">Viber Admin Panel<\/a><\/strong>.<\/li>\n<li>Log in with your Viber phone number.<\/li>\n<li>Press <strong>Create Bot Account<\/strong>.<\/li>\n<li>\u0110i\u1ec1n \u0111\u1ea7y \u0111\u1ee7 th\u00f4ng tin: T\u00ean Bot, H\u00ecnh \u0111\u1ea1i di\u1ec7n, M\u00f4 t\u1ea3, Website\u2026<\/li>\n<li>After creating, you will receive a <strong>Token<\/strong> (as shown below). <strong>Please save this code carefully<\/strong>, this is the key for Chatwoot to knock on Viber's door.<\/li>\n<\/ol><p><img decoding=\"async\" src=\"https:\/\/dps.media\/wp-content\/uploads\/mcp\/2026\/01\/viber_admin_token_1768069885065-1.jpg\" alt=\"Get Token from Viber Admin Panel\" title=\"\"><\/p><hr><h2>Step 2: Set up API Channel on Chatwoot<\/h2><p>Tr\u00ean Chatwoot, ch\u00fang ta kh\u00f4ng ch\u1ecdn k\u00eanh \u201cFacebook\u201d hay \u201cTelegram\u201d, m\u00e0 s\u1ebd ch\u1ecdn k\u00eanh \u0111\u1eb7c bi\u1ec7t l\u00e0 <strong>API<\/strong>.<\/p><ol>\n<li>Go to <strong>Settings<\/strong> > <strong>Inboxes<\/strong>.<\/li>\n<li>Select <strong>Add Inbox<\/strong>.<\/li>\n<li>Select channel type as <strong>API<\/strong>.<\/li>\n<li>\u0110\u1eb7t t\u00ean: V\u00ed d\u1ee5 \u201cViber Support\u201d.<\/li>\n<li>Webhook URL: <em>Leave blank temporarily or fill in n8n URL (will update in next step)<\/em>.<\/li>\n<li>Complete and add Agents to this inbox.<\/li>\n<\/ol><p>After creating, you will have <code>Inbox ID<\/code> and <code>API Access Token<\/code> of Chatwoot (in that inbox settings).<\/p><p><img decoding=\"async\" src=\"https:\/\/dps.media\/wp-content\/uploads\/mcp\/2026\/01\/chatwoot_api_channel_setup_1768069903340-1.jpg\" alt=\"Create API Channel on Chatwoot\" title=\"\"><\/p><hr><h2>B\u01b0\u1edbc 3: X\u00e2y d\u1ef1ng \u201cC\u1ea7u n\u1ed1i\u201d (Bridge)<\/h2><p>This is the most important step. If you know programming (NodeJS, Python), you can write a small server. If not, use <strong>n8n<\/strong>.<\/p><h3>Lu\u1ed3ng 1: T\u1eeb Viber -> Chatwoot (Kh\u00e1ch nh\u1eafn tin)<\/h3><p>You need to create an n8n workflow that listens to Webhook from Viber.<br>\n<em>Note: Viber requires Webhook to be valid HTTPS.<\/em><\/p><p>Processing flow:<\/p><ol>\n<li><strong>Webhook Node<\/strong>: Receive POST data from Viber.<\/li>\n<li><strong>IF Node<\/strong>: Check <code>event<\/code> is it <code>message<\/code> no.<\/li>\n<li><strong>HTTP Request (Chatwoot)<\/strong>:\n<ul>\n<li>Call to: <code>POST \/api\/v1\/accounts\/{account_id}\/conversations<\/code> (to create or find conversation).<\/li>\n<li>Body: Send with <code>source_id<\/code> is Viber user ID (to identify customer).<\/li>\n<li>Then call: <code>POST \/api\/v1\/accounts\/{account_id}\/conversations\/{conversation_id}\/messages<\/code>.<\/li>\n<li>Content: Get <code>text<\/code> from Viber message sent.<\/li>\n<\/ul>\n<\/li>\n<\/ol><h3>Lu\u1ed3ng 2: T\u1eeb Chatwoot -> Viber (Nh\u00e2n vi\u00ean tr\u1ea3 l\u1eddi)<\/h3><p>You need to configure Webhook in Chatwoot (in the settings of the newly created Inbox API) to send data to n8n every time there is a new message.<\/p><p>Processing flow:<\/p><ol>\n<li><strong>Webhook Node<\/strong>: Receive data from Chatwoot.<\/li>\n<li><strong>IF Node<\/strong>: Check <code>message_type<\/code> is it <code>outgoing<\/code> (outgoing) and <code>private<\/code> is <code>false<\/code> no (to avoid sending internal notes to customer).<\/li>\n<li><strong>HTTP Request (Viber)<\/strong>:\n<ul>\n<li>Call to: <code>https:\/\/chatapi.viber.com\/pa\/send_message<\/code><\/li>\n<li>Header: <code>X-Viber-Auth-Token: <\/code><\/li>\n<li>Body:\n<pre><code>{\n   \"receiver\": \"<ID_Kh\u00e1ch_H\u00e0ng_Viber_L\u1ea5y_T\u1eeb_Chatwoot>\",\n   \"type\": \"text\",\n   \"text\": \"<N\u1ed9i_dung_tin_nh\u1eafn_t\u1eeb_Chatwoot>\"\n}\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol><hr><h2>Step 4: Test and Operate<\/h2><p>After setting up the above 2 flows:<\/p><ol>\n<li>Use your personal phone to message your Viber Bot.<\/li>\n<li>Ki\u1ec3m tra tr\u00ean Chatwoot xem tin nh\u1eafn c\u00f3 hi\u1ec7n l\u00ean kh\u00f4ng? -> N\u1ebfu c\u00f3: <strong>Flow 1 successful<\/strong>.<\/li>\n<li>From Chatwoot, type reply to customer.<\/li>\n<li>Ki\u1ec3m tra \u0111i\u1ec7n tho\u1ea1i xem Bot Viber c\u00f3 ph\u1ea3n h\u1ed3i kh\u00f4ng? -> N\u1ebfu c\u00f3: <strong>Stream 2 successful<\/strong>.<\/li>\n<\/ol><p><img decoding=\"async\" src=\"https:\/\/dps.media\/wp-content\/uploads\/mcp\/2026\/01\/chatwoot_viber_chat_demo_1768069936507-1.jpg\" alt=\"Demo Chat Result\" title=\"\"><\/p><h2>Conclusion<\/h2><p>Vi\u1ec7c t\u00edch h\u1ee3p Viber v\u00e0o Chatwoot tuy c\u1ea7n m\u1ed9t ch\u00fat thao t\u00e1c k\u1ef9 thu\u1eadt (\u201cc\u1ea7u n\u1ed1i\u201d) nh\u01b0ng s\u1ebd mang l\u1ea1i hi\u1ec7u qu\u1ea3 to l\u1edbn trong vi\u1ec7c t\u1eadp trung h\u00f3a CSKH. B\u1ea1n kh\u00f4ng c\u1ea7n ph\u1ea3i m\u1edf \u1ee9ng d\u1ee5ng Viber ri\u00eang l\u1ebb n\u1eefa, m\u1ecdi th\u1ee9 \u0111\u1ec1u n\u1eb1m trong dashboard chuy\u00ean nghi\u1ec7p c\u1ee7a Chatwoot.<\/p><p>If you have difficulty configuring n8n, <strong>don't hesitate to leave a comment or contact our technical team<\/strong> for detailed setup support!<\/p>\n<style>\r\n.lwrp.link-whisper-related-posts{\r\n            \r\n            margin-top: 40px;\nmargin-bottom: 30px;\r\n        }\r\n        .lwrp .lwrp-title{\r\n            \r\n            \r\n        }.lwrp .lwrp-description{\r\n            \r\n            \r\n\r\n        }\r\n        .lwrp .lwrp-list-container{\r\n        }\r\n        .lwrp .lwrp-list-multi-container{\r\n            display: flex;\r\n        }\r\n        .lwrp .lwrp-list-double{\r\n            width: 48%;\r\n        }\r\n        .lwrp .lwrp-list-triple{\r\n            width: 32%;\r\n        }\r\n        .lwrp .lwrp-list-row-container{\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n        .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n            width: calc(33% - 20px);\r\n        }\r\n        .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n            \r\n            max-width: 150px;\r\n        }\r\n        .lwrp .lwrp-list-item img{\r\n            max-width: 100%;\r\n            height: auto;\r\n            object-fit: cover;\r\n            aspect-ratio: 1 \/ 1;\r\n        }\r\n        .lwrp .lwrp-list-item.lwrp-empty-list-item{\r\n            background: initial !important;\r\n        }\r\n        .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n        .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n            \r\n            \r\n            \r\n            \r\n        }@media screen and (max-width: 480px) {\r\n            .lwrp.link-whisper-related-posts{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-title{\r\n                \r\n                \r\n            }.lwrp .lwrp-description{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-list-multi-container{\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-multi-container ul.lwrp-list{\r\n                margin-top: 0px;\r\n                margin-bottom: 0px;\r\n                padding-top: 0px;\r\n                padding-bottom: 0px;\r\n            }\r\n            .lwrp .lwrp-list-double,\r\n            .lwrp .lwrp-list-triple{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-row-container{\r\n                justify-content: initial;\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n                \r\n                max-width: initial;\r\n            }\r\n            .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n            .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n                \r\n                \r\n                \r\n                \r\n            };\r\n        }<\/style>\r\n<div id=\"link-whisper-related-posts-widget\" class=\"link-whisper-related-posts lwrp\">\r\n            <div class=\"lwrp-title\">Related Posts<\/div>    \r\n        <div class=\"lwrp-list-container\">\r\n                                <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/best-marketing-campaign-for-christmas-holiday-24-12\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Best Christmas Day Marketing Campaign 24\/12<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/which-is-better-for-your-brand-twitter-or-instagram\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Twitter or Instagram: Which is best for your brand?<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/update-zalo-terms-of-use-important-changes\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Update Zalo Terms of Use \u2013 Important Changes<\/span><\/a><\/div>                <\/div>\r\n                            <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/tiktok-channel-shop-quality-support-warranty\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Quality TikTok channel shop \u2013 Warranty support<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/what-is-the-current-purchase-price-of-a-facebook-group\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">How much is the current price for buying and selling Facebook groups?<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/principles-of-designing-beautiful-banners-you-cannot-miss\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Beautiful banner design principles you can't miss<\/span><\/a><\/div>                <\/div>\r\n                <\/div>\r\n<\/div>","protected":false},"excerpt":{"rendered":"<p>B\u1ea1n \u0111ang s\u1eed d\u1ee5ng Chatwoot \u0111\u1ec3 qu\u1ea3n l\u00fd ch\u0103m s\u00f3c kh\u00e1ch h\u00e0ng \u0111a k\u00eanh nh\u01b0ng l\u1ea1i thi\u1ebfu m\u1ea5t m\u1ed9t k\u00eanh quan tr\u1ecdng t\u1ea1i Vi\u1ec7t Nam: Viber?M\u1eb7c d\u00f9 Chatwoot hi\u1ec7n h\u1ed7 tr\u1ee3 native (t\u00edch h\u1ee3p s\u1eb5n) cho Facebook, Telegram, Zalo (qua Official Account), nh\u01b0ng Viber v\u1eabn ch\u01b0a c\u00f3 m\u1eb7t trong danh s\u00e1ch \u201cout-of-the-box\u201d. Tuy nhi\u00ean, \u0111\u1eebng [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35745","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/posts\/35745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/comments?post=35745"}],"version-history":[{"count":0,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/posts\/35745\/revisions"}],"wp:attachment":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/media?parent=35745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/categories?post=35745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/tags?post=35745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}