Luka Mrkić
Head of BD
Insights, strategies, and real-world playbooks on AI-powered marketing.
MAY 14, 2026
Sales reps spend only 30% of their time actually selling. The remaining 70% covers admin, internal meetings, and tasks like writing proposals (Salesforce State of Sales, 6th Ed., 2024, n=5,500). That split is the core productivity problem in B2B sales, and proposal creation sits near the top of the offending task list.
This post documents Espressio Proposals: a six-component AI pipeline that connects Fireflies, Slack, Claude Sonnet, Supabase, Railway, and Vercel. The pipeline converts a sales call transcript into a live, versioned proposal URL in under 10 minutes. The rep’s active involvement is under three minutes. If you’re building toward AI workflow automation for revenue teams, this is what the proposal automation layer looks like.
Key Takeaways
- Sales reps spend only 30% of their time on actual selling; 70% goes to admin and non-selling tasks (Salesforce State of Sales, 2024, n=5,500).
- 42.5% of all closed-won proposals close within 24 hours of the prospect first opening the proposal (Proposify, 2024, 1.28M proposals): proposal speed is a win-rate variable, not just a productivity one.
- An AI pipeline connecting Fireflies, Slack, Claude Sonnet, Supabase, Railway, and Vercel can turn a sales call transcript into a live proposal URL in under 10 minutes, with no commercial commitment appearing until the rep confirms it.
42.5% of all closed-won proposals are won within 24 hours of the prospect first opening the proposal (Proposify, 2024, 1.28M proposals across 27 industries). Sellers who effectively partner with AI tools are 3.7× more likely to meet quota (Gartner, 2024). Those two data points together describe the problem: proposals that arrive fast win; reps who are still drafting hours after the call aren’t competing.
The average B2B sales call ends and the prospect immediately starts evaluating other options. That window is short. A rep who spends 90 minutes writing a proposal from scratch is sending it into a window that may already be closed.
The win rate on RFPs improved from 43% to 45% in a single year, the largest year-over-year gain in five years (Loopio 2026 RFP Trends & Benchmarks, n=1,533). That gain tracks directly with teams adopting faster proposal processes. Speed isn’t cosmetic polish on top of proposal quality. It’s a core variable in whether a deal closes.
Proposals arrive during a decision-making moment. A prospect who opens one the day after a call is still in the headspace of that conversation. One that arrives three days later lands after competing priorities have filled the gap.
The remaining 70% of a rep’s week spans admin, data entry, internal meetings, and prep work - tasks that generate little direct revenue (Salesforce State of Sales, 6th Ed., 2024, n=5,500). Proposal writing sits in that admin bucket: structured, repeatable, and time-consuming. Those are exactly the conditions where AI creates real leverage.
There are three tiers of proposal automation. The first is SaaS template tools: PandaDoc, Proposify, Qwilr. The rep still writes the proposal; the tool handles formatting and e-signature. The second is AI-assisted drafting: the rep prompts an AI to generate a draft, then edits it manually. The trigger is still manual.
The third tier is an AI-integrated pipeline. The trigger is automatic. The moment a sales call ends, the system fires without any rep action. Claude processes the transcript, Slack surfaces a confirmation request, and the rep approves fields rather than writing them. That’s where Espressio Proposals sits.
The critical design variable at tier three is whether AI writes the proposal or extracts for rep confirmation. A pipeline that writes proposals autonomously creates commercial risk. One that extracts and surfaces for confirmation keeps the rep in control of every term that matters. The Espressio Proposals design uses Slack as the confirmation interface, so the rep stays in their existing workflow for every approval step.
The full pipeline, from Fireflies webhook to live proposal URL, runs in under 10 minutes. The rep’s active involvement is under three minutes: reviewing Claude’s analysis and confirming services, price, and start date through Slack dropdowns. Before this pipeline, writing a single proposal took 90 to 120 minutes per deal (Espressio internal data, 2026).
Step 1: Fireflies webhook. When a sales call ends, Fireflies fires an HTTP POST to the Railway backend. The payload includes the meeting transcript, attendees, and call metadata. No rep action required. The trigger is automatic, based on call ownership attributed by rotating API keys.
Step 2: Slack decision gate. The backend posts a message to the rep’s Slack channel with Claude’s preliminary analysis. The rep sees the transcript summary before any proposal work begins. This is the first human touchpoint.
Step 3: Claude transcript analysis. Claude Sonnet processes the full transcript using the analyzeTranscript function. It returns structured JSON: confirmed fields, identified gaps, evidence pulled directly from what the prospect said, risk factors, and a proposed engagement strategy. This takes roughly two minutes.
Step 4: Rep Slack confirmation dropdowns. A Slack modal surfaces the Claude-extracted fields alongside dropdown menus for every commercial term. Services, price, creator or PR budget, total budget, and start date all require explicit rep selection from approved options. Claude’s extractions are visible as context; the rep makes every commercial call.
Step 5: Modal submit creates version 1. When the rep submits the Slack modal, the backend writes version 1 to Supabase. The current_version_id field points the live proposal URL to this version. The proposal is immutable from this point. Revisions create new versions, not edits to existing ones.
Step 6: Live URL posted to Slack thread. The system replies in the same Slack thread with the live proposal URL and tags the BD reviewer. The rep can send the link to the prospect immediately. Before this pipeline, that same output took 90 to 120 minutes. With the pipeline, it’s done in under 10.
Claude Sonnet runs three specific tasks in the Espressio Proposals pipeline. analyzeTranscript processes the full call transcript and returns structured JSON covering confirmed fields, identified gaps, evidence, risk factors, and a proposed engagement strategy. generateProposalRenderData converts that structured analysis into HTML placeholder values. classifySlackRevision turns a Slack thread reply into a safe, structured field update for a new proposal version.
Each function is explicitly scoped. Claude doesn’t have access to the proposal output layer until analyzeTranscript completes. generateProposalRenderData runs only after the rep confirms commercial terms through Slack. The sequence is deliberate: extraction happens before confirmation, and confirmation happens before rendering.
The guardrails matter as much as the functions. Claude is explicitly prohibited from setting price, scope, timeline, start date, or services in the analyzeTranscript call. When confidence is low on a field, Claude posts a clarifying question to Slack rather than filling the gap with a plausible value. All responses must be strict JSON. If the response isn’t valid JSON, the pipeline rejects it and flags the failure.
Claude as a qualitative extraction tool produces fundamentally different output than Claude as a generation engine. When the pipeline extracts, the actual words the prospect used to describe their pain appear in the proposal. That specificity signals to the prospect that they were heard. A generated proposal sounds professional and plausible but could belong to any deal. An extracted proposal belongs to this conversation.
Every commercial commitment in the Espressio Proposals system requires explicit rep confirmation (Espressio, 2026). Services, campaign management price, creator and PR budget, total proposal budget, and start date all flow through approved Slack dropdowns.
The approved options are specific by design. Services includes four options covering the agency’s core offerings. Campaign management price runs from $5K to $50K in set increments, with Custom amount, To be confirmed, and N/A as additional options. Creator and PR budget spans $5K to $100K-plus. Start date options range from Immediately through In 1 month, with To be confirmed available for deals still in negotiation.
Claude never writes the deal terms - the rep does that through Slack dropdowns. That single design decision is what makes the pipeline safe to use in a live sales process with real commercial consequences.
Versioning works alongside the human confirmation step. Each Slack revision creates a new immutable proposal version in Supabase. The current_version_id field always points the live proposal URL to the most recently accepted version. The prospect always sees the current version; the rep and BD reviewer have a complete audit trail of every prior version.
Sellers who effectively partner with AI tools are 3.7× more likely to meet quota (Gartner, 2024), and that partnership works because humans own the decisions that matter most.
The live proposal serves a mix of static Figma-derived frames and dynamically rendered HTML pages. The static frames cover content that stays consistent across deals: intro, proof points, previous clients, service explainers, team bios, and the thank-you close. The four dynamic pages are generated per deal from Claude’s output and the rep’s confirmed fields.
The Gap presents the prospect’s current state, desired state, pain points, and goals. Every item on this page comes directly from Claude’s transcript analysis. The language mirrors what the prospect actually said on the call.
How We Get There outlines three strategic pillars derived from the selected services and the call transcript. This page adapts based on which services the rep confirmed in Slack.
Budget Breakdown adapts its layout to the number of services confirmed. The pipeline includes four layout variants, each optimized for a different service count. The layout selection is automatic based on the confirmed service data.
Investment presents the human-entered price fields exactly as the rep confirmed them through Slack. No rounding, no AI interpretation. The numbers the rep confirmed are the numbers that appear.
The Espressio Proposals dashboard shows open rate, time-of-open, and version history for every live proposal. When a prospect opens the proposal, the rep gets a Slack notification. That’s the moment to follow up, and the data makes it obvious when that moment is.
Proposals that include visuals close at up to 26% higher rates. Interactive pricing tables add another 6% (Proposify, 2024). The dynamic pages in Espressio Proposals are built to hit both factors: visual design from the Figma-derived frames, and an adaptive budget layout that reads like a real pricing document rather than a generic table.
Enterprise proposal teams average 33 hours to complete a single proposal or RFP (Loopio 2026 RFP Trends & Benchmarks, n=1,533). The proposal management software market reached $3.26 billion in 2025, projected to reach $9.19 billion by 2034 at 12.20% CAGR (Fortune Business Insights, 2025). Off-the-shelf tools handle most use cases well.
The custom build makes sense only when your requirements fall outside what SaaS products handle. For Espressio, five specific requirements drove the decision:
If you send three to five standard proposals per week with consistent scope, PandaDoc or Proposify configured in an afternoon serves you better than a weeks-long engineering investment. The speed advantage for simple proposals comes from templates, not from custom pipeline engineering.
The Claude API setup guide for marketing and sales teams covers the API configuration that underpins this kind of pipeline.
If you want us to set this up for your team, let’s chat.
How long does it take to set up an AI sales proposal automation pipeline?
Building the Espressio Proposals stack from scratch - Fireflies, Railway, Supabase, Vercel, and Slack integration - took several weeks of engineering time. Off-the-shelf tools like PandaDoc or Proposify configure in days. The custom build makes sense when you need a transcript-to-URL pipeline with versioning that no SaaS product offers. 81% of sales teams are experimenting with or have deployed AI (Salesforce State of Sales, 2024).
What AI model works best for extracting proposal intelligence from sales calls?
Claude Sonnet 4 handles sales call transcript analysis well: it produces structured JSON output, follows guardrail instructions reliably, and handles full-transcript context windows. The Espressio Proposals pipeline uses Claude Sonnet for three tasks: transcript analysis, proposal render data generation, and Slack revision classification. 43% of sales reps now use AI tools (HubSpot 2024 AI Trends for Sales).
Can AI proposal automation work for complex, high-value B2B deals?
Yes, when the human-in-the-loop design is preserved. Claude extracts and assembles the proposal content; the rep confirms every commercial term through Slack dropdowns before a live version generates. Price, scope, and timeline require explicit rep confirmation. That guardrail makes the pipeline safe for high-value deals. 42.5% of won proposals close within 24 hours of the prospect first opening them (Proposify, 2024).
How does AI proposal automation prevent pricing errors from reaching clients?
The Espressio Proposals pipeline restricts all commercial commitments to approved Slack dropdowns that only the rep controls. Claude is explicitly prohibited from setting price, scope, or start date. All commercial fields flow through Slack before any version generates. The average enterprise proposal takes 33 hours to complete manually (Loopio, 2026, n=1,533); the human confirmation step adds minutes while eliminating the error category that matters most.
What is the ROI of automating B2B sales proposals with AI?
Sales teams using AI are 1.3× more likely to see revenue growth, with 83% seeing growth vs. 66% without AI (Salesforce State of Sales, 2024). Espressio’s internal benchmark: post-call proposal creation dropped from 90 to 120 minutes to under 10 minutes per deal. At three to five proposals per week per rep, that reclaims four to eight hours weekly for actual selling.
The Espressio Proposals pipeline separates two jobs that manual proposal writing conflates: extraction and confirmation. AI handles extraction, pulling what the prospect actually said off the transcript and converting it to structured proposal content. The rep handles confirmation, selecting every commercial term through Slack before a version goes live. Neither works without the other.
42.5% of won proposals close within 24 hours of the prospect opening them, which makes proposal delivery speed a direct win-rate variable. The Fireflies-to-Vercel pipeline achieves that speed, with a live URL ready under 10 minutes from call end and under three minutes of rep involvement. The human confirmation guardrail is what makes it safe: Slack dropdowns enforce rep approval for every commercial term before any version generates.
For teams building toward this kind of architecture, AI-powered sales follow-up with Claude and HubSpot covers the CRM integration layer that complements proposal automation.