A pipeline with no Deals object, no owners, and no automations. We rebuilt it on Attio's Deals.
Playkit runs high-volume short-form creator campaigns for software clients. Their data was clean, but the pipeline ran as a list instead of a Deals object, almost no record carried an owner, and the Attio workflow engine was empty. We audited the workspace in three days, then spent a week rebuilding the pipeline on Attio's standard Deals object and wiring the website straight into it.
Free audit + 1-week build
Engagement
0
Attio workflows found
0
Open tasks found
11 to 6
Stages collapsed
489
Deals moved to the Deals object
161
Job titles filled
The problem.
Playkit's data was in good shape. Zero duplicate companies or people, deal values in real currency, and a working dashboard. The problems were structural, and they sat one level under the data.
The pipeline was a list, not a Deals object. A company can only appear once in a list, so a repeat campaign for an existing client had nowhere to live. The Attio workflow engine was empty. Every lead went cal.com to Make to a Google Sheet to an Attio list, and the sheet existed only because leads sometimes did not land.
Three things nobody had raised. Owner was blank on 358 of 362 pipeline entries, so no automation could route work to a human. Lead source was captured on 215 of 216 leads and survived on only 92 of 362 deals, because Leads and Pipeline each had their own source field with option lists that never matched. And not one open task existed in the workspace, which is the mechanical reason leads rotted and "Followed Up" was the longest stage.
Around it, the follow-up ran outside Attio. Loops sent the two automatic emails after the form, one for leads with budget and one without, and a home-built tool handled the co-founder's personal follow-ups because Attio sequences had never been set up to do it.
Objectives.
- Put an owner on the deals, because every other fix depends on it.
- Move the pipeline off a list and onto Attio's standard Deals object.
- Stop losing lead source at conversion, and capture the UTM source of every website lead, including the ones who never book.
- Turn on weighted revenue.
- Replace the Make hop, the Google Sheet and Loops with a native intake and native Attio sequences.
The data model.
The fix was not a new custom object. Attio's standard Deals object already did the job, once it carried the attributes the business actually runs on and one client could link to many deals.
Deals
Attio's standard object, enabled and shaped. Deal value, stage, owner, close date, campaign dates, deal type, one shared lead source, budget as currency, closed reason, win probability, primary contact. The old stage is kept on every migrated deal, so nothing from the list history is lost.
Companies
One client, many deals stacked underneath. First campaign, renewal, second campaign, each its own deal instead of a copy across lists.
People
The person you actually talk to, linked to the deal. The old Leads list was parented to Companies, so a human filling in a form was filed as a company.
What we built in the week.
Tyler took the audit and asked us to do all of it at a fixed price. The build ran over one week in a shared Slack channel, with a Loom walkthrough at the end.
Deals object, live
All 489 entries from the New Clients and Renewals lists became real Deal records, linked to their companies. The lists were left untouched so the team could compare side by side before switching over.
Stages 11 to 6, weighted revenue on
Identification, Discovery Booked, Discovery Done, Proposal / Contract Sent, Won, Lost. Abandoned and Churned became a closed reason instead of a stage. Every deal carries a win probability by stage, so weighted revenue finally exists.
One lead source, real budget
The two Lead source fields merged into one shared option list. Budget became real currency. Dead fields came out. 161 missing job titles were filled, taking people with a title from 204 to 365, each with its source recorded.
A booking creates the deal
cal.com connects to Attio without Make in the middle. Booking a sales call creates the deal, carries the UTM source across, and every Identification deal now has a named owner. The Google Sheet is no longer needed.
Every form fill is caught
The website form moved to Fillout, which passes UTM data through to Attio. A "Booked a call" flag shows who filled the form but never booked, and a good-budget form now creates a deal on its own. Lower-budget leads keep their source too, because those buyers often come back later.
Sequences replace Loops
Two native Attio sequences, one for leads with budget and one without, with delegated sending set up so they go out from a real person's inbox. That retired Loops for the post-form emails.
Three Claude agents, on their own account.
Delivered as a repo with setup instructions. They run on the Claude subscription Playkit already pays for, against the Attio MCP they had already connected.
Report generator
A private dashboard on Playkit's own Vercel, regenerated on a schedule: weighted pipeline, revenue by lead source, renewals due in the next 60 days, and open deals past their close date.
Sales prep
Before every booked call it pulls the company, the form answers, the email thread and any past deals, and posts a short brief on the record.
Sales coach
A weekly score for each rep, with what to improve, built from call transcripts and the team's own sales playbook. It needs calls recorded into Attio to see what was said.
The one limit we flagged.
Tyler wanted the UTM source of people who fill the form and then drop off before booking. Fillout only fires its integration when someone reaches the end of the form, and its partial-submission feature cannot push to Attio without scheduled polling and a plan upgrade. So we changed the order instead: the form comes first, then the calendar on the next page. Every lead lands in Attio with its source, whether or not they book.
Results.
- Pipeline rebuilt on Attio's standard Deals object, with 489 list entries moved across and the original stage kept on each one.
- Eleven stages collapsed to six. Abandoned became a closed reason instead of a stage.
- One shared lead-source field, plus UTM capture on every website lead, so "which channel produced the revenue?" has an answer.
- Weighted revenue running, with a win probability on every deal.
- Make, the Google Sheet and Loops taken out of the lead flow. Booking or a good-budget form creates the deal in Attio directly.
- Three Claude agents running on the Attio and Claude the team already pays for. No extra AI bill, no new seats.
- Two weeks after handover, the team confirmed everything was working as expected. Tyler has since offered to vouch for us to anyone who asks.
“Worked with Craftt and George and they provided a quick audit and great insights to how I can improve my Attio setup. Great service and I felt like I was in good hands.”
Tyler Morris
Chief of Staff, Playkit
Ready when you are.
Book a call and we will tell you honestly whether this is worth doing, or start with the free 48-hour audit and decide afterwards.