Online Smart Automated Response Generator

Smart Automated Response Generator

Generate a Response

Generated Response

${template.text.replace(/\n/g, '
')}

`; templateListDisplay.appendChild(templateEl); }); }; const handleAddTemplate = (e) => { e.preventDefault(); const keywords = templateKeywordsInput.value.trim().toLowerCase().split(',').map(k => k.trim()).filter(k => k); const text = templateTextInput.value.trim(); if (keywords.length > 0 && text) { responseTemplates.push({ id: Date.now(), keywords: keywords, text: text }); renderTemplateList(); addTemplateForm.reset(); } else { alert("Please provide both keywords and template text."); } }; const handleDeleteTemplate = (e) => { if (e.target.classList.contains('delete-template-btn')) { const templateId = parseInt(e.target.dataset.id, 10); responseTemplates = responseTemplates.filter(t => t.id !== templateId); renderTemplateList(); } }; const generateResponse = () => { const query = queryInput.value.trim().toLowerCase(); const tone = toneSelect.value; if (!query) { responseOutput.value = "Please enter an incoming message first."; return; } let bestMatch = null; for (const template of responseTemplates) { if (template.keywords.some(k => query.includes(k))) { bestMatch = template; break; } } let responseText = bestMatch ? bestMatch.text : "Thank you for reaching out. Our team has received your message and will get back to you as soon as possible.\n\nBest regards,\nThe Support Team"; // Adjust tone if (tone === 'Friendly') { responseText = responseText.replace(/Sincerely,|Regards,|Best regards,/g, 'Best,'); responseText = responseText.replace(/Thank you for contacting us/g, 'Thanks for reaching out'); } else if (tone === 'Empathetic') { responseText = responseText.replace(/Thank you for contacting us/g, 'I understand this can be frustrating, and I\'m here to help'); responseText = responseText.replace(/Sincerely,|Regards,/g, 'Warmly,'); } // Professional is the default responseOutput.value = responseText; }; const handlePdfDownload = () => { const text = responseOutput.value; if (!text.trim()) { alert("There is no response to download."); return; } const { jsPDF } = window.jspdf; const pdf = new jsPDF(); pdf.setFont('Inter', 'normal'); pdf.setFontSize(12); const lines = pdf.splitTextToSize(text, 180); // 180 is width in mm pdf.text(lines, 15, 20); pdf.save('generated-response.pdf'); }; // --- Event Listeners --- tabs.dashboard.addEventListener('click', () => { currentTab = 'dashboard'; updateTabs(); }); tabs.config.addEventListener('click', () => { currentTab = 'config'; updateTabs(); }); navButtons.next.addEventListener('click', () => { currentTab = 'config'; updateTabs(); }); navButtons.prev.addEventListener('click', () => { currentTab = 'dashboard'; updateTabs(); }); generateBtn.addEventListener('click', generateResponse); addTemplateForm.addEventListener('submit', handleAddTemplate); templateListDisplay.addEventListener('click', handleDeleteTemplate); downloadPdfBtn.addEventListener('click', handlePdfDownload); // --- Initializations --- updateTabs(); renderTemplateList(); });
Scroll to Top