Kill the
intake spreadsheet.
The spreadsheet was never the problem — it was the proxy for the problem. Data lived in Drive, disconnected from the CRM, un-searchable, un-reportable, and invisible to every downstream automation. This framework migrates it into the CRM in one phase and wires a deal-creation trigger that fires the moment the operator logs the meeting.
Every downstream framework reads from this data.
AI document processing verifies intake against source records — it needs the intake in the CRM. The routing agent matches inbound notifications to deals — it needs the contact record to exist. Stage gates read property values — those properties need to be populated at deal creation, not three days later by a paralegal.
The intake-migration framework is the unglamorous phase that makes every other phase possible. We ship it first, intentionally, even when the client wanted to start with "the AI stuff."
Data model before automation. Automation before AI. AI builds on top of a clean CRM — never under one.
Same trigger. Different everything else.
The operator-visible trigger ("Log Meeting" in the CRM) stays identical. What happens around it changes completely.
Spreadsheet-based
Data lives in Google Drive. Not searchable, not reportable, not available to downstream automations.
- Copy spreadsheet templateManual duplicate of the intake template, named for the client.
- Conduct strategy sessionFill the spreadsheet live during the call.
- Upload to DriveCompleted spreadsheet goes into the client folder.
- Log meeting in CRMSeparate step — the spreadsheet data never reaches the CRM.
- Auto (4 steps)Deal created in Awaiting Documents. Contract email sent. 24hr expectations email. Lead status → Client.
CRM-native
Custom fields live on the Contact record. Data is searchable, reportable, and available to downstream AI automations on day one.
- Open Contact record in CRMClient is already a lead in the CRM.
- Conduct strategy sessionFill the native intake form live on the Contact record. Form data becomes Contact properties in real time — no spreadsheet, no Drive upload.
- Log meeting in CRMSame trigger. One click.
- Auto (5 steps)Conditions written to Contact Notes. Lead status → Client. Deal created with auto-populated fields (Round 1, standard engagement, $1,300). Contract email with signing links. 24hr expectations email.
- Downstream unlockedAI agent now has the conditions list, contact properties, and deal properties it needs to verify documents and populate forms.
Five material differences.
The specifics change per firm, but the shape of the change is always these five. This table is the quickest answer to "why do we need this?"
| Area | Current | Proposed |
|---|---|---|
| Data location | Spreadsheet in Drive | CRM Contact record custom fields |
| Case-detail tracking | Not captured in the CRM | Conditions with statuses (New / Denied) in Contact Notes, editable inline |
| Deal field population | Manual or empty | Auto-set on log-meeting: deal type, determination, case type, forecast amount |
| Edge-case attachments | Sent to every client (even when not applicable) | Attached only when the underlying flag on the contact is set to true |
| Downstream use | None — data is siloed | AI agents use conditions for source-document verification, form population, and notification routing |
W0b — the one workflow that makes this whole thing work.
Fires on log-meeting. Writes conditions to Contact Notes, creates the deal with auto-populated fields, kicks off the contract + expectations email sequence. Five steps, single transaction.
Enhanced Deal Creation
Pre-pipeline trigger. Fires when the operator logs the meeting in the CRM.
- 01SET
Contact property lead_status = "Client".
- 02SET
Condition list written to Contact Notes from the intake form (e.g. "Item A — New · Item B — Denied · Item C — New").
- 03SET
Create new Deal in Pipeline 1, stage = Awaiting Documents.
- 04SET
Deal properties: deal_type = Round 1, case_type = Standard, forecast_amount = $1,300.
- 05IF/THEN
Determination known from the intake? YES → populate case_rating field. NO → leave blank, operator fills in later.
- 06EMAIL
Send Step 1 Email to client with contract signing links (authorization form + master contract).
- 07DELAY
Wait 24 hours.
- 08EMAIL
Send Expectations email to client (what happens next, timeline, who to contact).
- 09EXIT
Deal created in Awaiting Documents. Pipeline 1 takes over — rotting timer, reminder cadence, AI monitor all arm themselves.
Three deliverables. One UAT.
Field audit + data migration
Every field on the legacy spreadsheet is mapped to a CRM property. Historical data is one-time migrated into the new properties. Legacy template deprecated and archived.
CRM-native intake form
Form lives on the Contact record. Fields auto-save as the operator types. Mobile-friendly so the session can be conducted from a tablet or phone.
Deal-creation workflow + chat alert
The W0b workflow in full. Google Chat webhook announces the new deal to the team channel. End-to-end UAT with the operator team before flip.
Start here. Everything else builds on it.
Intake migration is the phase where the data model gets right. It's cheap, it's visible, and it unlocks the AI work. Four to six weeks, inclusive of operator training.