The Mid-Market Automation Playbook, Brothers Automate
BROTHERS_AUTOMATE / RESOURCES · AUTOMATION PLAYBOOK ● MID-MARKET PLAYBOOK · 08 WORKFLOWS
BROTHERS AUTOMATE × 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.

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.

PAIN_01
40+ hrs

Sales Data Entry Per Week

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

PAIN_02
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.

PAIN_03
±30%

Forecast Variance

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

PAIN_04
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.

WORKFLOW_01 · 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 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 sec QUOTE TO INBOX
0 MANUAL 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
WORKFLOW_02 · 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 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
WORKFLOW_03 · 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, 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)
WORKFLOW_04 · 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

TRIGGERMon 7:00amScheduled
PARALLEL

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
WORKFLOW_05 · 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

TRIGGERHRIS New Hire5 days before start
PARALLEL

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
WORKFLOW_06 · 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

TRIGGERMon 6:00amScheduled
HITL WINDOWRevOps Commentary6:00-6:30am

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
WORKFLOW_07 · 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

TRIGGERNew TicketZendesk webhook
PARALLEL
OUTPUTSlack Brief to AgentAssignment + 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
WORKFLOW_08 · 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

TRIGGERDaily 6am+ Stripe webhook

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
BROTHERS_AUTOMATE / SECTION 06 · TALK TO THE BROTHERS 30-MIN DISCOVERY CALL · NO PITCH
SCHEDULE_INTAKE · 30_MIN ● ACCEPTING NEW BUILDS
GET ON OUR CALENDAR

Tell us what's eating your time.
We'll show you what we'd build to fix it.

30 minutes. We listen, we map your bottleneck, we tell you straight whether we can help and what it'd cost. No deck. No pressure. Either you walk away with a plan or you walk away with clarity.

FREE CONSULTATION · NO OBLIGATION · CUSTOM-BUILT FOR YOUR BUSINESS