HTTP Request node
Google Drive node
Gmail node
+6

Transform Press Releases (PDF & Word) into Polished Articles with Gmail & OpenAI

Published 1 day ago

Created by

julianreich
Julian Reich

Categories

Template description

This n8n workflow automates the transformation of press releases into polished articles. It converts the content of an email and its attachments (PDF or Word documents) into an AI-written article/blog post.

What does it do?

This workflow assists editors and journalists in managing incoming press-releases from governments, companies, NGOs, or individuals. The result is a draft article that can easily be reviewed by the editor, who receives it in a reply email containing both the original input and the output, plus an AI-generated self-assessment. This self-assessment represents an additional feedback loop where the AI compares the input with the output to evaluate the quality and accuracy of its transformation.

How does it work?

Triggered by incoming emails in Google, it first filters attachments, retaining only Word and PDF files while removing other formats like JPGs. The workflow then follows one of three paths:

- If no attachments remain, it processes the inline email message directly.
- For PDF attachments, it uses an extractor to obtain the document content.
- For Word attachments, it extracts the text content by a http request.

In each case, the extracted content is then passed to an AI agent that converts the press release into a well-structured article according to predefined prompts. A separate AI evaluation step provides a self-assessment by comparing the output with the original input to ensure quality and accuracy. Finally, the workflow generates a reply email to the sender containing three components: the original input, the AI-generated article, and the self-assessment. This streamlined process helps editors and journalists efficiently manage incoming press releases, delivering draft articles that require minimal additional editing."

How to set it up

1. Configure Gmail Connection:

  • Create or use an existing Gmail address
  • Connect it through the n8n credentials manager
  • Configure polling frequency according to your needs
  • Set the trigger event to "Message Received"
    Optional: Filter incoming emails by specifying authorized senders
  • Enable the "Download Attachments" option

2. Set Up AI Integration:

  • Create an OpenAI account if you don't have one
  • Create a new AI assistant or use an existing one
  • Customize the assistant with specific instructions, style guidelines, or response templates
  • Configure your API credentials in n8n to enable the connection

3. Configure Google Drive Integration:

  • Connect your Google Drive credentials in n8n
  • Set the operation mode to "Upload"
  • Configure the input data field name as "data"
    -Set the file naming format to dynamic: {{ $json.fileName }}

4. Configure HTTP Request Node:

  • Set request method to "POST"
  • Enter the appropriate Google API endpoint URL
  • Include all required authorization headers
  • Structure the request body according to API specifications
  • Ensure proper error handling for API responses

5. Configure HTTP Request Node 2:

  • Set request method to "GET"
  • Enter the appropriate Google API endpoint URL
  • Include all required authorization headers
  • Configure query parameters as needed
  • Implement response validation and error handling

6. Configure Self-Assessment Node:

  • Set operation to "Message a Model"
  • Select an appropriate AI model (e.g., GPT-4, Claude)
  • Configure the following prompt in the Message field:

Please analyze and compare the following input and output content:

(for example)

Original Input:
{{ $('HTTP Request3').item.json.data }}
{{ $('Gmail Trigger').item.json.text }}

Generated Output:
{{ $json.output }}

Provide a detailed self-assessment that evaluates:

  1. Content accuracy and completeness
  2. Structure and readability improvements
  3. Tone and style appropriateness
  4. Any information that may have been omitted or misrepresented
  5. Overall quality of the transformation

7. Configure Reply Email Node:

  • Set operation to "Send" and select your Gmail account
  • Configure the "To" field to respond to the original sender: {{ $('Gmail Trigger').item.json.from }}
  • Set an appropriate subject line: RE: {{ $('Gmail Trigger').item.json.subject }}
  • Structure the email body with clear sections using the following template:

handlebars

EDITED ARTICLE

{{ $('AI Article Writer 2').item.json.output }}

SELF-ASSESSMENT
Rating: 1 (poor) to 5 (excellent)
{{ $json.message.content }}

ORIGINAL MESSAGE

{{ $('Gmail Trigger').item.json.text }}

ATTACHMENT CONTENT

{{ $('HTTP Request3').item.json.data }}

Note: Adjust the template fields according to the input source (PDF, Word document, or inline message). For inline messages, you may not need the "ATTACHMENT CONTENT" section.

Share Template

More AI workflow templates

OpenAI Chat Model node
SerpApi (Google Search) node

AI agent chat

This workflow employs OpenAI's language models and SerpAPI to create a responsive, intelligent conversational agent. It comes equipped with manual chat triggers and memory buffer capabilities to ensure seamless interactions. To use this template, you need to be on n8n version 1.50.0 or later.
n8n-team
n8n Team
HTTP Request node
Merge node
+7

Scrape and summarize webpages with AI

This workflow integrates both web scraping and NLP functionalities. It uses HTML parsing to extract links, HTTP requests to fetch essay content, and AI-based summarization using GPT-4o. It's an excellent example of an end-to-end automated task that is not only efficient but also provides real value by summarizing valuable content. Note that to use this template, you need to be on n8n version 1.50.0 or later.
n8n-team
n8n Team
HTTP Request node
WhatsApp Business Cloud node
+10

Building Your First WhatsApp Chatbot

This n8n template builds a simple WhatsApp chabot acting as a Sales Agent. The Agent is backed by a product catalog vector store to better answer user's questions. This template is intended to help introduce n8n users interested in building with WhatsApp. How it works This template is in 2 parts: creating the product catalog vector store and building the WhatsApp AI chatbot. A product brochure is imported via HTTP request node and its text contents extracted. The text contents are then uploaded to the in-memory vector store to build a knowledgebase for the chatbot. A WhatsApp trigger is used to capture messages from customers where non-text messages are filtered out. The customer's message is sent to the AI Agent which queries the product catalogue using the vector store tool. The Agent's response is sent back to the user via the WhatsApp node. How to use Once you've setup and configured your WhatsApp account and credentials First, populate the vector store by clicking the "Test Workflow" button. Next, activate the workflow to enable the WhatsApp chatbot. Message your designated WhatsApp number and you should receive a message from the AI sales agent. Tweak datasource and behaviour as required. Requirements WhatsApp Business Account OpenAI for LLM Customising this workflow Upgrade the vector store to Qdrant for persistance and production use-cases. Handle different WhatsApp message types for a more rich and engaging experience for customers.
jimleuk
Jimleuk
HTTP Request node
Markdown node
+5

AI agent that can scrape webpages

⚙️🛠️🚀🤖🦾 This template is a PoC of a ReAct AI Agent capable of fetching random pages (not only Wikipedia or Google search results). On the top part there's a manual chat node connected to a LangChain ReAct Agent. The agent has access to a workflow tool for getting page content. The page content extraction starts with converting query parameters into a JSON object. There are 3 pre-defined parameters: url** – an address of the page to fetch method** = full / simplified maxlimit** - maximum length for the final page. For longer pages an error message is returned back to the agent Page content fetching is a multistep process: An HTTP Request mode tries to get the page content. If the page content was successfuly retrieved, a series of post-processing begin: Extract HTML BODY; content Remove all unnecessary tags to recude the page size Further eliminate external URLs and IMG scr values (based on the method query parameter) Remaining HTML is converted to Markdown, thus recuding the page lengh even more while preserving the basic page structure The remaining content is sent back to an Agent if it's not too long (maxlimit = 70000 by default, see CONFIG node). NB: You can isolate the HTTP Request part into a separate workflow. Check the Workflow Tool description, it guides the agent to provide a query string with several parameters instead of a JSON object. Please reach out to Eduard is you need further assistance with you n8n workflows and automations! Note that to use this template, you need to be on n8n version 1.19.4 or later.
eduard
Eduard
Merge node
Telegram node
Telegram Trigger node
+2

Telegram AI Chatbot

The workflow starts by listening for messages from Telegram users. The message is then processed, and based on its content, different actions are taken. If it's a regular chat message, the workflow generates a response using the OpenAI API and sends it back to the user. If it's a command to create an image, the workflow generates an image using the OpenAI API and sends the image to the user. If the command is unsupported, an error message is sent. Throughout the workflow, there are additional nodes for displaying notes and simulating typing actions.
eduard
Eduard
Google Drive node
Binary Input Loader node
Embeddings OpenAI node
OpenAI Chat Model node
+5

Ask questions about a PDF using AI

The workflow first populates a Pinecone index with vectors from a Bitcoin whitepaper. Then, it waits for a manual chat message. When received, the chat message is turned into a vector and compared to the vectors in Pinecone. The most similar vectors are retrieved and passed to OpenAI for generating a chat response. Note that to use this template, you need to be on n8n version 1.19.4 or later.
davidn8n
David Roberts

Implement complex processes faster with n8n

red icon yellow icon red icon yellow icon