Automate Your RFP Process with OpenAI Assistants n8n Workflow Template

n8n workflow template · 13 nodes · Google Docs

Automate Your RFP Process with OpenAI Assistants is a free n8n workflow template that starts when its webhook receives an HTTP request and works with Google Docs, OpenAI, Slack and Gmail. It has 13 nodes, 4 of them AI nodes (Item List Output Parser, OpenAI Chat Model, OpenAI and Basic LLM Chain). The notes inside the workflow say: “Example Documents To run this workflow, you'll need to following 2 documents” To run it, you add your own credentials for Gmail OAuth2, Google Docs OAuth2, OpenAI API and Slack API.

At a glance

Trigger
Webhook (Wait for Request)
Nodes
13
Apps
Google Docs, OpenAI, Slack and Gmail
AI nodes
4
Credentials
4 types
Category
Chatbots and messaging

Apps and integrations

  • Google Docs
  • OpenAI
  • Slack
  • Gmail

Node types used

  • Extract from File
  • Item List Output Parser
  • Loop Over Items
  • Edit Fields (Set)
  • Google Docs
  • OpenAI Chat Model
  • Slack
  • Gmail
  • OpenAI
  • Webhook
  • Basic LLM Chain

How it works

The text below comes from the sticky notes inside the workflow. We removed links, code samples and anything that looks like a key or token.

Try It Out!

This workflow does the following

  • Receives a RFP document via webhook
  • Creates a new RFP response document via Google Docs
  • Uses LLMs to extract the questions from the RFP document into a questions list
  • Loops through each question and uses an OpenAI Assistant to generate an answer. Saving each answer into the response document.
  • Once complete, sends a gmail and slack notification to the team.

Example Documents To run this workflow, you'll need to following 2 documents

  • RFP Document
  • Example Company Document

Need Help?

Join the Discord or ask in the Forum!

1. API to Trigger Workflow

Read more about using Webhooks

This workflow requires the user to submit the RFP document via an API request. It's a common pattern to use the webhook node for this purpose. Be sure to secure this webhook endpoint in production!

Example Webhook Request

curl --location 'https:// ' \ --form 'id="RFP001"' \ --form 'title="BlueChip Travel and StarBus Web Services"' \ --form 'reply_to=""' \ --form 'data=@"k9pnbALxX/RFP Questionnaire.pdf"'

  • Use a tool such as Postman to send data to the webhook.

3. Identifying Questions using AI

Read more about Question & Answer Chain

Using the power of LLMs, we're able to extract the RFP questionnaire regardless of original formatting or layout. This allows AutoRFP to handle a wide range of RFPs without requiring explicit extraction rules for edge cases.

Additionally, We'll use the Input List Output Parser to return a list of questions for further processing.

4. Generating Question & Answer Pairs with AI

Read more about using OpenAI Assistants in n8n

By preparing an OpenAI Assistant with marketing material and sales documents about our company and business, we are able to use AI to answer RFP questions with the accurate and relevant context. Potentially allowing sales teams to increase the number of RFPs they can reply to.

This portion of the workflow loops through and answers each question individually for better answers. We can record the Question and Answer pairings to the RFP response document we created earlier.

5. Send Notification Once Completed

Read more about using Slack

Finally, we can use a number of ways to notify the sales team when the process is complete. Here, we've opted to send the requesting user an email with a link to the RFP response document.

  • Update the email address to send to in Gmail Node.
  • Update the channel and message for Slack.

Setup notes

The text below comes from the sticky notes inside the workflow. We removed links, code samples and anything that looks like a key or token.

2. Create a new Doc to Capture Responses For RFP Questions

Read more about working with Google Docs

For each RFP we process, let's create its very own document to store the results. It will serve as a draft document for the RFP response.

Required You'll need to create an OpenAI Assistant to use this workflow.

  • Sign up for OpenAI Dashboard if you haven't already.
  • Create an OpenAI Assistant
  • Upload the example company doc to the assistant.

The assistant will use the company doc to answer the questions.

Nodes in this workflow

The 13 nodes in file order (sticky notes excluded). Branches and connections determine execution order in n8n:

  1. Get RFP Data (Extract from File)
  2. Item List Output Parser (Item List Output Parser)
  3. For Each Question... (Loop Over Items)
  4. Set Variables (Edit Fields (Set))
  5. Create new RFP Response Document (Google Docs)
  6. OpenAI Chat Model (OpenAI Chat Model)
  7. Send Chat Notification (Slack)
  8. Send Email Notification (Gmail)
  9. Add Metadata to Response Doc (Google Docs)
  10. Record Question & Answer in Response Doc (Google Docs)
  11. Answer Question with Context (OpenAI)
  12. Wait for Request (Webhook)
  13. Extract Questions From RFP (Basic LLM Chain)

Credentials you need

  • Gmail OAuth2 – used by Send Email Notification
  • Google Docs OAuth2 – used by Add Metadata to Response Doc, Create new RFP Response Document and Record Question & Answer in Response Doc
  • OpenAI API – used by Answer Question with Context and OpenAI Chat Model
  • Slack API – used by Send Chat Notification

Configure your own credentials after importing. Create each credential in n8n, then select it in the node.

How to import into n8n

  1. Download the JSON file with the button above.
  2. In n8n, open a new workflow, select the ... menu and choose Import from File. You can also paste the JSON straight into the editor canvas.
  3. Open each node that shows a warning and select or create its credential.
  4. Read the notes on the canvas, test the workflow with sample data, then activate it.

Do you need somewhere to run it? Read our guide to self-hosted n8n.

Need this customised?

We can adapt this workflow to your apps, data and process, then deploy and support it.

Contact Us