OPERAND STUDIO
TELEMETRY PENDING · LLM LEAD ENRICHMENT

Readout — judgement layered on top, without touching what works.

An add-on package: one LLM pass over every inbound lead from both lead-response systems — email and SMS — classifying intent, refining the rule-based HOT / WARM / COLD band, extracting entities, and drafting a suggested human reply. Dispatched fire-and-forget into the seams both bricks already declare; neither is modified.

SITUATION

Two lead systems answer instantly. Rules did the judging.

The email and SMS lead qualifiers catch every inbound lead, qualify it against deterministic rule sets, and respond in seconds. Rules are auditable and never vary — but they judge by keyword and shape, not by meaning.
BOTTLENECK

Judgement at volume — the part rules can't reach.

What the rule tables structurally cannot do:
SYSTEM

One enrichment workflow, strapped across both bricks.

A single n8n workflow that both lead systems hand a lead to, fire-and-forget: the email brick posts a signed request to its webhook adapter; the SMS brick dispatches straight through its existing socket. One pass through a guarded LLM chain, and the result — with its own cost and latency telemetry — lands on the lead's row. Neither base workflow changes.
Two channel bricks, rule-based first and neither modified: the email qualifier hands leads over by a signed fire-and-forget post, the SMS qualifier through its existing dispatch socket. Both feed one enrichment workflow — verify, dedupe, spend guard, one LLM pass, clamp — producing intent, a refined band, entities, and a suggested reply, written back onto the lead row with cost and latency telemetry. If the seam is unbound, both bricks run exactly as before: a graceful no-op.
THE GUARDED CHAIN, IN ORDER
  • Signed intake: requests are verified and acknowledged before any model work — enrichment is asynchronous behind the acknowledgement, never blocking a lead response.
  • Idempotency guard: each lead-and-message pair is enriched once. Redelivery is a no-op — no second model spend, no overwrite.
  • Spend guard: a daily cost cap. Over the cap, the model is skipped and the skip is recorded — attempts are telemetry too.
  • One LLM pass, deterministic settings, JSON-only: intent class, HOT / WARM / COLD refinement with confidence and a one-line rationale, extracted entities, and a suggested reply in the studio voice.
  • Clamp and validate: model output is parsed and bounds-checked — bands to the enum, confidence to range, drafts length-capped, unknown fields dropped. A bad response falls back; it never throws.
  • Write-back: enrichment merges onto the lead row alongside the original rule band, model cost, and latency — the rule-band versus model-band disagreement is the headline metric.
  • Failure honesty: an error or timeout still writes a trace. Silent skips are forbidden — every ingested lead leaves a record.
Never in the critical path

Callers get an acknowledgement before any model work starts. Enrichment runs asynchronously behind it — the plugin can never delay a lead response.

Strictly additive

Both bricks call it through seams they already declare. Seam unbound or plugin down, they run exactly as before — a graceful no-op, not a failure.

A human sends, always

The suggested reply is decision support. The plugin never sends anything to a lead — no email, no SMS, no exceptions.

OUTCOME

Measured, not promised.

Every enrichment writes its own evidence — band agreement, cost, latency — onto the lead row. The outcome section publishes from that record, not from claims.
TELEMETRY PENDING

The numbers land here when the observation window closes: leads enriched by channel, rule-band versus model-band disagreement rate, spam caught, median enrichment latency, and median cost per lead — pulled straight from the write-back. Until then this section stays deliberately empty. No invented figures, ever.

PACKAGES

The add-on brick — proof the seams are real.

Both base bricks were built with declared seams; this is the first package to plug into them. One add-on, two systems enriched, zero changes to either base.
Talk about your lead intake →View the components on GitHub →