feat: Email templates, bulk delete, communication credits, plan features
- Add email template presets for Browse Templates tab (12 templates) - Add bulk selection and deletion for My Templates tab - Add communication credits system with Twilio integration - Add payment views for credit purchases and auto-reload - Add SMS reminder and masked calling plan permissions - Fix appointment status mapping (frontend/backend mismatch) - Clear masquerade stack on login/logout for session hygiene - Update platform settings with credit configuration - Add new migrations for Twilio and Stripe payment fields 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
34
email_templates/README.md
Normal file
34
email_templates/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Email Template Pack - Styles & Variations
|
||||
|
||||
This directory contains a set of uniquely styled email templates. Each category offers multiple design aesthetics to suit different business brands.
|
||||
|
||||
## Categories & Styles
|
||||
|
||||
### 1. Appointment Confirmation (`/confirmation`)
|
||||
- **Modern Blue (`modern_blue.html`)**: Clean, corporate, uses `Segoe UI`, rounded corners, and a blue hero header. Ideal for medical, tech, or professional services.
|
||||
- **Classic Serif (`classic_serif.html`)**: Elegant, uses `Georgia/Times`, borders instead of shadows, warm beige background (`#faf9f6`). Perfect for law firms, salons, or luxury brands.
|
||||
- **Bold Dark (`bold_dark.html`)**: High contrast, dark mode aesthetic (`#111111` background), bold typography (`Helvetica Neue`), vibrant pink accents. Great for gyms, modern barbershops, or nightlife venues.
|
||||
|
||||
### 2. Appointment Reminder (`/reminder`)
|
||||
- **Soft & Clean (`soft_clean.html`)**: Minimalist, uses circle imagery, ample whitespace, soft pink/rose color palette. Friendly and non-intrusive.
|
||||
- **Urgent Bold (`urgent_bold.html`)**: Uses red accents and bold `Arial Black` fonts to convey urgency. "Action Required" styling to reduce no-shows.
|
||||
- **Personal Note (`personal_note.html`)**: A simple, letter-style layout using serif fonts on a cream background. Feels like a handwritten note from the owner.
|
||||
|
||||
### 3. Marketing / Welcome (`/marketing`)
|
||||
- **Vibrant (`welcome_vibrant.html`)**: Uses a gradient top bar, bold typography, and image collages. High energy, designed to excite new customers.
|
||||
- **Minimalist Promo (`minimalist_promo.html`)**: Monochromatic, fashion-forward design with a large hero image and a prominent discount code box. High impact.
|
||||
- **Newsletter Grid (`newsletter_grid.html`)**: A classic multi-column layout for monthly updates, featuring a main story and secondary news items. Clean and readable.
|
||||
|
||||
### 4. Reports (`/reports`)
|
||||
- **Monthly Data (`monthly_data.html`)**: A utility-focused layout with a data grid, performance chart placeholder, and clean typography. Designed for clarity and readability.
|
||||
- **Weekly Snapshot (`weekly_cards.html`)**: A dashboard-style dark mode email with card-based statistics (Revenue, Bookings, etc.) for quick scanning.
|
||||
- **Staff Leaderboard (`staff_leaderboard.html`)**: A ranked list view with avatars and performance metrics to highlight top employees. Motivating and clear.
|
||||
|
||||
## Image Assets
|
||||
Templates use `https://placehold.co` for dynamic image generation to ensure immediate previewability without requiring local asset hosting.
|
||||
- **Banners**: 600x200px
|
||||
- **Icons**: 80x80px or 120x120px
|
||||
- **Colors**: Matched to the template theme (e.g., `#4f46e5` for modern blue).
|
||||
|
||||
## Usage
|
||||
Copy the HTML code from the desired style file into your email sending service or SmoothSchedule template editor. Ensure all `{{TAGS}}` are replaced with actual data.
|
||||
72
email_templates/confirmation/bold_dark.html
Normal file
72
email_templates/confirmation/bold_dark.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Appointment Confirmed - Bold</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #000000; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #111111; border-radius: 24px; overflow: hidden;">
|
||||
<!-- Header Image -->
|
||||
<tr>
|
||||
<td style="position: relative;">
|
||||
<img src="https://placehold.co/600x300/db2777/ffffff?text=CONFIRMED&font=montserrat" alt="Confirmed" style="width: 100%; height: auto; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 48px 40px;">
|
||||
<h1 style="margin: 0 0 16px; color: #ffffff; font-size: 32px; font-weight: 800; letter-spacing: -0.03em;">
|
||||
Ready for you, {{CUSTOMER_NAME}}.
|
||||
</h1>
|
||||
<p style="margin: 0 0 40px; color: #a1a1aa; font-size: 18px; line-height: 1.5;">
|
||||
Your slot is locked in. We've got everything prepared for your upcoming visit.
|
||||
</p>
|
||||
|
||||
<!-- Grid Layout for Details -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="48%" style="background-color: #18181b; padding: 24px; border-radius: 16px; vertical-align: top;">
|
||||
<p style="margin: 0 0 8px; color: #db2777; font-size: 12px; font-weight: 700; text-transform: uppercase;">Service</p>
|
||||
<p style="margin: 0; color: #ffffff; font-size: 16px; font-weight: 600;">{{APPOINTMENT_SERVICE}}</p>
|
||||
</td>
|
||||
<td width="4%"></td>
|
||||
<td width="48%" style="background-color: #18181b; padding: 24px; border-radius: 16px; vertical-align: top;">
|
||||
<p style="margin: 0 0 8px; color: #db2777; font-size: 12px; font-weight: 700; text-transform: uppercase;">When</p>
|
||||
<p style="margin: 0; color: #ffffff; font-size: 16px; font-weight: 600;">{{APPOINTMENT_DATE}}<br><span style="color: #a1a1aa; font-weight: 400;">{{APPOINTMENT_TIME}}</span></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- QR Code Placeholder -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="margin-top: 40px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<div style="background-color: #ffffff; padding: 16px; border-radius: 12px; display: inline-block;">
|
||||
<img src="https://placehold.co/150x150/000000/ffffff?text=QR+Code&font=roboto" alt="Check-in QR" style="display: block;">
|
||||
</div>
|
||||
<p style="margin: 16px 0 0; color: #52525b; font-size: 12px;">Scan at front desk to check in</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px; text-align: center;">
|
||||
<p style="margin: 0; color: #52525b; font-size: 14px;">
|
||||
{{BUSINESS_NAME}} • {{BUSINESS_PHONE}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
82
email_templates/confirmation/classic_serif.html
Normal file
82
email_templates/confirmation/classic_serif.html
Normal file
@@ -0,0 +1,82 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Appointment Confirmed - Classic</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #faf9f6; font-family: 'Georgia', 'Times New Roman', serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 0;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; border: 1px solid #e7e5e4; border-top: 4px solid #1c1917;">
|
||||
<!-- Header -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 20px; text-align: center;">
|
||||
<img src="https://placehold.co/120x60/1c1917/ffffff?text=LOGO&font=playfair-display" alt="Logo" style="height: 60px; width: auto;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 20px 60px 40px;">
|
||||
<h1 style="margin: 0 0 24px; color: #1c1917; font-size: 28px; font-weight: 400; text-align: center; letter-spacing: -0.02em;">
|
||||
Appointment Confirmation
|
||||
</h1>
|
||||
<p style="margin: 0 0 24px; color: #44403c; font-size: 16px; line-height: 1.8; text-align: center;">
|
||||
Dear {{CUSTOMER_NAME}},<br><br>
|
||||
We are pleased to confirm your appointment with {{BUSINESS_NAME}}. Please review the details below.
|
||||
</p>
|
||||
|
||||
<!-- Divider -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td style="border-bottom: 1px solid #e7e5e4; padding-bottom: 20px; margin-bottom: 20px;"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Details -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="margin-top: 20px;">
|
||||
<tr>
|
||||
<td style="padding: 12px 0; color: #78716c; font-family: 'Arial', sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;">Service</td>
|
||||
<td style="padding: 12px 0; text-align: right; color: #1c1917; font-size: 16px;">{{APPOINTMENT_SERVICE}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border-bottom: 1px solid #f5f5f4; padding: 0;" colspan="2"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 12px 0; color: #78716c; font-family: 'Arial', sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;">Date</td>
|
||||
<td style="padding: 12px 0; text-align: right; color: #1c1917; font-size: 16px;">{{APPOINTMENT_DATE}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border-bottom: 1px solid #f5f5f4; padding: 0;" colspan="2"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 12px 0; color: #78716c; font-family: 'Arial', sans-serif; font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;">Time</td>
|
||||
<td style="padding: 12px 0; text-align: right; color: #1c1917; font-size: 16px;">{{APPOINTMENT_TIME}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Map / Location Image Placeholder -->
|
||||
<div style="margin-top: 30px; border: 1px solid #e7e5e4; padding: 4px;">
|
||||
<img src="https://placehold.co/500x150/f5f5f4/a8a29e?text=Location+Map&font=lora" alt="Location" style="width: 100%; height: auto; display: block;">
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="background-color: #1c1917; padding: 30px; text-align: center;">
|
||||
<p style="margin: 0; color: #d6d3d1; font-family: 'Arial', sans-serif; font-size: 13px; line-height: 1.6;">
|
||||
{{BUSINESS_NAME}}<br>
|
||||
{{BUSINESS_PHONE}} | {{BUSINESS_EMAIL}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
93
email_templates/confirmation/modern_blue.html
Normal file
93
email_templates/confirmation/modern_blue.html
Normal file
@@ -0,0 +1,93 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Appointment Confirmed - Modern</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #f3f4f6; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 0;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);">
|
||||
<!-- Hero Image Section -->
|
||||
<tr>
|
||||
<td style="background-color: #4f46e5; text-align: center;">
|
||||
<!-- Using a placeholder for the hero image -->
|
||||
<img src="https://placehold.co/600x200/4f46e5/ffffff?text=Appointment+Confirmed&font=roboto" alt="Appointment Confirmed" style="width: 100%; height: auto; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content Section -->
|
||||
<tr>
|
||||
<td style="padding: 40px;">
|
||||
<h1 style="margin: 0 0 20px; color: #111827; font-size: 24px; font-weight: 700; line-height: 1.2;">
|
||||
You're All Set, {{CUSTOMER_NAME}}!
|
||||
</h1>
|
||||
<p style="margin: 0 0 24px; color: #4b5563; font-size: 16px; line-height: 1.6;">
|
||||
We are excited to see you at <strong>{{BUSINESS_NAME}}</strong>. Your appointment has been confirmed for the following time:
|
||||
</p>
|
||||
|
||||
<!-- Appointment Card -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #f9fafb; border-radius: 12px; border: 1px solid #e5e7eb;">
|
||||
<tr>
|
||||
<td style="padding: 24px;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td style="padding-bottom: 16px; border-bottom: 1px solid #e5e7eb;">
|
||||
<p style="margin: 0; color: #6b7280; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600;">Service</p>
|
||||
<p style="margin: 4px 0 0; color: #111827; font-size: 18px; font-weight: 600;">{{APPOINTMENT_SERVICE}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-top: 16px;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="50%" valign="top">
|
||||
<p style="margin: 0; color: #6b7280; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600;">Date</p>
|
||||
<p style="margin: 4px 0 0; color: #111827; font-size: 16px;">{{APPOINTMENT_DATE}}</p>
|
||||
</td>
|
||||
<td width="50%" valign="top">
|
||||
<p style="margin: 0; color: #6b7280; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600;">Time</p>
|
||||
<p style="margin: 4px 0 0; color: #111827; font-size: 16px;">{{APPOINTMENT_TIME}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- CTA Button -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="margin-top: 32px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="#" style="display: inline-block; background-color: #4f46e5; color: #ffffff; font-size: 16px; font-weight: 600; text-decoration: none; padding: 12px 32px; border-radius: 8px; transition: background-color 0.2s;">
|
||||
Manage Appointment
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="background-color: #1f2937; padding: 32px; text-align: center;">
|
||||
<img src="https://placehold.co/40x40/ffffff/1f2937?text=L" alt="Logo" style="width: 40px; height: 40px; border-radius: 8px; margin-bottom: 16px;">
|
||||
<p style="margin: 0 0 8px; color: #9ca3af; font-size: 14px;">
|
||||
{{BUSINESS_NAME}}
|
||||
</p>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 12px;">
|
||||
{{BUSINESS_PHONE}} • {{BUSINESS_EMAIL}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
57
email_templates/marketing/minimalist_promo.html
Normal file
57
email_templates/marketing/minimalist_promo.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Marketing - Minimalist Promo</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Courier New', Courier, monospace;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation" style="border: 2px solid #000000;">
|
||||
<!-- Big Hero Image -->
|
||||
<tr>
|
||||
<td>
|
||||
<img src="https://placehold.co/600x400/000000/ffffff?text=FLASH+SALE&font=monoton" alt="Flash Sale" style="width: 100%; height: auto; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 40px; text-align: center;">
|
||||
<h1 style="margin: 0 0 20px; color: #000000; font-size: 36px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px;">
|
||||
limited time only
|
||||
</h1>
|
||||
<p style="margin: 0 0 40px; color: #333333; font-size: 16px; line-height: 1.6; font-family: 'Helvetica', sans-serif;">
|
||||
Treat yourself to something special. For the next 48 hours, get exclusive access to our VIP booking slots and a special discount.
|
||||
</p>
|
||||
|
||||
<!-- Coupon Code Box -->
|
||||
<div style="border: 2px dashed #000000; padding: 20px; display: inline-block; margin-bottom: 40px;">
|
||||
<p style="margin: 0 0 5px; font-size: 12px; color: #666; font-family: sans-serif;">USE CODE:</p>
|
||||
<span style="font-size: 32px; font-weight: 900; color: #d946ef;">VIP20</span>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<a href="#" style="background-color: #000000; color: #ffffff; padding: 18px 40px; text-decoration: none; font-weight: bold; font-size: 14px; text-transform: uppercase; display: inline-block;">
|
||||
Claim Offer
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="border-top: 2px solid #000000; padding: 20px; text-align: center;">
|
||||
<p style="margin: 0; font-size: 12px; color: #000000;">
|
||||
{{BUSINESS_NAME}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
88
email_templates/marketing/newsletter_grid.html
Normal file
88
email_templates/marketing/newsletter_grid.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Marketing - Newsletter Grid</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #e5e7eb; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Top Bar -->
|
||||
<tr>
|
||||
<td style="background-color: #374151; padding: 10px 0; text-align: center; color: #d1d5db; font-size: 12px;">
|
||||
View this email in your browser
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Logo Header -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation" style="margin-bottom: 20px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h1 style="margin: 0; color: #1f2937; font-size: 28px; font-weight: 300; letter-spacing: 1px;">{{BUSINESS_NAME}} <span style="color: #3b82f6; font-weight: 700;">MONTHLY</span></h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Main Feature -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; margin-bottom: 20px;">
|
||||
<tr>
|
||||
<td>
|
||||
<img src="https://placehold.co/640x320/3b82f6/ffffff?text=New+Service+Launch&font=roboto" alt="Feature" style="width: 100%; height: auto; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 30px;">
|
||||
<h2 style="margin: 0 0 10px; color: #111827; font-size: 24px;">Introducing Our New Premium Service</h2>
|
||||
<p style="margin: 0 0 20px; color: #4b5563; line-height: 1.6;">
|
||||
We've been listening to your feedback and are excited to announce a brand new way to experience {{BUSINESS_NAME}}. Our new premium tier offers extended hours and dedicated support.
|
||||
</p>
|
||||
<a href="#" style="color: #3b82f6; text-decoration: none; font-weight: 600;">Read more →</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Two Column Grid -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="310" valign="top" style="background-color: #ffffff; padding-bottom: 20px;">
|
||||
<img src="https://placehold.co/310x200/10b981/ffffff?text=Staff+Spotlight" alt="Staff" style="width: 100%; height: auto; display: block;">
|
||||
<div style="padding: 20px;">
|
||||
<h3 style="margin: 0 0 10px; color: #111827; font-size: 18px;">Employee of the Month</h3>
|
||||
<p style="margin: 0 0 15px; color: #6b7280; font-size: 14px; line-height: 1.5;">
|
||||
Meet Sarah, our lead specialist who has gone above and beyond this month.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
<td width="20"><!-- Gutter --></td>
|
||||
<td width="310" valign="top" style="background-color: #ffffff; padding-bottom: 20px;">
|
||||
<img src="https://placehold.co/310x200/f59e0b/ffffff?text=Community" alt="Community" style="width: 100%; height: auto; display: block;">
|
||||
<div style="padding: 20px;">
|
||||
<h3 style="margin: 0 0 10px; color: #111827; font-size: 18px;">Community Events</h3>
|
||||
<p style="margin: 0 0 15px; color: #6b7280; font-size: 14px; line-height: 1.5;">
|
||||
Join us this weekend for our local charity drive.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Footer -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation" style="margin-top: 40px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<p style="margin: 0 0 10px; color: #9ca3af; font-size: 12px;">
|
||||
© {{TODAY}} {{BUSINESS_NAME}}. All rights reserved.
|
||||
</p>
|
||||
<p style="margin: 0; color: #9ca3af; font-size: 12px;">
|
||||
{{BUSINESS_ADDRESS}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
77
email_templates/marketing/welcome_vibrant.html
Normal file
77
email_templates/marketing/welcome_vibrant.html
Normal file
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Marketing - Vibrant</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Verdana', sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Colorful Top Bar -->
|
||||
<tr>
|
||||
<td height="8" style="background: linear-gradient(90deg, #8b5cf6 0%, #ec4899 100%);"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Logo -->
|
||||
<tr>
|
||||
<td align="center" style="padding-bottom: 40px;">
|
||||
<img src="https://placehold.co/80x80/8b5cf6/ffffff?text=S&font=montserrat" alt="SmoothSchedule" style="display: block; border-radius: 50%;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Hero -->
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h1 style="margin: 0 0 20px; color: #111827; font-size: 42px; font-weight: 900; letter-spacing: -1px;">
|
||||
Welcome to the family.
|
||||
</h1>
|
||||
<p style="margin: 0 0 40px; color: #6b7280; font-size: 18px; max-width: 480px;">
|
||||
Thanks for joining <strong>{{BUSINESS_NAME}}</strong>! We're thrilled to have you on board.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Hero Image collage -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 40px;">
|
||||
<img src="https://placehold.co/600x300/f3f4f6/d1d5db?text=Lifestyle+Image+Collage" alt="Lifestyle" style="width: 100%; height: auto; border-radius: 12px; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Features Grid -->
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="33%" valign="top" style="padding-right: 10px;">
|
||||
<h3 style="margin: 0 0 8px; color: #111827; font-size: 16px;">Expert Staff</h3>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.5;">Top-tier professionals ready to serve.</p>
|
||||
</td>
|
||||
<td width="33%" valign="top" style="padding: 0 10px;">
|
||||
<h3 style="margin: 0 0 8px; color: #111827; font-size: 16px;">Easy Booking</h3>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.5;">Schedule anytime, anywhere.</p>
|
||||
</td>
|
||||
<td width="33%" valign="top" style="padding-left: 10px;">
|
||||
<h3 style="margin: 0 0 8px; color: #111827; font-size: 16px;">Best Value</h3>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.5;">Premium service at great rates.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- CTA -->
|
||||
<tr>
|
||||
<td align="center" style="padding-top: 60px;">
|
||||
<a href="#" style="background-color: #111827; color: #ffffff; padding: 16px 40px; border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 16px;">Book Your First Visit</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
38
email_templates/reminder/personal_note.html
Normal file
38
email_templates/reminder/personal_note.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Reminder - Personal Note</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #fdfbf7; font-family: 'Georgia', serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 60px 20px;">
|
||||
<table width="500" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; border: 1px solid #e7e5e4; padding: 60px 40px; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05);">
|
||||
<tr>
|
||||
<td>
|
||||
<p style="margin: 0 0 20px; font-size: 16px; color: #44403c; line-height: 1.6;">
|
||||
Dear {{CUSTOMER_NAME}},
|
||||
</p>
|
||||
<p style="margin: 0 0 20px; font-size: 16px; color: #44403c; line-height: 1.6;">
|
||||
I'm writing to confirm that we're still on for your <strong>{{APPOINTMENT_SERVICE}}</strong> tomorrow, <strong>{{APPOINTMENT_DATE}}</strong> at <strong>{{APPOINTMENT_TIME}}</strong>.
|
||||
</p>
|
||||
<p style="margin: 0 0 40px; font-size: 16px; color: #44403c; line-height: 1.6;">
|
||||
Looking forward to our session.
|
||||
</p>
|
||||
<p style="margin: 0; font-size: 16px; color: #44403c; line-height: 1.6;">
|
||||
Warmly,<br><br>
|
||||
<span style="font-style: italic; font-size: 18px; color: #1c1917;">{{BUSINESS_NAME}}</span>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p style="margin-top: 20px; font-family: sans-serif; font-size: 12px; color: #a8a29e; text-align: center;">
|
||||
<a href="#" style="color: #a8a29e; text-decoration: underline;">Reschedule</a> or <a href="#" style="color: #a8a29e; text-decoration: underline;">Cancel</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
56
email_templates/reminder/soft_clean.html
Normal file
56
email_templates/reminder/soft_clean.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Reminder - Soft & Clean</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #fff1f2; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 60px 0;">
|
||||
<table width="500" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; border-radius: 20px; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.05), 0 10px 10px -5px rgba(0, 0, 0, 0.01);">
|
||||
<!-- Circle Image Top -->
|
||||
<tr>
|
||||
<td align="center" style="padding-top: 40px;">
|
||||
<img src="https://placehold.co/120x120/fb7185/ffffff?text=Soon&font=playfair-display" alt="Soon" style="width: 120px; height: 120px; border-radius: 50%; object-fit: cover; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 30px 50px 50px; text-align: center;">
|
||||
<h1 style="margin: 0 0 16px; color: #881337; font-size: 24px; font-weight: 600;">
|
||||
Just a Friendly Reminder
|
||||
</h1>
|
||||
<p style="margin: 0 0 32px; color: #4c0519; font-size: 16px; line-height: 1.6;">
|
||||
Hi {{CUSTOMER_NAME}}, your appointment with {{BUSINESS_NAME}} is coming up soon!
|
||||
</p>
|
||||
|
||||
<div style="background-color: #fff1f2; border-radius: 12px; padding: 20px; display: inline-block; width: 100%; box-sizing: border-box;">
|
||||
<p style="margin: 0 0 8px; color: #be123c; font-size: 18px; font-weight: 700;">{{APPOINTMENT_DATE}}</p>
|
||||
<p style="margin: 0; color: #9f1239; font-size: 24px; font-weight: 300;">{{APPOINTMENT_TIME}}</p>
|
||||
</div>
|
||||
|
||||
<p style="margin: 32px 0 0; color: #9ca3af; font-size: 13px;">
|
||||
Need to make changes? <a href="#" style="color: #fb7185; text-decoration: underline;">Reschedule here</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Simple Footer -->
|
||||
<table width="500" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td style="padding-top: 20px; text-align: center;">
|
||||
<p style="margin: 0; color: #f43f5e; font-size: 12px;">
|
||||
{{BUSINESS_NAME}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
47
email_templates/reminder/urgent_bold.html
Normal file
47
email_templates/reminder/urgent_bold.html
Normal file
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Reminder - Urgent</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #fef2f2; font-family: 'Arial Black', 'Arial Bold', sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="max-width: 600px; border-left: 8px solid #ef4444; background-color: #ffffff;">
|
||||
<tr>
|
||||
<td style="padding: 40px;">
|
||||
<p style="margin: 0 0 10px; color: #ef4444; font-size: 14px; letter-spacing: 1px; text-transform: uppercase;">Action Required</p>
|
||||
<h1 style="margin: 0 0 30px; color: #111827; font-size: 36px; line-height: 1;">
|
||||
Don't Forget<br>Your Visit.
|
||||
</h1>
|
||||
|
||||
<img src="https://placehold.co/520x250/ef4444/ffffff?text=TOMORROW&font=oswald" alt="Tomorrow" style="width: 100%; height: auto; display: block; margin-bottom: 30px;">
|
||||
|
||||
<p style="margin: 0 0 20px; color: #374151; font-family: 'Arial', sans-serif; font-size: 16px; line-height: 1.6;">
|
||||
<strong>{{CUSTOMER_NAME}}</strong>, we're holding your spot for <strong>{{APPOINTMENT_SERVICE}}</strong>.
|
||||
</p>
|
||||
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #111827; color: #ffffff; padding: 20px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<p style="margin: 0; font-size: 20px;">{{APPOINTMENT_DATE}} @ {{APPOINTMENT_TIME}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="background-color: #f3f4f6; padding: 20px; text-align: center;">
|
||||
<p style="margin: 0; color: #6b7280; font-family: 'Arial', sans-serif; font-size: 12px;">
|
||||
{{BUSINESS_NAME}} - {{BUSINESS_PHONE}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
74
email_templates/reports/monthly_data.html
Normal file
74
email_templates/reports/monthly_data.html
Normal file
@@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Monthly Report - Data Heavy</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #f8fafc; font-family: 'Roboto', 'Helvetica', sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px;">
|
||||
<!-- Header -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="max-width: 800px; margin-bottom: 20px;">
|
||||
<tr>
|
||||
<td style="padding: 20px 0;">
|
||||
<h1 style="margin: 0; color: #0f172a; font-size: 20px; font-weight: 500;">
|
||||
<span style="color: #3b82f6; font-weight: 700;">Smooth</span>Schedule Report
|
||||
</h1>
|
||||
</td>
|
||||
<td align="right">
|
||||
<p style="margin: 0; color: #64748b; font-size: 14px;">{{TODAY}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Main Card -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="max-width: 800px; background-color: #ffffff; border: 1px solid #e2e8f0; border-radius: 8px;">
|
||||
<tr>
|
||||
<td style="padding: 30px;">
|
||||
<h2 style="margin: 0 0 20px; color: #0f172a; font-size: 18px;">Performance Summary</h2>
|
||||
|
||||
<!-- Chart Placeholder -->
|
||||
<img src="https://placehold.co/740x200/f1f5f9/94a3b8?text=Interactive+Revenue+Chart&font=roboto" alt="Chart" style="width: 100%; height: auto; border-radius: 4px; margin-bottom: 30px;">
|
||||
|
||||
<!-- Data Grid -->
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse: collapse;">
|
||||
<tr style="background-color: #f8fafc;">
|
||||
<th style="text-align: left; padding: 12px; border-bottom: 2px solid #e2e8f0; color: #475569; font-size: 12px; text-transform: uppercase;">Metric</th>
|
||||
<th style="text-align: right; padding: 12px; border-bottom: 2px solid #e2e8f0; color: #475569; font-size: 12px; text-transform: uppercase;">Value</th>
|
||||
<th style="text-align: right; padding: 12px; border-bottom: 2px solid #e2e8f0; color: #475569; font-size: 12px; text-transform: uppercase;">Change</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; color: #1e293b;">Total Revenue</td>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; color: #1e293b; font-weight: 600;">$12,450</td>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; color: #10b981;">+12% ▲</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; color: #1e293b;">Appointments</td>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; color: #1e293b; font-weight: 600;">142</td>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; color: #10b981;">+5% ▲</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; color: #1e293b;">New Customers</td>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; color: #1e293b; font-weight: 600;">28</td>
|
||||
<td style="padding: 12px; border-bottom: 1px solid #e2e8f0; text-align: right; color: #ef4444;">-2% ▼</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p style="margin: 20px 0 0; color: #64748b; font-size: 14px;">
|
||||
This report was automatically generated for <strong>{{BUSINESS_NAME}}</strong>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="background-color: #f1f5f9; padding: 15px 30px; text-align: center; border-top: 1px solid #e2e8f0;">
|
||||
<a href="#" style="color: #3b82f6; font-size: 14px; text-decoration: none; font-weight: 500;">View Full Report in Dashboard →</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
99
email_templates/reports/staff_leaderboard.html
Normal file
99
email_templates/reports/staff_leaderboard.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Report - Staff Leaderboard</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #f3f4f6; font-family: 'Arial', sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; border-radius: 12px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);">
|
||||
<!-- Header -->
|
||||
<tr>
|
||||
<td style="padding: 30px; border-bottom: 1px solid #e5e7eb;">
|
||||
<h1 style="margin: 0; color: #111827; font-size: 20px;">Staff Performance</h1>
|
||||
<p style="margin: 5px 0 0; color: #6b7280; font-size: 14px;">Top performers for {{TODAY}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- List -->
|
||||
<tr>
|
||||
<td style="padding: 0 30px;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Item 1 -->
|
||||
<tr>
|
||||
<td style="padding: 20px 0; border-bottom: 1px solid #f3f4f6;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="50">
|
||||
<img src="https://placehold.co/40x40/10b981/ffffff?text=1" alt="Rank 1" style="border-radius: 50%; display: block;">
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin: 0; font-weight: 600; color: #111827;">Sarah Johnson</p>
|
||||
<p style="margin: 2px 0 0; font-size: 12px; color: #6b7280;">32 Appointments</p>
|
||||
</td>
|
||||
<td align="right" width="100">
|
||||
<p style="margin: 0; font-weight: 700; color: #10b981;">$3,200</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Item 2 -->
|
||||
<tr>
|
||||
<td style="padding: 20px 0; border-bottom: 1px solid #f3f4f6;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="50">
|
||||
<img src="https://placehold.co/40x40/3b82f6/ffffff?text=2" alt="Rank 2" style="border-radius: 50%; display: block;">
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin: 0; font-weight: 600; color: #111827;">Mike Chen</p>
|
||||
<p style="margin: 2px 0 0; font-size: 12px; color: #6b7280;">28 Appointments</p>
|
||||
</td>
|
||||
<td align="right" width="100">
|
||||
<p style="margin: 0; font-weight: 700; color: #111827;">$2,850</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Item 3 -->
|
||||
<tr>
|
||||
<td style="padding: 20px 0;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="50">
|
||||
<img src="https://placehold.co/40x40/6b7280/ffffff?text=3" alt="Rank 3" style="border-radius: 50%; display: block;">
|
||||
</td>
|
||||
<td>
|
||||
<p style="margin: 0; font-weight: 600; color: #111827;">Jessica Williams</p>
|
||||
<p style="margin: 2px 0 0; font-size: 12px; color: #6b7280;">25 Appointments</p>
|
||||
</td>
|
||||
<td align="right" width="100">
|
||||
<p style="margin: 0; font-weight: 700; color: #111827;">$2,100</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="background-color: #f9fafb; padding: 20px 30px; border-radius: 0 0 12px 12px;">
|
||||
<p style="margin: 0; font-size: 13px; color: #6b7280; text-align: center;">
|
||||
Great work team! 🚀
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
73
email_templates/reports/weekly_cards.html
Normal file
73
email_templates/reports/weekly_cards.html
Normal file
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Report - Weekly Snapshot</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #1e293b; font-family: 'Roboto', sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Header -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 30px;">
|
||||
<h1 style="margin: 0; color: #ffffff; font-size: 24px;">Weekly Snapshot</h1>
|
||||
<p style="margin: 5px 0 0; color: #94a3b8;">Week of {{TODAY}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Stats Grid -->
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<!-- Card 1 -->
|
||||
<td width="290" style="background-color: #334155; border-radius: 8px; padding: 25px; vertical-align: top;">
|
||||
<img src="https://placehold.co/40x40/3b82f6/ffffff?text=$" alt="Revenue" style="width: 40px; height: 40px; border-radius: 8px; margin-bottom: 15px;">
|
||||
<p style="margin: 0 0 5px; color: #94a3b8; font-size: 13px; text-transform: uppercase;">Revenue</p>
|
||||
<p style="margin: 0; color: #ffffff; font-size: 28px; font-weight: 700;">$4,250</p>
|
||||
<p style="margin: 5px 0 0; color: #4ade80; font-size: 12px;">↑ 15% vs last week</p>
|
||||
</td>
|
||||
<td width="20"></td>
|
||||
<!-- Card 2 -->
|
||||
<td width="290" style="background-color: #334155; border-radius: 8px; padding: 25px; vertical-align: top;">
|
||||
<img src="https://placehold.co/40x40/8b5cf6/ffffff?text=#" alt="Bookings" style="width: 40px; height: 40px; border-radius: 8px; margin-bottom: 15px;">
|
||||
<p style="margin: 0 0 5px; color: #94a3b8; font-size: 13px; text-transform: uppercase;">Bookings</p>
|
||||
<p style="margin: 0; color: #ffffff; font-size: 28px; font-weight: 700;">84</p>
|
||||
<p style="margin: 5px 0 0; color: #94a3b8; font-size: 12px;">→ Stable</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td height="20"></td></tr>
|
||||
<tr>
|
||||
<!-- Card 3 -->
|
||||
<td width="290" style="background-color: #334155; border-radius: 8px; padding: 25px; vertical-align: top;">
|
||||
<img src="https://placehold.co/40x40/f59e0b/ffffff?text=★" alt="Rating" style="width: 40px; height: 40px; border-radius: 8px; margin-bottom: 15px;">
|
||||
<p style="margin: 0 0 5px; color: #94a3b8; font-size: 13px; text-transform: uppercase;">Avg Rating</p>
|
||||
<p style="margin: 0; color: #ffffff; font-size: 28px; font-weight: 700;">4.9</p>
|
||||
</td>
|
||||
<td width="20"></td>
|
||||
<!-- Card 4 -->
|
||||
<td width="290" style="background-color: #334155; border-radius: 8px; padding: 25px; vertical-align: top;">
|
||||
<img src="https://placehold.co/40x40/ef4444/ffffff?text=!" alt="Cancellations" style="width: 40px; height: 40px; border-radius: 8px; margin-bottom: 15px;">
|
||||
<p style="margin: 0 0 5px; color: #94a3b8; font-size: 13px; text-transform: uppercase;">Cancellations</p>
|
||||
<p style="margin: 0; color: #ffffff; font-size: 28px; font-weight: 700;">3</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding-top: 40px; text-align: center;">
|
||||
<a href="#" style="color: #3b82f6; text-decoration: none; font-size: 14px;">View detailed analytics</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user