Client onboarding is one of those processes that every agency knows is broken but rarely fixes. For us, it meant 3 days of back-and-forth emails, manual data entry into our project management system, and a kickoff call that often covered the same ground as the intake form. In early 2025, we rebuilt the entire flow using AI agents — and cut it to under 2 hours. Here's exactly what we built and what we learned.
The Old Process (And Why It Was Painful)
Our previous onboarding looked like this: client fills out a Typeform, we manually review it, someone creates a Notion project page, someone else sets up the Slack channel, a third person drafts the kickoff agenda, and then we schedule a call. Each step required a human to pick up where the last one left off.
The failure mode was handoff latency. A form submission at 6pm on a Friday might not get actioned until Monday morning. By then, the client's enthusiasm had cooled and we'd already lost momentum. We needed the system to respond within minutes, not days.
The Agent Architecture
We built a three-agent pipeline using LangGraph, with each agent responsible for a distinct phase of onboarding:
Pipeline Overview
Typeform Webhook → Intake Agent
→ Classify project type & extract requirements
→ Generate project brief (GPT-4o)
→ Create Notion page + Slack channel (via API)
→ Scoping Agent
→ Estimate timeline & complexity
→ Draft SOW from brief template
→ Flag ambiguities for human review
→ Communication Agent
→ Send personalized welcome email
→ Schedule kickoff call via Calendly API
→ Post intro message in Slack channel
The Intake Agent: Structured Extraction
The intake form collects free-text descriptions of what the client wants to build. The first agent's job is to turn that unstructured text into a structured project brief. We used GPT-4o with a JSON schema output mode — the model returns a typed object with fields like projectType, coreFeatures, integrations, targetUsers, and successMetrics.
The key insight was that structured output mode dramatically reduced hallucination compared to asking the model to produce free-form text. When the model has to fill specific fields, it stays grounded in what the client actually wrote rather than inventing plausible-sounding requirements.
We also added a confidence score field. If the model rates its confidence below 0.7 on any field, the brief gets flagged for human review before proceeding. This catches the genuinely ambiguous submissions — usually clients who write two sentences and expect us to figure out the rest.
The Scoping Agent: Timeline Estimation
Estimating project timelines is notoriously hard. We trained a simple classifier on our historical project data — 60+ completed projects with actual vs. estimated timelines — to predict complexity buckets (small/medium/large/enterprise). The classifier feeds into a prompt that generates a draft SOW with timeline ranges.
The draft SOW is never sent directly to the client. It goes into a Notion page in our internal workspace, tagged for review. A human (usually the project lead) reviews it within 2 hours during business hours. This is the one human checkpoint we kept intentionally — timeline commitments are too consequential to fully automate.
The Communication Agent: Personalization at Scale
The welcome email is where most automated onboarding falls flat — it reads like a template because it is one. Our communication agent uses the structured brief from the intake agent to write a genuinely personalized email that references the client's specific project, mentions relevant case studies from our portfolio, and sets clear expectations for the next 48 hours.
We A/B tested the AI-written emails against our previous template. Open rates went from 68% to 84%, and reply rates (a proxy for engagement) went from 31% to 52%. The difference was specificity — clients responded to emails that showed we'd actually read their intake form.
Failure Modes We Encountered
Three things broke in production that didn't break in testing:
- Rate limits on the Calendly API — we were creating calendar events faster than Calendly's free tier allowed. Fixed by adding a queue with exponential backoff.
- Notion API timeouts on large briefs — briefs over ~4,000 tokens caused timeouts when creating the Notion page. Fixed by chunking the content into multiple API calls.
- GPT-4o occasionally ignoring the JSON schema — about 2% of responses returned malformed JSON despite structured output mode. Fixed by adding a validation layer that retries with a stricter prompt if parsing fails.
The Results
After 3 months in production across 40+ client onboardings: average time from form submission to welcome email dropped from 18 hours to 23 minutes. Kickoff calls are now more productive because clients arrive having already reviewed a draft brief. Our project leads spend about 15 minutes per onboarding instead of 3 hours.
The one thing we didn't automate — and won't — is the kickoff call itself. That's where trust is built, and trust is the foundation of every successful project.
Want to build something similar for your business? We've done this across multiple workflows and can help you identify the right automation opportunities.