Skip to content

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:

StatusMeaning
DraftBeing authored, not yet sent to the prospect
SentDelivered to the signer’s email
ViewedSigner has opened the quote at least once
AcceptedSigner has signed and accepted the quote
DeclinedSigner rejected the quote
ExpiredQuote passed its valid_until date without being accepted

Status transitions are automatic: graph8 updates them as the prospect interacts with the quote.

Two extra badges show where a quote is waiting on the buyer:

BadgeMeaning
ForwardedThe buyer handed the signature to a colleague, who has not signed yet
Signed, awaiting paymentThe quote is signed and the first invoice is not paid yet

Creating a Quote

The quote builder walks you through five steps: Deal & buyer, Products & pricing, Payment & terms, Signature and Review & send. A live preview on the right updates as you type, and you can Save as draft at any step.

  1. Go to Revenue → Quotes and click New quote (or open a deal and click New Quote on its Quotes tab)
  2. Deal & buyer: pick the deal. Recent deals show first, and if only one deal is open it is picked for you. The buyer (signer), title and company details fill in from the deal
  3. Products & pricing: add line items (see below)
  4. Payment & terms: check payment terms, contract dates, payment methods and installments
  5. Signature: confirm who signs and who gets a copy
  6. Review & send: check exactly what the buyer receives, then Save & send or Save & generate link

graph8 fills in as much as it can for you:

FieldDefault
SignerThe deal’s contact
TitleGenerated from the company and month
Valid untilYour quote settings, else 30 days
Payment termsThe template, else your settings, else Net 30
Contract term12 months as soon as any line is recurring
Billing startThe contract start date
Billing contactThe signer (see below)

The Needs your input box at the top only lists what is still missing for this quote.

Separate billing contact

By default the person who signs is also the person who gets the invoice, so you do not need to fill in any billing contact or billing email.

If invoices should go to someone else (for example finance or accounts payable), tick Separate billing contact in the Deal & buyer step. The billing contact picker and billing email appear so you can choose that person.

  • The box starts ticked when the deal already has a contact with the billing role, or when you edit a quote whose billing contact is not the signer
  • Unticking it never deletes what you typed. It just goes back to using the signer
  • Company legal name and address stay visible when your quote settings require them

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.

FieldDescription
ProductPulled from your Stripe catalog (or custom name for one-offs)
DescriptionOptional free-text description shown to the signer
QuantityNumber of units
Unit amountPrice per unit (in cents internally; entered as currency)
Discount %Per-line discount applied before tax
Billing frequencyMonthly, annual, one-time, or custom
Line totalAuto-calculated: quantity × unit_amount × (1 - discount_pct)

The quote preview and PDF show your configured company logo and, when available, the linked customer company’s stored logo under Prepared for. If no customer logo is stored, the company name still appears.

Choose when billing starts

For each recurring service, use Billing starts to choose At contract start, After 1 month, After 2 months, or a later month. To choose a calendar date instead, select On a specific date and fill in the date picker. The contract start date should match the agreed kickoff date.

For example, After 2 months on a January 31 contract starts March 31. A specific March 15 start renews on that service’s own anniversary. Dates must fall within the contract. One-time charges remain at contract start.

Save and reopen the draft to review each choice. Preview and PDF show a payment schedule, including intervening renewals through the last service start. Usage or performance fees remain additional where specified. The collection-mode notice identifies Stripe versus manual billing; saving a draft starts neither. Stripe-backed quotes cannot be issued with dates outside Stripe’s supported 730-day scheduling window.

Adding a Line Item from Stripe

  1. Click Add Line Item → From Stripe
  2. Search by product name
  3. Pick a price tier (Stripe products can have multiple price points)
  4. Set quantity and any per-line discount
  5. 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:

  1. Click Add Line Item → Custom
  2. Enter product name, description, unit amount, and quantity
  3. 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:

TotalCalculation
SubtotalSum of all line totals
DiscountCumulative discounts applied
TaxTax amount (per your org tax settings)
TotalSubtotal − Discount + Tax

All amounts respect the quote’s selected currency.

Payment Installments

Split the quote total into several payments in Payment & terms → Payment installments.

  1. Click Add installment
  2. Enter a percentage or an amount, plus a milestone label (for example “On signature”)
  3. Watch the balance line: it shows Remaining $X or Over by $X
  4. Click Auto-balance to put the remainder on the last row so the schedule adds up exactly

The schedule must add up to the quote total to the cent before you can send.

Discount Approval

Quotes with a discount above your limit (default 15%) or a margin below your minimum (default 5%) need approval before the buyer receives them.

  • The Review & send step tells you why before you send, for example “Discount 22% is above your 15% limit. This goes to Owner/Admin for approval.”
  • The send button reads Request approval. The buyer gets nothing until the quote is approved
  • The quote shows “Waiting on an approver for 2 hours” while it waits
  • Once approved, click Send now on the quote to send it in one step
  • If it is rejected, the reason shows on the quote. Edit it and click Resubmit for approval

Changing price, quantity or discount after approval clears the approval, so the new numbers are checked again.

Contract Terms

Beyond line items, quotes capture contract terms that govern the sale.

Standard Terms

FieldPurpose
Payment termsWhen payment is due (e.g., “Net 30”, “Upon receipt”)
Contract monthsLength of the contract in months
Contract start dateWhen the contract begins
Contract end dateWhen the contract ends
Accepted payment methodsWhich payment methods the signer can use
Marketing rightsWhether 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

FieldWhat It Holds
Terms contentFull contract terms, typically a long-form legal block
Privacy contentPrivacy and data-handling clauses
NotesInternal notes (not visible to the signer)
Public notesNotes 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.

  1. Go to Settings → Quotes → Templates
  2. Click New Template
  3. Build it like a regular quote: terms, line items, payment terms
  4. 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 TypeCommon Use
NDAMutual non-disclosure
MSAMaster service agreement
OtherAny custom attachment

Attached documents are included in the signature envelope alongside the quote.

Sending a Quote

  1. Open a draft quote
  2. Check the Email tab: it shows the exact email the buyer will get, marked Preview, not sent yet
  3. Click Send
  4. Confirm the signer’s email
  5. Optionally customize the email body
  6. 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.

Forwarding to another signer

If the person who received the quote is not the one who should sign, they can hand it over without contacting you.

  1. On the signing page, the buyer clicks Someone else needs to sign
  2. They enter the colleague’s email, and optionally a name and a note
  3. If the email is not on the company’s domain, an amber warning asks them to confirm. It never blocks the forward
  4. A confirm step reminds them “You will no longer be able to sign this quote”
  5. The colleague gets their own signing link by email

What happens next:

  • The colleague replaces the original signer. The original link stops working and shows “This quote was forwarded to …” with your contact details
  • The colleague is added as a contact on the company and the deal
  • You get a notification, and the quote timeline shows Forwarded for signature, with an External domain badge when it went outside the company domain
  • The quote shows the Forwarded badge until the colleague signs
  • No approval from you is needed

Paying after signing

When the quote is signed, the buyer sees:

  • Pay $X due now: opens the invoice so they can pay straight away. With installments, this is the first payment
  • Send to finance/AP: sends the payment step to someone else (see below)
  • Download signed copy: the signed PDF

If your billing system does not take online payment, the page says the invoice will be emailed instead. Payment states are shown clearly: pending, didn’t go through (with Try again), and paid.

Sending payment to finance

  1. After signing, the buyer clicks Send to finance/AP and enters the finance contact’s email
  2. The finance contact gets a pay-only link: they see the amount, the quote and Pay, but no signing controls or signer details
  3. They become the quote’s billing contact and a billing contact on the deal
  4. The quote timeline shows Payment sent to finance

E-Signature

Accepted quotes flow through the e-signature workflow:

Field CapturedSource
Signer nameTyped by the signer at signing
Signer IPAuto-captured from the signing session
User agentAuto-captured from the signing session
Accepted atTimestamp 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:

ActionLogged As
Quote createdActor: rep
Quote sentActor: rep, with email destination
Quote viewedActor: signer (anonymous), with IP + user agent
Quote acceptedActor: signer, with signature metadata
Quote declinedActor: signer, with optional reason
Quote expiredActor: system, automatic on valid_until
Quote duplicatedActor: rep, with source quote ID
Forwarded for signatureActor: signer, with the new signer’s email and an external-domain flag
Payment sent to financeActor: signer, with the finance contact’s email

The quote detail Overview also has a Signers and payers panel: the current signer, who forwarded to whom and when, and anyone who was sent the payment step.

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):

  1. Open the source quote
  2. Click Duplicate
  3. graph8 creates a draft copy with all line items, terms, and metadata
  4. Update any differences (signer, dates, line items)
  5. Save and send

Stripe Integration

When connected to Stripe (see Settings → Integrations):

  • Quote line items can pull directly from your Stripe product catalog
  • Signing a quote sets up billing automatically: the customer, any subscriptions and the first invoice
  • Subscription line items create Stripe subscriptions on signing

Choose the billing system for quotes in Settings → Quotes → Settings.

Quote Settings

Org-wide quote behavior is configured at Settings → Quotes:

SettingWhat It Controls
Default currencyCurrency used for new quotes
Default expirationDays until a quote auto-expires (e.g., 30)
Default payment termsNet 30, Net 60, etc.
Default tax rateApplied to quotes unless overridden
Billing providerWhich billing system sets up the customer and invoice when a quote is signed
Approval limitsMaximum discount and minimum margin before a quote needs approval
Email brandingFrom name, From email, signature block

Permissions

RoleCapabilities
AdminCreate, edit, send, delete any quote; manage templates and settings
MemberCreate, edit, send, delete their own quotes
ViewerRead-only access to quotes

Limits & gotchas

  • Forwarding is limited to a few forwards per quote per day, to stop abuse of the email
  • Only the signer can forward the signature. A finance contact can pay but cannot forward the payment link again
  • A forwarded link cannot be used again. If the wrong address was typed, resend the quote from the quote page
  • Editing a quote that was already sent takes it back to draft and sends a new link. Older links stop working
  • Payment after signing needs a billing integration that supports online payment. Otherwise the buyer is told the invoice will be emailed

Troubleshooting

IssueFix
Signer reports the quote link doesn’t workCheck that the quote isn’t expired or accepted; resend if needed
Stripe products don’t show in line itemsVerify Stripe is connected at Settings → Integrations and the product list has refreshed
Tax amount looks wrongConfirm the org’s tax rate is set correctly in Settings → Quotes
Quote stuck in “Sent”, signer says they got the emailThe signer may not have clicked the link yet; status flips to “Viewed” only on click
Can’t delete a quoteAccepted quotes cannot be deleted (compliance / audit). Delete only Draft or Expired quotes
Signature didn’t capture nameOlder browsers may not support the signature pad; ask the signer to re-open in Chrome/Safari
I can’t see Separate billing contactIt is in the Deal & buyer step, in the Billing contact card under Title. Tick it to choose the billing person; the picker lists contacts once a deal is picked
The buyer says their link says “forwarded”They or a colleague handed the signature to someone else. The quote timeline shows who. Resend the quote if it went to the wrong person
Send says “Request approval”The discount or margin is outside your policy. The reason is shown next to the button. An admin or the approver role must approve it
I can’t send because of installmentsThe schedule must add up to the total. Click Auto-balance
The buyer doesn’t see Pay now after signingOnline payment needs a connected billing system with card payments allowed. Otherwise the invoice is emailed
The forward email never arrivedThe buyer is told on screen if delivery failed, and you get a notification. Resend from the quote page
Preview shows an errorClick Try again. If it keeps failing, refresh the page