The Mid-Market Automation Playbook — Brothers Automate
Brothers Automate x Gumloop

The Mid-Market
Automation Playbook

8 production-ready AI agent workflows for companies stuck between $10M and $50M. Built to remove the manual bottlenecks killing your growth.

8
Workflows
18
Agents
73%
Companies Stall Here
20-30%
Admin Time Saved
The Problem

Your Operations Are
The Bottleneck

At $10M-$50M, you have the customers, the product, and the team. What you don't have is time -- because your best people spend it on work that should be automated.

📋
40+ hrs

Sales Data Entry Per Week

Duplicate data across spreadsheets, CRM, and email. Your reps are data entry clerks who occasionally close deals.

🧾
10-20 min

Per Invoice, Manually

Finance processes invoices one by one. AP automation adoption is under 5% in mid-market. Your cash is waiting.

📉
+/-30%

Forecast Variance

Manual pipeline updates mean leadership plans on data that's 3-5 days stale at best. Hiring and cash flow suffer.

🔄
18-22 days

Added to Cash Collection

Every manual step in quote-to-cash delays working capital. That's money sitting on the table while you wait.

The Full Stack

8 Workflows.
One Operating System.

# Workflow Function Architecture Trigger Key Impact
01 Quote Generation Sales / RevOps 4 Agents HubSpot stage change 2-4 hrs → 90 sec
02 Lead Router RevOps / Marketing Single Agent Form submission Hours → <3 min
03 Invoice Processing (AP) Finance 4 Agents Email to AP inbox 10-20 min → <2 min
04 Renewal Risk Monitor Customer Success 4 Agents Monday 7am Catch churn 60-90 days early
05 Employee Onboarding HR / Operations 3 Agents HRIS webhook 2-4 hrs → automated
06 Pipeline Forecast RevOps / Leadership Single Agent Monday 6am +/-30% → +/-15% variance
07 Support Ticket Router Customer Success 3 Agents Zendesk webhook Routed in <90 sec
08 AR Reconciliation Finance Single Agent Daily 6am DSO drops 5-10 days
Deep Dives

Every Workflow.
Every Agent.

Click any workflow to explore the full agent architecture, inputs, outputs, error handling, and human-in-the-loop checkpoints.

Sales / RevOps
Quote Generation

Transforms a deal marked "Ready to Quote" into a signed, sent quote PDF in under 90 seconds. Four specialist agents handle validation, building, approval routing, and sending -- each isolated so a failure in one never corrupts the others.

4 Agents HubSpot Webhook Sequential

Click any agent to expand its full spec

Trigger
HubSpot
Stage Change
Deal → "Ready to Quote"
Agent 1
Deal Validator
Field completeness check
Agent 2
Quote Builder
Template populate + PDF
Agent 3 + HITL
Approval Router
Slack approval request
Agent 4
Quote Sender
Gmail + HubSpot log

Trigger -- HubSpot Deal Stage Change

Input
  • Location: HubSpot deal record
  • Method: Webhook on stage → "Ready to Quote"
  • Content: Deal name, contact info, products, pricing tier, terms notes
  • Format: JSON webhook payload
What Fires Next
  • Payload passed to Deal Validator immediately
  • Quote job row created in Google Sheet tracker
  • Timestamp logged for SLA tracking

Agent 1 -- Deal Validator

Input
  • HubSpot webhook payload
  • Required fields checklist (Notion)
Output
  • PASS → Quote job Sheet row created
  • FAIL → Slack alert to rep with missing fields listed
  • FAIL → Flow stops entirely
Checks Run
  • Deal name present
  • Contact name + email valid
  • At least 1 product line item
  • Pricing tier selected
  • Expected close date set
Tools
  • HubSpot (read deal)
  • Google Sheets (write job row)
  • Slack (alert on FAIL)
  • Notion (required fields config)
Human in the Loop
  • None -- fully automated gate
  • FAIL sends rep exact instructions to fix and re-trigger
Malformed webhook payload
Log raw payload to Sheet. Alert RevOps. Stop flow.
Sheet write fails
Retry once. Alert RevOps admin on second fail.

Agent 2 -- Quote Builder

Input
  • PASS row from Google Sheet (job tracker)
  • Re-fetched HubSpot deal (fresh data)
  • Quote template library (Google Drive)
  • Pricing table (Google Sheet)
Output
  • PDF saved to Drive: /Quotes/[Year]/[Month]/[Deal]
  • PDF URL written back to job tracker row
  • Within 60 seconds of Agent 1 PASS
Build Steps
  • Select template by pricing tier (Standard / Growth / Enterprise)
  • Populate all fields from deal data
  • Apply custom terms verbatim from deal notes
  • Set expiry: today + 14 days
  • Generate PDF via PandaDoc/DocuSign
Hard Rules
  • Never invent pricing -- halt if line item not in table
  • Never modify template structure
  • Never send the PDF -- build only
Template not found
Fallback to base template. Flag in Sheet. Alert RevOps.
Pricing table lookup fails
Hard stop. Alert RevOps. Do not guess pricing.
PDF generation fails
Retry once. Escalate to RevOps with deal ID + error.

Agent 3 -- Approval Router

Input
  • PDF URL from Agent 2 in job tracker
  • Deal amount and owner
  • Approval routing table (Google Sheet)
  • OOO tracker (Google Sheet)
Output
  • Slack interactive card to approver
  • Approve/Reject buttons embedded
  • Job tracker updated to PENDING-APPROVAL
Routing Logic
  • <$10K → deal owner's manager
  • $10K-$25K → RevOps manager
  • >$25K → RevOps + Sales Director (2-step)
  • OOO → auto-route to backup
Reminder Cadence
  • No response in 4 hrs → reminder sent
  • No response in 8 hrs → escalate to RevOps manager
  • Reject → Slack thread for feedback to rep
Human in the Loop
  • This entire agent exists to create a human decision point
  • Single approval for deals under $25K
  • Two approvals required for deals over $25K before Quote Sender activates

Agent 4 -- Quote Sender

Input
  • APPROVED status in job tracker (required)
  • Approver name + timestamp (required)
  • PDF URL from Drive
  • Contact email + deal owner email
Output
  • Gmail sent from deal owner's address to prospect
  • Deal owner CC'd on every send
  • HubSpot activity logged: "Quote sent -- [Deal] -- [Date]"
  • Job tracker: status → SENT, timestamp
Hard Rules
  • Verify APPROVED + approver + timestamp all present before sending
  • Never send without confirmed PDF attachment
  • Never modify the PDF -- send as-approved
  • Does not handle follow-up -- separate workflow
Tools
  • Gmail (send from deal owner)
  • Google Drive (fetch PDF)
  • HubSpot (log activity)
  • Google Sheets (update status)
90 secQuote to inbox
0Manual steps for rep
100%Audit trail

Data Sources

CRM
HubSpot deal + contact records
Templates
Google Drive /Quotes/Templates/ -- 3 tiers
Pricing
Google Sheet -- line items, unit prices, discount rules
Config
Notion -- required fields, payment terms, routing rules
Tracker
Google Sheet -- quote-job-tracker (one row per job)

Connectors Required

HubSpot Gmail Google Drive Google Sheets Slack PandaDoc / DocuSign Notion
RevOps / Marketing
Inbound Lead Router

Every inbound lead scored, qualified, enriched, and routed to the right rep with full context -- in under 3 minutes. Single agent. Linear flow. No routing meetings ever again.

Single Agent Form Webhook

Click any node to expand its spec

Trigger
Form Submit
Real-time webhook
Step 1
Enrich
Clearbit / Apollo
Step 2
ICP Score
High / Med / Disqualify
Step 3
Route to Rep
Territory + availability
Output
HubSpot + Slack + Gmail
Updated, alerted, acknowledged

Trigger -- Form Submission

Input Fields
  • First name, last name, email
  • Company name
  • Message / intent
  • Source / UTM parameters
Fallback
  • 15-minute polling of HubSpot for new contacts (backup if webhook fails)
  • Deduplication check runs on every path

Step 1 -- Enrich

What's Pulled
  • Employee count
  • Industry vertical
  • Tech stack (HubSpot user? Salesforce?)
  • Funding stage and amount
  • Company domain + HQ location
Fail Handling
  • Enrichment API down → route on form data only
  • Flag "Enrichment unavailable" in Slack card
  • Rep verifies manually -- flow not blocked

Step 2 -- ICP Scoring

Score Tiers
  • High ICP (70-100): 4+ criteria met
  • Medium ICP (40-69): 2-3 criteria met
  • Disqualify (<40): 0-1 criteria met
Signals Weighted
  • Company size vs ICP band
  • Industry match
  • Tech stack signals
  • Funding stage
  • Message intent keywords
On Disqualify
  • Log to disqualified Sheet tab
  • HubSpot stage → Disqualified
  • No rep assigned -- flow stops
  • RevOps reviews weekly

Step 3 -- Routing Engine

Routing Logic
  • Match lead to rep by territory, segment, company size
  • Read rep OOO status -- route to backup if unavailable
  • Round-robin fallback if multiple reps qualify
High ICP Flag
  • >500 employees AND High ICP → Slack flag to SDR manager
  • Manager confirms assignment before outreach begins
Human in the Loop
  • Routing rules table owned by RevOps -- agent reads only
  • High ICP Enterprise leads require SDR manager to confirm rep before outreach

Output -- Three Simultaneous Actions

HubSpot Updated
  • Owner assigned to correct rep
  • Lead score written to contact
  • ICP tier set (High / Medium / Low)
  • Lifecycle stage → Lead
Slack Card to Rep
  • Company name + ICP score
  • Employee count, industry, funding
  • Original form message
  • Recommended talk track opener
Gmail to Lead
  • "Thanks for reaching out -- [Rep Name] will be in touch shortly"
  • Sent within 3 minutes of form submit
  • Never sends outreach -- acknowledgment only
<3 minLead to rep
0Routing meetings
100%Leads logged

Data Sources

Inbound
HubSpot form or landing page webhook
Enrichment
Clearbit or Apollo API
ICP Config
Notion -- ideal customer profile, scoring weights
Routing
Google Sheet -- territory/segment → rep mapping
Availability
Google Sheet -- rep OOO flags

Connectors Required

HubSpot Slack Gmail Google Sheets Clearbit / Apollo Notion
Finance -- Accounts Payable
Invoice Processing AP

Four specialist agents with hard checkpoints. OCR extracts, validation matches POs and catches duplicates, approval routes to the right human, payment schedules only after confirmed sign-off. Full audit trail from email to payment.

4 Agents Gmail Inbox Watch Sequential + Checkpoints

Click any agent to expand its full spec

Trigger
Email to
ap@company.com
Attachment detected
Agent 1
Extractor
OCR → structured data
Agent 2
Validator
PO match + duplicate check
Agent 3 + HITL
Approval Agent
Slack approve / reject
Agent 4
Payment Agent
QuickBooks + Drive archive

Trigger -- Gmail Inbox Watch

Watches For
  • New email with PDF, PNG, or JPG attachment
  • Sent to ap@company.com
  • Email body may contain vendor context
No Attachment?
  • Log email to AP Sheet as "No Attachment"
  • Slack alert to AP manager with sender info
  • Flow stops -- no further processing

Agent 1 -- Extractor (OCR)

Fields Extracted
  • Vendor name and email
  • Invoice number + date
  • Payment due date
  • Line items (description + amount each)
  • Subtotal, tax, total, currency
  • PO reference number (if present)
Confidence Gate
  • >=85% confidence → write to AP log, continue
  • <85% → flag "LOW CONFIDENCE"
  • Alert AP manager with original attachment
  • Agent's best attempt provided as starting point
Tools
  • Gmail (read attachment)
  • Mindee API or AWS Textract (OCR)
  • Google Drive (archive original)
  • Google Sheets (AP processing log)
Unrecognized file type
Reject. Slack alert to AP manager. Stop.
Drive archive fails
Continue with extraction data. Flag archive failure in Sheet.

Agent 2 -- Validator

3 Checks -- In Order
  • 1. Duplicate detection: same vendor + amount + date within 30 days
  • 2. Vendor verification: match against approved vendor master list
  • 3. PO matching: invoice PO reference vs open PO list
Hold Verdicts
  • HOLD-DUPLICATE → alert AP manager
  • HOLD-NO-PO → hold entirely, alert
  • HOLD-AMOUNT-VARIANCE → alert with both figures
  • PROCEED → pass to Approval Agent
Override Path
  • AP manager resolves HOLD in Sheet
  • OVERRIDE-PROCEED → re-enters at Agent 3
  • Human override flag logged permanently
Human in the Loop
  • Every HOLD verdict requires AP manager to resolve before flow continues
  • No invoice proceeds past a HOLD without human override logged

Agent 3 -- Approval Agent

Slack Card Contains
  • Vendor name + invoice number
  • Amount + due date
  • Top 3 line items + count of remaining
  • PO number + Drive PDF link
  • Approve / Reject buttons
Approval Tiers
  • <$5,000 → single approval (budget owner)
  • >=$5,000 → budget owner first, then CFO
  • OOO → auto-route to backup approver
Reminder Cadence
  • No response 24 hrs → reminder sent
  • No response 48 hrs → escalate to Finance Director
  • Reject without reason → Slack prompt for reason before logging
Human in the Loop
  • This agent's entire purpose is a human decision point
  • Two-tier invoices require both approvals -- first approval alone never triggers payment

Agent 4 -- Payment Agent

Pre-Flight Checks
  • APPROVED status must be present
  • Approver name must be logged
  • Approval timestamp must be logged
  • All 3 required -- hard stop if any missing
Actions Run
  • Look up vendor bank details from master list
  • Check for early payment discount opportunity
  • Create bill in QuickBooks / NetSuite
  • Schedule payment for calculated date
  • Archive PDF: /AP/Processed/[Vendor]/[Year]/[Month]/
Large Payment Alert
  • Payment >$50K → Slack awareness ping to CFO
  • Not an approval -- just visibility
  • Normal payment flow continues regardless
80%Error reduction
70%+Time saved per invoice
5-10 daysDSO improvement

Data Sources

Invoices
Gmail inbox (ap@company.com)
PO List
QuickBooks / NetSuite API or Google Sheet
Vendors
Google Sheet -- approved vendors, bank details, payment terms
Routing
Google Sheet -- cost center → budget owner Slack ID

Connectors Required

GmailQuickBooks / NetSuiteSlackGoogle SheetsGoogle DriveMindee / Textract (OCR)
Customer Success
Renewal Risk Monitor

Four agents run every Monday morning. Data Collector assembles the dataset, Risk Scorer applies weighted signals, then Outreach Drafter and Digest Publisher run in parallel -- drafts in CSM inboxes and Slack digest delivered before 8am.

4 Agents Monday 7:00am Parallel Split

Click any agent to expand its spec

Trigger
Mon 7:00am
Scheduled
Agent 1
Data Collector
HubSpot + usage pull
Agent 2
Risk Scorer
Weighted 0-100 score
parallel
Agent 3
Outreach Drafter
Gmail drafts per account
Agent 4
Digest Publisher
Slack + HubSpot sync

Agent 1 -- Data Collector

Data Pulled
  • All accounts with renewal within 180 days (HubSpot)
  • ARR, renewal date, CSM assigned
  • Last login date, feature usage % (Sheet)
  • Support ticket count last 90 days
  • NPS score (last survey)
Gap Handling
  • Missing required field → flag in Data Gaps tab
  • Never drop accounts with gaps -- include with flag
  • Usage data stale → flag all accounts "Usage Data Stale"
  • HubSpot API fails entirely → abort run, alert CS manager

Agent 2 -- Risk Scorer

Signals (Weighted)
  • Feature usage % vs baseline
  • Days since last login
  • Support ticket volume trend
  • NPS score
  • Days until renewal
  • Last CSM activity date
  • QBR scheduled next 30 days (Y/N)
Tiers
  • Red: score <40
  • Yellow: score 40-69
  • Green: score 70+
  • Partial scores flagged separately
Flag Examples
  • "Feature usage 28% (baseline 71%) -- down 43pp MoM"
  • "No login in 24 days"
  • "Renewal in 38 days -- no QBR on calendar"
  • "4 support tickets last 30d (avg: 1)"

Agent 3 -- Outreach Drafter

For Each Red + Yellow Account
  • Read risk flags from scored accounts
  • Load CS playbook from Notion for each flag type
  • Pull HubSpot context: industry, product tier, contacts
  • Write personalized email -- 3-5 sentences
  • Create Gmail draft in CSM's inbox
Email Angles By Flag
  • Usage drop → value tip lead
  • No login → casual check-in
  • Renewal approaching → QBR scheduling
  • High ticket volume → root cause offer
Human in the Loop
  • CSM reviews every draft before sending -- agent never auto-sends
  • Never reference "churn risk," "health score," or "renewal risk" in email copy
  • Drafts missing personalization flagged "[NEEDS PERSONALIZATION]" in subject

Agent 4 -- Digest Publisher

Slack Digest Structure
  • Header: Red count + ARR / Yellow count + ARR / Green count
  • Red account table: name, ARR, renewal date, CSM, top flag
  • Yellow summary + link to full Sheet
  • Data gaps callout if any
  • Draft count ready in CSM inboxes
HubSpot Sync
  • Risk score written to company property
  • Risk tier written (Red/Yellow/Green)
  • Visible to all CS and Sales users
  • Updated every Monday
60-90 daysEarlier churn signal
0Manual spreadsheets
8am MonEvery week

Data Sources

CRM
HubSpot company + deal records
Usage
Google Sheet -- updated weekly by product/BI team
Config
Notion -- risk scoring weights, tier thresholds
Playbook
Notion -- outreach angles per risk signal type

Connectors Required

HubSpotGmailSlackGoogle SheetsNotion
HR / Operations
Employee Onboarding

Three agents triggered 5 business days before start date. Provisioning runs first -- nothing else starts until the account exists. Then Scheduler and Communicator run in parallel, cutting total setup time in half.

3 Agents HRIS Webhook Parallel After Dep.

Click any agent to expand its spec

Trigger
HRIS New Hire
5 days before start
Agent 1 (Required First)
Provisioning
Google Workspace + software
parallel
Agent 2
Scheduler
4 calendar events created
Agent 3
Communicator
Slack + welcome email

Agent 1 -- Provisioning Agent

Creates
  • Google Workspace account (email format: first.last@company.com)
  • Sets display name, department, title, manager in directory
  • Provisions all role-appropriate software access
  • Handles name collision automatically
Hard Dependencies
  • Manager must be confirmed in HRIS -- halt without it
  • Agents 2 and 3 do NOT start until PROVISIONING-COMPLETE written to Sheet
  • Provisioning failure → alert IT and HR immediately
IT Handoff
  • Slack notification to IT manager with new hire details
  • IT confirms credential delivery to new hire's personal email
  • IT can override any software access decision
Human in the Loop
  • IT confirms credential delivery (agent creates, human confirms)
  • HR must resolve missing manager assignment before flow continues

Agent 2 -- Scheduler

4 Events Created
  • Day 1, 9am: Manager 1:1 (45 min) -- check free/busy, fallback 10am then 2pm
  • Day 2, 10am: Team Intro (30 min) -- all dept members invited
  • Day 3, 2pm: Buddy Coffee (30 min) -- skip if no buddy assigned
  • Day 30, 3pm: 30-Day Check-In with manager
Rules
  • Never create events before new hire calendar is active
  • Never add external guests to onboarding events
  • Every failure logged in tracker -- never silently skipped

Agent 3 -- Communicator

Slack Actions
  • Add new hire to all department Slack channels
  • Also add to company-wide channels
  • Post welcome message in team channel with name + role
Welcome Email
  • Loads live onboarding checklist from Notion
  • Populates welcome email template by role type
  • Scheduled send: 8am on start date exactly
  • Never sends before start date
2-4 hrs→ automated
Day 1Calendar ready
8amWelcome email waiting

Data Sources

HRIS
BambooHR / Rippling -- new hire record
Channels
Google Sheet -- department → Slack channel mapping
Checklist
Notion -- Day 1 checklist (maintained by HR)
Buddy
Google Sheet -- buddy assignment table
Software
Notion -- provisioning list by role

Connectors Required

HRIS (BambooHR / Rippling)Google Workspace AdminGoogle CalendarSlackGmailGoogle SheetsNotion
RevOps / Leadership
Pipeline Forecast

Every Monday at 6am, pulls every open HubSpot deal, runs weighted forecast calculations, flags stale deals, and delivers a complete pipeline report to Slack and leadership Gmail -- with a 30-minute window for RevOps to add commentary before it publishes.

Single Agent Monday 6:00am

Click any step to expand

Trigger
Mon 6:00am
Scheduled
Step 1
Pull HubSpot
All open deals
Step 2
Weighted Calc
Forecast + coverage
Step 3
Risk Flagging
Stale, overdue, low coverage
HITL Window
RevOps Commentary
6:00-6:30am
Output
Slack + Gmail
6:30am + 7:00am

Step 1 -- HubSpot Pull + Data Quality

Per Deal Extracted
  • Deal name + owner
  • Stage + amount + probability
  • Close date + last activity date
  • Next steps field
  • Associated company name
Data Quality Flags
  • Missing close date → exclude from forecast, add to Quality Issues tab
  • Missing amount → exclude, same tab
  • Close date passed but deal still open → Stale Deals tab

Step 2 -- Weighted Forecast Calculation

Model Logic
  • Apply weighted probability by stage (Notion methodology)
  • Categorize: Commit / Best Case / Pipeline
  • Segment by rep, close month, category
  • Coverage ratio: pipeline / monthly target
Bias Calculation
  • Read prior 12 weeks of forecast vs actual
  • Calculate historical over/under bias
  • Note in digest: "Team historically forecasts 12% high"

Step 3 -- Risk Flagging

Flags Applied
  • No activity >14 days → yellow flag
  • Close date passed → red flag
  • Single-threaded deal >$20K → multi-threading flag
  • Rep below 2x coverage → coverage alert

Output -- Sheet + Slack + Gmail

5 Sheet Tabs
  • Tab 1: Forecast summary by rep + month vs target
  • Tab 2: All deals with flags + weighted value
  • Tab 3: Data quality issues
  • Tab 4: Stale deals
  • Tab 5: Historical accuracy (updated weekly)
Slack + Gmail Timing
  • 6:30am → Slack digest to #leadership
  • 6:30am includes RevOps commentary if added
  • 7:00am → Gmail HTML digest to leadership list
  • Coverage <2x → warning prepended to both
Human in the Loop
  • 6:00-6:30am window for RevOps to add commentary to Sheet
  • Deal categorization rules owned by RevOps in Notion -- agent reads only
  • Rep-adjusted deals flagged in Slack post
3+ hrsRevOps time saved weekly
+/-15%Forecast variance (from +/-30%)
7am MonEvery week, always

Data Sources

Pipeline
HubSpot all open deals (API)
Targets
Google Sheet -- targets by rep and month
Methodology
Notion -- deal categorization, probability weights
History
Google Sheet -- 12 weeks forecast vs actual

Connectors Required

HubSpotGoogle SheetsSlackGmailNotion
Customer Success / Support
Support Ticket Router

Three agents. Classifier reads the ticket and outputs a precise taxonomy tag. Router and Context Agent run simultaneously -- routing is complete and account context is ready in Slack before the assigned agent finishes reading the ticket.

3 Agents Zendesk Webhook Parallel Execution

Click any agent to expand

Trigger
New Ticket
Zendesk webhook
Agent 1
Classifier
Product area, severity, sentiment
parallel
Agent 2
Router
Ticket assigned in Zendesk
Agent 3
Context Agent
HubSpot account pull
Output
Slack Brief to Agent
Assignment + full account context

Agent 1 -- Classifier

4 Dimensions Classified
  • Product area (from Notion taxonomy)
  • Issue type: Bug / Billing / How-To / Feature Request / Urgent Access
  • Severity: P1 (outage) → P4 (feature request)
  • Sentiment: 1-5 (5 = highly frustrated)
Escalation Flags
  • Sentiment >=4 AND P1/P2 → ESCALATION-RISK flag
  • Spam / non-support → classify "Non-Support", stop
  • Confidence <70% → flag LOW-CONFIDENCE, route to team lead

Agent 2 -- Router

Routing Logic
  • Match product area + severity to agent/team (routing rules Sheet)
  • Check OOO -- route to backup if unavailable
  • P1: page on-call engineer in Slack simultaneously
  • Enterprise P1/P2: Slack flag to CS manager before assignment
Zendesk Updated
  • Assignee set to correct agent
  • Priority: P1=Urgent, P2=High, P3=Normal, P4=Low
  • Tags applied: product area + issue type + customer tier
  • SLA timer starts

Agent 3 -- Context Agent (Parallel)

HubSpot Data Pulled
  • Company name + ARR
  • Customer tier (Starter / Growth / Enterprise)
  • CSM name and last activity date
  • Renewal date + health score
  • Open ticket count last 90 days
Slack Card Sent To Agent
  • Ticket ID + issue type + severity
  • Full account context block
  • 1-sentence summary of what customer said
  • Direct link to ticket in Zendesk
  • At-risk Enterprise flag if health <60
Fail Gracefully
  • HubSpot unavailable → send lean card with ticket basics only
  • No HubSpot match → flag "Account Not Found" in card
  • Router hasn't assigned yet → wait 90 sec, then send to team lead
<90 secTicket to agent
30-60 secSaved vs single agent
0Manual HubSpot lookups

Data Sources

Tickets
Zendesk / Intercom webhook payload
Taxonomy
Notion -- product areas, issue types, severity definitions
Routing
Google Sheet -- product area + severity → agent/team
Account
HubSpot company + contact records (ARR, tier, health)

Connectors Required

Zendesk / IntercomHubSpotSlackGoogle SheetsNotion
Finance -- Accounts Receivable
AR Reconciliation & DSO

Finance starts every day with a complete AR picture. Reconciles payments to invoices, calculates aging and DSO, creates personalized dunning drafts, and posts a daily Slack digest -- all before 7am. Fridays adds a CFO summary email.

Single Agent Daily 6:00am + Payment Webhook

Click any step to expand

Trigger
Daily 6am
+ Stripe webhook
Part 1
Reconcile
Match payments to invoices
Part 2
Aging + DSO
Buckets + trend
Part 3 + HITL
Dunning Drafts
Gmail drafts per account
Output
Slack + CFO Email
7am daily + Fri 5pm

Part 1 -- Reconciliation

Match Logic
  • Match payment to invoice by PO reference or customer + amount
  • Exact amount match → mark PAID in Sheet
  • Amount variance <5% → PARTIAL flag, alert AR manager
  • Amount variance >5% → MISMATCH, alert, do not close invoice
  • No invoice match → UNMATCHED, alert immediately
Hard Rules
  • Never mark invoice paid without exact amount match (or override)
  • Payment dispute webhook → pause dunning for account, alert
  • Duplicate payment detected → hard stop, alert AR manager

Part 2 -- Aging + DSO

Aging Buckets
  • Current (not yet due)
  • 1-30 days past due
  • 31-60 days past due
  • 61-90 days past due
  • 90+ days past due
DSO Formula
  • Rolling 90-day: (Total AR / Revenue last 90 days) x 90
  • Week-over-week trend calculated (improving / worsening / flat)
  • DSO >45 days → Slack ping to CFO (awareness only)

Part 3 -- Dunning Drafts

Tone By Bucket
  • 1-30 days → friendly reminder
  • 31-60 days → firm + offer payment plan
  • 61-90 days → formal notice, requires Finance Manager Slack approval
  • 90+ days → HOLD, flag as write-off / payment plan candidate
Multi-Invoice Accounts
  • Customer with 3 overdue invoices → one email listing all three
  • Not one email per invoice
  • Highest aging bucket tone used for the combined email
Human in the Loop
  • Finance reviews all dunning drafts before sending -- 30-min window (6:30-7am)
  • 61-90 day drafts require Finance Manager Slack approval before Finance can send
  • Payment plans and write-offs must be manually entered -- agent flags candidates only

Output -- Slack + Friday CFO Email

Daily 7am Slack Digest
  • Total AR outstanding
  • Breakdown by aging bucket (amount + count)
  • DSO + week-over-week trend
  • Payments received today
  • Reconciliation flags count
  • Dunning drafts ready for review
Friday 5pm CFO Email
  • Weekly totals and DSO trend (4-week)
  • Top 5 overdue accounts by amount
  • Payments received this week
  • Dunning actions taken
  • Items requiring CFO awareness
5-10 daysDSO reduction
0Manual reconciliation
100%Consistent dunning

Data Sources

Invoices
QuickBooks / NetSuite (open + recent closed)
Payments
Stripe / payment processor (daily pull + webhook)
Contacts
HubSpot -- AR contact per account
Templates
Notion -- dunning templates by aging bucket
Cash Flow
Google Sheet -- maintained by Finance (context for large payments)

Connectors Required

QuickBooks / NetSuiteStripeGmailSlackHubSpotGoogle SheetsNotion
Shared Infrastructure

Build Once.
Powers All 8.

These tools connect across every workflow. Set them up once, and the entire stack runs on top of them.

CRM

HubSpot
WF 1,2,4,6,7,8
Salesforce
Alt to HubSpot

Communication

Gmail
All 8 workflows
Slack
All 8 workflows

Data & Tracking

Google Sheets
All 8 workflows
Google Drive
WF 1, 3
Notion
Config + playbooks

Finance

QuickBooks / NetSuite
WF 3, 8
Stripe
WF 8
Mindee / Textract
WF 3 (OCR)

People & HR

BambooHR / Rippling
WF 5
Google Workspace Admin
WF 5
Google Calendar
WF 5

Support & Sales

Zendesk / Intercom
WF 7
PandaDoc / DocuSign
WF 1
Clearbit / Apollo
WF 2
Ready to Build

Stop Planning.
Start Automating.

Every workflow in this playbook can be live in days, not months. We build the agents, connect the tools, and hand you a running system.

Book a free 30-minute audit. We'll identify which of these 8 workflows will hit hardest for your business -- and show you exactly what it looks like to build it.

Book Your Free Audit →
Free Resource

AI Automation: The Business Owner's Field Guide

10 key insights, core concepts, real workflow examples, and the right tools for automating your service business. Written for operators, not engineers.

  • What to automate first (and what not to)
  • How lead funnels actually work under the hood
  • The exact tool stack we use for clients
  • Mindset shifts that save you from overbuilding

No spam. We send useful stuff only.

Field Guide

AI Automation
for Business Operators

The technology to build a digital assembly line for your business already exists. This guide explains what it is, how it works, and what you actually need to know to use it.

The core idea: Define your inputs and outputs clearly. Let the machine handle everything in between. You don't need to understand every technical detail -- you need to understand your own operations.

What Business Owners Need to Know

Tap each to expand

The real value isn't saving clicks. It's offloading the mental load of evaluating options, routing information, and following up consistently. Every time you manually run a process, your brain loads every possible path before choosing one. That energy compounds into exhaustion. Automation does the evaluation for you -- because you already did the thinking when you built the system.
Automation doesn't fix a broken or undefined workflow. If you can't explain the steps manually, a system can't run them for you. Start by mapping what you already do. If you can walk through it step by step, with clear branches and decisions, it can be built and offloaded.
You don't need to understand what happens in between -- that's the machine's job. But you need to be specific: What data enters the system? What result do you want on the other end? Don't ask for 30 reports you won't read. AI can process everything; the constraint is knowing what you actually need.
A weekly email summarizing new leads in your CRM. A form submission that automatically adds a contact and sends a personalized follow-up. These aren't flashy, but they run every day without you. Small systems compound into large amounts of reclaimed time and mental energy over a year.
You can collect a few answers from a prospect, have AI research them, and automatically send a response tailored to their specific situation. What used to require a dedicated person can now run on its own. The result feels personal to the recipient -- because it is, based on what they told you.
If you're an expert in your field, you can turn that knowledge into an automated funnel. Prospects answer a few questions, AI matches their answers to your best content or recommendations, and you capture their information in the process. You're using AI to automate the selection -- not replace your expertise.
If something always happens the same way, use a workflow. If it requires interpreting context or choosing between options -- like triaging a new lead or responding to a varied inquiry -- that's where an AI agent adds value. Knowing which tool fits which task saves you from building the wrong thing.
CRMs, email platforms, forms, databases, research tools, image generators -- almost anything can be connected to anything else today. The tools exist. The hard part is knowing what you want connected, why, and being specific enough about it that a system can be built to do it reliably.
Build the system, find the gaps, fix them. The goal is a machine that runs cleanly -- not a perfect machine on day one. Every iteration makes it more reliable. Error handling is part of the build, not a sign that something went wrong. Expect to refine it.
Even when a task only takes one path, your brain loads every possible option before ruling them out. A 100-branch process might only ever use one branch -- but you consider 50 before choosing. Multiply that cognitive load across a full work day and it's significant. Automation doesn't just save time. It preserves focus for things that actually need your judgment.

Core Concepts

The building blocks, in plain language

Data Layer

API

A precise, predefined connection between two software systems. You specify exactly what call you're making -- get this data, post this record. Because they're explicit, they're reliable and predictable.

Think of it as: a specific form you fill out to make a specific request. Same form every time, same result every time.

Intelligence Layer

MCP

Model Context Protocol -- what AI agents use to interact with connected tools natively. Instead of one specific call, it opens a range of possible actions. The agent decides which action fits the situation.

Think of it as: giving an employee full access to a system and trusting them to figure out the right action, rather than scripting every click.

Trigger Layer

Webhook

A push notification between platforms -- when something happens somewhere, data is immediately sent somewhere else as a JSON payload. The entry point for most automations.

Think of it as: a form submission that automatically fires a signal to your systems the moment someone hits submit -- no manual checking required.

Process Layer

Workflow

A defined, repeatable sequence. Trigger, then Action, then Action, then Output. Same path every time. Best for structured, predictable processes that don't require interpretation.

Think of it as: a checklist that runs itself. Every step is predetermined. No judgment needed.

Intelligence Layer

AI Agent

An LLM with access to tools and the ability to make decisions. It can interpret varied inputs, choose the right action from its available options, and execute across connected platforms.

Think of it as: a smart employee who has access to all your systems and can figure out what to do based on what they're given -- without needing step-by-step instructions every time.

Language Layer

LLM

Large Language Model -- the AI brain (like Claude, GPT). Exceptional at processing, interpreting, formatting, and generating text. The reasoning engine behind agents and many workflow steps.

Think of it as: the smartest intern you've ever had -- can process any information, draft anything, research anything, but needs direction on what matters to you.

How It Actually Works

A real example: form submission to personalized outreach

01
Someone fills out your form

A prospect submits a contact or inquiry form on your site. This is the trigger -- the event that starts the whole chain.

02
Webhook fires to your automation platform

The form submission immediately sends a data payload -- name, email, answers -- to a tool like Gumloop or Make. This is your entry point.

JSON payload received: {name: "Sarah Chen", email: "sarah@...", interest: "accounting automation"}
03
Data is parsed and routes split

The platform extracts the relevant fields. From here, you can run parallel tracks -- one route adds them to your CRM, another begins the outreach flow.

04
Option A: Simple personalized email

Name and email go to an email tool (Resend, Gmail). A template pulls in their first name and the specific interest they mentioned. Sent within seconds of their submission.

"Hi Sarah, thanks for your interest in accounting automation. Here's what we do for firms like yours..."
05
Option B: AI-researched, fully tailored outreach

Name, email, and company get passed to an AI agent. Using tools like Perplexity or Exa via MCP, it researches them, then generates a response specific to their situation before sending.

Agent finds Sarah's firm handles 40+ clients, specializes in e-commerce. Email references this specifically.
06
You receive a summary, not the work

A simple report lands in your inbox. New lead added. Outreach sent. Anything that needs your judgment is flagged. Everything else ran without you.

The Tool Stack

What connects to what

Workflow BuilderGumloop

Visual workflow builder and agent platform. Good for connecting systems without deep coding knowledge.

Database / CRMAirtable

Flexible database that works as a CRM. Easy to connect to automations via API.

Email SendingResend

Programmatic email sending via API. Clean, reliable for automated outreach and notifications.

Research ToolPerplexity / Exa

AI-powered search and research. Agents use these via MCP to research leads or gather market data.

Web ScrapingFirecrawl

Scrapes websites at scale. Useful for competitive research, content gap analysis, SEO data.

AI BuilderClaude Code

LLM-powered coding tool for building custom internal software. Good for one-off tools tailored to your exact process.

Landing PagesFramer

Fast, design-quality landing page builder. Quick to spin up funnels and lead capture pages.

Image GenerationGoogle ImageFX

AI image generation for ad creatives, landing page visuals, and content assets.

WorkspaceNotion

Documentation and knowledge base. Can serve as a lightweight internal tool or client-facing resource.

The Knowledge Funnel

Turning expertise into qualified leads -- click each stage

You have expertise. Prospects want specific information they can't easily find elsewhere. The knowledge funnel connects these two things -- and captures what you need to convert them in the process.

Why they do it: They're getting something specific in return. Not a generic newsletter -- information tailored to their answers. The specificity of the promise is what gets them to fill it out.
You've already done the hard work: building the knowledge base from your expertise, defining what good answers look like. The agent just does the matching -- fast and at scale. It's not replacing your expertise. It's automating the selection.
The personalization isn't superficial. It's based on what they actually told you. People know when they're getting something generic. When the response reflects their specific situation, they notice -- and they're more likely to take the next step.
Their answers tell you what matters to them, what stage they're at, and how to position your offer. Your follow-up can reference this directly. Instead of a cold pitch, you're continuing a conversation they already started.

The Right Mindset

How to think about this before building anything

"Ford took every process of manufacturing a car and systematized it so it ran on its own. He couldn't do that with his accounting. Now you can -- digitally, for the back end of your entire business."
Define your assembly line before you build it. Know every step of your process. The clearer your manual process, the better your automated one will be. Vague in, vague out.
Complexity is fine. Ambiguity is not. Your process can have 100 branches. That's okay. What isn't okay is not knowing which branches exist. A complex but clearly defined process can be automated. An undefined one can't.
Start with what you already do manually. Don't try to automate something you haven't done yet. Pick one process you run regularly, map it out, and build that. Get one system running cleanly before adding another.
Build in error handling from the start. Assume things will break. Add notifications when they do. An automation that fails silently is worse than no automation. Know when your system needs your attention.
The goal is to stop thinking about things that should think for themselves. Every time you save a future version of yourself from having to load a process into working memory, you've created real leverage. That's what this is for.

Looking to offer automation to your clients?

Take the 2-min quiz →