Business hours sending option
Why it matters
B2B sequences that fire at 3am local time or Saturday afternoon land in the recipient's inbox alongside spam and weekend cleanup, tanking open rates and conversion. Without a business-hours gate in the scheduler, computed send timestamps push cold outreach outside the 9-5 Monday-Friday window when decision-makers actually read email, degrading user experience for both senders configuring campaigns and recipients receiving off-hours pings that signal low-effort automation.
Severity rationale
Low because the impact is reduced engagement and sender reputation drift, not data loss or outages.
Remediation
Add a send_in_business_hours flag to the sequence schema and gate the step scheduler on it. Before calling scheduleStep(sendAt), route the timestamp through an advanceToBusinessHours(dt, timezone) helper that checks day-of-week (skip 0=Sunday, 6=Saturday) and hour (clamp to 9-17), advancing to the next 9am weekday when outside the window. See src/lib/scheduler/business-hours.ts:
if (day === 6) local.setDate(local.getDate() + 2)
if (hour >= 17) { local.setDate(local.getDate() + 1); local.setHours(9, 0, 0, 0) }
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Campaign Orchestration & Sequencing Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from campaign-orchestration-sequencing·automated