Generate Summaries from Uploaded Files using OpenAI Assistants API

Go to Workflow
262 views
Built by Sam Robertson Sam Robertson
Created on June 05, 2026

Description

Generate Summaries from Uploaded Files using OpenAI Assistants API

πŸ“‘ Overview
Upload a document (PDF, DOCX, PPTX, TXT, CSV, JSON, or Markdown) and receive an AI-generated summary containing:

title** – 5-10 words
summary** – 1-2 sentences
bullets** – 3-5 key points
tags** – 3-6 short keywords

The workflow:

Stores the file in OpenAI.
Runs an Assistant with File Search and Code Interpreter enabled.
Polls until the run finishes.
Retrieves the summary JSON.

βœ… Prerequisites

OpenAI Assistant
Create one at <https://platform.openai.com/assistants>
Enable File Search and Code Interpreter
Note: The assistant ID starts with asst_

OpenAI API credential setup in n8n
Go to Credentials β†’ New β†’ HTTP Header Auth
Header name: Authorization
Value: Bearer YOUR-OPENAI-API-KEY (replace YOUR-OPENAI-API-KEY with your OpenAI API secret key for your assistant, starts with sk-)
Name it: openAIApiHeader

πŸ”§ Setup

Import the workflow JSON.
When n8n prompts for a credential, choose openAIApiHeader for every HTTP Request node.
Open Run Assistant β†’ Body and replace

"assistant_id": "REPLACE_WITH_YOUR_ASSISTANT_ID"

with your real ID (starts with asst_…). Save.

πŸš€ How it works

| # | Node | Purpose |
|---|------|---------|
| 1 | On form submission | User uploads a file (File). |
| 2 | Upload File | POST /v1/files (multipart) β†’ returns file_id. |
| 3 | Create Thread | Creates a thread and attaches the uploaded file. |
| 4 | Run Assistant | Starts the run using your assistant_id. |
| 5 | Poll Run Status β†’ Wait 2 s β†’ IF | Loops until status = completed. |
| 6 | Fetch Summary | GET /v1/threads/{thread_id}/messages β†’ summary JSON. |

πŸ–ŒοΈ Customisation ideas

Edit the user prompt in Create Thread to change summary length, tone, or language.
Add an HTTP Response node after Fetch Summary to return plaintext to the uploader.
Replace the polling loop with OpenAI’s forthcoming wait-for-run endpoint when available.

No community nodes required. Works on any n8n Cloud plan (Starter, Pro, Enterprise) or self-hosted Community Edition.

Nodes Used (1)

HTTP Request
n8n-nodes-base.httpRequest