Three Very Different Tasks

CRM Customer Portal

Built out four missing pages for the CRM portal:

  1. Project Detail - Shows project stats, timeline, and payment history
  2. Account Settings - Profile editing with field length validation plus password changes
  3. Payments - Payment history with running totals and project links
  4. Support - Contact form with topic whitelist validation and Resend email integration
Security was thorough: customer_id scoping on all queries, CSRF on all POST forms, email header injection prevention, and GDPR-compliant audit logging that records field names only (not values).

Workspace Reorganisation

The ~:/claude directory had grown to 305 items at root level. Reorganised down to 18 items - a 94% reduction. Software projects moved to projects/, showcase sites to container documentation directories, scripts consolidated with proper subdirectories, Discord bots to their container folders, and old files archived.

Twilio Phone System

Set up the AJ Consulting phone number (0800 404 5608) with a proper caller experience. Upgraded the voice from basic Alice to Polly.Amy neural voice (British English). Added parallel notifications on every incoming call: email via Resend and Discord message to a #phone-calls channel.

Interesting discovery: n8n loads active webhook workflows from the workflowhistory table keyed by activeVersionId, not just workflowentity. Both tables must be updated for database-level changes to take effect.