Turn Manual Workflows Into Code Your Team Owns
Document generation, approval routing, scheduled jobs, customer onboarding, transactional emails — workflows that need to be done the same way every time, ten thousand times a year.
We document the automation patterns we build most often
Common situations
Where This Shows Up
Six patterns we see across almost every client. The common thread: somewhere your business is paying a person to do something a computer should do.
Three people email a PDF back and forth to get a contract approved.
The approval flow has been a chain of emails for years. Half the time someone forgets to CC legal. We replace this with a routed approval system: who needs to sign in what order, what happens if someone's out, audit trail, automatic reminders.
Your team writes the same proposal/SOW/onboarding doc 50 times a month.
Each takes 30 minutes of copy-paste from a template, swap-in client name, tweak the pricing table. A scoped document generator pulls from your CRM + a template library and produces a draft your team edits in 2 minutes instead of writing from scratch.
Reports run on a cron job nobody understands; nobody knows what to do when one fails.
A previous developer set up scheduled jobs. They mostly work. When one fails, nobody knows where the script lives, what it does, or how to re-run it. We replace this with a documented orchestration layer (Celery / Airflow / DBT) with monitoring + an actual operator runbook.
New customer onboarding is a 14-step checklist your team does by hand.
Provision the account, send the welcome email, create the project in tool X, invite their team, schedule the kickoff, populate the dashboard. Each step is 2 minutes; 14 steps × 50 customers/month = a person-week. Workflow automation collapses it to one trigger.
Customer-facing emails are sent manually because they need personalization.
Renewal reminders, usage threshold alerts, anniversary emails — too custom for a marketing platform, too valuable to skip. We build an automation layer that pulls live data and sends the right message to the right person at the right time, with full opt-out compliance.
Your no-code tool (Airtable / Make / Zapier) is buckling under volume.
It worked at 100 records. It's wobbling at 10,000. We migrate the critical paths to maintained code your team controls — keeping the no-code where it still fits and replacing it where it doesn't.
Deliverables
What's Included
Every process automation engagement ships with the same backbone — because workflows that survive in production all need the same ten things.
Workflow discovery + value mapping
We shadow the operators doing the work, time the steps, identify the bottleneck, and confirm the workflow is worth automating before we write a line of code.
Architecture + state machine
Most workflows have hidden states (pending review / waiting on customer / blocked / escalated). We model them explicitly so nothing falls through the cracks.
Document generation
Templated proposals, SOWs, contracts, invoices, reports — pulled from your CRM/ERP, populated dynamically, output to PDF/DOCX. Tracked, versioned, and audit-logged.
Approval + routing logic
Who approves what, in what order, with what fallbacks. Reminders for stuck approvals. Reassign on PTO. Full audit trail for compliance.
Scheduled & event-triggered jobs
Celery, Airflow, DBT, or systemd timers — picked to fit your existing stack. Documented, monitored, with a runbook your team can operate without us.
Email + notification automation
Transactional emails (Mailgun / SendGrid / Postmark), Slack notifications, SMS via Twilio. Templated, personalized, opt-out compliant, deliverability-monitored.
Idempotency + retry
Every step is safe to repeat. Network failures and partial completions don't double-charge customers or send duplicate emails.
Operator dashboard
Your team needs visibility — current workflow state, stuck items, failure queue, manual override controls. We build a small ops UI per project.
Error escalation paths
Failed workflow → Slack alert with context → operator can retry, skip, or escalate. No silent failures. No mystery queues.
Documentation + runbook
How the workflow works, what to do when it breaks, who to call. Written for the operator, not the developer.
Process
How We Build It
Five stages. The pilot stage matters — we run your real workflow with the manual fallback still on standby until we've calibrated the edge cases.
Shadow
We sit with the team currently doing the manual work. Time the steps. Identify the genuine bottleneck (often not where you think it is).
Model
States, transitions, decision points, exception paths. Diagrammed on paper before we build, reviewed with the operators.
Build
Backend orchestration + operator UI + integrations. Behind a feature flag so we can dual-run alongside the manual process for the first weeks.
Pilot
Run 50–100 real workflows in production with the manual process still on standby. Calibrate the exception thresholds against actual edge cases.
Hand off
Runbook + operator dashboard hand-off. 30 days of operational support to catch the edge cases that only surface at full volume.
Comparison
How We Compare
Three ways to do this work. Pick by volume + stakes.
Manual / spreadsheets
- Setup cost$0
- Throughput ceilingHeadcount
- Audit trailHope
- Error rateHuman
- Operates at 10× volumeNo
Zapier / Make / Airtable
- Setup cost$$
- Throughput ceilingVendor tier
- Audit trailBasic
- Error rateEdge-case fails
- Operates at 10× volumeCostly
Purcell Analytics
- Setup cost$$$
- Throughput ceilingYour infrastructure
- Audit trailFull, compliance-grade
- Error rateDesigned against
- Operates at 10× volumeDesigned for it
Case study spotlight
Salesforce CRM for a Consulting Firm
How Purcell Analytics built DLH Consulting a custom small business workflow automation platform — bidirectional Salesforce sync, account enrichment, real-time dashboards, and AI-powered blog content.
Industry
Salesforce consulting
Company size
boutique consulting firm
Stack
Django 5.2, React 19, TypeScript, PostgreSQL
Playbooks
Browse 600+ Automation Playbooks
Industry-by-industry automation patterns we've documented from real engagements. Use them to scope your own project or to brief your team before our discovery call.
{process_short} for {industry_short} | Purcell Analytics
Practical playbook for automating {process_name} in {industry_name}. Pain points, typical tools, and measurable outcomes.
{group_key} - Automation Playbook
Browse all {group_key} Automation Playbook.
Vendor Mgmt for Staffing | Purcell Analytics
Practical playbook for automating Vendor Management in Staffing & Recruiting Agencies. Pain points, typical tools, and measurable outcomes.
Vendor Mgmt for Real Estate | Purcell Analytics
Practical playbook for automating Vendor Management in Real Estate Operations & Property Management. Pain points, typical tools, and measurable outcomes.
Vendor Mgmt for Pro Services | Purcell Analytics
Practical playbook for automating Vendor Management in Professional Services. Pain points, typical tools, and measurable outcomes.
Vendor Mgmt for Nonprofits | Purcell Analytics
Practical playbook for automating Vendor Management in Nonprofits & Associations. Pain points, typical tools, and measurable outcomes.
Vendor Mgmt for Agencies | Purcell Analytics
Practical playbook for automating Vendor Management in Marketing & Creative Agencies. Pain points, typical tools, and measurable outcomes.
Vendor Mgmt for Logistics | Purcell Analytics
Practical playbook for automating Vendor Management in Logistics & Transportation. Pain points, typical tools, and measurable outcomes.
Tech stack
The Stack We Build On
Mature open-source tools, not bleeding-edge experiments. Your team has to operate this for years.
Orchestration
- Celery (Django-native, the default)
- Airflow (for data pipelines)
- DBT (for warehouse transformations)
- systemd timers + cron (when simpler fits)
Documents & notifications
- WeasyPrint / ReportLab (PDF generation)
- DocxTemplater (Word docs)
- Mailgun, SendGrid, Postmark
- Twilio (SMS)
- Slack & PagerDuty
Backend + ops
- Django + DRF
- Postgres + Redis
- Doppler (secrets)
- Buildkite / GitHub Actions
- Operator dashboards (Django admin or custom)
FAQ
Frequently Asked Questions
Should I just use Zapier instead?
+
If you're at low volume, simple flows, and don't need audit trails — yes, often. Zapier wins on speed-to-first-automation. We win on volume past ~100 ops/day, transactional integrity, edge-case handling, and code your team controls. We'll tell you honestly which side of the line you're on.
What about n8n or other self-hosted no-code tools?
+
Strong middle ground for some teams — you own the deployment but still get a visual editor. We've built solutions on both sides. Tradeoff: n8n is faster to change for non-developers; custom code is more flexible and integrates better with the rest of your stack.
Can you automate something that involves a legacy system without an API?
+
Yes — we've automated workflows touching SFTP file drops, screen-scraped legacy UIs (Playwright headless browser), parsed email forwards, and read from database replicas. Tell us what you have; there's almost always a path.
Who runs the automation after you leave?
+
Your team. We hand off the operator dashboard + runbook + 30 days of support. The point is automation your team owns, not a system that requires us to keep paying for.
What if the workflow needs to change next year?
+
Code your team owns + documentation written for the operator = changes are a normal dev task. We design for change because every workflow we've ever built has needed to change.
Do you do RPA (UI bot automation)?
+
Sparingly. UI automation is fragile and we recommend against it when an API exists. When it's the only option (legacy systems, no integration available), we use Playwright with explicit waits and visual regression checks.
How do you handle workflows that mix automation + human decisions?
+
State machines with explicit "awaiting human input" states. Operator dashboard shows what's waiting on whom, with reminders. Humans aren't a bug; they're a step.
What about workflows that need AI in the middle?
+
Common pattern — automated workflow with an AI summarization or extraction step. We build both halves. See our AI Integration & Automation service for the AI-specific scaffolding (cost controls, evals, human-in-the-loop).
Related Services
System Integration
Workflows need data. Integration connects the systems first; automation orchestrates them.
AI Integration & Automation
When a workflow step needs language understanding, LLMs slot in cleanly — with the safety scaffolding.
Custom Web Applications
When the workflow needs a real UI — customer portal, operator console, admin tool — full-stack covers it.
More Case Studies
NetSuite ↔ E-commerce Inventory Sync
Automated inventory orchestration replacing a manual reconciliation process.
DLH Consulting — Salesforce CRM
Workflow automation across CRM, accounting, and document generation for a consulting firm.
AACC Portfolio Command Center
Multi-tenant ops orchestration across 14+ web properties via Django + agent-driven workflows.
What Workflow Are You Done Doing Manually?
Schedule a 30-minute discovery call. You'll leave with a written assessment of which workflow has the highest ROI to automate first.