Pipeline review, built from a CSV every Friday
Every Friday, before the pipeline review, someone on sales ops exports the week's deals out of the CRM as a CSV — there's no live connection into it, just a manual export button and a download. From there, it's the usual: open it in Excel, filter out anything closed or cancelled, and count how many open deals each rep is carrying into the weekend.
It's a fifteen-minute task that happens on a fixed schedule, redone from scratch every single Friday, because the CSV export is treated as a one-off download instead of the start of a repeatable process.
Why this keeps happening
Not every CRM has a connector waiting to be wired up, and even where one exists, standing up a live connection is its own project. A CSV export is often just the fastest real path from "data trapped in the CRM" to "a number sales ops can actually work with" — which is fine as a source, but the file itself doesn't do anything to make the process around it repeatable. (See what a data pipeline actually is for the broader idea a recurring export like this is a small instance of.)
The manual approach
- Export deals from the CRM as a CSV.
- Open it, filter out anything marked closed-won, closed-lost, or cancelled — only open deals count for a pipeline view.
- Count how many open deals are left per rep, usually with a pivot table.
- Sort so whoever's carrying the most shows up first.
- Screenshot or copy it into whatever the pipeline review actually runs on.
Why the manual version breaks
- "Only open deals" is a judgment call, reapplied by hand each week — easy to apply slightly differently depending on who's doing the export that Friday.
- The pivot table gets rebuilt, not reused. Every week starts from a blank pivot, not a saved one.
- There's no record of last week's count to compare against, since the whole thing gets thrown away once the meeting's over.
From CSV export to a saved pipeline view
Here's the same Friday report, built once against a CRM export and saved as a workflow instead of a spreadsheet habit.
Step 1 — import the export
Upload the CRM's CSV export through the Import Wizard the same way as any file — see importing a CSV into a reusable dataset for the full walkthrough of that step. Save it as a dataset once; each week's fresh export can update the same saved dataset going forward.
Step 2 — filter to open deals
Add a Filter node with the condition status = pending — the same judgment call that used to be reapplied by hand, now built into the workflow once.
Step 3 — count deals by rep
Add a Summarize node: measure COUNT, grouped by sales_rep — a plain headcount of open deals per rep, not a dollar total. The node reads "Count — COUNT · by Sales Rep" on the canvas.
Step 4 — sort and review
A Sort node on the deal count, descending, so the pipeline review starts with whoever's carrying the most open deals — not necessarily the most dollars, which is a different, equally valid view the same pattern could just as easily produce by swapping the measure.
SELECT sales_rep, COUNT(*) AS open_deals
FROM sales_orders
WHERE status = $1
GROUP BY sales_rep
ORDER BY open_deals DESCWhat comes out the other side
Before: a fresh pivot table every Friday, built from a filtered guess at "open deals," gone once the meeting ends.
After: the same saved workflow, rerun against each week's export — the filter condition and the count never have to be reconstructed, and this week's number sits right next to how the report was built, not just a screenshot of a result.
Key takeaways
- A CRM export doesn't need a live connector to become a repeatable, saved report — the Import Wizard treats a CSV the same as any other file source.
- "Open pipeline" stops being a judgment call reapplied by hand each week and becomes a Filter condition built once.
- Counting deals per rep, rather than totaling their value, is a deliberately different use of Summarize than totaling revenue by region — same node, same underlying pattern, a different question answered.
- The same connect-filter-summarize-sort pattern behind this report is the same one behind any recurring report — pipeline review is one instance of a much more general fix.
Next
Having now seen this same connect-filter-summarize-sort pattern built for a database report, a close report, and a CRM export, how to stop rebuilding the same report every week steps back to the general idea all three are instances of. For the department-level view of self-service sales reporting, see DataQloo for Sales.
Try it yourself
Import a CRM export through the Import Wizard and build a saved pipeline view — get early access to try it against your own export.
Related reading
Why Monthly Sales Reporting Is Still Manual in Most Companies
It's not that nobody's thought about automating it. It's that every individual fix costs more than just doing it by hand one more time — until the pattern repeats for the hundredth month in a row.
Building a Monthly Close Report Without an Analyst on Call
Close shouldn't wait on whoever knows how to run the report. Here's a profit-by-product close view finance can rerun themselves, every month, without a ticket to the data team.
How to Import a CSV File Into a Reusable Dataset
A CSV export that only exists as an email attachment gets re-cleaned by hand every time someone needs it. Here's how to import it once and reuse it instead.
Get new posts by email
Engineering notes and product updates from the DataQloo team, occasionally.