Restyle site to match flowautomate.ai design system
Replace Navy (#1B3A5C) / Gold (#C9A94E) with flowautomate.ai's red (#FF1F1F) / dark neutral (#171717, #262626) theme. Add Inter + Poppins Google Fonts, update logo, email templates, and CSP headers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
42
server.js
42
server.js
@@ -44,10 +44,10 @@ app.use(helmet({
|
||||
contentSecurityPolicy: {
|
||||
directives: {
|
||||
defaultSrc: ["'self'"],
|
||||
styleSrc: ["'self'", "'unsafe-inline'"],
|
||||
styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com"],
|
||||
scriptSrc: ["'self'"],
|
||||
imgSrc: ["'self'", "data:"],
|
||||
fontSrc: ["'self'"],
|
||||
fontSrc: ["'self'", "https://fonts.gstatic.com"],
|
||||
connectSrc: ["'self'"],
|
||||
},
|
||||
},
|
||||
@@ -111,27 +111,27 @@ app.post('/api/submit-lead', submitLimiter, async (req, res) => {
|
||||
|
||||
// Send notification email to team
|
||||
const notifyHtml = `
|
||||
<h2 style="color:#1B3A5C;">New Lead from houses.flowautomate.ai</h2>
|
||||
<h2 style="color:#171717;font-family:Arial,sans-serif;">New Lead from houses.flowautomate.ai</h2>
|
||||
<table style="font-family:Arial,sans-serif;border-collapse:collapse;">
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Name</td><td style="padding:6px 12px;">${escapeHtml(name)}</td></tr>
|
||||
<tr style="background:#F8F9FA;"><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Phone</td><td style="padding:6px 12px;">${escapeHtml(phone)}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Email</td><td style="padding:6px 12px;">${escapeHtml(email)}</td></tr>
|
||||
<tr style="background:#F8F9FA;"><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Property</td><td style="padding:6px 12px;">${escapeHtml(address)}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Condition</td><td style="padding:6px 12px;">${escapeHtml(condition || 'Not specified')}</td></tr>
|
||||
<tr style="background:#F8F9FA;"><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Timeline</td><td style="padding:6px 12px;">${escapeHtml(timeline || 'Not specified')}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">TCPA Consent</td><td style="padding:6px 12px;">Yes</td></tr>
|
||||
<tr style="background:#F8F9FA;"><td style="padding:6px 12px;font-weight:bold;color:#1B3A5C;">Submitted</td><td style="padding:6px 12px;">${new Date().toLocaleString('en-US', { timeZone: 'America/Chicago' })}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#171717;">Name</td><td style="padding:6px 12px;">${escapeHtml(name)}</td></tr>
|
||||
<tr style="background:#f9fafb;"><td style="padding:6px 12px;font-weight:bold;color:#171717;">Phone</td><td style="padding:6px 12px;">${escapeHtml(phone)}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#171717;">Email</td><td style="padding:6px 12px;">${escapeHtml(email)}</td></tr>
|
||||
<tr style="background:#f9fafb;"><td style="padding:6px 12px;font-weight:bold;color:#171717;">Property</td><td style="padding:6px 12px;">${escapeHtml(address)}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#171717;">Condition</td><td style="padding:6px 12px;">${escapeHtml(condition || 'Not specified')}</td></tr>
|
||||
<tr style="background:#f9fafb;"><td style="padding:6px 12px;font-weight:bold;color:#171717;">Timeline</td><td style="padding:6px 12px;">${escapeHtml(timeline || 'Not specified')}</td></tr>
|
||||
<tr><td style="padding:6px 12px;font-weight:bold;color:#171717;">TCPA Consent</td><td style="padding:6px 12px;">Yes</td></tr>
|
||||
<tr style="background:#f9fafb;"><td style="padding:6px 12px;font-weight:bold;color:#171717;">Submitted</td><td style="padding:6px 12px;">${new Date().toLocaleString('en-US', { timeZone: 'America/Chicago' })}</td></tr>
|
||||
</table>
|
||||
`;
|
||||
|
||||
// Auto-response email to seller
|
||||
const autoResponseHtml = `
|
||||
<div style="font-family:Arial,Helvetica,sans-serif;max-width:600px;margin:0 auto;">
|
||||
<div style="background:#1B3A5C;padding:24px;text-align:center;">
|
||||
<h1 style="color:#C9A94E;margin:0;font-size:22px;">Flowautomate LLC</h1>
|
||||
<div style="background:#171717;padding:24px;text-align:center;">
|
||||
<h1 style="color:#FF1F1F;margin:0;font-size:22px;">Flowautomate LLC</h1>
|
||||
<p style="color:#ffffff;margin:6px 0 0;font-size:13px;">AI-Powered Real Estate Solutions</p>
|
||||
</div>
|
||||
<div style="padding:28px 24px;color:#333;">
|
||||
<div style="padding:28px 24px;color:#262626;">
|
||||
<p>Hi ${escapeHtml(name.split(' ')[0])},</p>
|
||||
<p>Thank you for reaching out about your property at <strong>${escapeHtml(address)}</strong>. We received your information and our team is reviewing it now.</p>
|
||||
<p><strong>What happens next:</strong></p>
|
||||
@@ -142,19 +142,19 @@ app.post('/api/submit-lead', submitLimiter, async (req, res) => {
|
||||
</ul>
|
||||
<p>If you have any questions in the meantime, feel free to call or text us:</p>
|
||||
<p style="text-align:center;margin:20px 0;">
|
||||
<a href="tel:+14256107779" style="display:inline-block;background:#C9A94E;color:#fff;padding:12px 28px;text-decoration:none;border-radius:6px;font-weight:700;font-size:16px;">(425) 610-7779</a>
|
||||
<a href="tel:+14256107779" style="display:inline-block;background:#FF1F1F;color:#fff;padding:12px 28px;text-decoration:none;border-radius:6px;font-weight:700;font-size:16px;">(425) 610-7779</a>
|
||||
</p>
|
||||
</div>
|
||||
<div style="border-top:2px solid #C9A94E;padding:20px 24px;background:#F8F9FA;">
|
||||
<div style="border-top:2px solid #FF1F1F;padding:20px 24px;background:#f9fafb;">
|
||||
<table cellpadding="0" cellspacing="0" border="0" style="font-family:Arial,Helvetica,sans-serif;">
|
||||
<tr>
|
||||
<td style="vertical-align:top;">
|
||||
<p style="margin:0 0 2px;font-size:16px;font-weight:700;color:#1B3A5C;">Jociah</p>
|
||||
<p style="margin:0 0 4px;font-size:10px;font-weight:600;color:#C9A94E;text-transform:uppercase;letter-spacing:2px;">Founder & CEO</p>
|
||||
<p style="margin:0 0 2px;font-size:13px;color:#1B3A5C;font-weight:600;">Flowautomate LLC</p>
|
||||
<p style="margin:0 0 2px;font-size:16px;font-weight:700;color:#171717;">Jociah</p>
|
||||
<p style="margin:0 0 4px;font-size:10px;font-weight:600;color:#FF1F1F;text-transform:uppercase;letter-spacing:2px;">Founder & CEO</p>
|
||||
<p style="margin:0 0 2px;font-size:13px;color:#171717;font-weight:600;">Flowautomate LLC</p>
|
||||
<p style="margin:0;font-size:11px;color:#888;">
|
||||
<a href="tel:+14256107779" style="color:#1B3A5C;text-decoration:none;">(425) 610-7779</a> •
|
||||
<a href="mailto:offers@flowautomate.ai" style="color:#1B3A5C;text-decoration:none;">offers@flowautomate.ai</a>
|
||||
<a href="tel:+14256107779" style="color:#171717;text-decoration:none;">(425) 610-7779</a> •
|
||||
<a href="mailto:offers@flowautomate.ai" style="color:#171717;text-decoration:none;">offers@flowautomate.ai</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
Reference in New Issue
Block a user