CrawlSpace CRM
Quotes · Acceptance · Invoice Conversion

Send a Quote. Watch Them Read It.
Accept It. Invoice It. One Tool.

Itemized quotes with public accept links, e-signature acceptance, full open tracking, and one-click conversion to a real Stripe or Square invoice. The customer never logs in. The audit trail builds itself. The deal pipeline updates automatically. No PandaDoc, no Proposify, no per-quote fees.

Start Sending Quotes Free See Pricing

Included with every plan · Unlimited quotes · No per-quote fees

Quotes Are the Step Where Deals Quietly Die

You send a PDF quote, you wait. Did they open it? Who knows. Did they share it with their boss? No idea. They go silent for a week and you're afraid to follow up because you don't know if they hated the price or just got busy. When they finally accept (verbally, on a call), you re-type everything into your invoicing tool. Half the line items don't match. Welcome to "the quote-to-cash gap."

The PDF + Email Approach

Free, but you're flying blind. You email a PDF. They open it (maybe). They forward it (maybe). You have no signal until they reply (or don't). Following up feels like guessing.

The PandaDoc / Proposify Approach

$35-$65/seat/month + per-document fees on lower tiers. Real proposal software, but the customer signs in their system, the quote lives there, and you re-enter everything in your CRM + invoicing tool when it closes.

The "Quote = Invoice" Approach

Send the invoice as the quote. Faster, but it locks you into the price the moment you send. No "let me revise" path. No accept/decline workflow. No way to track whether they're considering it.

What "Quoting" Means in CrawlSpace

A quote is an itemized offer tied to a specific customer. You build it from your inventory (or type free-form), send it via a public accept link, watch every open in real time, and convert it to a real invoice with one click when the customer says yes. The whole lifecycle — draft to sent to viewed to accepted to converted — lives in one place.

Build From Your Inventory

Click + Add Product on a customer detail and pick from your inventory. Quantity, unit price, and discount are inline-editable per line. Recurring items show "(per cycle)" with their billing interval. Setup fees roll into the total automatically. One-time + recurring + setup all itemized cleanly for the customer.

  • Pulls from your Products & Pricing catalog
  • Inline edit qty / unit price / discount per line
  • Free-form line items if you don't want to maintain a catalog
  • Auto-summed totals (one-time + recurring + setup fees + grand)

Public Accept Links

Click Send Quote and the customer gets a unique 32-char URL. They land on a branded page (your org name + the line items + totals + your terms). They type their name, check the agree box, hit Sign — quote flips to Accepted with the typed name + IP + timestamp recorded for the audit trail. No login, no software install.

  • Random URL-safe token per quote (revocable any time)
  • Branded customer-facing page
  • Typed-name e-signature with IP + timestamp capture
  • Decline path with optional reason

Full Open Tracking

Every render of the public link is logged with IP + user-agent. Did the customer open it once and bounce, or open it eight times before deciding? Did they forward it to their lawyer? You can see it. The editor surfaces "Opened N times, last on X" plus a per-open log so the next follow-up is informed, not guessing.

  • View count + last-viewed timestamp on every quote
  • Per-open log with IP + user-agent
  • Status auto-transitions: Sent → Viewed on first open
  • Forwards detectable (different IP = different reader)

One-Click Invoice Conversion

Once a customer accepts, a Convert to Invoice button appears in the editor. One click and the line items become a real Stripe or Square invoice using your existing connection — the customer gets an invoice email automatically, payment status flows back. The quote flips to a terminal Converted state with a link to the new invoice.

  • Re-uses your already-connected Stripe / Square
  • Line items copy verbatim — no retyping
  • Terminal "Converted" status with invoice link
  • Quote → Invoice → Payment chain logged on the contact

Owner Gating + Per-User Filters

Each quote has an owner (defaults to whoever created it). Members can be the owner of record on a specific quote and only owners + admins can edit, send, or convert. Filter the standalone Quotes tab by owner to see "my quotes" vs. "all team quotes" — your daily follow-up list, on tap.

  • Per-quote ownership (auto-assigned on create)
  • Read-only mode for non-owners (with a clear banner)
  • Owner filter dropdown on the Quotes tab list
  • Owners + admins bypass for cross-team coverage

Inventory Integration

When line items are added to a quote, products with deduct_on='quoted' immediately reserve stock. Products with deduct_on='sold' wait for Closed Won. Products with deduct_on='invoice_paid' wait for the invoice to actually settle. Configurable per-product so a high-value scarce item can reserve immediately while consumables wait until cash arrives.

  • Per-product deduction trigger (quoted / sold / invoice_paid / manual)
  • Stock decrements idempotently — no double-debit on retries
  • Low-stock notifications fire when crossing the threshold
  • Reopening a closed deal restores stock automatically

Generate Contracts From Quotes

Accepted quotes can also Generate a Contract from the same editor — opens the contract editor pre-filled with the customer + a starter SOW body referencing the quote. The contract carries a quote_id back so both objects show the linkage in their respective views. Sign, then invoice. Or invoice, then sign. Same chain.

  • One-click contract generation from accepted quotes
  • Quote → Contract → Invoice chain visible everywhere
  • Variables in the contract pull from the linked quote ({{quote.total}}, {{quote.number}})
  • Multi-recipient sequential signing for SOWs that need counter-signatures

Tied Into the Rest of the CRM

Every quote shows up on the customer's Money Map alongside their deals, contracts, invoices, and jobs. The Quotes tab is your team-wide inbox of every quote in flight. The contact's detail card shows their per-quote status. No bouncing between tabs to piece together where a deal is.

  • Money Map shows quotes in the financial timeline
  • Contacts tab Quote section per customer
  • Standalone Quotes tab for team-wide visibility
  • Deal modal links to the underlying quote when one exists

From Draft to Paid in Five Steps

No envelopes to count, no per-quote fees, no separate proposal tool to swivel-chair between. Build from inventory, send, watch, accept, convert. The whole loop closes inside one tool.

1. Build the Quote

Open a customer (or create a new one), scroll to the Quote Items section, click + Add Product. Pick from your inventory or type a free-form line. Edit qty / unit price / discount per line. Totals update live.

2. Set Defaults (One-Time)

From the Quotes tab settings, configure your default expiry days, terms text, and customer-view branding. New quotes inherit these on first send. Configure once; every quote uses the same.

3. Send the Public Link

Click Send Quote. We mint a 32-char URL token, mark the quote Sent, and pop your Gmail/Outlook compose modal with the link in the body. Edit the message, send through your own email — the customer sees it from your real address.

4. Watch the Tracking

Once sent, the editor's Tracking panel shows every open in real time — view count, last-viewed timestamp, IP-by-IP audit log. "Opened 4 times in 2 days, last from a different IP" tells you the decision-maker is reviewing.

5. Customer Accepts

They click the link, type their full legal name, check the agree box, hit Sign. The quote flips to Accepted with the typed name + IP + timestamp locked into the record. You get a notification.

6. Convert to Invoice

Click Convert to Invoice in the editor. Line items become a real Stripe / Square invoice via your existing connection. Customer gets an invoice email with payment link. Quote terminal-state flips to Converted with a link to the invoice. Payment events flow back automatically.

How It Stacks Up

Most CRMs require a separate proposal tool. Most proposal tools require you to upload customer data again and re-export the accepted quote into your invoicing system. We do all of it in one place.

Capability CrawlSpace PandaDoc Proposify
Itemized quote builder ✅ Inventory-pulled ✅ Yes ✅ Yes
Public accept link with e-signature ✅ Built in ✅ Yes ✅ Yes
Per-quote fees ❌ None — unlimited ⚠️ Document caps on lower tiers ⚠️ Tier-based limits
Open / view tracking with IP audit ✅ Per-open log ✅ Yes ✅ Yes
One-click Stripe/Square invoice conversion ✅ Native ⚠️ Stripe only, paid tier ⚠️ Zapier required
Customer data pulled live (no re-entry) ✅ Native — same record ⚠️ CRM connector (paid) ⚠️ CRM connector (paid)
Inventory deduction on accept / paid ✅ Per-product config ❌ Not available ❌ Not available
Quote → Contract handoff ✅ One-click "Generate Contract" ⚠️ Same product but separate workflow ❌ Separate tool needed
Per-seat pricing ❌ Flat $29.95/mo ✅ $35-$65/seat/mo ✅ $49-$99/seat/mo
Annual contract required ❌ Month to month ⚠️ Discount lock-in ⚠️ Annual default
Includes a CRM ✅ The whole thing ❌ Documents only ❌ Proposals only
Starting price $29.95/mo total $35/mo per seat $49/mo per seat

Same accept-link workflow. Tied into your CRM. Unlimited quotes for one flat price.

Why Building Quotes Into the CRM Actually Matters

A quote is the step between "interested" and "buying." Putting it in a separate tool means the customer's record can't see what you sent them, the deal pipeline can't update automatically when they accept, and the invoicing system has to re-learn the line items from scratch. Each handoff is a place where things slip — wrong amount, missing line, or worse, "did we already invoice them for that?" silence.

One Source of Truth

The line items on the quote are the line items on the invoice are the line items on the deal. Edit one (before send), the others see it. After send the quote locks for audit, but the data flowed cleanly through every step. No retyping, no reconciling.

The Tracking You Can Actually Trust

Every open is logged with IP. So when a customer says "I never got it" you can show them when they opened it (and from where). When they go quiet for a week, you know whether they actually read it. Your follow-ups are informed instead of guesses.

Handoffs That Don't Lose State

Accepted quote → invoice via one click. Accepted quote → contract via one click. Won deal → job on the linked customer. Each handoff inherits the line items, the customer, the audit trail. No "wait, what was that quote total again?"

Zero Per-Quote Anxiety

PandaDoc and Proposify ration documents per tier. People skip sending a quote "just to test the price" because it eats into the quota. We don't have a quota. Every customer interaction that should have a quote can have one.

Three Common Workflows

Quotes built into the CRM means the workflow doesn't end at "send for acceptance." It continues into "now collect the payment."

Service Quote → Invoice

New lead requests a quote. You build it from your inventory (one recurring service + one setup fee), send the public link, they accept the next morning. One click → Stripe invoice goes out → customer pays through the hosted checkout → deal flips to Won → lead becomes a customer. Total reps' time: about 15 minutes.

Multi-Item B2B Quote

Existing customer requests an upsell. Open their record, build the quote with five line items (mix of one-time + recurring), send the link. They open it twice over a week (you can see), forward it to their CFO (different IP, you see that too), accept on day 8. Generate a contract from the accepted quote for the legal sign-off, then convert to invoice. Done.

Quote Revisions Without Drama

Customer pushes back on the price. Quote is in Sent state. You cancel it (revokes the link), build a revised quote with the new pricing, send a fresh link. The original is preserved in their history with the cancellation reason. The new one tracks separately. No "which version are we looking at?" confusion.

Send Unlimited Quotes. Track Every Open. Accept and Invoice in One Click.

CrawlSpace CRM gives you quotes, contracts, deals, lead search, email sequences, a built-in dialer, inventory, invoicing, project management, and 27+ reports — for less than what most proposal tools charge for the quote builder alone. Same flat $29.95/month, no matter how many quotes you send.

Start Your Free Trial See All Features

$29.95/month · Cancel anytime · Works on day one · Unlimited quotes