feat: add crm return button in telegram connect messages

This commit is contained in:
Ruslan Bakiev
2026-02-22 08:52:24 +07:00
parent e907bcfe86
commit d9148261a9

View File

@@ -25,6 +25,23 @@ function pickStartText(update: any): string | null {
return text; return text;
} }
function crmConnectUrl() {
return String(process.env.CRM_APP_URL || "https://clientsflow.dsrptlab.com").trim();
}
function crmConnectButton() {
return {
inline_keyboard: [
[
{
text: "Открыть CRM и подтвердить",
url: crmConnectUrl(),
},
],
],
};
}
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
if (!hasValidSecret(event)) { if (!hasValidSecret(event)) {
throw createError({ statusCode: 401, statusMessage: "invalid webhook secret" }); throw createError({ statusCode: 401, statusMessage: "invalid webhook secret" });
@@ -42,6 +59,7 @@ export default defineEventHandler(async (event) => {
void telegramBotApi("sendMessage", { void telegramBotApi("sendMessage", {
chat_id: startChatId, chat_id: startChatId,
text: "Чтобы привязать Telegram Business к CRM, открой CRM → Settings → Telegram Business → Connect. Кнопка сгенерирует персональную ссылку привязки.", text: "Чтобы привязать Telegram Business к CRM, открой CRM → Settings → Telegram Business → Connect. Кнопка сгенерирует персональную ссылку привязки.",
reply_markup: crmConnectButton(),
}).catch(() => {}); }).catch(() => {});
} }
return { ok: true, accepted: true, type: "start_without_link_token" }; return { ok: true, accepted: true, type: "start_without_link_token" };
@@ -54,6 +72,7 @@ export default defineEventHandler(async (event) => {
void telegramBotApi("sendMessage", { void telegramBotApi("sendMessage", {
chat_id: startChatId, chat_id: startChatId,
text: "Ссылка привязки недействительна или истекла. Вернись в CRM и нажми Connect заново.", text: "Ссылка привязки недействительна или истекла. Вернись в CRM и нажми Connect заново.",
reply_markup: crmConnectButton(),
}).catch(() => {}); }).catch(() => {});
} }
return { ok: true, accepted: false, reason: "invalid_or_expired_link_token" }; return { ok: true, accepted: false, reason: "invalid_or_expired_link_token" };
@@ -85,7 +104,8 @@ export default defineEventHandler(async (event) => {
if (chatId) { if (chatId) {
void telegramBotApi("sendMessage", { void telegramBotApi("sendMessage", {
chat_id: chatId, chat_id: chatId,
text: "CRM: связка аккаунта получена. Теперь подключите Telegram Business в настройках Telegram, затем вернитесь в CRM и обновите статус.", text: "CRM: связка аккаунта получена. Нажми кнопку ниже и вернись в CRM для подтверждения.",
reply_markup: crmConnectButton(),
}).catch(() => {}); }).catch(() => {});
} }