Count Artifacts, Not Hours: How I Find What To Automate

Everyone tells you to time-track your team for six weeks to find automation candidates. It's backwards. When you ask a salesperson how they spent their week, you get a story. When you count the emails they sent, the CRM rows they touched, and the enrichment lookups they ran, you get a number. Numbers don't inflate to protect a job.
Here's the exact 3-column sheet I fill out before I quote any automation project — and the real audit where it mapped 1,847 monthly outputs to 3 agents in a single sitting.
Define "artifact" narrowly, or the method breaks
An artifact is any repeatable output a human in your business produces that leaves a trace. An email sent. A row updated in a spreadsheet. A PDF generated. A Slack status posted. An invoice mailed. A CRM field filled in. If it lands somewhere a system can count it, it's an artifact.
A meeting is not an artifact. A phone call with judgment in it is not an artifact. A decision made in someone's head is not an artifact. The moment you widen the definition to include "thinking work," the whole audit collapses back into subjective time-tracking. Keep it tight: only outputs that a query, an export, or a file listing can count.
The reason this works: artifacts are countable, hours are not. You are measuring exhaust, not humans. The exhaust tells you exactly where the repetition lives, and it tells you without the political weight of watching someone's calendar.
The three-column sheet — and how to score it
The whole audit fits in three columns. No time-tracking software, no discovery phase, no consultant framework. A Google Sheet works. I've used a napkin.
| Artifact type | Volume / month | Pattern-match score (1–5) |
|---|---|---|
| Cold outbound email (enriched lead, 3 vars) | 612 | 5 |
| Company enrichment against fixed schema | 434 | 5 |
| CRM status update on reply/bounce | 267 | 4 |
| Follow-up email (thread-aware) | 198 | 3 |
| Weekly pipeline report | 24 | 4 |
| Custom enterprise proposal | 6 | 1 |
Column 1 — Artifact type. List every distinct output the team produces. Cold email. Follow-up email. Enrichment row. CRM status update. Weekly report. Onboarding PDF. Invoice. Payment reminder. Meeting summary. A small team lands between 20 and 40 rows. More than 40 means you're being too granular — group them.
Column 2 — Volume per month. Real counts from source systems. Not estimates.
- Sent folder (Gmail API, Outlook Graph, or your outbound platform's export)
- CRM export (Salesforce reports, HubSpot exports, Pipedrive CSV)
- Invoicing tool (Stripe invoices, QuickBooks, Xero)
- Shared drive file listings by folder and month
- Slack export filtered by channel and author
This is the boring part people skip, and it's the part that makes the audit trustworthy.
Column 3 — Pattern-match score (1 to 5). How repeatable is the input-to-output mapping. A 1 means bespoke, needs human judgment. A 5 means the inputs are structured and the output follows a rule you could write on an index card. Cold email to an enriched lead with three variables? 5. Custom proposal for an enterprise client after a two-hour discovery call? 1.
Then sort by volume × score. The top three rows are your first three agents. Everything else is noise until you ship those.
Pull the counts with a query, not an interview
The tempting mistake is to ask people how many emails they send per week. Don't. Pull it from the system. Here's the shape of what I actually run for an outbound team on Gmail + HubSpot:
# 1. Count sent emails per user, per month, grouped by template family
from googleapiclient.discovery import build
service = build('gmail', 'v1', credentials=creds)
query = 'in:sent after:2026/08/01 before:2026/09/01'
resp = service.users().messages().list(userId='me', q=query, maxResults=500).execute()
sent_count = resp.get('resultSizeEstimate', 0)
# 2. Cluster by subject-line prefix or template ID to separate
# cold outbound from replies from internal admin
# HubSpot: engagements exported, then counted by type
curl -H "Authorization: Bearer $HS_TOKEN" \
"https://api.hubapi.com/crm/v3/objects/emails?limit=100&properties=hs_email_direction,hs_timestamp" \
| jq '[.results[] | select(.properties.hs_email_direction=="EMAIL")] | length'
For enrichment volume, pull the usage export from Clearbit, Apollo, or ZoomInfo. For CRM status changes, use the audit log. For invoices, the invoicing tool's dashboard usually shows monthly counts directly.
You want one number per artifact type, drawn from the system that owns that artifact. If a number is missing, that artifact is probably not worth automating — you can't measure it, so you can't verify the agent's output later either.
A real audit: 1,847 artifacts, 3 agents, one afternoon
Client: outbound lead-gen function, 4 SDRs, growing. Instead of interviewing anyone, we pulled the exhaust from their tools. Emails from the sending platform. Enrichment activity from the data provider. CRM updates from the export.
Total artifacts across one month: 1,847.
Then we clustered:
- Cold outbound emails, enriched lead, three variables: 612/month, score 5
- Enrichment lookups on new company against a fixed schema: 434/month, score 5
- CRM status updates triggered by a reply or a bounce: 267/month, score 4
That's 1,313 artifacts out of 1,847 — 71% of the entire outbound function's output — sitting inside three patterns.
Each of those three patterns became one agent. Not three people replaced — three artifact-producing patterns replaced. The SDRs kept the calls, the objection handling, the negotiation, the judgment. The typing disappeared. Two of the SDRs moved to booked-meeting quota instead of activity quota, because the activity floor was now handled by agents running 24/7.
Compare the cost of the audit itself:
| Method | Time to result | Data quality | Cost |
|---|---|---|---|
| Time-tracking audit (Toggl/RescueTime rollout) | 4–6 weeks | Subjective — people know they're timed | $8k–$25k consulting |
| Artifact audit (SQL + exports + one sheet) | One afternoon | Objective — from source systems | $0, or one day of your own time |
Most consultants sell you a discovery phase because it's billable, not because it's accurate.
The one-screen rule for agent vs. keep-human
This is where most people get the agent boundary wrong. My rule:
If the artifact's inputs fit on one screen, it's an agent. If they don't, keep it human.
That's the whole rule. Producing a cold email needs a lead record, a company description, and a product line — three fields, one screen, agent. Producing an enterprise proposal needs a two-hour discovery call, six stakeholder opinions, and a pricing negotiation — not one screen, keep human.
Examples in practice
- Invoice from a completed project brief → one screen (client, line items, rate). Agent.
- Weekly pipeline report from CRM export → one screen (query + template). Agent.
- Payment reminder on an overdue invoice → one screen (invoice ID, days late, tone rule). Agent.
- Client onboarding PDF from intake form → one screen (form fields → template). Agent.
- Custom SOW after a discovery call → not one screen. Human.
- Hiring decision after 3 interviews → not one screen. Human.
- Handling an angry customer refund request → not one screen. Human.
This rule alone saves you from trying to automate the wrong things and burning six months on a project that never ships. When the inputs sprawl beyond one screen, you're in judgment territory, and the failure modes get expensive fast.
The political side effect nobody warns you about
When you show a team the artifact sheet, the conversation changes. It stops being about whose job is safe and starts being about which outputs are boring. Nobody defends the honor of sending the same enrichment email 400 times a month. They're relieved.
You're not auditing the people. You're auditing the exhaust. That framing matters because it's the difference between a team that hides work from your audit and a team that helps you find more of it. In every audit I've run, once the team sees the sheet, they start adding rows themselves — "you forgot the Monday KPI email, that's 20 a month and I hate it."
That's the unlock. The artifact audit is the only automation discovery I've seen that gets more accurate the longer you leave it open, because the team keeps feeding it.
Why bizflowai.io helps with this
This artifact-first audit is the exact intake we run before scoping any automation build at bizflowai.io. We pull the counts from the client's actual systems — inbox, CRM, invoicing, shared drive — sort by volume × pattern-match, and quote agents against the top three rows only. It keeps projects small, ships the first agent in weeks not quarters, and gives the client a number they can verify from their own dashboards on day one.
The playbook, one paragraph
List artifacts. Count them from source systems, not from people. Score the pattern-match one to five. Sort by volume × score. Take the top three. Apply the one-screen rule. Ship agents for whatever passes. One afternoon of work, real numbers, no consultant needed. Everything else is noise until those three ship.
Want more like this?
I publish practical AI automation, GenAI engineering, and faceless content workflows on YouTube every week.
Subscribe to bizflowai.io on YouTube — never miss a new tutorial.
Planning an AI automation project or need a second opinion on your architecture?
Connect with me on LinkedIn — Lazar Milicevic, GenAI Engineer & bizflowai.io Founder.
Visit bizflowai.io for our services, case studies, and AI consulting.
Frequently asked questions
What is an artifact in a business audit?
An artifact is any repeatable output a human in your business produces that leaves a trace — an email sent, a spreadsheet row updated, a PDF generated, a Slack status, an invoice mailed, or a CRM field filled in. Meetings, decisions, and judgment-heavy phone calls are not artifacts. The distinction matters because artifacts are countable and can be pulled from system exports, while hours worked cannot be measured objectively.
How do I run an artifact audit?
Build a sheet with three columns: artifact type, volume per month, and a pattern-match score from one to five. List every distinct output the team produces (usually 20–40 rows), pull real counts from sent folders, CRM exports, and invoicing tools, then score how repeatable each input-to-output mapping is. Sort by volume times score — the top three rows become your first three agents.
Why does measuring artifacts matter more than tracking hours?
Artifacts are countable numbers pulled directly from systems, so they don't lie, politick, or inflate to protect jobs. Hours produce stories and subjective estimates, especially when people know they're being timed. An artifact audit takes an afternoon and yields objective data from tools, while a time-tracking audit takes six weeks and still produces biased results because humans self-report.
When should I build an agent versus keep a human doing the work?
Use the one-screen rule: if the artifact's inputs fit on a single screen, it's an agent. A cold email needing a lead record, company description, and product line fits on one screen — agent. A proposal requiring a two-hour discovery call, six stakeholder opinions, and complex pricing judgment does not fit on one screen — keep the human.
What does the pattern-match score mean in an artifact audit?
The pattern-match score rates how repeatable an artifact's input-to-output mapping is on a scale of one to five. A one means every output is bespoke and requires human judgment, like a custom enterprise proposal. A five means inputs are structured and the output follows a rule you could write on an index card, like cold emails to enriched leads with three variables.