Features

60-Second Reply Engine

Homeowners rarely wait. Research across home service trades consistently shows that the contractor who answers first wins the majority of the work, and that the odds of a booked estimate fall sharply after the first five minutes. The Reply Engine exists to remove human latency from that window entirely: the moment a lead lands in your workspace, Veyro drafts and delivers a real, personalized email — not an auto-responder — before your competitor has opened their inbox.

Every reply is written from the context you supplied during onboarding: your trade, service cities, specialties, warranty language, current promotions and service fee, combined with the exact issue and urgency the homeowner described. That means a leaking flat roof in a storm gets a different email than a kitchen remodel enquiry, and both sound like they came from your office manager rather than a template library.

Nothing is a black box. Each generated draft is stored on the lead record, visible in the Personalization Core drawer, and fully editable before or after send. You keep the audit trail, the BCC copy, and the ability to rewrite any message the AI produced.

The 60-second trigger sequence

Second 0 — capture. The lead form, embed snippet or manual intake writes the lead into your tenant-isolated workspace with name, contact details, trade need, urgency and any free-text description.

Second 1–5 — enrichment. Veyro scores the lead, resolves the service city against your coverage area, and assembles the business context block that grounds the model.

Second 5–25 — drafting. The AI strategist writes a plain-text first reply: acknowledges the specific problem, states realistic next steps, references your warranty or promotion where relevant, and signs off with your business name.

Second 25–60 — delivery. The message is dispatched through our email infrastructure from your business sender address, BCC'd to the workspace owner, logged to sent history, and the lead moves from NEW to CONTACTED.

Example payload

POST /api/public/lead-intake
{
  "workspace_id": "ws_...",
  "name": "Dana R.",
  "email": "dana@example.com",
  "phone": "+1 555 0134",
  "trade_need": "Roof leak above garage",
  "urgency": "emergency",
  "city": "Pasadena",
  "notes": "Water staining after last night's rain."
}

-> 201 Created
-> reply queued in 3.4s, delivered in 41s
-> lead.status: NEW -> CONTACTED

If delivery ever fails — a bounced address, a paused sender domain — the message is retained in the queue with the failure reason rather than silently dropped, so no lead is lost to an infrastructure hiccup.