Working AI agent and workflow systems you can inspect.
Each build shows the problem, what we shipped, and the architecture underneath. Voice agents, document intake, structured capture, and engagement agents—portable to your cloud, on-prem, or hybrid. Interactive demos are spun up on request.
Voice agent connected to workflow
Problem: After-hours and overflow calls become voicemails. Intent never reaches a system of record.
What we built: An Amazon Connect reference path that answers, captures intent, stores structured records, applies business rules, notifies staff, and supports human handoff.
Outcome: A call path that writes a record and pages someone—while the caller is still talking.
- Call answeredBranded greeting after hours or on overflow.
- Intent capturedStructured fields instead of a vague voicemail.
- Record persistedOptional summarization; durable data for CRM or ops tools.
- Notify or escalateStaff alerted while the caller is still engaged.
Inbound calls hit Amazon Connect; a Lambda handler persists the lead, notifies staff, and optionally asks Bedrock for a short summary. Persistence and the alert are guaranteed—the model never blocks the record.
- IaC: AWS CDK → CloudFormation
- Runtime: Node.js Lambda
- Observability: CloudWatch
Interactive demos for this build are offline by default. We bring them back online for scheduled walkthroughs—request a consultation to see a live run.
What we refused to skip
Talking is the easy part
Connect answers the call. Rules and storage own the outcome. The model pulls intent and maybe a summary. If language is not required for a step, we do not burn tokens on it.
Narrow tools
Greet, collect, classify, escalate. No inventing appointments or advice outside scope. Low confidence → human. Logs so you can replay the turn later—same governance habit as our multi-agent work, on a phone channel.
Write the ticket
Contact, urgency, reason land in something CRM/FSM/email can read. Alerts fire on create. A recording that never becomes a ticket is the failure mode we designed against.
Call-path traces
Latency, confidence, rule hits, handoff reason. When something goes wrong you should know if it was speech recognition, classification, or the integration.
Secure document request pipeline
Problem: Source documents bounce around email. Status is unclear; staff find out late.
What we built: A secure one-time request link. The recipient verifies by email code, uploads files, and staff receive alerts on progress.
Outcome: Document intelligence wired into an auditable workflow with private storage.
- Request createdRecipient email + checklist of required files.
- Verified accessSingle-use link; email code before upload.
- Private storageShort-lived upload URLs; no public bucket.
- Staff notifiedAlerts on create, each upload, and completion.
Staff create a one-time request; the recipient verifies by email code, uploads through short-lived URLs into private object storage, and operators get alerts on create, each upload, and completion.
- API + Lambda
- DynamoDB request state
- SES notifications
- IAM least privilege
Interactive demos for this build are offline by default. We bring them back online for scheduled walkthroughs—request a consultation to see a live run.
How files get in without the inbox mess
Collect first, model later
One-time link, email code, checklist, private uploads with short-lived URLs. Extraction or RAG indexing only makes sense once you have a complete, attributable pile of files.
No public bucket
Prove identity, then write. URLs expire. Staff get notified; they do not browse S3 for “did it land?” Same access discipline as production RAG.
Models stay optional
Summarize or completeness-check if it helps. Completeness itself is a checklist and rules. Embeddings come after the intake spine works.
Keep it operable
Alerts on create / upload / done. Retention is explicit. Same pattern for tax packets, matter files, vendor docs—wherever missing files stall the next step.
Capture context before it hits the inbox
Problem: Web and phone requests arrive incomplete—no urgency, context, or next step—so they stall before a system of record.
What we built: A structured intake agent: contact and urgency, situational context, reason checklist, and routing—then an immediate staff alert with a durable record.
Outcome: One pattern deploys for service desks, professional intake, and operational queues—with CRM or FSM handoff when you are ready.
- Contact + urgencyWho, where, and how fast a response is needed.
- Situational contextStructured fields instead of free-text chaos.
- Reason checklistCommon request types captured consistently.
- Route + alertStructured notification to the right queue or owner.
Web or phone intake captures contact, urgency, context, and a reason checklist; validation runs before persistence; routing and alerts follow urgency—CRM or FSM handoff when the capture contract is stable.
- HTTP API + Lambda
- DynamoDB
- SNS / email
- Optional model classify
Interactive demos for this build are offline by default. We bring them back online for scheduled walkthroughs—request a consultation to see a live run.
Design notes on structured intake
Fields beat free text
Contact, urgency, context, reason checklist. Same shape every time. A model can classify leftover prose; it does not get to invent the schema.
Same spine, different queues
Service desk, professional intake, ops overflow—they all fail by dropping incomplete requests. Capture → validate → persist → route → alert. Field names change; the spine does not.
Urgency drives the queue
High-urgency paths notify immediately. Lower-urgency paths can batch. Wrong-fit requests get a recorded decline instead of sitting in a shared inbox.
CRM later is fine
Email or a store is a valid first ship. Wire CRM/FSM when the capture contract is stable. Watch validation failures and notification delivery the same way we watch RAG stages.
Qualify, score, and route inbound interest
Problem: Form fills land in a shared inbox. Qualification is inconsistent; high-intent requests cool off.
What we built: Validate submissions, apply clear qualification rules, persist a durable record, and notify the owner with grade and summary.
Outcome: Owner gets a graded alert with a durable record. Reference pattern. Not a claimed client case study.
- Submission validatedRequired fields and basic integrity checks up front.
- Qualification rulesDeterministic scoring; model assist only when it earns its place.
- Durable recordReady for CRM or workflow handoff.
- Owner notifiedImmediate alert with grade and summary.
A form POST hits an HTTP API; Lambda validates, applies deterministic qualification rules (optional model assist), writes a durable record, and emails the owner with grade and summary.
- IaC: AWS SAM → CloudFormation
- Optional Bedrock assist
- CRM-webhook ready
Interactive demos for this build are offline by default. We bring them back online for scheduled walkthroughs—request a consultation to see a live run.
Engagement agent notes
Rules grade; models summarize
Prompt-only scoring is inconsistent and hard to audit. Validate fields, run deterministic rules, optionally summarize. The owner should see why a lead ranked where it did.
Notify the owner, not a shared inbox
Persist first, notify with grade and summary, CRM later if the path holds. Same pattern for sales or internal desks—labeled as a reference build on our infra.
What a reference run produces.
Redacted staff notification from a reference intake run—the same capture → route → alert path used in production deploys.
From Intake agent · Automatico reference
To ops@••••••••.com
Subject New request · urgency: same-day
Contact J—— R—— · (•••) •••-••42
Context Structured fields captured at submission
Reason Service request · checklist completed
Urgency Same-day response requested
Next step Owner notified · record saved for morning review
Structured capture before hang-up. No voicemail re-entry.
Match capability to the constraint.
- Knowledge trapped in files — start with RAG development when answers must use your corpus. See the detailed architecture.
- Requests that never become records — start with voice agents or structured intake when calls and forms die before systems of record.
- Inbound interest without ownership — start with the engagement agent when qualification and follow-up are inconsistent.
Request a technical walkthrough.
We can walk a reference build on a call and outline a first production path for your environment.
