Analyst Workflow Automation: Why Your Intelligence Products Take Three Days When They Should Take Three Hours
T. HoltThree days to produce a finished intelligence product is not unusual. It should be embarrassing.
The raw collection happens in minutes. Enrichment runs overnight. Then the actual work begins: an analyst sits down, opens six browser tabs and two spreadsheets, copies pivot data between systems that don't talk to each other, formats a report template from 2019, and waits on a peer review email chain that lives entirely in someone's inbox. The bottleneck is never the data. The bottleneck is the plumbing between the data and the finished product.
This is the part nobody wants to talk about because fixing it means admitting that most intelligence workflows were designed for humans doing everything by hand, and then computers got added on top without changing the underlying process.
What Actually Eats the Time
Before automating anything, map the real workflow. Not the one in the SOP. The one analysts actually run.
You'll find five or six recurring time sinks: manual indicator normalization (IPv4 vs CIDR vs hostname inconsistencies), repeated context lookups against the same enrichment sources, copy-paste between collection systems and the report drafting tool, waiting for second-pair-of-eyes reviews on low-stakes assessments, and reformatting the same intelligence for different consumer audiences.
None of those steps require analyst judgment. They require analyst time. That distinction matters enormously.
graph TD
A[/Raw Collection/] --> B{Normalization Engine}
B --> C[Automated Enrichment]
C --> D[Analyst Review Queue]
D --> E{Confidence Threshold}
E --> F[Auto-Draft Report]
E --> G((Manual Deep Dive))
F --> H[Consumer Delivery]
G --> H
The diagram above is the target state. Most teams are running the entire right side of that graph manually, including the parts that should never involve a human.
Normalization First, Always
Automation breaks on inconsistent data. If your pipeline receives indicators in ten different formats because five different collection sources have five different opinions about what a "host" field looks like, no amount of clever scripting downstream fixes that.
Build a normalization layer that runs before anything else touches the data. STIX 2.1 is the standard worth adopting here, not because it's elegant (it isn't), but because enough tooling already speaks it that you stop writing custom parsers for every new feed. Ingest into canonical form, validate against schema, reject malformed records with logged errors rather than silent failures. Silent failures in intelligence pipelines produce confident-sounding reports about wrong things.
Tiered Review by Confidence Score
Not every intelligence product needs full analyst review. Routine indicator reports on well-documented commodity malware families, recurring infrastructure reports on known-bad ASNs, weekly summaries of unchanged threat actor TTPs: these can be auto-drafted by a templating system and routed for a ten-minute spot-check instead of a two-hour write-up.
The key is building a confidence scoring gate into the routing logic. High confidence, low novelty, known-entity assessments go one way. Low confidence, new actor, unusual TTPs go another. The analyst should be spending deep cognitive effort on the second category, not reformatting boilerplate for the first.
This requires your team to actually agree on what confidence scores mean and to apply them consistently. That's the hard part. The routing logic itself is maybe fifty lines of Python.
The Report Template Problem
Report templates are where automation ambitions go to die. Every consumer wants something slightly different. The SOC wants machine-readable output. Leadership wants a two-page PDF with no jargon. The partner liaison wants something that strips sourcing because their environment isn't cleared for it.
Solve this with a single canonical intelligence object and multiple render targets. Write the assessment once, in a structured format that carries all the fields: key judgment, supporting evidence, confidence level, sourcing, recommended actions. Then generate the consumer-specific format on output using a renderer that knows what each audience needs to see.
Jinja2 templates work fine for this. So does any document generation tool that separates content from presentation. The point is that the analyst writes once and the pipeline handles the rest.
Peer Review That Doesn't Live in Email
Email-based review is a workflow killer with no upside. Every review cycle is invisible to process improvement because there's no structured record. Comments get lost in threads. Version control is nonexistent.
Put review workflows in a system that logs them: a ticketing tool, a purpose-built intel management platform, even a git-based review flow if your team is technically comfortable. The goal is that every review decision is captured, queryable, and improvable over time. When you can measure how long reviews take and where they stall, you can actually fix the process.
Analysts exist to make judgments about ambiguous situations with incomplete information. Workflow automation exists to make sure they're spending all their time doing exactly that, and none of their time copying and pasting between spreadsheets. Those two things are not in competition. Get the plumbing right and the analysis gets better because the people doing it have capacity to actually think.
Get Intel DevOps in your inbox
New posts delivered directly. No spam.
No spam. Unsubscribe anytime.
Photo by