nmemmert
111b559865
Add webhook outbound, Contact→Calendar, checklist automation; v1.1.26
...
- Webhook CRUD (GET/POST/DELETE /api/admin-webhooks, POST .../test) with
⚡ Webhooks drawer in EmailPage; fires contact.new and reply.sent events
- Contact→Calendar: history panel shows checklist episodes within ±30 days
- Checklist automation: saveEdit auto-sets productionStatus (idea→scheduled
for future dates, idea→published for past); ⚙ Tasks button generates
Record (−14d) and Edit (−7d) calendar task events for scheduled episodes
- Audit log captures webhook-added, webhook-removed, webhook-test events
- Webhook infrastructure: state, disk persistence, fire-and-forget with
AbortSignal.timeout(8000), loaded on startup
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-29 08:03:30 -04:00
nmemmert
f5c4557e9f
Add Tier 2 remaining features: publishing pipeline, broadcasts, audit log, drip trigger, today banner; v1.1.25
...
- CalendarPage: productionStatus field on episodes (idea→recorded→edited→scheduled→published), color dot on chips, dropdown in edit popover; "publishing today" banner with draft announcement button
- EmailPage: Broadcasts drawer (plain-text → Resend Broadcasts API); Audit Log drawer showing activity history; em-status-msg--ok style
- ContactsPage: ▶ Drip button in edit mode syncs contact to Resend audience and triggers drip automation
- server: appendAuditEntry() logged on reply-sent, email-sent, submission-deleted, contacts-merged, contacts-imported, broadcast-sent, drip-triggered; GET /api/admin-audit-log; POST /api/admin-broadcasts/send; POST /api/admin-contacts/trigger-drip; AUDIT_LOG_FILE persisted to data/audit-log.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-29 07:52:07 -04:00
nmemmert
bf16deea92
Add Tier 2 email features: AI draft, Calendar→Email announce, delivery status, engagement badges; v1.1.24
...
- EmailPage: useLocation to accept pre-filled compose from Calendar; delivery status pill on sent bubbles; AI Draft button calling ANTHROPIC_API_KEY endpoint
- CalendarPage: useNavigate + announceEpisode(); ✉ Announce button in episode edit popover
- ContactsPage: emailStatus types; unreplied badge; best delivery status pill; engagement score stars
- server/routes/contact.js: POST /api/admin-contact-submissions/:id/draft-reply → Anthropic claude-haiku-4-5
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-28 17:10:25 -04:00
nmemmert
e2c560a1ab
Add contacts features: tags, history, CSV import/export, merge, last-contacted; fix CalendarPage unused var; v1.1.23
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-28 17:00:21 -04:00
nmemmert
5e43c41b2b
Add recurring events, week/day view, drag-to-reschedule, iCal export, and start times to calendar; v1.1.22
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-28 16:46:45 -04:00
nmemmert
f0635753f1
Add general calendar events (recording, social, task, general); nav links; v1.1.16
...
- Four event types on the calendar: General, Recording, Social, Task — each color-coded
- + Event button opens form with type picker, title, date, notes, reminder
- Task events have a Mark Complete toggle; completed events show strikethrough
- Edit/delete popover for each event
- Email reminders work for calendar events same as episodes
- Added Email/Calendar nav links to /contacts header
- Added Email link to /calendar header (already had Admin)
- /email already links to Contacts and Calendar
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-28 11:26:48 -04:00
nmemmert
de201ff356
Add email reminders to calendar episodes; v1.1.15
...
- Per-episode reminder select (1d/2d/3d/1wk/2wk before publish date)
- Server checks hourly; fires Resend email to admin on reminder day
- reminderSentAt persisted so reminders don't re-fire; cleared if date or setting changes
- Bell indicator on calendar chips; sent confirmation in edit popover
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-28 11:12:17 -04:00
nmemmert
ce235ba9ef
Add /contacts and /calendar pages; email signature settings; v1.1.12
...
- /contacts: standalone page with hybrid contact list (submissions + manual entry), inline edit, search, archive
- /calendar: monthly release scheduling calendar reading/writing podcast checklist episode dates
- /email settings: editable signature panel; signature persisted server-side and injected into outgoing emails
- Move contacts out of /admin panel (now links to /contacts route)
- Partial PATCH for contact submissions (name, notes, archived independently)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-28 10:12:52 -04:00