Strategy
Meeting agents for Dutch B2B sales: a scoring method
Three meeting agents on the whiteboard. One is fast and cheap. One is yours. One is in your CRM. Here is the method we use to score them at 320 calls a week.

The sales director at a Utrecht freight-forwarding firm sent us a fourteen-line email at 22:11 on a Tuesday. Eight reps. Around 320 sales calls a week. They wanted a meeting agent. Granola had been demoed. The head of IT had blocked it citing AVG. The CEO had read a Microsoft email about Copilot for Sales. Three weeks of internal arguing, no decision. The director asked for a method, not an opinion.
Here is the method we use when a sub-€10M Dutch services firm asks the same question.
The three options on the whiteboard
Three families. They sit on a spectrum from "managed SaaS, US-hosted" to "you run it on hardware in your own network closet."
Granola is the easy-to-love one. The agent listens during a call, takes notes the way a junior associate would, and drops a summary into a Notion-style document afterward. Sales loves it inside a week.
Self-hosted Whisper plus Ollama is the in-house option. A Mac mini M4 Pro sits in the network closet. Whisper transcribes. Ollama runs a local model (Llama 3.3 70B, Qwen 2.5, whatever fits the RAM) that summarizes. Nothing leaves the building unless you push it to your CRM yourself.
Microsoft Copilot for Sales is the enterprise option. Already speaks Dynamics and Salesforce. Sits inside the Microsoft 365 tenant you already pay for. Requires Microsoft 365 Copilot as a prerequisite, which most sub-€10M Dutch firms do not yet have.
The wrong question is "which one is best?" The right question is: at our volume, what does each one cost per call, who is the data controller, and what happens when a prospect emails on a Friday demanding their recording be wiped?
Per-call cost at 320 weekly meetings
320 calls a week times 4.33 weeks per month is roughly 1,386 monthly meetings. Eight sales seats. Amortize over 36 months because anything shorter is dishonest for an internal tool.
Granola at the team tier runs around $18 per seat per month at list. For eight reps that is roughly €130 per month, or €0.09 per meeting. Move up to the Business or Enterprise tier (DPA, SSO, admin console) and you are closer to $30 per seat, so €220 per month, or €0.16 per meeting.
Self-hosted Mac mini M4 Pro: roughly €2,300 with 48GB RAM and a 1TB drive. Spread over 36 months that is €64 per month. Electricity at €0.30 per kWh and 65W average draw is about €14 per month. Hardware and power total: €78 per month, or €0.06 per meeting.
The honest version of self-hosted adds operations time. Patch days. Whisper model upgrades. Disk rotation. Call it four hours a month at €90 per hour fully loaded: €360 per month. Real total €438 per month, €0.32 per meeting. (Some clients have a sysadmin who would have charged that time to something else anyway. Then you fall back to the bare €0.06.)
Microsoft Copilot for Sales is $50 per user per month and requires Microsoft 365 Copilot at $30 per user per month. Eight reps at the combined ~€75 per seat is €600 per month, or €0.43 per meeting. If you already have Microsoft 365 Copilot rolled out for other reasons, the marginal cost is roughly half of that.
The rank order surprises people. Self-hosted hardware is the cheapest. Self-hosted with honest operations time is the most expensive of the three. Granola is the cheapest managed option. Copilot is the priciest by some distance, and the price you pay is integration with the CRM you already run.
AVG defensibility
A meeting recording of a Dutch prospect is personal data under the AVG. The voice itself is biometric-adjacent. The content is almost always commercially sensitive. You need a lawful basis (Article 6, usually legitimate interest), a processor agreement (Article 28), and a transfer mechanism if any of this leaves the EU (Article 44 onwards).
Granola is a US company. Their model providers are US companies. You will need to sign a DPA, accept Standard Contractual Clauses, and run a transfer impact assessment if you process EU prospect data. The Enterprise tier gives you the paperwork. Lower tiers may not. The sub-processor list changes; you need to audit it on a cadence.
Self-hosted is the cleanest AVG story. The data never leaves the building, the processor is you, and the DPIA writes itself. The catch is that you still need a register of processing activities, written retention rules, and a documented deletion routine. "It runs on a Mac mini" is not a legal defense; "we have a documented Article 28 internal process and a 30-day rotation" is.
Microsoft Copilot for Sales runs inside the EU Data Boundary, which keeps tenant data in EU-based infrastructure for the main service. The DPA is detailed and battle-tested. The remaining risk is the US CLOUD Act, which applies to Microsoft as a US-headquartered company. For most Dutch B2B firms, Microsoft's posture is defensible. The Autoriteit Persoonsgegevens has not, as of June 2026, issued an enforcement decision against a properly configured EU-Data-Boundary tenant.
If your prospects include Dutch government bodies or healthcare providers, the calculus tilts toward self-hosted. If your prospects are commercial mid-market firms, all three can be made defensible. The question is how much paperwork your operations lead wants to maintain.
Article 17 in practice
A prospect calls on a Friday afternoon. "Delete the recording of last week's call." That is an Article 17 request. You have one month to comply, extendable to three with a written reason. You also have to be able to prove you complied.
In Granola: there is an admin console. You search by participant email, find the meeting, click delete. The vendor confirms deletion from primary storage. You take a screenshot. The question your DPO will ask is: what about backups, and what about the LLM provider's logs? The DPA should answer both. Read it before you sign.
In a self-hosted setup, you wrote the script. Likely something close to this:
#!/usr/bin/env bash
# erase-meeting.sh
set -euo pipefail
MEETING_ID="$1"
BASE="/var/meetings"
rm -fv "$BASE/audio/$MEETING_ID.wav"
rm -fv "$BASE/transcripts/$MEETING_ID.txt"
rm -fv "$BASE/summaries/$MEETING_ID.md"
# CRM row keyed on meeting_id
psql -d sales -c "DELETE FROM meeting_notes WHERE meeting_id='$MEETING_ID';"
# Log the action for the audit trail
echo "$(date -u +%FT%TZ) erased $MEETING_ID by $USER" \
>> /var/log/erasure.log That log file is your proof. If you back up the Mac mini, your backup retention policy needs to either roll forward past the erasure or include a process to scrub backups on request. Most sub-€10M firms write the policy as "backups expire in 30 days" and call the erasure complete on day 31.
In Microsoft Copilot for Sales: erasure runs through Microsoft Purview. The Data Subject Request workflow covers the full GDPR surface but takes engineering time to set up the first time. After that it is a few clicks. The audit trail is automatic.
The hardest Article 17 case is not "delete this meeting." It is "delete every meeting where I was a participant," across three years and seven CRM fields. Build for that case, not the easy one.
The scoring method
Score each option from 1 to 5 on six dimensions. Weighted, summed. The highest total wins.
Dimension Weight Granola Self-host Copilot
Per-meeting cost (320/wk) 0.15 4 3 2
AVG defensibility 0.25 3 5 4
Article 17 ergonomics 0.20 3 4 4
CRM integration 0.15 2 2 5
Time to value 0.10 5 2 3
Vendor concentration 0.15 2 5 3
----- ----- -----
Weighted total 3.05 3.75 3.50The weights are not universal. A firm with a Salesforce-led pipeline will push CRM integration to 0.30 and vendor concentration to 0.05, and Copilot wins. A firm selling to municipalities will push AVG to 0.40 and self-hosted wins by a wider margin. The point is not the exact number. The point is that the conversation moves from "what does the IT director feel" to "what trade-off are we explicitly choosing."
We hand the matrix to the client and ask them to fill in the weights without us in the room. The first draft is usually wrong. The second draft tends to be defensible.
Vendor concentration risk
Granola is built on third-party model APIs. So is roughly every AI-native startup. Last week the front page of Hacker News carried a 689-point thread on Amazon's CEO reportedly nudging US officials toward action against Anthropic models. The specifics will be argued over for months. The underlying point is durable: if your sales process depends on a SaaS that depends on a single model provider, you are two layers removed from your own continuity plan.
Self-hosted does not solve this. Open-weight models still come from companies that can change licensing terms. But the blast radius of an upstream surprise is smaller, because you control the substitution. You can swap Llama 3.3 for Qwen 2.5 on a Tuesday and the sales team notices nothing.
Microsoft will be Microsoft for the next decade. That is a different kind of risk, but a more predictable one.
At 320 weekly meetings, the per-call cost gap between the three options is smaller than the cost of one botched Article 17 response. Score the AVG axis first.
When each option wins
Granola wins when the sales team needs to ship something next week, the prospect base is commercial, and the firm is willing to maintain a vendor due-diligence cycle.
Self-hosted Whisper plus Ollama wins when you sell to public-sector or regulated buyers, or when your operations lead is already running infrastructure and the marginal hour is cheap.
Microsoft Copilot for Sales wins when you already live inside Microsoft 365 and your sales team's productivity bottleneck is CRM hygiene, not note-taking. The price buys integration you would otherwise build by hand.
When we ran this method for a logistics client in Utrecht earlier this quarter, the matrix pointed at self-hosted, but the operations lead did not want to own a Mac mini. We ended up building a managed Whisper plus Ollama AI agent on their on-premise server, with the Article 17 erasure script wired into their CRM, two weeks to build and three for the DPIA. Spend an afternoon writing your own weights before you book a vendor demo.
Key takeaway
At 320 weekly meetings, the per-call cost gap between Granola, self-hosted, and Copilot is smaller than the cost of one botched Article 17 response. Score AVG first.
FAQ
What is the cheapest of the three at 320 weekly meetings?
Granola at the team tier, around €0.09 per meeting. Self-hosted hardware is cheaper on paper, but only if you do not count the four operations hours a month it really takes to keep it healthy.
Is Granola AVG-compliant for Dutch B2B sales calls?
It can be, on the Enterprise tier with a signed DPA, Standard Contractual Clauses, and a transfer impact assessment. The lower tiers do not give you the paperwork an AP audit would expect.
Does Microsoft Copilot for Sales keep data in the EU?
Yes, tenant data for the main service runs inside Microsoft's EU Data Boundary. The residual risk is the US CLOUD Act, which applies to all US-headquartered providers.
Who deletes the recording when a prospect invokes Article 17?
Whoever owns the system. Granola: the admin via the console. Self-hosted: your own erasure script and log file. Copilot: a Microsoft Purview Data Subject Request workflow inside your tenant.