{"id":481354,"date":"2026-05-28T08:33:14","date_gmt":"2026-05-28T08:33:14","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=481354"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=481354","title":{"rendered":"InSales \u0431\u0435\u0437 \u043f\u0443\u0448\u0435\u0439: \u043a\u0430\u043a \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e \u0437\u0430\u043a\u0430\u0437\u0430\u0445 \u0432 Telegram \u043d\u0430 Yandex Cloud Serverless"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 CMS \u0438\u043b\u0438 CRM \u0443\u043c\u0435\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c email-\u043a\u043e\u043f\u0438\u044e \u043e \u043d\u043e\u0432\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441\u00a0\u2014 \u044d\u0442\u043e\u0442 \u0433\u0430\u0439\u0434 \u0434\u043b\u044f\u00a0\u0432\u0430\u0441. InSales, RetailCRM, \u041c\u043e\u0439\u0421\u043a\u043b\u0430\u0434, WooCommerce, \u0411\u0438\u0442\u0440\u0438\u043a\u0441, \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u00a0\u2014 \u0431\u0435\u0437\u00a0\u0440\u0430\u0437\u043d\u0438\u0446\u044b. \u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430\u00a0\u0436\u0435. <strong><em>\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430\u00a0\u0433\u0438\u0442\u0445\u0430\u0431 \u0441\u00a0\u043f\u043e\u043b\u043d\u044b\u0439 \u043c\u0430\u043d\u0443\u0430\u043b\u043e\u043c \u043f\u043e\u00a0\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0430\u00a0\u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0432\u00a0\u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/em><\/strong><\/p>\n<p>\u041f\u043e\u0432\u043e\u0434\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u0434\u0435\u043b\u044e \u043d\u0430\u0437\u0430\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 InSales\u00a0\u0431\u044b\u043b\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0438\u0437\u00a0App Store \u0438 \u043f\u0443\u0448\u0438 \u043e\u00a0\u0437\u0430\u043a\u0430\u0437\u0430\u0445 \u043f\u0440\u043e\u043f\u0430\u043b\u0438 \u0441\u0440\u0430\u0437\u0443. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u0430\u0437\u043e\u0432, \u043d\u043e\u00a0\u0431\u043b\u0430\u0433\u043e \u043e\u043d\u0438 \u043d\u0435\u00a0\u0441\u043e\u0440\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0445\u043e\u0442\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043e\u0441\u0430\u0434\u043e\u043a \u043e\u0441\u0442\u0430\u043b\u0441\u044f.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043c\u044b\u0441\u043b\u044c \u043f\u0440\u0438\u00a0\u043f\u043e\u0438\u0441\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u00a0\u2014 n8n \u0438\u043b\u0438\u00a0Make. \u041d\u043e\u00a0\u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0435 no\u2011code \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u00a0\u0420\u043e\u0441\u0441\u0438\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0438\u0437\u2011\u0437\u0430 \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0439 \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0421\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0437\u043d\u0435\u0441\u2011\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u0447\u044c \u0432\u00a0\u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442\u00a0\u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f.<\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430: \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0420\u0424, \u0431\u0435\u0437\u00a0\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0441\u00a0\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u043e\u0439 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432\u00a0Telegram \u0437\u0430\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0420\u0435\u0448\u0435\u043d\u0438\u0435\u00a0\u2014 Yandex Cloud Serverless: \u043e\u043d \u043d\u0435\u00a0\u0431\u043e\u0438\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a, \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0449\u0435\u0434\u0440\u044b\u0435\u00a0\u043b\u0438\u043c\u0438\u0442\u044b, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u041a\u00a0\u0442\u043e\u043c\u0443\u00a0\u0436\u0435, \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0447\u0435\u043d\u044c \u0433\u0438\u0431\u043e\u043a \u0432\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0438 \u0434\u0430\u043c \u043f\u043e\u043b\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u043f\u043e\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e6e\/9b2\/c05\/e6e9b2c055c477790419ba7226e249c3.jpg\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432 \u0422\u0413\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432 \u0422\u0413\" width=\"1290\" height=\"2403\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e6e\/9b2\/c05\/e6e9b2c055c477790419ba7226e249c3.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e6e\/9b2\/c05\/e6e9b2c055c477790419ba7226e249c3.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432 \u0422\u0413<\/figcaption><\/div>\n<\/figure>\n<h3>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430: \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442<\/h3>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0438\u043d\u0441\u0430\u0439\u0442: InSales (\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 CMS\/CRM) \u0443\u043c\u0435\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c email-\u043a\u043e\u043f\u0438\u044e \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u043e\u0432\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441. \u042d\u0442\u043e\u0442 email \u0438 \u0441\u0442\u0430\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0449\u0438\u0442\u0435 \u0432\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0441\u0432\u043e\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0447\u0442\u043e\u2011\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u00ab\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043f\u0438\u044e \u0437\u0430\u043a\u0430\u0437\u0430 \u043d\u0430\u00a0email\u00bb.<\/p>\n<p>\u0423\u00a0Yandex Cloud \u0435\u0441\u0442\u044c <strong>Email Trigger<\/strong>\u00a0\u2014 \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432\u0438\u0434\u0430 <a href=\"mailto:xxxx@serverless.yandexcloud.net\" rel=\"noopener noreferrer nofollow\"><code>xxxx@serverless.yandexcloud.net<\/code><\/a>. \u041a\u043e\u0433\u0434\u0430 \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043f\u0438\u0441\u044c\u043c\u043e, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f Cloud Function \u0441 \u0442\u0435\u043b\u043e\u043c \u043f\u0438\u0441\u044c\u043c\u0430 \u0432 payload.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<pre><code>InSales  \u2193 email-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e \u0437\u0430\u043a\u0430\u0437\u0435Yandex Cloud Email Trigger  \u2193Cloud Function (Node.js)  \u2193Telegram Bot API<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0Telegram \u0447\u0435\u0440\u0435\u0437 5\u201310\u00a0\u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0430.<\/p>\n<h4>\u0414\u0432\u0435 \u0432\u0435\u0440\u0441\u0438\u0438: Lite \u0438 Pro<\/h4>\n<p>\u042f \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u043e\u0434\u00a0\u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438.<\/p>\n<p><strong>Lite<\/strong>\u00a0\u2014 \u0434\u043b\u044f\u00a0\u0442\u0435\u0445, \u043a\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u00a0\u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443 \u0438\u043b\u0438\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0432\u0438\u0434\u0435\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u044b \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0439:<\/p>\n<pre><code>InSales email \u2192 Email Trigger \u2192 Cloud Function \u2192 Telegram<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 20\u201340\u00a0\u043c\u0438\u043d\u0443\u0442.<\/p>\n<p><strong>Pro<\/strong>\u00a0\u2014 \u0441\u043a\u043e\u0440\u0435\u0435 \u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0442\u043e \u0438 \u043a\u043e\u0433\u0434\u0430 \u0432\u0437\u044f\u043b \u0437\u0430\u043a\u0430\u0437 \u0432\u00a0\u0440\u0430\u0431\u043e\u0442\u0443. \u0415\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0432\u0437\u044f\u043b \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 10 \u043c\u0438\u043d\u0443\u0442 (\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f), \u0442\u043e \u043f\u0440\u0438\u0434\u0451\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435. <\/p>\n<pre><code>InSales email  \u2193Email Trigger  \u2193Cloud Function  \u251c\u2500 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043a\u0430\u0437 \u0432 Telegram (\u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb)  \u251c\u2500 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0437\u0430\u043a\u0430\u0437 \u0432 YDB (\u0441\u0442\u0430\u0442\u0443\u0441: pending)  \u2514\u2500 \u043a\u043b\u0430\u0434\u0451\u0442 request_id \u0432 YMQ \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442        \u2193     \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442 - \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0432 Telegram<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041f\u043e\u0447\u0435\u043c\u0443\u00a0YDB + YMQ<\/h4>\n<p>\u041c\u043e\u0436\u043d\u043e\u00a0\u0431\u044b\u043b\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c <code>setTimeout<\/code> \u0438\u043b\u0438\u00a0\u0432\u043d\u0435\u0448\u043d\u0438\u043c cron\u00a0\u2014 \u043d\u043e\u00a0\u043e\u0431\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u044b \u0432\u00a0serverless\u2011\u0441\u0440\u0435\u0434\u0435, \u0433\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0436\u0438\u0432\u0451\u0442 \u0440\u043e\u0432\u043d\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430.<\/p>\n<p><strong>YDB Serverless<\/strong> \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043a\u0430\u0437\u0430 (<code>pending<\/code> \/ <code>accepted<\/code>). \u041f\u0440\u0438\u00a0\u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0\u2014 \u0438 \u043a\u043e\u0433\u0434\u0430 YMQ \u0447\u0435\u0440\u0435\u0437 10\u00a0\u043c\u0438\u043d\u0443\u0442 \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0431\u0430\u0437\u0443 \u0438 \u043c\u043e\u043b\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u0443\u0436\u0435 \u043f\u0440\u0438\u043d\u044f\u0442.<\/p>\n<p><strong>YMQ (Yandex Message Queue)<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441\u00a0AWS SQS \u0431\u0440\u043e\u043a\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441\u00a0\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 (<code>DelaySeconds: 600<\/code>) \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435\u00a0\u0432\u0438\u0441\u0438\u0442 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u0438, \u0430\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f <strong>Event\u2011Driven Architecture<\/strong>: \u043e\u0434\u043d\u0430 Cloud Function \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043f\u043e\u00a0\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e <code>event<\/code>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432 event<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>event.messages[]<\/code> (email \u043e\u0442 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u0441\u0438\u0442 \u0437\u0430\u043a\u0430\u0437, \u043f\u0438\u0448\u0435\u0442 \u0432 YDB, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 Telegram, \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 YMQ<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>event.body.callback_query<\/code> (\u043a\u043b\u0438\u043a \u043a\u043d\u043e\u043f\u043a\u0438)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0435\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432 YDB, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 \u0432 Telegram<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>event.messages[]<\/code> \u0441 <code>request_id<\/code> (\u0438\u0437 YMQ)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432 YDB, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0448\u043b\u0451\u0442 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u043b\u0430\u0442\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b.<\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u0435\u0440\u0441\u0438\u0439<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">Lite<\/p>\n<\/th>\n<th>\n<p align=\"left\">Pro<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e \u0437\u0430\u043a\u0430\u0437\u0435 \u0432 Telegram<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u0441\u0438\u043d\u0433 email-\u043f\u0438\u0441\u044c\u043c\u0430 InSales<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u043d\u043e\u043f\u043a\u0430 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u274c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430 \u0432 YDB<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u274c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0442\u043e \u043f\u0440\u0438\u043d\u044f\u043b \u0437\u0430\u043a\u0430\u0437<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u274c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u274c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0412\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">20-40 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">60-120 \u043c\u0438\u043d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430: \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e<\/h3>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 serverless, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u041e\u043f\u043b\u0430\u0442\u0430 \u0438\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 Yandex Cloud \u0434\u0430\u0451\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0441\u044f\u0446 <strong>\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e<\/strong>:<\/p>\n<ul>\n<li>\n<p>Cloud Functions: <strong>1 000 000 \u0432\u044b\u0437\u043e\u0432\u043e\u0432<\/strong> + <strong>10 GB\u00d7hour<\/strong> \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>Yandex Message Queue: <strong>100 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/strong><\/p>\n<\/li>\n<li>\n<p>YDB Serverless: <strong>1 000 000 Request Units<\/strong> + <strong>1 \u0413\u0411 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b (Email Trigger, YMQ Trigger) \u0442\u0430\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0437\u0430 \u0441\u0430\u043c\u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u043d\u0435\u0442.<\/p>\n<p>\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u043b\u044f Pro-\u0432\u0435\u0440\u0441\u0438\u0438. \u041e\u0434\u0438\u043d \u0437\u0430\u043a\u0430\u0437 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 2\u20133 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code>1. Email Trigger \u2192 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0437\u0430\u043a\u0430\u0437, \u043f\u0438\u0448\u0435\u0442 \u0432 YDB, \u0448\u043b\u0451\u0442 \u0432 Telegram, \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 YMQ2. \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 \u2192 webhook \u2192 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 YDB \u0438 Telegram3. YMQ Trigger \u2192 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 (\u0438 \u043c\u043e\u043b\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u043f\u0440\u0438\u043d\u044f\u0442)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0417\u0430\u043a\u0430\u0437\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412 \u043c\u0435\u0441\u044f\u0446<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0412\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043c\u0435\u0441\u044f\u0446<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0423\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442?<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">~300<\/p>\n<\/td>\n<td>\n<p align=\"left\">~600\u2013900<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705 \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">100<\/p>\n<\/td>\n<td>\n<p align=\"left\">~3 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">~6 000\u20139 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">500<\/p>\n<\/td>\n<td>\n<p align=\"left\">~15 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">~30 000\u201345 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">~30 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">~60 000\u201390 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2705<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0441 \u0442\u044b\u0441\u044f\u0447\u0435\u0439 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 9% \u043e\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u043b\u0438\u043c\u0438\u0442\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 Cloud Functions. YDB \u0438 YMQ \u0442\u043e\u0436\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043a\u0432\u043e\u0442\u044b.<\/p>\n<blockquote>\n<p>\u0420\u0430\u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439. \u0422\u043e\u0447\u043d\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0435 Yandex Cloud &#8212; \u0442\u0430\u0440\u0438\u0444\u044b, \u0440\u0435\u0433\u0438\u043e\u043d \u0438 \u043e\u0431\u044a\u0451\u043c \u043b\u043e\u0433\u043e\u0432 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0443\u043c\u043c\u0443.<\/p>\n<\/blockquote>\n<hr\/>\n<h3>\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u0433\u0430\u0439\u0434 \u043f\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e<\/h3>\n<h4>\u0428\u0430\u0433 0. \u0421\u043e\u0437\u0434\u0430\u0451\u043c Telegram-\u0431\u043e\u0442\u0430 \u0438 \u0447\u0430\u0442<\/h4>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0431\u043e\u0442\u0430:<\/strong><\/p>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <code>@BotFather<\/code> \u0432 Telegram, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c <code>\/newbot<\/code>, \u0437\u0430\u0434\u0430\u0451\u043c \u0438\u043c\u044f \u0438 username (\u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 <code>bot<\/code>). BotFather \u0432\u044b\u0434\u0430\u0441\u0442 \u0442\u043e\u043a\u0435\u043d \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c:<\/p>\n<pre><code>TELEGRAM_BOT_TOKEN=1234567890:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0447\u0430\u0442 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043e\u0442\u0430:<\/strong><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e \u0437\u0430\u043a\u0430\u0437\u0430\u0445. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043e\u0442\u0430 \u043a\u0430\u043a \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 (\u0432 \u0433\u0440\u0443\u043f\u043f\u0443) \u0438\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 (\u0432 \u043a\u0430\u043d\u0430\u043b). \u0414\u043b\u044f Pro-\u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u043e\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c chat_id:<\/strong><\/p>\n<p>\u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 <code>@UserInfoBot<\/code> \u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0447\u0430\u0442, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c ID. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c:<\/p>\n<pre><code>TELEGRAM_CHAT_ID=-1001234567890<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<pre><code>https:\/\/api.telegram.org\/bot&lt;TOKEN&gt;\/sendMessage?chat\\_id=&lt;CHAT\\_ID&gt;&amp;text=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<h4>\u0428\u0430\u0433 1. \u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Yandex Cloud<\/h4>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 <a href=\"http:\/\/console.yandex.cloud\" rel=\"noopener noreferrer nofollow\">console.yandex.cloud<\/a>, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 (\u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u043c \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442).<\/p>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442:<\/strong><\/p>\n<pre><code>IAM \u2192 \u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043c\u044f: <code>order-alerts-functions-sa<\/code><\/p>\n<p>\u0414\u043b\u044f Lite \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u043e\u043b\u0438 <code>serverless.functions.invoker<\/code>. \u0414\u043b\u044f Pro \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0449\u0451:<\/p>\n<pre><code>ydb.editorymq.writerymq.readerserverless.functions.invoker<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u0414\u043b\u044f Pro\u00a0\u2014 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447 \u0434\u043e\u0441\u0442\u0443\u043f\u0430:<\/strong><\/p>\n<pre><code>\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u2192 \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447 \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u26a0\ufe0f <code>Secret access key<\/code> \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0440\u0430\u0437\u0443.<\/p>\n<\/blockquote>\n<pre><code>AWS_ACCESS_KEY_ID=AWS_SECRET_ACCESS_KEY=<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<h4>\u0428\u0430\u0433 2. \u0421\u043e\u0437\u0434\u0430\u0451\u043c YDB \u0438 YMQ (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pro)<\/h4>\n<p><strong>YDB:<\/strong><\/p>\n<pre><code>YDB \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 Serverless<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 <code>grpcs:\/\/...\/?database=\/ru-central1\/xxxx\/yyyy<\/code> \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0434\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code>YDB_ENDPOINT=grpcs:\/\/ydb.serverless.yandexcloud.net:2135YDB_DATABASE=\/ru-central1\/xxxx\/yyyy<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432 Query editor:<\/p>\n<pre><code class=\"sql\">CREATE TABLE `insales_order_alerts` (  request_id Utf8 NOT NULL,  status Utf8,  order_number Utf8,  phone Utf8,  name Utf8,  customer_email Utf8,  products_text Utf8,  total_price Utf8,  comment Utf8,  delivery_text Utf8,  payment_text Utf8,  payment_status Utf8,  order_url Utf8,  message_id Utf8,  created_at Utf8,  accepted_by Utf8,  accepted_at Utf8,  raw_subject Utf8,  raw_email_text Utf8,  PRIMARY KEY (request_id));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>YMQ:<\/strong><\/p>\n<pre><code>Message Queue \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u2192 Standard<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435: <code>insales-order-reminders<\/code>. \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c <code>0<\/code>  \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 (<code>DelaySeconds: 600<\/code>). \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c URL \u043e\u0447\u0435\u0440\u0435\u0434\u0438:<\/p>\n<pre><code>YMQ_QUEUE_URL=https:\/\/message-queue.api.cloud.yandex.net\/xxxx\/yyyy\/insales-order-reminders<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<h4>\u0428\u0430\u0433 3. \u0421\u043e\u0437\u0434\u0430\u0451\u043c Cloud Function<\/h4>\n<pre><code>Cloud Functions \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043c\u044f: <code>order-mail-to-telegram<\/code>. Runtime: <strong>Node.js<\/strong>. \u0422\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430: <code>index.handler<\/code>. \u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442: <code>order-alerts-functions-sa<\/code>.<\/p>\n<p><strong>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043a\u043e\u0434:<\/strong><\/p>\n<p>\u0411\u0435\u0440\u0451\u043c <code>lite\/index.js<\/code> \u0438\u043b\u0438 <code>pro\/index.js<\/code> \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c <code>package.json<\/code>:   <\/p>\n<p>\u0414\u043b\u044f Lite:<\/p>\n<pre><code class=\"json\">{  \"dependencies\": {    \"html-to-text\": \"^9.0.5\"  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f Pro:<\/p>\n<pre><code class=\"json\">{  \"dependencies\": {    \"ydb-sdk\": \"^5.11.1\",    \"@yandex-cloud\/nodejs-sdk\": \"latest\",    \"@aws-sdk\/client-sqs\": \"^3.600.0\",    \"html-to-text\": \"^9.0.5\"  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f Pro:<\/strong><\/p>\n<pre><code>TELEGRAM_BOT_TOKEN=TELEGRAM_CHAT_ID=YDB_ENDPOINT=grpcs:\/\/ydb.serverless.yandexcloud.net:2135YDB_DATABASE=ORDERS_TABLE=insales_order_alertsYMQ_QUEUE_URL=AWS_ACCESS_KEY_ID=AWS_SECRET_ACCESS_KEY=AWS_REGION=ru-central1REMINDER_DELAY_SECONDS=600<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043f\u043b\u043e\u044f \u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f URL &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0433\u043e, \u043e\u043d \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f webhook.<\/p>\n<p>\u0414\u043b\u044f Pro \u0434\u0435\u043b\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439<\/strong> (Telegram \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0451 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438).<\/p>\n<hr\/>\n<h4>\u0428\u0430\u0433 4. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c Email Trigger<\/h4>\n<pre><code>Cloud Functions \u2192 \u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u2192 \u041f\u043e\u0447\u0442\u0430<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u043a \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b = 1, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a = 1 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435.<\/p>\n<blockquote>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0430\u0432\u00a0\u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u0434\u0430\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u043c\u0443 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443 \u0440\u043e\u043b\u044c <code>editor<\/code>, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440, \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u0437\u043e\u0432\u0438\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u0432\u044b\u0434\u0430\u0441\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 email-\u0430\u0434\u0440\u0435\u0441:<\/p>\n<pre><code>xxxxxxxxxxxxxxxxxxxx@serverless.yandexcloud.net<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 InSales:<\/p>\n<pre><code>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2192 \u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u2192 Email \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<h4>\u0428\u0430\u0433 5. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Telegram Webhook (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pro)<\/h4>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c webhook. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c GET-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435:<\/p>\n<pre><code>https:\/\/api.telegram.org\/bot&lt;TOKEN&gt;\/setWebhook?url=&lt;FUNCTION\\_URL&gt;&amp;allowed\\_updates=%5B%22message%22%2C%22callback\\_query%22%5D<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code>https:\/\/api.telegram.org\/bot&lt;TOKEN&gt;\/getWebhookInfo<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><code>url<\/code> &#8212; URL \u043d\u0430\u0448\u0435\u0439 Cloud Function<\/p>\n<\/li>\n<li>\n<p><code>allowed_updates<\/code> &#8212; \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>callback_query<\/code><\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u0411\u0435\u0437 <code>callback_query<\/code> \u043a\u043d\u043e\u043f\u043a\u0430 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<\/blockquote>\n<hr\/>\n<h4>\u0428\u0430\u0433 6. \u0421\u043e\u0437\u0434\u0430\u0451\u043c YMQ Trigger (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pro)<\/h4>\n<pre><code>Cloud Functions \u2192 \u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u2192 Message Queue<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u044c <code>insales-order-reminders<\/code>, \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u043a \u0442\u043e\u0439 \u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0420\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b = 1.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043a\u0430\u0437 \u0438 \u0447\u0435\u0440\u0435\u0437 5\u201310 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432 Telegram \u043f\u0440\u0438\u0434\u0451\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435.<\/p>\n<hr\/>\n<h3>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/h3>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435\u00a0\u2014 \u043a\u0430\u043a\u00a0\u043e\u0434\u0438\u043d <code>handler<\/code> \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u00a0\u0442\u0440\u0435\u043c\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. <\/p>\n<pre><code>module.exports.handler = async function (event) {  try {    console.log('Incoming event keys:', Object.keys(event || {}));    \/\/ 1. Telegram webhook: \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043d\u0430\u0436\u0430\u043b \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb    const callback = getTelegramCallback(event);    if (callback) {      console.log('Route: telegram callback');      return await handleTelegramCallback(callback);    }    \/\/ 2. YMQ Trigger: \u043f\u0440\u0438\u0448\u043b\u043e \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438    const requestIds = extractRequestIdsFromQueueEvent(event);    if (requestIds.length &gt; 0) {      console.log('Route: reminder queue', requestIds);      return await handleReminderEvent(requestIds);    }    \/\/ 3. Email Trigger: \u043d\u043e\u0432\u044b\u0439 \u0437\u0430\u043a\u0430\u0437 \u0438\u0437 InSales    if (event.httpMethod &amp;&amp; event.httpMethod !== 'POST') {      return jsonResponse(405, { ok: false, error: 'Method not allowed' });    }    console.log('Route: email order');    return await handleEmailOrder(event);  } catch (error) {    console.error('insales-order-handler failed:', error);    return jsonResponse(500, { ok: false, error: 'Internal server error', message: error.message });  }};<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u043e\u0443\u0442\u0438\u043d\u0433\u0430 \u043f\u0440\u043e\u0441\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0432 <code>event<\/code> \u0435\u0441\u0442\u044c <code>callback_query<\/code>\u00a0\u2014 \u044d\u0442\u043e Telegram webhook. \u0414\u043e\u0441\u0442\u0430\u0451\u043c <code>request_id<\/code> \u0438\u0437 <code>callback_data<\/code>, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0437\u0430\u043a\u0430\u0437 \u0432\u00a0YDB, \u043c\u0435\u043d\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441 \u043d\u0430 <code>accepted<\/code>, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0435\u043c \u0447\u0430\u0442.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0432 <code>event.messages[]<\/code> \u0435\u0441\u0442\u044c JSON \u0441 <code>request_id<\/code>\u00a0\u2014 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438\u0437\u00a0YMQ. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430 \u0432\u00a0YDB: \u0435\u0441\u043b\u0438 <code>pending<\/code>\u00a0\u2014 \u0448\u043b\u0451\u043c \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 <code>accepted<\/code>\u00a0\u2014 \u043c\u043e\u043b\u0447\u0438\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 Email Trigger \u0441\u00a0\u043f\u0438\u0441\u044c\u043c\u043e\u043c \u043e\u00a0\u0437\u0430\u043a\u0430\u0437\u0435. \u041f\u0430\u0440\u0441\u0438\u043c, \u043f\u0438\u0448\u0435\u043c \u0432\u00a0YDB, \u0448\u043b\u0451\u043c \u0432\u00a0Telegram, \u043a\u043b\u0430\u0434\u0451\u043c <code>request_id<\/code> \u0432\u00a0YMQ.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0430\u0440\u0441\u0435\u0440 \u043f\u0438\u0441\u044c\u043c\u0430<\/h4>\n<p>\u042d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0445\u0440\u0443\u043f\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c. \u041f\u0438\u0441\u044c\u043c\u0430 \u043e\u0442\u00a0\u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0432\u00a0\u0440\u0430\u0437\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441\u00a0\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c\u00a0\u2014 <code>matchFirst<\/code> \u0431\u0435\u0440\u0451\u0442 \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435:<\/p>\n<pre><code>const orderNumber = matchFirst(sourceText, [  \/\u041f\u043e\u0441\u0442\u0443\u043f\u0438\u043b \u0437\u0430\u043a\u0430\u0437\\s*\u2116\\s*([^\\s\\n]+)\/i,  \/\u0437\u0430\u043a\u0430\u0437\\s*\u2116\\s*([^\\s\\n!]+)\/i,  \/\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c \u0412\u0430\u0441 \u0437\u0430 \u0437\u0430\u043a\u0430\u0437\\s*\u2116\\s*([^\\s\\n!]+)\/i,  \/\u041d\u043e\u0432\u044b\u0439 \u0437\u0430\u043a\u0430\u0437\\s*\u2116\\s*([^\\s\\n]+)\/i,]);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430, email, \u0441\u043e\u0441\u0442\u0430\u0432\u0430 \u0437\u0430\u043a\u0430\u0437\u0430, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0430\u0434\u043c\u0438\u043d\u043a\u0443. HTML \u0438\u0437 \u043f\u0438\u0441\u044c\u043c\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0441\u0442 \u0447\u0435\u0440\u0435\u0437 <code>html-to-text<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e regex-\u0430\u043c\u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u044e\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438.<\/p>\n<p>\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e InSales \u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0451 \u0432 tracking URL. \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>extractRealUrlFromInsalesTracker<\/code> \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442 base64url-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>url<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441:<\/p>\n<pre><code>function extractRealUrlFromInsalesTracker(url) {  const parsed = new URL(rawUrl);  const encodedTarget = parsed.searchParams.get('url');  const decodedTarget = decodeBase64Url(encodedTarget);  return decodedTarget || rawUrl;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u041a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e \u0437\u0430\u043a\u0430\u0437\u0435:<\/p>\n<pre><code>\ud83d\uded2 \u041d\u043e\u0432\u044b\u0439 \u0437\u0430\u043a\u0430\u0437!\u0417\u0430\u043a\u0430\u0437: \u21166004\u041a\u043b\u0438\u0435\u043d\u0442: \u0418\u0432\u0430\u043d\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8(999)123-45-67E-mail: client@example.com\u0421\u043e\u0441\u0442\u0430\u0432 \u0437\u0430\u043a\u0430\u0437\u0430:\u041c\u0430\u0441\u0441\u0430\u0436\u043d\u044b\u0439 \u043f\u0438\u0441\u0442\u043e\u043b\u0435\u0442 Booster M2\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u044f: \u041d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0421\u0443\u043c\u043c\u0430: 9 990 \u20bd\u041e\u043f\u043b\u0430\u0442\u0430: \u041e\u043f\u043b\u0430\u0442\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0437\u0430\u043a\u0430\u0437 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435  [\u043a\u043d\u043e\u043f\u043a\u0430][\u2705 \u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 10 \u043c\u0438\u043d\u0443\u0442 (\u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u0432\u0437\u044f\u043b\u0438):<\/p>\n<pre><code>\ud83d\udea8 \u0417\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442 10 \u043c\u0438\u043d\u0443\u0442\u0417\u0430\u043a\u0430\u0437: \u21166004\u041a\u043b\u0438\u0435\u043d\u0442: \u0418\u0432\u0430\u043d\u0422\u0435\u043b\u0435\u0444\u043e\u043d: 8(999)123-45-67\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0437\u0430\u043a\u0430\u0437 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<h3>\u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/h3>\n<p>\u041a InSales \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u0438\u0441\u044c\u043c\u0430, \u0438 \u0442\u043e \u0435\u0433\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c. \u0421\u0430\u043c\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 (Email Trigger \u2192 Cloud Function \u2192 YDB\/YMQ \u2192 Telegram) \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043c\u0435\u0435\u0442 \u0441\u043b\u0430\u0442\u044c email-\u043a\u043e\u043f\u0438\u044e \u043e \u0437\u0430\u043a\u0430\u0437\u0435.<\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435: \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0432\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 email-\u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e \u0437\u0430\u043a\u0430\u0437\u0430\u0445. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 CMS \u0438 CRM \u044d\u0442\u043e \u0435\u0441\u0442\u044c.<\/p>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e:<\/p>\n<ul>\n<li>\n<p><strong>RetailCRM<\/strong> &#8212; \u0435\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 email<\/p>\n<\/li>\n<li>\n<p><strong>\u041c\u043e\u0439\u0421\u043a\u043b\u0430\u0434<\/strong> &#8212; \u0435\u0441\u0442\u044c \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u043f\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u0441 email-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435\u043c<\/p>\n<\/li>\n<li>\n<p><strong>\u041b\u044e\u0431\u0430\u044f \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u0430\u044f CRM<\/strong> &#8212; \u0435\u0441\u043b\u0438 \u0443\u043c\u0435\u0435\u0442 \u0441\u043b\u0430\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u0430<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0440\u0443\u0433\u0438\u0435 CMS<\/strong> &#8212; \u0411\u0438\u0442\u0440\u0438\u043a\u0441, OpenCart, WooCommerce<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u0438\u0441\u044c\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 \u0432 <code>parseOrderEmail<\/code>, <code>extractProductsText<\/code> \u0438 <code>extractDeliveryText<\/code>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u0432 <code>docs\/<\/code><a href=\"http:\/\/code-overview.md\" rel=\"noopener noreferrer nofollow\"><code>code-overview.md<\/code><\/a> \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.<\/p>\n<hr\/>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0437\u0430\u043a\u0430\u0437\u044b. \u0412\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u0412\u00a0\u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f\u00a0\u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0437\u0430\u043a\u0430\u0437\u0430.<\/p>\n<p>\u0427\u0442\u043e\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<ul>\n<li>\n<p><strong>Serverless<\/strong>\u00a0\u2014 \u043d\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u00a0\u0437\u0430\u00a0\u0447\u0442\u043e<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0420\u0424<\/strong>\u00a0\u2014 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043e\u0442\u00a0\u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c<\/p>\n<\/li>\n<li>\n<p><strong>Event\u2011Driven<\/strong>\u00a0\u2014 \u043e\u0434\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 email, webhook \u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044c<\/p>\n<\/li>\n<li>\n<p><strong>Open source<\/strong>\u00a0\u2014 \u043c\u043e\u0436\u043d\u043e \u0444\u043e\u0440\u043a\u043d\u0443\u0442\u044c \u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u00a0\u0441\u0432\u043e\u0439 \u0441\u0442\u0435\u043a<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0438\u0437 email-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0432 Telegram \u0447\u0435\u0440\u0435\u0437 Yandex Cloud. \u0415\u0441\u0442\u044c Lite-\u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0438 Pro-\u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f, \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0430 \u0438 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435\u043c, \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438\u043b\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0435\u0448\u0451\u0432\u044b\u0439 \u043f\u0440\u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0445 \u043e\u0431\u044a\u0451\u043c\u0430\u0445, \u043d\u0435 \u0431\u043e\u0438\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a.  <\/p>\n<p><a href=\"https:\/\/github.com\/DmitriiDmallSick\/order-mail-to-telegram\" rel=\"noopener noreferrer nofollow\"><strong>\u041a\u043e\u0434 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 DmitriiDmallSick\/order-mail-to-telegram:<\/strong><\/a><strong>  <\/strong>\u043f\u043e\u043b\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u043c\u0438 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438, \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043a\u043e\u0434\u0430 (Lite \u0438 Pro), \u043f\u0440\u0438\u043c\u0435\u0440\u044b <code>.env<\/code> \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 <code>docs\/code-overview.md<\/code>.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1040472\/\">https:\/\/habr.com\/ru\/articles\/1040472\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 CMS \u0438\u043b\u0438 CRM \u0443\u043c\u0435\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c email-\u043a\u043e\u043f\u0438\u044e \u043e \u043d\u043e\u0432\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441\u00a0\u2014 \u044d\u0442\u043e\u0442 \u0433\u0430\u0439\u0434 \u0434\u043b\u044f\u00a0\u0432\u0430\u0441. InSales, RetailCRM, \u041c\u043e\u0439\u0421\u043a\u043b\u0430\u0434, WooCommerce, \u0411\u0438\u0442\u0440\u0438\u043a\u0441, \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u00a0\u2014 \u0431\u0435\u0437\u00a0\u0440\u0430\u0437\u043d\u0438\u0446\u044b. \u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0434\u043d\u0430 \u0438 \u0442\u0430\u00a0\u0436\u0435. \u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430\u00a0\u0433\u0438\u0442\u0445\u0430\u0431 \u0441\u00a0\u043f\u043e\u043b\u043d\u044b\u0439 \u043c\u0430\u043d\u0443\u0430\u043b\u043e\u043c \u043f\u043e\u00a0\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0430\u00a0\u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0432\u00a0\u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.\u041f\u043e\u0432\u043e\u0434\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0442\u0430\u043b\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0435\u0434\u0435\u043b\u044e \u043d\u0430\u0437\u0430\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 InSales\u00a0\u0431\u044b\u043b\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0438\u0437\u00a0App Store \u0438 \u043f\u0443\u0448\u0438 \u043e\u00a0\u0437\u0430\u043a\u0430\u0437\u0430\u0445 \u043f\u0440\u043e\u043f\u0430\u043b\u0438 \u0441\u0440\u0430\u0437\u0443. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u0430\u0437\u043e\u0432, \u043d\u043e\u00a0\u0431\u043b\u0430\u0433\u043e \u043e\u043d\u0438 \u043d\u0435\u00a0\u0441\u043e\u0440\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0445\u043e\u0442\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043e\u0441\u0430\u0434\u043e\u043a \u043e\u0441\u0442\u0430\u043b\u0441\u044f.\u041f\u0435\u0440\u0432\u0430\u044f \u043c\u044b\u0441\u043b\u044c \u043f\u0440\u0438\u00a0\u043f\u043e\u0438\u0441\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u00a0\u2014 n8n \u0438\u043b\u0438\u00a0Make. \u041d\u043e\u00a0\u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0435 no\u2011code \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u00a0\u0420\u043e\u0441\u0441\u0438\u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0438\u0437\u2011\u0437\u0430 \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0439 \u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0421\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0431\u0438\u0437\u043d\u0435\u0441\u2011\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u0447\u044c \u0432\u00a0\u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442\u00a0\u2014 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f.\u0417\u0430\u0434\u0430\u0447\u0430: \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0420\u0424, \u0431\u0435\u0437\u00a0\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0441\u00a0\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u043e\u0439 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432\u00a0Telegram \u0437\u0430\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0420\u0435\u0448\u0435\u043d\u0438\u0435\u00a0\u2014 Yandex Cloud Serverless: \u043e\u043d \u043d\u0435\u00a0\u0431\u043e\u0438\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a, \u0438\u043c\u0435\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0449\u0435\u0434\u0440\u044b\u0435\u00a0\u043b\u0438\u043c\u0438\u0442\u044b, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u041a\u00a0\u0442\u043e\u043c\u0443\u00a0\u0436\u0435, \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0447\u0435\u043d\u044c \u0433\u0438\u0431\u043e\u043a \u0432\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438.\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0438 \u0434\u0430\u043c \u043f\u043e\u043b\u043d\u044b\u0439 \u0433\u0430\u0439\u0434 \u043f\u043e\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435.\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432 \u0422\u0413\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430: \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0438\u043d\u0441\u0430\u0439\u0442: InSales (\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 CMS\/CRM) \u0443\u043c\u0435\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c email-\u043a\u043e\u043f\u0438\u044e \u043e \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u043e\u0432\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0435 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441. \u042d\u0442\u043e\u0442 email \u0438 \u0441\u0442\u0430\u043b \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0418\u0449\u0438\u0442\u0435 \u0432\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0441\u0432\u043e\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0447\u0442\u043e\u2011\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u00ab\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043f\u0438\u044e \u0437\u0430\u043a\u0430\u0437\u0430 \u043d\u0430\u00a0email\u00bb.\u0423\u00a0Yandex Cloud \u0435\u0441\u0442\u044c Email Trigger\u00a0\u2014 \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432\u0438\u0434\u0430 xxxx@serverless.yandexcloud.net. \u041a\u043e\u0433\u0434\u0430 \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043f\u0438\u0441\u044c\u043c\u043e, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f Cloud Function \u0441 \u0442\u0435\u043b\u043e\u043c \u043f\u0438\u0441\u044c\u043c\u0430 \u0432 payload.\u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e:InSales  \u2193 email-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e \u0437\u0430\u043a\u0430\u0437\u0435Yandex Cloud Email Trigger  \u2193Cloud Function (Node.js)  \u2193Telegram Bot API\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0Telegram \u0447\u0435\u0440\u0435\u0437 5\u201310\u00a0\u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u043e\u0441\u043b\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0430.\u0414\u0432\u0435 \u0432\u0435\u0440\u0441\u0438\u0438: Lite \u0438 Pro\u042f \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u043e\u0434\u00a0\u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438.Lite\u00a0\u2014 \u0434\u043b\u044f\u00a0\u0442\u0435\u0445, \u043a\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u00a0\u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443 \u0438\u043b\u0438\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0432\u0438\u0434\u0435\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u044b \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0439:InSales email \u2192 Email Trigger \u2192 Cloud Function \u2192 Telegram\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 20\u201340\u00a0\u043c\u0438\u043d\u0443\u0442.Pro\u00a0\u2014 \u0441\u043a\u043e\u0440\u0435\u0435 \u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0442\u043e \u0438 \u043a\u043e\u0433\u0434\u0430 \u0432\u0437\u044f\u043b \u0437\u0430\u043a\u0430\u0437 \u0432\u00a0\u0440\u0430\u0431\u043e\u0442\u0443. \u0415\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0432\u0437\u044f\u043b \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 10 \u043c\u0438\u043d\u0443\u0442 (\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f), \u0442\u043e \u043f\u0440\u0438\u0434\u0451\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435. InSales email  \u2193Email Trigger  \u2193Cloud Function  \u251c\u2500 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043a\u0430\u0437 \u0432 Telegram (\u0441 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb)  \u251c\u2500 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0437\u0430\u043a\u0430\u0437 \u0432 YDB (\u0441\u0442\u0430\u0442\u0443\u0441: pending)  \u2514\u2500 \u043a\u043b\u0430\u0434\u0451\u0442 request_id \u0432 YMQ \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442        \u2193     \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442 &#8212; \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0432 Telegram\u041f\u043e\u0447\u0435\u043c\u0443\u00a0YDB + YMQ\u041c\u043e\u0436\u043d\u043e\u00a0\u0431\u044b\u043b\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c setTimeout \u0438\u043b\u0438\u00a0\u0432\u043d\u0435\u0448\u043d\u0438\u043c cron\u00a0\u2014 \u043d\u043e\u00a0\u043e\u0431\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u044b \u0432\u00a0serverless\u2011\u0441\u0440\u0435\u0434\u0435, \u0433\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0436\u0438\u0432\u0451\u0442 \u0440\u043e\u0432\u043d\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430.YDB Serverless \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043a\u0430\u0437\u0430 (pending \/ accepted). \u041f\u0440\u0438\u00a0\u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0\u2014 \u0438 \u043a\u043e\u0433\u0434\u0430 YMQ \u0447\u0435\u0440\u0435\u0437 10\u00a0\u043c\u0438\u043d\u0443\u0442 \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043e\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0431\u0430\u0437\u0443 \u0438 \u043c\u043e\u043b\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u0443\u0436\u0435 \u043f\u0440\u0438\u043d\u044f\u0442.YMQ (Yandex Message Queue)\u00a0\u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441\u00a0AWS SQS \u0431\u0440\u043e\u043a\u0435\u0440 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441\u00a0\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 (DelaySeconds: 600) \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435\u00a0\u0432\u0438\u0441\u0438\u0442 \u0432\u00a0\u043f\u0430\u043c\u044f\u0442\u0438, \u0430\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f.\u042d\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f Event\u2011Driven Architecture: \u043e\u0434\u043d\u0430 Cloud Function \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043f\u043e\u00a0\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e event:\u0427\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432 event\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044fevent.messages[] (email \u043e\u0442 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430)\u041f\u0430\u0440\u0441\u0438\u0442 \u0437\u0430\u043a\u0430\u0437, \u043f\u0438\u0448\u0435\u0442 \u0432 YDB, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 Telegram, \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 YMQevent.body.callback_query (\u043a\u043b\u0438\u043a \u043a\u043d\u043e\u043f\u043a\u0438)\u041c\u0435\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432 YDB, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 \u0432 Telegramevent.messages[] \u0441 request_id (\u0438\u0437 YMQ)\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432 YDB, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0448\u043b\u0451\u0442 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435\u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041f\u043b\u0430\u0442\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b.\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u0435\u0440\u0441\u0438\u0439\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044cLitePro\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e \u0437\u0430\u043a\u0430\u0437\u0435 \u0432 Telegram\u2705\u2705\u041f\u0430\u0440\u0441\u0438\u043d\u0433 email-\u043f\u0438\u0441\u044c\u043c\u0430 InSales\u2705\u2705\u041a\u043d\u043e\u043f\u043a\u0430 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb\u274c\u2705\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430 \u0432 YDB\u274c\u2705\u041a\u0442\u043e \u043f\u0440\u0438\u043d\u044f\u043b \u0437\u0430\u043a\u0430\u0437\u274c\u2705\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442\u274c\u2705\u0412\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043820-40 \u043c\u0438\u043d60-120 \u043c\u0438\u043d\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430: \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 serverless, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u041e\u043f\u043b\u0430\u0442\u0430 \u0438\u0434\u0451\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435.\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 Yandex Cloud \u0434\u0430\u0451\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0441\u044f\u0446 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e:Cloud Functions: 1 000 000 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 + 10 GB\u00d7hour \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044fYandex Message Queue: 100 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432YDB Serverless: 1 000 000 Request Units + 1 \u0413\u0411 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b (Email Trigger, YMQ Trigger) \u0442\u0430\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0437\u0430 \u0441\u0430\u043c\u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u043d\u0435\u0442.\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u043b\u044f Pro-\u0432\u0435\u0440\u0441\u0438\u0438. \u041e\u0434\u0438\u043d \u0437\u0430\u043a\u0430\u0437 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 2\u20133 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:1. Email Trigger \u2192 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0437\u0430\u043a\u0430\u0437, \u043f\u0438\u0448\u0435\u0442 \u0432 YDB, \u0448\u043b\u0451\u0442 \u0432 Telegram, \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 YMQ2. \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 \u2192 webhook \u2192 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 YDB \u0438 Telegram3. YMQ Trigger \u2192 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 (\u0438 \u043c\u043e\u043b\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u043f\u0440\u0438\u043d\u044f\u0442)\u0417\u0430\u043a\u0430\u0437\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c\u0412 \u043c\u0435\u0441\u044f\u0446\u0412\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043c\u0435\u0441\u044f\u0446\u0423\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u0432 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442?10~300~600\u2013900\u2705 \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c100~3 000~6 000\u20139 000\u2705 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c500~15 000~30 000\u201345 000\u27051 000~30 000~60 000\u201390 000\u2705\u0414\u043b\u044f \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u0441 \u0442\u044b\u0441\u044f\u0447\u0435\u0439 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 9% \u043e\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e \u043b\u0438\u043c\u0438\u0442\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 Cloud Functions. YDB \u0438 YMQ \u0442\u043e\u0436\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043a\u0432\u043e\u0442\u044b.\u0420\u0430\u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439. \u0422\u043e\u0447\u043d\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0435 Yandex Cloud &#8212; \u0442\u0430\u0440\u0438\u0444\u044b, \u0440\u0435\u0433\u0438\u043e\u043d \u0438 \u043e\u0431\u044a\u0451\u043c \u043b\u043e\u0433\u043e\u0432 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0443\u043c\u043c\u0443.\u041f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u0433\u0430\u0439\u0434 \u043f\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e\u0428\u0430\u0433 0. \u0421\u043e\u0437\u0434\u0430\u0451\u043c Telegram-\u0431\u043e\u0442\u0430 \u0438 \u0447\u0430\u0442\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0431\u043e\u0442\u0430:\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c @BotFather \u0432 Telegram, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \/newbot, \u0437\u0430\u0434\u0430\u0451\u043c \u0438\u043c\u044f \u0438 username (\u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 bot). BotFather \u0432\u044b\u0434\u0430\u0441\u0442 \u0442\u043e\u043a\u0435\u043d \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c:TELEGRAM_BOT_TOKEN=1234567890:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0447\u0430\u0442 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043e\u0442\u0430:\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e \u0437\u0430\u043a\u0430\u0437\u0430\u0445. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043e\u0442\u0430 \u043a\u0430\u043a \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 (\u0432 \u0433\u0440\u0443\u043f\u043f\u0443) \u0438\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 (\u0432 \u043a\u0430\u043d\u0430\u043b). \u0414\u043b\u044f Pro-\u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u043e\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c chat_id:\u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 @UserInfoBot \u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0447\u0430\u0442, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c ID. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c:TELEGRAM_CHAT_ID=-1001234567890\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:https:\/\/api.telegram.org\/bot&lt;TOKEN&gt;\/sendMessage?chat\\_id=&lt;CHAT\\_ID&gt;&amp;text=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0428\u0430\u0433 1. \u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c Yandex Cloud\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 console.yandex.cloud, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 (\u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u043c \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043b\u0438\u043c\u0438\u0442).\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442:IAM \u2192 \u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c\u0418\u043c\u044f: order-alerts-functions-sa\u0414\u043b\u044f Lite \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u043e\u043b\u0438 serverless.functions.invoker. \u0414\u043b\u044f Pro \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0449\u0451:ydb.editorymq.writerymq.readerserverless.functions.invoker\u0414\u043b\u044f Pro\u00a0\u2014 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447 \u0434\u043e\u0441\u0442\u0443\u043f\u0430:\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u2192 \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u044e\u0447 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u26a0\ufe0f Secret access key \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0440\u0430\u0437\u0443.AWS_ACCESS_KEY_ID=AWS_SECRET_ACCESS_KEY=\u0428\u0430\u0433 2. \u0421\u043e\u0437\u0434\u0430\u0451\u043c YDB \u0438 YMQ (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pro)YDB:YDB \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 Serverless\u0418\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 grpcs:\/\/&#8230;\/?database=\/ru-central1\/xxxx\/yyyy \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0434\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:YDB_ENDPOINT=grpcs:\/\/ydb.serverless.yandexcloud.net:2135YDB_DATABASE=\/ru-central1\/xxxx\/yyyy\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432 Query editor:CREATE TABLE `insales_order_alerts` (  request_id Utf8 NOT NULL,  status Utf8,  order_number Utf8,  phone Utf8,  name Utf8,  customer_email Utf8,  products_text Utf8,  total_price Utf8,  comment Utf8,  delivery_text Utf8,  payment_text Utf8,  payment_status Utf8,  order_url Utf8,  message_id Utf8,  created_at Utf8,  accepted_by Utf8,  accepted_at Utf8,  raw_subject Utf8,  raw_email_text Utf8,  PRIMARY KEY (request_id));YMQ:Message Queue \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u2192 Standard\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435: insales-order-reminders. \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c 0  \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 (DelaySeconds: 600). \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c URL \u043e\u0447\u0435\u0440\u0435\u0434\u0438:YMQ_QUEUE_URL=https:\/\/message-queue.api.cloud.yandex.net\/xxxx\/yyyy\/insales-order-reminders\u0428\u0430\u0433 3. \u0421\u043e\u0437\u0434\u0430\u0451\u043c Cloud FunctionCloud Functions \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u0418\u043c\u044f: order-mail-to-telegram. Runtime: Node.js. \u0422\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430: index.handler. \u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442: order-alerts-functions-sa.\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043a\u043e\u0434:\u0411\u0435\u0440\u0451\u043c lite\/index.js \u0438\u043b\u0438 pro\/index.js \u0438\u0437 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c package.json:   \u0414\u043b\u044f Lite:{  &#171;dependencies&#187;: {    &#171;html-to-text&#187;: &#171;^9.0.5&#187;  }}\u0414\u043b\u044f Pro:{  &#171;dependencies&#187;: {    &#171;ydb-sdk&#187;: &#171;^5.11.1&#187;,    &#171;@yandex-cloud\/nodejs-sdk&#187;: &#171;latest&#187;,    &#171;@aws-sdk\/client-sqs&#187;: &#171;^3.600.0&#187;,    &#171;html-to-text&#187;: &#171;^9.0.5&#187;  }}\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f Pro:TELEGRAM_BOT_TOKEN=TELEGRAM_CHAT_ID=YDB_ENDPOINT=grpcs:\/\/ydb.serverless.yandexcloud.net:2135YDB_DATABASE=ORDERS_TABLE=insales_order_alertsYMQ_QUEUE_URL=AWS_ACCESS_KEY_ID=AWS_SECRET_ACCESS_KEY=AWS_REGION=ru-central1REMINDER_DELAY_SECONDS=600\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u043f\u043b\u043e\u044f \u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f URL &#8212; \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0433\u043e, \u043e\u043d \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f webhook.\u0414\u043b\u044f Pro \u0434\u0435\u043b\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0439 (Telegram \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0451 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438).\u0428\u0430\u0433 4. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c Email TriggerCloud Functions \u2192 \u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u2192 \u041f\u043e\u0447\u0442\u0430\u041f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u043a \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442, \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b = 1, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a = 1 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435.\u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0430\u0432\u00a0\u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u0434\u0430\u0439\u0442\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u043c\u0443 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443 \u0440\u043e\u043b\u044c editor, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0442\u0440\u0438\u0433\u0433\u0435\u0440, \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u0437\u043e\u0432\u0438\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e.\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u0432\u044b\u0434\u0430\u0441\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 email-\u0430\u0434\u0440\u0435\u0441:xxxxxxxxxxxxxxxxxxxx@serverless.yandexcloud.net\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 InSales:\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2192 \u041a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0430 \u2192 Email \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439\u0428\u0430\u0433 5. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Telegram Webhook (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pro)\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c webhook. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c GET-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435:https:\/\/api.telegram.org\/bot&lt;TOKEN&gt;\/setWebhook?url=&lt;FUNCTION\\_URL&gt;&amp;allowed\\_updates=%5B%22message%22%2C%22callback\\_query%22%5D\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:https:\/\/api.telegram.org\/bot&lt;TOKEN&gt;\/getWebhookInfo\u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c:url &#8212; URL \u043d\u0430\u0448\u0435\u0439 Cloud Functionallowed_updates &#8212; \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 callback_query\u0411\u0435\u0437 callback_query \u043a\u043d\u043e\u043f\u043a\u0430 \u00ab\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u00bb \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.\u0428\u0430\u0433 6. \u0421\u043e\u0437\u0434\u0430\u0451\u043c YMQ Trigger (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Pro)Cloud Functions \u2192 \u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u2192 \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0440\u0438\u0433\u0433\u0435\u0440 \u2192 Message Queue\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u044c insales-order-reminders, \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u043a \u0442\u043e\u0439 \u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0420\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0443\u043f\u043f\u044b = 1.\u041d\u0430 \u044d\u0442\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043a\u0430\u0437 \u0438 \u0447\u0435\u0440\u0435\u0437 5\u201310 \u0441\u0435\u043a\u0443\u043d\u0434 \u0432 Telegram \u043f\u0440\u0438\u0434\u0451\u0442&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-481354","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/481354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=481354"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/481354\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=481354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=481354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=481354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}