Quotes
Quotes lets your team build, send, and track sales quotes without leaving graph8. Pull line items from your Stripe catalog, attach contract terms, send for signature, and watch the quote progress from draft to accepted in real time.
Quote Lifecycle
Every quote moves through a sequence of statuses:
| Status | Meaning |
|---|---|
| Draft | Being authored — not yet sent to the prospect |
| Sent | Delivered to the signer’s email |
| Viewed | Signer has opened the quote at least once |
| Accepted | Signer has signed and accepted the quote |
| Declined | Signer rejected the quote |
| Expired | Quote passed its valid_until date without being accepted |
Status transitions are automatic — graph8 updates them as the prospect interacts with the quote.
Creating a Quote
- Go to Revenue → Quotes
- Click New Quote
- Fill in the basic info:
- Title — internal name (visible to your team)
- Company — the buying company (links to a contact + deal)
- Signer — the contact who will receive and sign the quote
- Deal — optional; link to an active deal in your pipeline
- Owner — which rep owns this quote
- Currency — defaults to your org currency, override per quote
- Valid until — expiration date
- Add line items (see below)
- Add terms, payment terms, and any custom notes
- Click Save to keep it as a draft, or Send to deliver it
Line Items
Line items are the products and services on the quote. Each line pulls from your Stripe catalog or can be a custom one-off.
| Field | Description |
|---|---|
| Product | Pulled from your Stripe catalog (or custom name for one-offs) |
| Description | Optional free-text description shown to the signer |
| Quantity | Number of units |
| Unit amount | Price per unit (in cents internally; entered as currency) |
| Discount % | Per-line discount applied before tax |
| Billing frequency | Monthly, annual, one-time, or custom |
| Line total | Auto-calculated: quantity × unit_amount × (1 - discount_pct) |
Adding a Line Item from Stripe
- Click Add Line Item → From Stripe
- Search by product name
- Pick a price tier (Stripe products can have multiple price points)
- Set quantity and any per-line discount
- Click Add
The Stripe product name, price, and billing frequency are pre-filled. You can override description and discount per line.
Custom Line Items
For services, one-off implementations, or anything not in Stripe:
- Click Add Line Item → Custom
- Enter product name, description, unit amount, and quantity
- Set billing frequency manually
Custom line items don’t sync back to Stripe — they’re local to the quote.
Quote Totals
The quote totals row shows:
| Total | Calculation |
|---|---|
| Subtotal | Sum of all line totals |
| Discount | Cumulative discounts applied |
| Tax | Tax amount (per your org tax settings) |
| Total | Subtotal − Discount + Tax |
All amounts respect the quote’s selected currency.
Contract Terms
Beyond line items, quotes capture contract terms that govern the sale.
Standard Terms
| Field | Purpose |
|---|---|
| Payment terms | When payment is due (e.g., “Net 30”, “Upon receipt”) |
| Contract months | Length of the contract in months |
| Contract start date | When the contract begins |
| Contract end date | When the contract ends |
| Accepted payment methods | Which payment methods the signer can use |
| Marketing rights | Whether you can use the customer in case studies, logos, press |
Terms Templates
Save reusable term sets in Settings → Quotes → Terms so you don’t re-type them on every quote. Pick a template when creating a quote and the standard fields auto-populate.
Custom Terms and Privacy Content
| Field | What It Holds |
|---|---|
| Terms content | Full contract terms — typically a long-form legal block |
| Privacy content | Privacy and data-handling clauses |
| Notes | Internal notes (not visible to the signer) |
| Public notes | Notes that appear on the signer-facing quote page |
Use a rich text or HTML format — the quote renderer escapes appropriately for safe display.
Quote Templates
Reusable quote skeletons let you spin up consistent quotes quickly.
- Go to Settings → Quotes → Templates
- Click New Template
- Build it like a regular quote — terms, line items, payment terms
- Save the template
When creating a quote, pick a template and all fields pre-populate. You can then customize per-prospect.
Template Documents
Templates can include attached documents (e.g., NDAs, MSAs):
| Doc Type | Common Use |
|---|---|
| NDA | Mutual non-disclosure |
| MSA | Master service agreement |
| Other | Any custom attachment |
Attached documents are included in the signature envelope alongside the quote.
Sending a Quote
- Open a draft quote
- Click Send
- Confirm the signer’s email
- Optionally customize the email body
- Click Send Now
graph8 generates a public token and viewer token for the quote, then emails the signer a link. The status flips to Sent. When the signer opens the link, status flips to Viewed. When they sign, status flips to Accepted.
What the Signer Sees
The signer-facing page shows:
- Your company name, logo, and brand colors
- All line items with descriptions and totals
- Contract terms (the public ones — internal notes are hidden)
- Accepted payment methods
- A signature pad for accepting
Signers do not need a graph8 account — the public link is sufficient.
E-Signature
Accepted quotes flow through the e-signature workflow:
| Field Captured | Source |
|---|---|
| Signer name | Typed by the signer at signing |
| Signer IP | Auto-captured from the signing session |
| User agent | Auto-captured from the signing session |
| Accepted at | Timestamp of signature |
graph8 stores an envelope record with these audit fields. If your org uses a third-party e-sign provider (DocuSign, etc.), the envelope ID syncs back so you have a single source of truth.
PDF Generation
After acceptance, graph8 renders the signed quote as a PDF and stores it in S3. The pdf_s3_key is recorded on the quote record. Reps can download the signed PDF from the quote detail page.
Tracking Quote Activity
Every interaction with the quote logs to its activity timeline:
| Action | Logged As |
|---|---|
| Quote created | Actor: rep |
| Quote sent | Actor: rep, with email destination |
| Quote viewed | Actor: signer (anonymous), with IP + user agent |
| Quote accepted | Actor: signer, with signature metadata |
| Quote declined | Actor: signer, with optional reason |
| Quote expired | Actor: system, automatic on valid_until |
| Quote duplicated | Actor: rep, with source quote ID |
The timeline is visible on every quote detail page.
Duplicating a Quote
To create a similar quote (e.g., a renewal or a tweaked version):
- Open the source quote
- Click Duplicate
- graph8 creates a draft copy with all line items, terms, and metadata
- Update any differences (signer, dates, line items)
- Save and send
Stripe Integration
When connected to Stripe (see Settings → Integrations):
- Quote line items can pull directly from your Stripe product catalog
- Accepted quotes can optionally create a Stripe Quote object (
stripe_quote_idis recorded on the graph8 quote) - Subscription line items create Stripe subscriptions on signing
Configure auto-Stripe-quote behavior in Settings → Quotes → Settings.
Quote Settings
Org-wide quote behavior is configured at Settings → Quotes:
| Setting | What It Controls |
|---|---|
| Default currency | Currency used for new quotes |
| Default expiration | Days until a quote auto-expires (e.g., 30) |
| Default payment terms | Net 30, Net 60, etc. |
| Default tax rate | Applied to quotes unless overridden |
| Auto-create Stripe Quote | Whether accepting a quote creates a Stripe Quote |
| Email branding | From name, From email, signature block |
Permissions
| Role | Capabilities |
|---|---|
| Admin | Create, edit, send, delete any quote; manage templates and settings |
| Member | Create, edit, send, delete their own quotes |
| Viewer | Read-only access to quotes |
Troubleshooting
| Issue | Fix |
|---|---|
| Signer reports the quote link doesn’t work | Check that the quote isn’t expired or accepted; resend if needed |
| Stripe products don’t show in line items | Verify Stripe is connected at Settings → Integrations and the product list has refreshed |
| Tax amount looks wrong | Confirm the org’s tax rate is set correctly in Settings → Quotes |
| Quote stuck in “Sent” — signer says they got the email | The signer may not have clicked the link yet; status flips to “Viewed” only on click |
| Can’t delete a quote | Accepted quotes cannot be deleted (compliance / audit). Delete only Draft or Expired quotes |
| Signature didn’t capture name | Older browsers may not support the signature pad; ask the signer to re-open in Chrome/Safari |
Related
- Products & Services → — Stripe catalog feeding quote line items
- Prospects → — Active deals where quotes attach
- Customers → — Where accepted-quote accounts land
- Pipeline Settings → — Stage probabilities used for forecasting