Skip to content
AI Automation · Development

The intake agent that answers on this site

This is the system that answers a new lead on this site before a person is free to. It takes the brief, matches it to a service, drafts the first response, and hands a human a conversation with the context already attached — so response time stops depending on who happens to be available, and every lead lands in one store where it can be measured. The studio sells this as a service; here it runs on the studio itself, in public.

4 stations from brief to human handoff

The problem

When a lead writes to a business, what happens in the first five minutes decides more than the proposal that follows — and in a one-person studio, those minutes are exactly when nobody is free. A brief lands and waits: for attention, for context to be reassembled, for someone to decide which service it even belongs to. The tools sold for this are chatbots that deflect, which protects the calendar by spending the lead. For a studio that trade is backwards, because the conversation is the product.

What we built

The agent was built to qualify, not to deflect. It reads the brief, matches it to one of the six services, asks the questions a first call would ask, and then stops — the close stays human. Under that sits the engineering that makes it safe to run unattended: a Durable Object per conversation on Cloudflare Workers, so each visitor has isolated, consistent state without a database round trip for every turn, and a second Durable Object enforcing quota, because an agent with a language model behind it and no ceiling is an unbounded invoice. Leads land in D1 across three migrations — analytics, lead intelligence, retention runs — a nightly cron posts the digest, and queue-triggered workflows enrich and audit what came in. The admin dashboard reads the same store, so follow-up starts from the record, not from memory.

Where it stands

What changed is who waits. The first response no longer depends on a person being free, and the handoff arrives already halfway understood: service identified, context attached, the question captured in the lead's own words. Because the contact form and the site newsletter both post to the same lead-capture endpoint, there is one store and one truth — which makes response time and lead quality things the studio can measure rather than guess. And the whole system is public: the diagram on the homepage ends at a trigger that opens this agent, so the illustration and the thing it illustrates are one click apart, and anyone evaluating the AI Automation service can poke the thing itself.

Checkable figures

7,500
lines of Worker source, typechecked before every deploy
3
D1 migrations, versioned
2
Durable Object classes: conversation and quota
3
Workflow classes: enrichment, digest, audit

Deliverables

  • Durable Object agent
  • Quota gate
  • D1 schema + migrations
  • Enrichment workflow
  • Admin dashboard
  • Lead capture API

Stack: Cloudflare Workers · Durable Objects · D1 · Workflows · TypeScript

This is the studio's own work.

Client engagements go up with a name and an agreed figure, or they do not go up. Two are signed and in production.

Start a project