Outbound voice (scaffolded)
A provider-agnostic seam for outbound voice calls. lib/pipeline/adapters/voice.ts defines the adapter; a live provider (Vapi / Retell / Twilio / Bland) is wired in a later pass.
Voice is the second outbound channel. The architecture is in place but no live provider is wired yet — the seam exists so that adding one is a configuration change, not a re-architecture.
The adapter seam
lib/pipeline/adapters/voice.ts defines a provider-agnostic interface for placing an outbound call against a lead. The same targeting and personalisation context that drives email feeds the voice adapter, so a campaign can fan out across channels from one lead set.
Live provider
A concrete provider — Vapi, Retell, Twilio, or Bland — is wired behind the adapter in a later pass. Until then the seam is exercised in tests against a stub.
Free SEO generation tools run inside Cursor or Claude Desktop — no key required.