2.1 KiB
2.1 KiB
Data Cleanup & Formatting Consistency for Email Delivery
Formatting Consistency Rule (Jul 10, 2026) — CRITICAL
Once the user approves a format, all subsequent versions of the same email MUST use that format. Do not regress from HTML tables to plain text between iterations.
Violation pattern: First Apex registration preview used an HTML table with zebra rows, green checkmarks (✓), and red X marks (✗). User said "Looks perfect. Please now send to contact@." Subsequent previews fell back to plain-text ASCII tables. User tried multiple times to get the HTML table back and couldn't — called out as frustrating.
Rule: When iterating on an email based on user feedback:
- Start with HTML tables for structured data (registration lists, status reports, comparison tables)
- Use visual indicators: green checkmarks (✓) for completed/signed, red X (✗) for missing
- Use zebra striping (alternating row colors) for readability
- After each correction, re-send using the SAME HTML format — never downgrade
- The user's approval of a format is a contract — don't change it
Data Normalization Rules (from raw database to email)
When pulling structured data from databases (WordPress WPForms, MariaDB) for email summaries:
Normalize names
- Apply proper case:
name.title()or' '.join(w.capitalize() for w in name.split()) - Never send all-lowercase or all-uppercase names from raw database entries
Simplify labels
- Convert raw package names to human-readable labels:
- "NASA Registration w/ Upgraded Photo/Video Package - $2,332.00" → "Photo/Video"
- "NASA Registration w/ Photo Package - $2,230.00" → "Photo"
- "NASA Registration - $1,973.00" → "Basic"
- Decode HTML entities:
$→$
Consistent ASCII formatting
- Fixed-width columns with
|separators =or-for section borders- Right-pad names to consistent widths for alignment
Filter test data
- Exclude test transactions ($1.00 amounts, known test emails)
- Filter by payment amount threshold ($1,973+ is real)
Preview before send
- Always show Germaine the formatted preview
- Let him correct formatting/columns/labels before the email goes out