Skip to content

Requests for Quotation (RFQs)

An RFQ is a structured package of requirements sent to one or more vendors so they can propose prices and terms. Waqti supports the full internal lifecycle: drafting, issuing, collecting quotes (including manual upload), evaluation with scoring, award, cancellation, and PDF output.

Prerequisites

RFQ creation checks procurement settings: if RFQ is not enabled for your tenant, create throws an error. Minimum vendor counts for issue also respect tenant defaults (for example rfq_min_vendors) unless overridden per RFQ.

Creating an RFQ

Use RFQs → Create. Required and optional fields include:

FieldNotes
TitleRequired.
DescriptionOptional (up to 2000 characters).
Department / Project / Spend category / Request typeOptional classifiers.
Due dateRequired; must be today or later.
CurrencyRequired (ISO-style code, max 3 characters in validation).
Estimated budgetOptional.
Minimum quotes requiredOptional integer 1–10; affects whether you can issue the RFQ.
Terms and conditionsOptional long text.
Delivery requirementsOptional (up to 1000 characters).
Payment termsOptional (up to 500 characters).
ItemsAt least one item: item name, quantity; optional description, specifications, unit, estimated unit price.
Vendor IDsOptional on create; vendors can also be added later on the RFQ.

Saving creates a draft RFQ and redirects to its detail page.

Managing vendors

  • Add vendor — Allowed while status is draft, issued, or collecting. Duplicate vendors are rejected.
  • Remove vendor — Only in draft; once issued, removals are blocked from this action.

Before issue, the count of invited vendors must be at least min_quotes_required.

Issuing the RFQ

Issue transitions a draft RFQ to issued, stamps issue date, and marks invited vendors as sent via manual on the issue path. Alternatively, emailing vendors (below) can move a draft to issued when the first email succeeds.

Sending to vendors (email)

You can send the RFQ to one vendor or to many:

  • Each send generates a vendor-specific PDF, stores it, and attaches it to an RfqInvitation email.
  • The vendor must have contact_email; otherwise the send fails for that vendor.
  • If the vendor was not on the RFQ, they are added automatically before sending.
  • Custom message (optional, up to 2000 characters) is included in the email context.

Bulk send reports partial success if some vendors lack email or mail fails; a successful batch updates issued when the RFQ was still draft and at least one send succeeded.

PDF generation and download

Download PDF streams a generated document (optionally scoped to a vendor_id query parameter for a vendor-tailored pack). Files are named like RFQ-{number}[-{vendor code}].pdf. Access is tenant-scoped.

Collecting quotes

While status is issued or collecting, authorized users can upload a quote for an invited vendor. The payload includes:

  • Vendor, quote number, quote date, optional valid-until
  • Subtotal, optional tax and discount, total, currency
  • Optional delivery, lead time, payment, and warranty terms
  • Per-line mapping to RFQ items: rfq_item_id, quoted unit price, quoted quantity, optional lead time, can_supply, notes

If the RFQ was issued and this is the first quote, status may move to collecting automatically. A second quote from the same vendor is rejected (edit the existing quote in product flows that support it).

Starting evaluation

Start evaluation is available in collecting when hasEnoughQuotes() passes. Evaluation unlocks the comparison matrix and per-quote scoring.

Scoring quotes

For each VendorQuote in evaluating status, evaluators submit:

  • Technical score — 0–100
  • Price score — 0–100
  • Optional notes (up to 1000 characters)

The service applies default weights (60% technical, 40% price) unless your deployment changes them.

While evaluating, the RFQ detail can show a recommended quote from getRecommendedVendor to support decision-making.

Awarding

In evaluating, award requires a quote_id belonging to the RFQ and optional justification. The winning quote is selected; other quotes are marked rejected with a standard reason. RFQ status becomes awarded and decision metadata is stored.

Converted to Purchase Order

The RFQ model supports a purchase_order_id link. When procurement creates a PO from an awarded RFQ, the RFQ may move to converted_to_po in your workflow (check the PO creation path in your tenant). Cancel is not allowed once converted_to_po.

Cancellation

Cancel accepts an optional reason (up to 1000 characters). Not permitted for awarded, converted_to_po, or already cancelled RFQs.

Deleting a draft

Only draft RFQs can be deleted; items and vendor links are removed with the RFQ.

Listing and filters

The index supports search (RFQ number or title), status, department, overdue (issued/collecting with due date in the past), and sorting. Summary tiles show totals, drafts, collecting (issued + collecting), evaluating, and awarded counts.

Status reference

StatusTypical meaning
draftEditable; not yet sent.
issuedFormal issue date set; vendors notified or marked sent.
collectingQuotes are being gathered.
evaluatingScoring and comparison active.
awardedWinning vendor chosen.
converted_to_poLinked to a purchase order.
cancelledStopped without award.

Built by M & L Technologies