Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.
Tender queries are the control point for clarifications. In enterprise tenders, queries need assignment, drafted responses, approvals, duplicate checks, consistency checks, amendment tracking, and a closed record before award. TruBuild’s tender query workflow is built around a package-level query register, not an informal notes list.Every query carries its own status, owner, approver, due date, and audit history, so the team can always answer the two questions that matter in a tender audit: what was asked, and what was answered.
Who this is for
Role
Main responsibility in this workflow
Procurement coordinator
Imports queries and maintains the register
Package lead
Assigns owners, monitors due dates, and controls outbound responses
Technical responder
Drafts or reviews technical answers
Commercial responder
Drafts or reviews commercial answers
Designated approver
Approves responses before they are issued
Owner reviewer
Reviews open material queries before award
Anyone with package access can open the query register and read queries. Creating queries, drafting, and editing responses require edit access on the package, and only the query’s designated approver can approve a response for issue.
What you need
Input
Format
Contribution
Bidder queries
Excel (.xlsx), CSV, PDF, Word (.docx, .doc), or manual entry
The query register itself
RFP / tender pack
Uploaded package documents
Source context for drafting and consistency checks
Prior responses
Built up as you answer queries
Duplicate detection, consistency checks, and knowledge reuse
A package and one query source is enough to start. The richer the package context, the sharper the drafting and consistency checks.
What you get
A package query register with search, filters, and bulk actions
Import from Excel, CSV, PDF, and Word with duplicate detection
AI draft responses with an RFP coverage check before drafting
Consistency checks scoring each response against the RFP and prior answers
A controlled status flow from Pending to Closed, with a designated approver step
Amendment flagging and one-click tender circular generation (Word)
Response documents per query and a multi-sheet Excel report
A full audit history and comment thread on every query
Before TruBuild
1
Queries arrive scattered
Bidders send questions by email, through the tender portal, and in pre-bid meeting minutes, often several versions of the same question in different words.
2
Someone compiles the register
A coordinator copies everything into a master spreadsheet and deduplicates by hand. 1-2 days per batch.
3
Answers are drafted from memory
Whoever is available drafts a response, often without re-reading the relevant RFP section or checking what was already told to another bidder.
4
Approval happens in email chains
Draft answers bounce between the technical lead, the QS, and the client until someone declares them final. There is no record of who signed off.
5
Answers go out bidder by bidder
Responses are emailed individually. Answers that change the tender basis are supposed to become a circular to all bidders, but often never do.
Pain points:
Queries sit unanswered in inboxes with no due-date tracking
Contradictory answers go to different bidders (a fairness and audit problem)
No single source of truth for “what was asked, what was answered, who approved it”
Amendments implied by answers never make it into a formal circular
With TruBuild
1
Import the query register
Bring in bidder questions from Excel, CSV, PDF, or Word, or add them manually. TruBuild parses the file, previews the rows, and flags duplicates.
2
Assign and categorize
Route each query to its owner with a category, priority, and due date.
3
Draft with context
Use RFP context, prior response history, and AI drafting to prepare a controlled response, then run a consistency check.
4
Approve before issue
Move responses through the designated approver before marking them sent.
5
Issue circulars and close
Flag answers that change the tender basis as amendments, generate the tender circular, and close each query with a reason.
Step-by-step inside the app
1. Open the package query register
From the package, open the tender queries area. The register is package-scoped, so queries stay tied to the contractor list, package documents, and award record. The dashboard at the top shows Total Queries, Pending, Approved, Sent, Closed, Overdue, and At Risk counts. Below the cards you get volume by category and status, an expandable workload-by-assignee breakdown, a knowledge base match rate, and average and maximum response times in hours.
At Risk counts queries due within 2 days. Check it daily during the clarification window; it is your early warning before queries tip into Overdue.
2. Import or create queries
1
Upload the source files
Upload Excel, CSV, PDF, or Word files containing bidder questions. You can upload batches of files at once.
2
Review the parsed rows
TruBuild detects the format and extracts the queries. For spreadsheets, it auto-detects column headers and maps them to query text, tenderer name, category, priority, and due date. Confirm or adjust the mappings, and edit any row before confirming the import.
3
Resolve duplicates
The import flags potential duplicate queries and shows a duplicates-found count. Merge them or keep them separate. Duplicates are common when several bidders ask the same thing in different words.
You can also add a single query manually, for example one received by email or through a tender portal.
3. Categorize and assign
Each query carries:
Tenderer name: the bidder asking the question
Query number: sequential, auto-assigned or from your import
Category: Technical, Commercial, Contractual, or General
Priority: Low, Medium, or High
Assigned to: the responder who owns the answer
Designated approver: who signs off before issue
Due date: the response deadline from your tender timetable
RFP section, drawing, and circular references: optional, but they make audit review far easier
The list view shows a deadline status per query (Overdue, Due Soon, or On Track) alongside the category, priority, and status badges. Filter by status, category, priority, or assignee, or search the query text. Multi-select queries to change status or export in bulk.
4. Draft and check the response
1
Generate or write a draft
Write the response yourself, or click Generate response for an AI draft. Before drafting, TruBuild shows a pre-draft check covering RFP coverage, matching prior responses, and consistency notes, so the responder starts from the right basis. Edit the draft freely; the AI text is a starting point, not the answer.
2
Check RFP coverage
The RFP coverage result shows whether the topic is covered in the tender documents (found, partial, or not found), including the matching section, source document, and excerpt when found. If the RFP does not cover the topic, the answer may need to become an amendment rather than a simple clarification.
3
Check consistency
Click Check consistency to validate the draft against the RFP and prior answers. You get a 0-100 score labelled Good (80 and above), Needs Review (50-80), or Issues Found (below 50), with a list of specific gaps or contradictions. If a prior response to a similar query exists, TruBuild flags it with a preview so you do not contradict an answer already issued.
Contradicting an earlier answer to another bidder is one of the fastest ways to compromise a tender’s fairness record. Treat a Needs Review or Issues Found score as a stop signal, not a formality.
5. Approve, send, and close
1
Submit for approval
Click Submit for approval. The query moves to Pending Approval and the designated approver is notified.
2
Approve
The approver confirms the response is technically, commercially, and contractually safe to issue, then clicks Approve. The response is locked from further edits. If changes are needed, the approver can send it back to the responder instead.
3
Mark as sent
Issue the response through your tender portal, email, or circular process, then click Mark as sent. The issue timestamp is recorded. Use Download Response to generate the Word response document for a single query.
4
Close the query
Click Close query and select a reason: Resolved, Withdrawn, Duplicate, Merged, or Other. Closed queries keep their full history.
Status model
Status
Meaning
Typical next action
Pending
Imported or created, not yet picked up
Assign an owner
Assigned
A responder owns the query
Draft the response
Draft Response
A draft exists and is being worked
Check consistency, submit for approval
Pending Approval
Waiting for the designated approver
Approve or send back for changes
Approved
Signed off and ready to issue
Mark as sent, generate documents
Sent
Issued to the bidder
Close when resolved
Closed
Finalized with a close reason
View history
Amendments and tender circulars
Some answers do more than clarify: they change the tender basis. When a bidder-specific answer affects scope, pricing basis, or contract terms, procurement teams normally issue it to all tenderers as a circular or addendum to preserve fairness and equal treatment. TruBuild tracks this inside the query workflow:
1
Flag the amendment
Mark the query as Requires Amendment and add an amendment note describing what changes. Amendment status is tracked as not required, pending, or issued.
2
Generate the tender circular
Click Generate tender circular. TruBuild compiles all pending amendments into a Word document and downloads it automatically. Generation can take a minute; the app shows progress while it runs.
3
Mark amendments as issued
After you distribute the circular, click Mark amendments as issued to bulk-update the pending amendments to issued.
Reporting and exports
Export
Format
What it contains
Single query response
Word (.docx)
Query text plus the approved response, via Download Response
Tender circular
Word (.docx)
All pending amendments compiled for issue to tenderers
Query report
Excel (.xlsx)
Multi-sheet analytics workbook, via Export Report on the reports tab
The Excel report covers approved and sent responses by default. It includes a KPI summary (SLA compliance rate, average consistency score, total responses), response times by assignee, volume by category and status, weekly received trend, close-reason distribution, per-bidder intelligence (queries raised, answered, pending, average response time), RFP coverage and consistency-score distributions, and a full query data sheet with every field, reference, and timestamp.
The per-bidder sheet is useful evaluation intelligence in its own right. A bidder raising many queries about scope boundaries or BOQ descriptions is often signalling where their price carries assumptions, which is worth checking during commercial evaluation.
Audit history and comments
Every query keeps a timestamped audit trail: creation, assignment, drafts saved, AI drafts generated, consistency checks, submission, approval, sending, closure, amendment flags, and document uploads, each with the acting user. A threaded comment section on each query keeps internal discussion attached to the record instead of scattered across email.This matters at award: when a committee or auditor asks why a response was worded a certain way, the query record shows who drafted, who checked, who approved, and when it went out.
Working with technical evaluation
RFP documents uploaded to tender queries can be reused when setting up a technical evaluation in the same package. During evaluation setup, TruBuild offers to import the RFP documents already held in tender queries, so you upload the tender pack once. See Technical evaluation and Rounds and clarifications for how post-tender clarifications feed evaluation rounds.
How queries fit into construction procurement
Tender queries usually run throughout the whole procurement timetable, not only after evaluation starts.
Stage
Common query activity
Pre-bid period
Tenderers ask about drawings, specifications, BOQ descriptions, site access, contract instructions, submission requirements, and ambiguities
Instructions to tenderers, bonds, warranties, liquidated damages, insurance requirements
General
Submission format, site visit, deadline, portal process, administrative clarification
If a query spans multiple categories, assign the main owner and note the secondary reviewer in the comments.
Best practices
Import queries as soon as they arrive
Do not let questions sit in email while evaluators work from partial information. Import them early so ownership, due dates, and the Overdue and At Risk counters reflect reality.
Set the designated approver before drafting starts
An approval step invented at issue time is a bottleneck. Set the approver when you assign the query so the workflow is agreed up front.
Run the consistency check before every submission
Prior-answer conflicts are cheap to fix in draft and expensive to fix after issue. Make Check consistency part of the drafting routine, not an occasional extra.
Flag amendments the moment an answer changes the tender basis
If an answer changes scope, pricing basis, or contract terms for one bidder, all bidders need it. Flag it immediately so it lands in the next tender circular rather than being remembered later.
Close the loop before the next bid round
Do not rescore or re-price until high-priority queries are closed. Otherwise the next evaluation round is built on partial information.
Reuse prior responses carefully
Prior response history is useful, but check every reused answer against the current RFP and package context. The RFP coverage check does the first pass for you.
Impact
On a typical tender of 5 bidders and 30-60 queries:
Phase
Before TruBuild
With TruBuild
Compile queries
1-2 days
1-2 hours with import and duplicate detection
Track status
1 day of chasing
Live dashboard with overdue and at-risk counters
Draft responses
Written from memory of the RFP
Drafted with RFP context and consistency-checked
Issue amendments
Tracked in a side spreadsheet
Flagged per query, compiled into one circular
Prep for next round
1 day re-reading emails
Answers linked to their source queries with full history
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TruBuild","description":"AI-powered procurement assistant for the construction industry.","colors":{"primary":"#7c4dff","light":"#9670ff","dark":"#5521c4"},"logo":{"light":"https://mintcdn.com/trubuild/ZU83U96G2zylhJUA/logo/trubuild-light.png?fit=max\u0026auto=format\u0026n=ZU83U96G2zylhJUA\u0026q=85\u0026s=80330b4735af2bd22cd213849f2cf1c7","dark":"https://mintcdn.com/trubuild/ZU83U96G2zylhJUA/logo/trubuild-dark.png?fit=max\u0026auto=format\u0026n=ZU83U96G2zylhJUA\u0026q=85\u0026s=c43c2d7cb9a0b141913367d83b7d7555","href":"https://trubuild.io"},"favicon":"https://mintcdn.com/trubuild/ZU83U96G2zylhJUA/favicon.svg?fit=max\u0026auto=format\u0026n=ZU83U96G2zylhJUA\u0026q=85\u0026s=e3d4362a075650f1acbe8e5fd583c643","navbar":{"links":[{"href":"mailto:support@trubuild.io","label":"Support"}],"primary":{"type":"button","label":"Open app","href":"https://app.trubuild.io"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/trubuild-io"}},"fonts":{"heading":{"family":"Sora"},"body":{"family":"DM Sans"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://trubuild.io"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"trubuild","hasAudioNarration":false,"actualSubdomain":"trubuild","customDomains":["docs.trubuild.io"],"gitSource":{"type":"github","owner":"trubuild-io","repo":"trubuild-monorepo","deployBranch":"docs/initial-site","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a98beed90df3562f5e0ebb7","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"Guides","count":18},{"language":"default","tag":"Platform features","count":10},{"language":"default","tag":"Get started","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"platform/tender-queries","slug":"/platform/tender-queries","pageMetadata":{"title":"Tender queries","description":"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.","href":"/platform/tender-queries"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading,Note,Step,Steps,Table,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Tender queries are the control point for clarifications. In enterprise tenders, queries need assignment, drafted responses, approvals, duplicate checks, consistency checks, amendment tracking, and a closed record before award. TruBuild’s tender query workflow is built around a package-level query register, not an informal notes list.`}),`\n`,_jsx(_components.p,{children:`Every query carries its own status, owner, approver, due date, and audit history, so the team can always answer the two questions that matter in a tender audit: what was asked, and what was answered.`}),`\n`,_jsx(Heading,{level:`2`,id:`who-this-is-for`,children:`Who this is for`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Role`}),_jsx(_components.th,{children:`Main responsibility in this workflow`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Procurement coordinator`}),_jsx(_components.td,{children:`Imports queries and maintains the register`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Package lead`}),_jsx(_components.td,{children:`Assigns owners, monitors due dates, and controls outbound responses`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Technical responder`}),_jsx(_components.td,{children:`Drafts or reviews technical answers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Commercial responder`}),_jsx(_components.td,{children:`Drafts or reviews commercial answers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Designated approver`}),_jsx(_components.td,{children:`Approves responses before they are issued`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Owner reviewer`}),_jsx(_components.td,{children:`Reviews open material queries before award`})]})]})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Anyone with package access can open the query register and read queries. Creating queries, drafting, and editing responses require edit access on the package, and only the query’s designated approver can approve a response for issue.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-need`,children:`What you need`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input`}),_jsx(_components.th,{children:`Format`}),_jsx(_components.th,{children:`Contribution`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Bidder queries`})}),_jsxs(_components.td,{children:[`Excel (`,_jsx(_components.code,{children:`.xlsx`}),`), CSV, PDF, Word (`,_jsx(_components.code,{children:`.docx`}),`, `,_jsx(_components.code,{children:`.doc`}),`), or manual entry`]}),_jsx(_components.td,{children:`The query register itself`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`RFP / tender pack`})}),_jsx(_components.td,{children:`Uploaded package documents`}),_jsx(_components.td,{children:`Source context for drafting and consistency checks`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Prior responses`})}),_jsx(_components.td,{children:`Built up as you answer queries`}),_jsx(_components.td,{children:`Duplicate detection, consistency checks, and knowledge reuse`})]})]})]}),`\n`,_jsx(_components.p,{children:`A package and one query source is enough to start. The richer the package context, the sharper the drafting and consistency checks.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-get`,children:`What you get`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A package query register with search, filters, and bulk actions`}),`\n`,_jsx(_components.li,{children:`Import from Excel, CSV, PDF, and Word with duplicate detection`}),`\n`,_jsx(_components.li,{children:`AI draft responses with an RFP coverage check before drafting`}),`\n`,_jsx(_components.li,{children:`Consistency checks scoring each response against the RFP and prior answers`}),`\n`,_jsx(_components.li,{children:`A controlled status flow from Pending to Closed, with a designated approver step`}),`\n`,_jsx(_components.li,{children:`Amendment flagging and one-click tender circular generation (Word)`}),`\n`,_jsx(_components.li,{children:`Response documents per query and a multi-sheet Excel report`}),`\n`,_jsx(_components.li,{children:`A full audit history and comment thread on every query`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-trubuild`,children:`Before TruBuild`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Queries arrive scattered`,children:_jsx(_components.p,{children:`Bidders send questions by email, through the tender portal, and in pre-bid meeting minutes, often several versions of the same question in different words.`})}),_jsx(Step,{title:`Someone compiles the register`,children:_jsx(_components.p,{children:`A coordinator copies everything into a master spreadsheet and deduplicates by hand. 1-2 days per batch.`})}),_jsx(Step,{title:`Answers are drafted from memory`,children:_jsx(_components.p,{children:`Whoever is available drafts a response, often without re-reading the relevant RFP section or checking what was already told to another bidder.`})}),_jsx(Step,{title:`Approval happens in email chains`,children:_jsx(_components.p,{children:`Draft answers bounce between the technical lead, the QS, and the client until someone declares them final. There is no record of who signed off.`})}),_jsx(Step,{title:`Answers go out bidder by bidder`,children:_jsx(_components.p,{children:`Responses are emailed individually. Answers that change the tender basis are supposed to become a circular to all bidders, but often never do.`})})]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Pain points:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Queries sit unanswered in inboxes with no due-date tracking`}),`\n`,_jsx(_components.li,{children:`Contradictory answers go to different bidders (a fairness and audit problem)`}),`\n`,_jsx(_components.li,{children:`No single source of truth for “what was asked, what was answered, who approved it”`}),`\n`,_jsx(_components.li,{children:`Amendments implied by answers never make it into a formal circular`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`with-trubuild`,children:`With TruBuild`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Import the query register`,children:_jsx(_components.p,{children:`Bring in bidder questions from Excel, CSV, PDF, or Word, or add them manually. TruBuild parses the file, previews the rows, and flags duplicates.`})}),_jsx(Step,{title:`Assign and categorize`,children:_jsx(_components.p,{children:`Route each query to its owner with a category, priority, and due date.`})}),_jsx(Step,{title:`Draft with context`,children:_jsx(_components.p,{children:`Use RFP context, prior response history, and AI drafting to prepare a controlled response, then run a consistency check.`})}),_jsx(Step,{title:`Approve before issue`,children:_jsx(_components.p,{children:`Move responses through the designated approver before marking them sent.`})}),_jsx(Step,{title:`Issue circulars and close`,children:_jsx(_components.p,{children:`Flag answers that change the tender basis as amendments, generate the tender circular, and close each query with a reason.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`step-by-step-inside-the-app`,children:`Step-by-step inside the app`}),`\n`,_jsx(Heading,{level:`3`,id:`1-open-the-package-query-register`,children:`1. Open the package query register`}),`\n`,_jsxs(_components.p,{children:[`From the package, open the tender queries area. The register is package-scoped, so queries stay tied to the contractor list, package documents, and award record. The dashboard at the top shows `,_jsx(_components.strong,{children:`Total Queries`}),`, `,_jsx(_components.strong,{children:`Pending`}),`, `,_jsx(_components.strong,{children:`Approved`}),`, `,_jsx(_components.strong,{children:`Sent`}),`, `,_jsx(_components.strong,{children:`Closed`}),`, `,_jsx(_components.strong,{children:`Overdue`}),`, and `,_jsx(_components.strong,{children:`At Risk`}),` counts. Below the cards you get volume by category and status, an expandable workload-by-assignee breakdown, a knowledge base match rate, and average and maximum response times in hours.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`At Risk`}),` counts queries due within 2 days. Check it daily during the clarification window; it is your early warning before queries tip into `,_jsx(_components.strong,{children:`Overdue`}),`.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`2-import-or-create-queries`,children:`2. Import or create queries`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Upload the source files`,children:_jsx(_components.p,{children:`Upload Excel, CSV, PDF, or Word files containing bidder questions. You can upload batches of files at once.`})}),_jsx(Step,{title:`Review the parsed rows`,children:_jsx(_components.p,{children:`TruBuild detects the format and extracts the queries. For spreadsheets, it auto-detects column headers and maps them to query text, tenderer name, category, priority, and due date. Confirm or adjust the mappings, and edit any row before confirming the import.`})}),_jsx(Step,{title:`Resolve duplicates`,children:_jsx(_components.p,{children:`The import flags potential duplicate queries and shows a duplicates-found count. Merge them or keep them separate. Duplicates are common when several bidders ask the same thing in different words.`})})]}),`\n`,_jsx(_components.p,{children:`You can also add a single query manually, for example one received by email or through a tender portal.`}),`\n`,_jsx(Heading,{level:`3`,id:`3-categorize-and-assign`,children:`3. Categorize and assign`}),`\n`,_jsx(_components.p,{children:`Each query carries:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tenderer name`}),`: the bidder asking the question`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Query number`}),`: sequential, auto-assigned or from your import`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Category`}),`: Technical, Commercial, Contractual, or General`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Priority`}),`: Low, Medium, or High`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Assigned to`}),`: the responder who owns the answer`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Designated approver`}),`: who signs off before issue`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Due date`}),`: the response deadline from your tender timetable`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`RFP section, drawing, and circular references`}),`: optional, but they make audit review far easier`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The list view shows a deadline status per query (`,_jsx(_components.strong,{children:`Overdue`}),`, `,_jsx(_components.strong,{children:`Due Soon`}),`, or `,_jsx(_components.strong,{children:`On Track`}),`) alongside the category, priority, and status badges. Filter by status, category, priority, or assignee, or search the query text. Multi-select queries to change status or export in bulk.`]}),`\n`,_jsx(Heading,{level:`3`,id:`4-draft-and-check-the-response`,children:`4. Draft and check the response`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Generate or write a draft`,children:_jsxs(_components.p,{children:[`Write the response yourself, or click `,_jsx(_components.strong,{children:`Generate response`}),` for an AI draft. Before drafting, TruBuild shows a pre-draft check covering RFP coverage, matching prior responses, and consistency notes, so the responder starts from the right basis. Edit the draft freely; the AI text is a starting point, not the answer.`]})}),_jsx(Step,{title:`Check RFP coverage`,children:_jsx(_components.p,{children:`The RFP coverage result shows whether the topic is covered in the tender documents (found, partial, or not found), including the matching section, source document, and excerpt when found. If the RFP does not cover the topic, the answer may need to become an amendment rather than a simple clarification.`})}),_jsx(Step,{title:`Check consistency`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Check consistency`}),` to validate the draft against the RFP and prior answers. You get a 0-100 score labelled `,_jsx(_components.strong,{children:`Good`}),` (80 and above), `,_jsx(_components.strong,{children:`Needs Review`}),` (50-80), or `,_jsx(_components.strong,{children:`Issues Found`}),` (below 50), with a list of specific gaps or contradictions. If a prior response to a similar query exists, TruBuild flags it with a preview so you do not contradict an answer already issued.`]})})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Contradicting an earlier answer to another bidder is one of the fastest ways to compromise a tender’s fairness record. Treat a `,_jsx(_components.strong,{children:`Needs Review`}),` or `,_jsx(_components.strong,{children:`Issues Found`}),` score as a stop signal, not a formality.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`5-approve-send-and-close`,children:`5. Approve, send, and close`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Submit for approval`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Submit for approval`}),`. The query moves to `,_jsx(_components.strong,{children:`Pending Approval`}),` and the designated approver is notified.`]})}),_jsx(Step,{title:`Approve`,children:_jsxs(_components.p,{children:[`The approver confirms the response is technically, commercially, and contractually safe to issue, then clicks `,_jsx(_components.strong,{children:`Approve`}),`. The response is locked from further edits. If changes are needed, the approver can send it back to the responder instead.`]})}),_jsx(Step,{title:`Mark as sent`,children:_jsxs(_components.p,{children:[`Issue the response through your tender portal, email, or circular process, then click `,_jsx(_components.strong,{children:`Mark as sent`}),`. The issue timestamp is recorded. Use `,_jsx(_components.strong,{children:`Download Response`}),` to generate the Word response document for a single query.`]})}),_jsx(Step,{title:`Close the query`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Close query`}),` and select a reason: Resolved, Withdrawn, Duplicate, Merged, or Other. Closed queries keep their full history.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`status-model`,children:`Status model`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`Typical next action`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pending`})}),_jsx(_components.td,{children:`Imported or created, not yet picked up`}),_jsx(_components.td,{children:`Assign an owner`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Assigned`})}),_jsx(_components.td,{children:`A responder owns the query`}),_jsx(_components.td,{children:`Draft the response`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Draft Response`})}),_jsx(_components.td,{children:`A draft exists and is being worked`}),_jsx(_components.td,{children:`Check consistency, submit for approval`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pending Approval`})}),_jsx(_components.td,{children:`Waiting for the designated approver`}),_jsx(_components.td,{children:`Approve or send back for changes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Approved`})}),_jsx(_components.td,{children:`Signed off and ready to issue`}),_jsx(_components.td,{children:`Mark as sent, generate documents`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Sent`})}),_jsx(_components.td,{children:`Issued to the bidder`}),_jsx(_components.td,{children:`Close when resolved`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Closed`})}),_jsx(_components.td,{children:`Finalized with a close reason`}),_jsx(_components.td,{children:`View history`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`amendments-and-tender-circulars`,children:`Amendments and tender circulars`}),`\n`,_jsx(_components.p,{children:`Some answers do more than clarify: they change the tender basis. When a bidder-specific answer affects scope, pricing basis, or contract terms, procurement teams normally issue it to all tenderers as a circular or addendum to preserve fairness and equal treatment. TruBuild tracks this inside the query workflow:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Flag the amendment`,children:_jsxs(_components.p,{children:[`Mark the query as `,_jsx(_components.strong,{children:`Requires Amendment`}),` and add an amendment note describing what changes. Amendment status is tracked as not required, pending, or issued.`]})}),_jsx(Step,{title:`Generate the tender circular`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Generate tender circular`}),`. TruBuild compiles all pending amendments into a Word document and downloads it automatically. Generation can take a minute; the app shows progress while it runs.`]})}),_jsx(Step,{title:`Mark amendments as issued`,children:_jsxs(_components.p,{children:[`After you distribute the circular, click `,_jsx(_components.strong,{children:`Mark amendments as issued`}),` to bulk-update the pending amendments to issued.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`reporting-and-exports`,children:`Reporting and exports`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Export`}),_jsx(_components.th,{children:`Format`}),_jsx(_components.th,{children:`What it contains`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Single query response`}),_jsxs(_components.td,{children:[`Word (`,_jsx(_components.code,{children:`.docx`}),`)`]}),_jsxs(_components.td,{children:[`Query text plus the approved response, via `,_jsx(_components.strong,{children:`Download Response`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tender circular`}),_jsxs(_components.td,{children:[`Word (`,_jsx(_components.code,{children:`.docx`}),`)`]}),_jsx(_components.td,{children:`All pending amendments compiled for issue to tenderers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Query report`}),_jsxs(_components.td,{children:[`Excel (`,_jsx(_components.code,{children:`.xlsx`}),`)`]}),_jsxs(_components.td,{children:[`Multi-sheet analytics workbook, via `,_jsx(_components.strong,{children:`Export Report`}),` on the reports tab`]})]})]})]}),`\n`,_jsx(_components.p,{children:`The Excel report covers approved and sent responses by default. It includes a KPI summary (SLA compliance rate, average consistency score, total responses), response times by assignee, volume by category and status, weekly received trend, close-reason distribution, per-bidder intelligence (queries raised, answered, pending, average response time), RFP coverage and consistency-score distributions, and a full query data sheet with every field, reference, and timestamp.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`The per-bidder sheet is useful evaluation intelligence in its own right. A bidder raising many queries about scope boundaries or BOQ descriptions is often signalling where their price carries assumptions, which is worth checking during commercial evaluation.`})}),`\n`,_jsx(Heading,{level:`2`,id:`audit-history-and-comments`,children:`Audit history and comments`}),`\n`,_jsx(_components.p,{children:`Every query keeps a timestamped audit trail: creation, assignment, drafts saved, AI drafts generated, consistency checks, submission, approval, sending, closure, amendment flags, and document uploads, each with the acting user. A threaded comment section on each query keeps internal discussion attached to the record instead of scattered across email.`}),`\n`,_jsx(_components.p,{children:`This matters at award: when a committee or auditor asks why a response was worded a certain way, the query record shows who drafted, who checked, who approved, and when it went out.`}),`\n`,_jsx(Heading,{level:`2`,id:`working-with-technical-evaluation`,children:`Working with technical evaluation`}),`\n`,_jsxs(_components.p,{children:[`RFP documents uploaded to tender queries can be reused when setting up a technical evaluation in the same package. During evaluation setup, TruBuild offers to import the RFP documents already held in tender queries, so you upload the tender pack once. See `,_jsx(_components.a,{href:`/platform/technical-eval`,children:`Technical evaluation`}),` and `,_jsx(_components.a,{href:`/platform/rounds`,children:`Rounds and clarifications`}),` for how post-tender clarifications feed evaluation rounds.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-queries-fit-into-construction-procurement`,children:`How queries fit into construction procurement`}),`\n`,_jsx(_components.p,{children:`Tender queries usually run throughout the whole procurement timetable, not only after evaluation starts.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stage`}),_jsx(_components.th,{children:`Common query activity`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Pre-bid period`}),_jsx(_components.td,{children:`Tenderers ask about drawings, specifications, BOQ descriptions, site access, contract instructions, submission requirements, and ambiguities`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Bid return review`}),_jsx(_components.td,{children:`Procurement checks missing documents, unsigned forms, invalid assumptions, and obvious compliance gaps`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Commercial evaluation`}),_jsx(_components.td,{children:`QS/commercial team raises PTCs on exclusions, unpriced items, abnormal rates, and arithmetic issues`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Technical evaluation`}),_jsx(_components.td,{children:`Technical team raises PTCs on methodology, programme, resourcing, design compliance, QA/QC, HSE, logistics, and commissioning`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Revised submission`}),_jsx(_components.td,{children:`Responses are assessed for impact on score, price, compliance, and residual risk`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Award recommendation`}),_jsx(_components.td,{children:`Open material queries are closed, accepted as residual risk, or escalated before award`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`query-categories`,children:`Query categories`}),`\n`,_jsx(_components.p,{children:`Use categories consistently so the right team owns the answer:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Category`}),_jsx(_components.th,{children:`Examples`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Technical`}),_jsx(_components.td,{children:`Design compliance, method statements, programme, HSE, QA/QC, logistics, commissioning`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Commercial`}),_jsx(_components.td,{children:`Rates, quantities, provisional sums, exclusions, qualifications, arithmetic checks, price validity`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Contractual`}),_jsx(_components.td,{children:`Instructions to tenderers, bonds, warranties, liquidated damages, insurance requirements`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`General`}),_jsx(_components.td,{children:`Submission format, site visit, deadline, portal process, administrative clarification`})]})]})]}),`\n`,_jsx(_components.p,{children:`If a query spans multiple categories, assign the main owner and note the secondary reviewer in the comments.`}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Import queries as soon as they arrive`,id:`import-queries-as-soon-as-they-arrive`,children:_jsx(_components.p,{children:`Do not let questions sit in email while evaluators work from partial information. Import them early so ownership, due dates, and the Overdue and At Risk counters reflect reality.`})}),_jsx(Accordion,{title:`Set the designated approver before drafting starts`,id:`set-the-designated-approver-before-drafting-starts`,children:_jsx(_components.p,{children:`An approval step invented at issue time is a bottleneck. Set the approver when you assign the query so the workflow is agreed up front.`})}),_jsx(Accordion,{title:`Run the consistency check before every submission`,id:`run-the-consistency-check-before-every-submission`,children:_jsxs(_components.p,{children:[`Prior-answer conflicts are cheap to fix in draft and expensive to fix after issue. Make `,_jsx(_components.strong,{children:`Check consistency`}),` part of the drafting routine, not an occasional extra.`]})}),_jsx(Accordion,{title:`Flag amendments the moment an answer changes the tender basis`,id:`flag-amendments-the-moment-an-answer-changes-the-tender-basis`,children:_jsx(_components.p,{children:`If an answer changes scope, pricing basis, or contract terms for one bidder, all bidders need it. Flag it immediately so it lands in the next tender circular rather than being remembered later.`})}),_jsx(Accordion,{title:`Close the loop before the next bid round`,id:`close-the-loop-before-the-next-bid-round`,children:_jsx(_components.p,{children:`Do not rescore or re-price until high-priority queries are closed. Otherwise the next evaluation round is built on partial information.`})}),_jsx(Accordion,{title:`Reuse prior responses carefully`,id:`reuse-prior-responses-carefully`,children:_jsx(_components.p,{children:`Prior response history is useful, but check every reused answer against the current RFP and package context. The RFP coverage check does the first pass for you.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`impact`,children:`Impact`}),`\n`,_jsx(_components.p,{children:`On a typical tender of 5 bidders and 30-60 queries:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Phase`}),_jsx(_components.th,{children:`Before TruBuild`}),_jsx(_components.th,{children:`With TruBuild`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Compile queries`}),_jsx(_components.td,{children:`1-2 days`}),_jsx(_components.td,{children:`1-2 hours with import and duplicate detection`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Track status`}),_jsx(_components.td,{children:`1 day of chasing`}),_jsx(_components.td,{children:`Live dashboard with overdue and at-risk counters`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Draft responses`}),_jsx(_components.td,{children:`Written from memory of the RFP`}),_jsx(_components.td,{children:`Drafted with RFP context and consistency-checked`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Issue amendments`}),_jsx(_components.td,{children:`Tracked in a side spreadsheet`}),_jsx(_components.td,{children:`Flagged per query, compiled into one circular`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Prep for next round`}),_jsx(_components.td,{children:`1 day re-reading emails`}),_jsx(_components.td,{children:`Answers linked to their source queries with full history`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Tender queries","description":"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.","href":"/platform/tender-queries"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Who this is for","slug":"who-this-is-for","depth":2,"children":[]},{"title":"What you need","slug":"what-you-need","depth":2,"children":[]},{"title":"What you get","slug":"what-you-get","depth":2,"children":[]},{"title":"Before TruBuild","slug":"before-trubuild","depth":2,"children":[]},{"title":"With TruBuild","slug":"with-trubuild","depth":2,"children":[]},{"title":"Step-by-step inside the app","slug":"step-by-step-inside-the-app","depth":2,"children":[{"title":"1. Open the package query register","slug":"1-open-the-package-query-register","depth":3,"children":[]},{"title":"2. Import or create queries","slug":"2-import-or-create-queries","depth":3,"children":[]},{"title":"3. Categorize and assign","slug":"3-categorize-and-assign","depth":3,"children":[]},{"title":"4. Draft and check the response","slug":"4-draft-and-check-the-response","depth":3,"children":[]},{"title":"5. Approve, send, and close","slug":"5-approve-send-and-close","depth":3,"children":[]}]},{"title":"Status model","slug":"status-model","depth":2,"children":[]},{"title":"Amendments and tender circulars","slug":"amendments-and-tender-circulars","depth":2,"children":[]},{"title":"Reporting and exports","slug":"reporting-and-exports","depth":2,"children":[]},{"title":"Audit history and comments","slug":"audit-history-and-comments","depth":2,"children":[]},{"title":"Working with technical evaluation","slug":"working-with-technical-evaluation","depth":2,"children":[]},{"title":"How queries fit into construction procurement","slug":"how-queries-fit-into-construction-procurement","depth":2,"children":[]},{"title":"Query categories","slug":"query-categories","depth":2,"children":[]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]},{"title":"Impact","slug":"impact","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"trubuild","siteName":"TruBuild","title":"Tender queries - TruBuild","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-07T10:30:38.218Z","originalFileLocation":"platform/tender-queries.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.\">\u003cmeta data-mint-head name=\"application-name\" content=\"TruBuild\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Tender queries - TruBuild\">\u003cmeta data-mint-head property=\"og:description\" content=\"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TruBuild\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.trubuild.io/platform/tender-queries\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://trubuild.mintlify.site/_mintlify/api/og/v2?division=Platform+features\u0026amp;title=Tender+queries\u0026amp;description=Manage+bidder+clarifications+from+import+through+assignment%2C+AI-assisted+drafting%2C+approval%2C+issue%2C+amendment+circulars%2C+and+closure.\u0026amp;theme=f9c088fe6aea97756ac47968\u0026amp;signature=25eb1d659efe2a908be37f195978600d9e5d72fe77e2ce44476d753b7321df30\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Tender queries - TruBuild\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://trubuild.mintlify.site/_mintlify/api/og/v2?division=Platform+features\u0026amp;title=Tender+queries\u0026amp;description=Manage+bidder+clarifications+from+import+through+assignment%2C+AI-assisted+drafting%2C+approval%2C+issue%2C+amendment+circulars%2C+and+closure.\u0026amp;theme=f9c088fe6aea97756ac47968\u0026amp;signature=25eb1d659efe2a908be37f195978600d9e5d72fe77e2ce44476d753b7321df30\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/trubuild/SIAeI7U2RbqvN-Fz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TruBuild\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7c4dff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.trubuild.io/platform/tender-queries\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/platform/tender-queries.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.trubuild.io/#organization\",\"name\":\"TruBuild\",\"url\":\"https://docs.trubuild.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/trubuild/ZU83U96G2zylhJUA/logo/trubuild-light.png?fit=max\u0026auto=format\u0026n=ZU83U96G2zylhJUA\u0026q=85\u0026s=80330b4735af2bd22cd213849f2cf1c7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.trubuild.io#website\",\"name\":\"TruBuild\",\"url\":\"https://docs.trubuild.io\",\"publisher\":{\"@id\":\"https://docs.trubuild.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.trubuild.io/platform/tender-queries#webpage\",\"url\":\"https://docs.trubuild.io/platform/tender-queries\",\"name\":\"Tender queries\",\"description\":\"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.\",\"dateModified\":\"2026-07-07T10:30:38.218Z\",\"isPartOf\":{\"@id\":\"https://docs.trubuild.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.trubuild.io/platform/tender-queries#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.trubuild.io/platform/tender-queries#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Platform features\",\"item\":\"https://docs.trubuild.io/platform/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tender queries\",\"item\":\"https://docs.trubuild.io/platform/tender-queries\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.trubuild.io/platform/tender-queries#article\",\"headline\":\"Tender queries\",\"name\":\"Tender queries\",\"description\":\"Manage bidder clarifications from import through assignment, AI-assisted drafting, approval, issue, amendment circulars, and closure.\",\"url\":\"https://docs.trubuild.io/platform/tender-queries\",\"mainEntityOfPage\":{\"@id\":\"https://docs.trubuild.io/platform/tender-queries#webpage\"},\"dateModified\":\"2026-07-07T10:30:38.218Z\",\"publisher\":{\"@id\":\"https://docs.trubuild.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.trubuild.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TruBuild\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"TruBuild\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/platform/tender-queries.md","siteName":"TruBuild","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://trubuild.io"}]},"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":[{"title":"TruBuild documentation","mode":"wide","href":""},{"title":"Getting started overview","href":"/get-started/overview"},{"title":"Enterprise rollout","href":"/get-started/enterprise-rollout"},{"title":"Set up your account","href":"/get-started/setup-account"},{"title":"Create your first project and package","href":"/get-started/first-project"},{"title":"Upload tender and bid documents","href":"/get-started/upload-documents"},{"title":"Roles and permissions","href":"/get-started/roles-permissions"},{"title":"Settings and administration","href":"/get-started/settings"}]},{"group":"Platform features","pages":[{"title":"Platform overview","href":"/platform/overview"},{"title":"Evaluation governance","href":"/platform/evaluation-governance"},{"title":"Award readiness","href":"/platform/award-readiness"},{"title":"Commercial evaluation","href":"/platform/commercial-eval"},{"title":"Technical evaluation","description":"Score contractor technical submissions against weighted criteria, manage post-tender clarification rounds, and export committee-ready results.","href":"/platform/technical-eval"},{"title":"Tender queries","href":"/platform/tender-queries"},{"title":"Knowledge Hub","description":"Search your organization's tender query answers, reuse vetted responses, export Q\u0026A documents, and configure the categories your team classifies queries with.","href":"/platform/knowledge-hub"},{"title":"Evaluation rounds","href":"/platform/rounds"},{"title":"AI chat","href":"/platform/chat"},{"title":"Brain and Agent Sam","href":"/platform/brain"}]}]}]},"basePath":"","title":"Tender queries - TruBuild","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":[],"chunks":[]}