Guide ยท Guide

Building an RFP Response Workflow in Dave by voolama: Drafting, Agent Review, and Owner Approval

Key takeaways

  • The Information node in Dave by voolama holds your library of past approved answers. The drafting agent reads from it, so the AI draws on verified language rather than inventing claims.
  • Two agents work in sequence: the first maps each RFP requirement to the closest approved answer; the second drafts the response section using only that mapped content.
  • The Agent Review node runs an automated check after drafting, flagging any claim in the draft that cannot be traced to the approved answer library before the owner sees it.
  • The Human Review node gives the business owner three options: Approve, Reject, or Request Changes. Nothing reaches the buyer until a named person clicks Approve.
  • Pricing, discounts, and commercial terms must be entered by a person in a User Interaction task, never generated by an AI agent.

Summary

This guide covers the exact canvas build in Dave by voolama (hellodave.ai) for an RFP response workflow: an Information node holds past approved answers, two Agent Interaction nodes map requirements and draft sections, an Agent Review node flags unsupported claims, a User Interaction node collects pricing from a person, and a Human Review node gives the owner final approval before anything goes to the buyer. This build produces the draft; the pre-submission checklist is run after the owner approves.

The steps

  1. Build your approved answer library before opening the canvas

    Before you open the Workflow Editor, collect and verify the content the AI agents will draw from. The Information node holds this library as a static reference. The agents are instructed to use only what is in that node, so the quality of your library determines the quality of every draft.

    Prepare a plain-text document with the following sections: a one-paragraph company description; a list of named, completed projects with the client type (not the client name if confidential), the scope, and the outcome; capability statements for each service area you bid on; certifications and registrations (for example, a SAM.gov registration number if you bid on federal work, or any relevant industry certifications); and standard terms you use in proposals, such as warranty language or delivery commitments.

    Do not include any claim you cannot support with a document you can produce on request. A claim in an RFP response that cannot be substantiated is a material misrepresentation to the buyer, regardless of whether a human or an AI produced it. For a full discussion of what belongs in an AI-assisted bid and what does not, see Is It Safe for a Small Business to Use AI on a Government Bid?

    Do this
    • Open a plain-text document and list every capability statement, past project description, and certification you want the agents to draw from.
    • Note the source of each claim next to it, even if only for your own records. If a buyer asks how you arrived at a statement, you need to be able to answer.
    • Mark any area where you do not yet have an approved answer. The mapping agent will flag those gaps rather than fill them in.
    • Keep this document open while you build the workflow. You will paste its contents into the Information node in Step 3.
    Example

    A hypothetical IT services firm might prepare an approved answer library with three past project descriptions (each describing the scope and outcome without naming the client), two capability statements for managed services and cybersecurity, a SAM.gov registration note, and a standard 90-day warranty clause. That is the complete library. The agents draft every RFP section from those entries and no others.

    Best practice
    • Update the library at the start of each new bid season, not mid-workflow. Create a new workflow version each time you update the Information node so you have a record of which library was used for which bids.
    • Keep entries short and specific. A two-sentence project description with a concrete outcome is more useful to the agent than a paragraph of general language.
    • Do not include client names, contract values, or any information that is subject to a non-disclosure agreement. The Information node's contents are part of the workflow context and are logged in the audit trail.
  2. Create the mapping agent and the drafting agent

    This workflow uses two agents: one to map each RFP requirement to the closest approved answer in the library, and one to draft the response sections using that mapping. Both are created in the Agents section of the sidebar. You need the Admin or Create role to see this section and create agents.

    Navigate to Agents in the sidebar. Click New Agent, name it "RFP Requirement Mapper", and click Create Agent. On the agent detail page, click Create Version. In the Config JSON editor, write a system prompt that instructs the agent to read the approved answer library and the list of RFP requirements, and to return a structured mapping of each requirement to the most relevant approved answer, flagging any requirement it cannot match. A starting config:

    {"systemPrompt": "You are an RFP analyst for a small business. You will receive two inputs: an approved answer library and a list of RFP requirements. For each requirement, identify the most relevant entry in the approved answer library. Return a numbered list where each item states the requirement, the matching library entry title, and a one-sentence rationale for the match. If no library entry matches a requirement, write [NO MATCH: describe what is missing] rather than inventing an answer.", "model": "gpt-4o", "temperature": 0.2, "maxTokens": 1200}

    Click Create Version. Note the version number (v1). Version numbers in Dave by voolama are auto-incrementing integers: v1, v2, v3. You cannot choose or skip version numbers.

    Next, create the drafting agent. Click New Agent, name it "RFP Response Drafter", and click Create Agent. Click Create Version and write a system prompt that instructs the agent to draft a response section for each requirement using only the matched library entries from the mapping, to respect any word or page limits stated in the requirements, and to flag any section where the mapping returned NO MATCH rather than drafting around it. A starting config:

    {"systemPrompt": "You are a proposal writer for a small business. You will receive a requirement-to-answer mapping produced by an analyst. Draft a professional response section for each requirement using only the matched library entries. Respect any word limits stated in the requirement. If the mapping shows [NO MATCH] for a requirement, write [SECTION INCOMPLETE: reason] rather than drafting a response. Do not add claims, statistics, or capabilities that are not in the mapping.", "model": "gpt-4o", "temperature": 0.3, "maxTokens": 2000}

    Click Create Version. Note the version number (v1).

    Do this
    • Go to Agents in the sidebar (Admin or Create role required).
    • Click New Agent, name it "RFP Requirement Mapper", click Create Agent.
    • Click Create Version, paste the mapper Config JSON, click Create Version. Note v1.
    • Click New Agent, name it "RFP Response Drafter", click Create Agent.
    • Click Create Version, paste the drafter Config JSON, click Create Version. Note v1.
    Example

    A hypothetical construction firm creates a mapper agent with a system prompt that adds: "Our approved library uses the labels Scope, Outcome, and Certification for each entry. Match requirements to those labels first." That one sentence of structure, added to the system prompt, makes the mapping output consistent across every RFP the firm responds to.

    Best practice
    • Set temperature to 0.1 to 0.3 for both agents. RFP responses benefit from consistent, precise output, not creative variation.
    • Keep the drafter's system prompt explicit that it must not draft around a NO MATCH result. A gap in the response is better than an invented capability.
    • When you update the approved answer library for a new bid cycle, create a new version of the mapper agent if the library structure changes, and update the Information node content in the workflow. The two must stay in sync.
  3. Create the workflow and place the Information node

    Navigate to Workflows in the sidebar. You need the Admin or Curate role to see this section. Click New Workflow, name it "RFP Response", and save. The Workflow Editor opens with a three-panel layout: the Node Palette on the left, the canvas in the center, and the Properties Panel on the right.

    Drag a Start node (green, play icon) from the Node Palette onto the canvas. Every workflow requires exactly one Start node.

    Now drag an Information node (indigo, info icon) onto the canvas below the Start node. The Information node is a documentation and annotation node: it does not affect execution, but its contents are available in the workflow context for agents to read. Label it "Approved Answer Library". In the Properties Panel, paste the plain-text approved answer library you prepared in Step 1 into the node's config field.

    Connect the Start node's source handle (bottom circle) to the Information node's target handle (top circle) by dragging between them. Click Save Version.

    The Information node is the structural guarantee that the agents draw from your verified content rather than generating claims from general knowledge. Because the mapper is instructed to flag any requirement it cannot match, and the Agent Review node is instructed to flag any claim it cannot trace, the workflow enforces the boundary between your approved library and the AI's output.

    Do this
    • Go to Workflows in the sidebar (Admin or Curate role required).
    • Click New Workflow, name it "RFP Response", save.
    • Drag a Start node onto the canvas from the Node Palette.
    • Drag an Information node onto the canvas. Label it "Approved Answer Library".
    • In the Properties Panel, paste your approved answer library into the node's config field.
    • Connect Start to the Information node.
    • Click Save Version.
    Example

    A hypothetical professional services firm pastes the following structure into the Information node: three past project descriptions labeled Project A, Project B, Project C; two capability statements labeled Capability: Project Management and Capability: Data Analysis; one certification entry labeled Certification: ISO 9001 (current). The mapper agent reads those labels and matches RFP requirements to them by name.

    Best practice
    • Do not include client names, contract values, or NDA-protected information in the Information node. Its contents are part of the workflow context and are logged in the audit trail.
    • Update the Information node's content at the start of each new bid cycle. Create a new workflow version each time you update it so you have a record of which library was used for which bids.
    • If a capability area is not yet in the library, add a placeholder like [MISSING: cybersecurity capability statement]. The mapper will flag it rather than invent a match.
  4. Collect the RFP requirements with a User Interaction node

    After the Information node, the workflow collects the RFP's requirements from the person managing the bid. This is the input that tells the mapper agent what to work with.

    Drag a User Interaction node (blue, user icon) onto the canvas below the Information node. Label it "Enter RFP Requirements". In the Properties Panel under Fields, configure: buyer name (text), submission deadline (date), and RFP requirements (text, large field, for pasting the full list of requirements or questions from the solicitation). Under User Assignment, assign this task to the person who manages bid responses.

    Connect the Information node's source handle to this node's target handle. When a workflow instance runs and reaches this node, a task of type user_interaction appears in the assignee's Task Inbox. They paste the RFP requirements into the field and click Approve. The workflow resumes with both the approved answer library (from the Information node) and the RFP requirements available to the mapping agent.

    For a general overview of how AI-generated drafts move through approval steps in Dave by voolama, see How to Review AI Output Without Becoming the Bottleneck.

    Do this
    • Drag a User Interaction node below the Information node. Label it "Enter RFP Requirements".
    • In the Properties Panel under Fields, configure: buyer name (text), submission deadline (date), RFP requirements (text).
    • Under User Assignment, assign to the bid manager or business owner.
    • Connect the Information node to this node.
    • Click Save Version.
    Example

    A hypothetical engineering firm's bid manager opens the Task Inbox, finds the "Enter RFP Requirements" task, and pastes the following into the requirements field: "Section L.1: Describe your firm's relevant experience on projects of similar scope. Section L.2: Describe your quality assurance approach. Section L.3: Provide a list of key personnel and their qualifications." They set the buyer name and deadline, then click Approve. The workflow advances to the mapping agent with all three sections in context.

    Best practice
    • Paste the RFP requirements exactly as written, including any word or page limits. The drafting agent can respect those limits if the system prompt instructs it to, but only if the limit is visible in the input.
    • Run a separate workflow instance for each RFP. The Information node stays the same; only the requirements change between instances.
    • Assign this task to the person who has read the full solicitation and understands which sections require a response.
  5. Map requirements, draft responses, and run the Agent Review check

    After the bid manager submits the RFP requirements, the workflow passes everything to the mapping agent, then the drafting agent, then the Agent Review check, all automatically.

    Drag an Agent Interaction node (purple, bot icon) onto the canvas below the User Interaction node. Label it "Map Requirements to Library". In the Properties Panel under Agent Assignment, select the "RFP Requirement Mapper" agent and version v1. Connect the User Interaction node's source handle to this node's target handle. The Agent Interaction node runs automatically: no task is created, and no human action is required. The agent receives the workflow context, including the approved answer library from the Information node and the RFP requirements from the User Interaction node, and produces a structured mapping.

    Drag a second Agent Interaction node below the first. Label it "Draft Response Sections". In the Properties Panel under Agent Assignment, select the "RFP Response Drafter" agent and version v1. Connect the first Agent Interaction node's source handle to this node's target handle. The drafter receives the mapping output and produces a draft response section for each requirement.

    Next, drag an Agent Review node (pink, bot icon) below the second Agent Interaction node. Label it "Check Claims Against Library". In the Properties Panel under Agent Assignment, you can assign a dedicated fact-checker agent here, or reuse the mapper agent with a review-focused system prompt. The Agent Review node runs automatically and returns a pass or fail result. Connect the pass edge to the pricing User Interaction node you will place in Step 6. Connect the fail edge to a Routing node that loops back to the "Enter RFP Requirements" User Interaction node, so the bid manager can update the library or flag the discrepancy before the draft advances.

    Do this
    • Drag an Agent Interaction node below the User Interaction node. Label it "Map Requirements to Library".
    • In Properties Panel under Agent Assignment, select "RFP Requirement Mapper" and version v1.
    • Connect the User Interaction node to this node.
    • Drag a second Agent Interaction node below the first. Label it "Draft Response Sections".
    • In Properties Panel under Agent Assignment, select "RFP Response Drafter" and version v1.
    • Connect the first Agent Interaction node to the second.
    • Drag an Agent Review node below the second Agent Interaction node. Label it "Check Claims Against Library".
    • Connect the second Agent Interaction node to the Agent Review node.
    • Connect the Agent Review pass edge to the pricing User Interaction node (Step 6).
    • Connect the Agent Review fail edge to a Routing node that loops back to "Enter RFP Requirements".
    • Click Save Version.
    Example

    A hypothetical logistics firm runs an instance. The mapper returns: Section L.1 matched to Project B description; Section L.2 matched to the ISO 9001 certification entry; Section L.3 returns [NO MATCH: no key personnel bios in library]. The drafter produces two complete sections and one [SECTION INCOMPLETE] placeholder. The Agent Review node returns FAIL because the draft contains a [SECTION INCOMPLETE] marker. The workflow routes back to the bid manager, who adds a key personnel bio to the Information node and resubmits. On the second run, all three sections draft successfully and the Agent Review returns PASS.

    Best practice
    • Do not skip the Agent Review step to save time. The automated check is the structural guarantee that the owner is reviewing a draft grounded in the approved library, not an AI confabulation.
    • If the Agent Review consistently returns false positives, refine the review agent's system prompt to be more precise about what counts as a traceable claim.
    • The two Agent Interaction nodes run sequentially without human involvement. The full mapping-and-drafting sequence completes in seconds for a typical RFP with five to ten sections.
  6. Collect pricing, add the owner's Human Review, then activate

    After the Agent Review check passes, the workflow collects pricing from a person before the owner sees the complete draft. Pricing always stays with a person in this workflow.

    Drag a User Interaction node onto the canvas after the Agent Review pass edge. Label it "Enter Pricing and Commercial Terms". In the Properties Panel under Fields, configure: unit price or total bid amount (text, entered by the estimator), payment terms (text), and any applicable discounts or exclusions (text). Under User Assignment, assign this task to the business owner or estimator. Connect the Agent Review pass edge to this node's target handle.

    After the pricing task, drag a Human Review node (amber, eye icon) onto the canvas. Label it "Owner Approves Final Response". In the Properties Panel under User Assignment, assign this task to the business owner. Connect the pricing User Interaction node's source handle to this Human Review node's target handle.

    When the workflow reaches the Human Review node, a task of type human_review appears in the owner's Task Inbox. They open the task, read the Payload section (which contains the AI-drafted narrative sections and the pricing they entered), and click one of three buttons: Approve (green), Reject (red), or Request Changes (outlined).

    Connect the Approve edge to an End node labeled "Ready for Submission". Connect the Request Changes edge back to the "Enter RFP Requirements" User Interaction node from Step 4. Connect the Reject edge to an End node labeled "Bid Withdrawn".

    Every task decision is logged in the audit trail with the acting user's identity and a timestamp. Task operations support SOC 2 CC6.1 (logical access controls) and GDPR Article 30 (records of processing activities) when those modes are active in Dave by voolama.

    Once the graph is complete, confirm every path leads to an End node using the node and edge counter in the top-right corner of the canvas. Return to the Workflows list and set the workflow status to Active. A workflow in Draft status cannot be run. Run a test instance with a hypothetical RFP and a sample approved answer library before using it for a real bid.

    After the owner approves, run through the checklist at What Should I Check Before Submitting an RFP Response? to confirm every requirement is answered, every claim is backed by a document you can produce, and pricing has been verified by a person. That checklist is the next step after this workflow completes, not a substitute for it.

    If team members cannot see the Tasks section in the sidebar, their account does not hold the Admin or Use role. See Why Can't I See Agents, Workflows, or Other Sections in Dave by voolama? for how to diagnose and fix role assignments.

    Do this
    • Drag a User Interaction node after the Agent Review pass edge. Label it "Enter Pricing and Commercial Terms".
    • In Properties Panel under Fields, configure: bid amount (text), payment terms (text), discounts or exclusions (text).
    • Under User Assignment, assign to the business owner or estimator.
    • Connect the Agent Review pass edge to this node.
    • Drag a Human Review node below the pricing User Interaction node. Label it "Owner Approves Final Response".
    • In Properties Panel under User Assignment, assign to the business owner.
    • Connect the pricing User Interaction node to the Human Review node.
    • Connect the Approve edge to an End node labeled "Ready for Submission".
    • Connect the Request Changes edge back to "Enter RFP Requirements" (Step 4).
    • Connect the Reject edge to an End node labeled "Bid Withdrawn".
    • Confirm every path leads to an End node using the node and edge counter.
    • Click Save Version.
    • Run a test instance with hypothetical data before activating.
    • In the Workflows list, set the workflow status to Active.
    Example

    A hypothetical IT services firm runs its first live instance. The estimator opens the pricing task, enters the total bid amount and a 30-day net payment term, and clicks Approve. The workflow advances to the owner's Human Review task. The owner reads the Payload, which shows the three AI-drafted sections and the pricing entered by the estimator. The owner clicks Request Changes and adds a comment: "Strengthen the past performance section for Section L.1 to reference the project completion date." The workflow routes back to the bid manager, who updates the approved answer library with the completion date and resubmits. On the second pass, the owner clicks Approve. The instance reaches the End node labeled "Ready for Submission" and closes as completed.

    Best practice
    • Assign the Human Review task to a named person, not left unassigned. An unassigned task has no clear owner and may sit pending until the submission deadline passes.
    • Encourage the owner to use the Comment field when clicking Request Changes. A brief note explaining what to change saves a round trip.
    • For government solicitations issued under FAR 15.204-1, confirm the response follows the uniform contract format section labels before the owner approves. The AI-drafted sections cover the technical narrative; format compliance is a human check.
    • Keep legally required certifications, representations, and assurances (for example, FAR 52.212-3 for commercial item acquisitions) outside this workflow. Those forms require a named individual's signature and must not be AI-generated.

What this workflow does and does not handle

Dave by voolama (hellodave.ai) is a managed AI workflow platform where you build workflows by placing nodes on a visual canvas and connecting them with edges. This guide covers the specific canvas build for an RFP response workflow. The article Is It Safe for a Small Business to Use AI on a Government Bid? covers safety and compliance considerations. The resource What Should I Check Before Submitting an RFP Response? is the checklist you run after the owner approves the draft this workflow produces. The two are sequential steps in the same process, not alternatives.

The RFP response workflow uses these node types from the ten available in Dave by voolama:

  • Start (green): the entry point. Every workflow has exactly one.
  • Information (indigo): holds your approved answer library as a static reference. Does not affect execution, but its contents are available in the workflow context for agents to read.
  • User Interaction (blue): pauses the workflow and creates a task in the Task Inbox. Used twice: once to collect the RFP requirements, and once to collect pricing and commercial terms from a person.
  • Agent Interaction (purple): calls an agent automatically. Used twice: once to map requirements to the approved answer library, and once to draft the response sections. No task is created; both run without human involvement.
  • Agent Review (pink): calls a review agent automatically to check every claim in the draft against the approved answer library. Returns a pass or fail result.
  • Routing (purple, fork icon): logic-only node used on the fail path to loop back to the requirements entry step without creating a task.
  • Human Review (amber): creates a review task in the Task Inbox where the business owner reads the complete draft and clicks Approve, Reject, or Request Changes.
  • End (red): one for each outcome. Every path must end at an End node or the instance will hang at runtime.

This workflow does not handle pricing (that stays with a person), required certifications and representations, letters of reference, or the physical or electronic submission of the response to the buyer. Those steps stay with a person.

Who needs which role before you start

Dave by voolama has six default roles: Admin, Create, Curate, Use, Reporting, and Financial. Roles are editable. Before you build this workflow, confirm the right people hold the right roles. All user management happens in Admin in the sidebar, under Users. Only the Admin role can create users and assign roles. Role changes take effect on the user's next login.

What they doRole needed
Build and edit the workflow in the Workflow EditorAdmin or Curate
Create and version the mapping and drafting agentsAdmin or Create
Complete User Interaction tasks (enter RFP requirements or pricing)Admin or Use
Complete Human Review tasks (owner approval)Admin or Use
View the Workflows section in the sidebarAdmin or Curate
View the Agents section in the sidebarAdmin, Create, or Curate
View the Task Inbox in the sidebarAdmin or Use

If a team member cannot see the Workflows, Agents, or Tasks section in the sidebar after logging back in, their role does not include the required permission. See Why Can't I See Agents, Workflows, or Other Sections in Dave by voolama? for how to diagnose and fix this.

What this guide does not cover

This guide covers the workflow canvas build for RFP response drafting in Dave by voolama. It does not cover the following:

  • Pricing and commercial terms: Pricing always stays with a person in this workflow. A dedicated User Interaction node collects the bid amount, payment terms, and discounts from the business owner or estimator. AI agents never see or generate pricing figures.
  • Required certifications and representations: Government solicitations typically require signed certifications (for example, FAR 52.212-3 for commercial item acquisitions). Those forms require a named individual's signature and must not be AI-generated. Keep them outside this workflow.
  • Connecting an AI provider: Before any Agent Interaction or Agent Review node can run, you must configure at least one AI provider under Admin in your workspace. Dave by voolama supports seven AI provider types: OpenAI, Anthropic, Azure OpenAI, Google, OpenAI-compatible, local (Ollama), and custom. This guide assumes provider setup is already complete.
  • Submitting the response to the buyer: This workflow drafts and approves the response narrative. It does not submit the response to the buyer's portal or email address. That step stays with a person.
  • Government-specific AI restrictions: Some federal agencies prohibit AI-generated content in proposals. Check each solicitation before running the workflow. The article at Is It Safe for a Small Business to Use AI on a Government Bid? covers this in detail.

Disclosure: Dave by voolama is the product described in this guide, published by its maker, voolama LLC. This is vendor documentation, not independent legal or procurement advice.

Frequently asked questions

What stops the AI from inventing capabilities or past performance claims?

The Information node in Dave by voolama holds your library of past approved answers, real project descriptions, and verified capability statements. The first agent is instructed to map each RFP requirement to an entry in that library, and to flag any requirement it cannot match rather than invent an answer. The Agent Review node then checks the draft against the same library and returns a fail result if any claim in the draft cannot be traced to an approved entry.

Who handles pricing in this workflow?

Pricing always stays with a person. A dedicated User Interaction node after the drafting step creates a task in the Task Inbox where the business owner or estimator enters the price, discount, and payment terms manually. The AI agents never see or generate pricing figures. When the owner completes that task, the workflow combines the AI-drafted narrative with the owner-supplied pricing before the final Human Review step.

Which Dave by voolama roles do I need to build and run this workflow?

You need the Admin or Curate role to open the Workflow Editor and build the workflow. You need the Admin or Create role to create and version the agents. Anyone completing a task in the Task Inbox, including the owner approving the final draft, needs the Admin or Use role. Dave by voolama has six default roles: Admin, Create, Curate, Use, Reporting, and Financial. If a team member cannot see Tasks in the sidebar, their account does not hold the Admin or Use role.

Can I use this workflow for both government and corporate RFPs?

Yes, with one important difference. Government solicitations issued under the Federal Acquisition Regulation (FAR 15.204-1) use a uniform contract format with specific section labels. Check each solicitation for AI restrictions before running the workflow, as some agencies prohibit AI-generated content in proposals. The article at hellodave.ai/article/ai-government-corporate-bids-safe covers government-specific safety checks in detail. Corporate RFPs vary by buyer and have no uniform format requirement.

What happens if the Agent Review step flags a claim?

When the Agent Review node returns a fail result, a Routing node directs the workflow back to the User Interaction node where the requirement mapping was collected. The person responsible for the response can update the approved answer library in the Information node or add a note clarifying the requirement, then resubmit. The agent redrafts, the Agent Review reruns, and the workflow advances to the owner's Human Review only after the check passes.

Sources

  1. Is It Safe for a Small Business to Use AI on a Government Bid? (hellodave.ai)
  2. FAR 15.204-1: Uniform Contract Format (acquisition.gov)
  3. FAR 52.212-3: Offeror Representations and Certifications (acquisition.gov)

Last reviewed