← All N8N workflows
AI & researchAgentAggregateAirtableAirtable ToolAirtable Trigger

sort and split pdf into images and extract zip file

Configured with Agent, Aggregate, Airtable, Airtable Tool, and additional nodes. Review the connections and setup before adapting this template.

Workflow preview
TriggerWhen clicking ‘Testworkflow’Manual TriggerTransformSort PagesSortWeb / APISplit PDF into ImagesHTTP RequestTransformExtract Zip FileCompressionCodeImages To ListCodeFiles / mediaResize Images For AIEdit ImageTransformCombine All PagesAggregateFiles / mediaDefault Data LoaderDocument Default Data Lo…TransformRecursive CharacterText SplitterText Splitter Recursive …AI & modelsOpenAI Chat ModelOpenAI Chat ModelAI & modelsOpenAI Chat Model2OpenAI Chat ModelAI & modelsEmbeddings OpenAIEmbeddings Open AiWeb / APIDelete Existing VectorsHTTP RequestTransformContinue With PagesOnlyMergeData storeUpdate Pitchdecks TableAirtableData storeSearch Pending RowsAirtableTransformGet RowEdit FieldsRoutingPrequisites MetIfSubworkflowExecute WorkflowExecute WorkflowRoutingNo Operation, donothingNo OpTriggerExecute WorkflowTriggerExecute Workflow TriggerTransformExtract from FileExtract From FileTransformConvert to FileConvert To FileAI & modelsOpenAI Chat Model1OpenAI Chat ModelAI & modelsVector Store ToolTool Vector StoreAI & modelsOpenAI Chat Model3OpenAI Chat ModelAI & modelsEmbeddings OpenAI1Embeddings Open AiAI & modelsOpenAI Chat Model4OpenAI Chat ModelAI & modelsGenerate ReportInformation ExtractorWeb / APIDownload Deck FromAirtableHTTP RequestTriggerAirtable Trigger ForPending RowsAirtable TriggerAI & modelsTranscribe to MarkdownChain LLMAI & modelsIdentify Companies InQuestionInformation ExtractorData storeQdrant Vector StoreVector Store QdrantAI & modelsAsk Questions AboutPitchdecksAgentData storeWindow Buffer MemoryMemory Buffer WindowData storeCheck Pitch Deck ExistsAirtable ToolTriggerWhen chat messagereceivedChat TriggerData storePitchdecks Vector StoreVector Store Qdrant

Node categories in this workflow

  • Trigger
  • Transform
  • Web / API
  • Code
  • Files / media
  • AI & models
  • Data store
  • Routing
  • Subworkflow

Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.

Drag to pan; use + and − to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.

How it works

The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.

Workflow node names, types, and operations
NodeCategoryTypeOperation
When clicking ‘Test workflow’TriggerManual TriggerSee node parameters
Sort PagesTransformSortSee node parameters
Split PDF into ImagesWeb / APIHTTP RequestPOST
Extract Zip FileTransformCompressionSee node parameters
Images To ListCodeCodeSee node parameters
Resize Images For AIFiles / mediaEdit Imageresize
Combine All PagesTransformAggregateSee node parameters
Default Data LoaderFiles / mediaDocument Default Data LoaderSee node parameters
Recursive Character Text SplitterTransformText Splitter Recursive Character Text SplitterSee node parameters
OpenAI Chat ModelAI & modelsOpenAI Chat ModelSee node parameters
OpenAI Chat Model2AI & modelsOpenAI Chat ModelSee node parameters
Embeddings OpenAIAI & modelsEmbeddings Open AiSee node parameters
Delete Existing VectorsWeb / APIHTTP RequestPOST
Continue With Pages OnlyTransformMergeSee node parameters
Update Pitchdecks TableData storeAirtableupsert
Search Pending RowsData storeAirtablesearch
Get RowTransformEdit FieldsSee node parameters
Prequisites MetRoutingIfSee node parameters
Execute WorkflowSubworkflowExecute WorkflowSee node parameters
No Operation, do nothingRoutingNo OpSee node parameters
Execute Workflow TriggerTriggerExecute Workflow TriggerSee node parameters
Extract from FileTransformExtract From FilebinaryToPropery
Convert to FileTransformConvert To FiletoBinary
OpenAI Chat Model1AI & modelsOpenAI Chat ModelSee node parameters
Vector Store ToolAI & modelsTool Vector StoreSee node parameters
OpenAI Chat Model3AI & modelsOpenAI Chat ModelSee node parameters
Embeddings OpenAI1AI & modelsEmbeddings Open AiSee node parameters
OpenAI Chat Model4AI & modelsOpenAI Chat ModelSee node parameters
Generate ReportAI & modelsInformation ExtractorSee node parameters
Download Deck From AirtableWeb / APIHTTP RequestSee node parameters
Airtable Trigger For Pending RowsTriggerAirtable TriggerSee node parameters
Transcribe to MarkdownAI & modelsChain LLMSee node parameters
Identify Companies In QuestionAI & modelsInformation ExtractorSee node parameters
Qdrant Vector StoreData storeVector Store QdrantSee node parameters
Ask Questions About PitchdecksAI & modelsAgentSee node parameters
Window Buffer MemoryData storeMemory Buffer WindowSee node parameters
Check Pitch Deck ExistsData storeAirtable Toolsearch
When chat message receivedTriggerChat TriggerSee node parameters
Pitchdecks Vector StoreData storeVector Store QdrantSee node parameters

Setup

  1. Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
  2. Connect your own credentials through n8n’s credential store. Replace REPLACE_WITH_* values with your resource identifiers.
  3. Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
  4. Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.

Requirements

An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.

Credential types declared in the source

  • airtableTokenApi
  • openAiApi
  • qdrantApi

Workflow notes

3. Split PDF Pages into Seperate Images

3. Split PDF Pages into Seperate Images

Currently, the vision model we'll be using can't accept raw PDFs so we'll have to convert our PDF to a image in order to use it. To achieve this, we'll use the free Stirling PDF webservice for convenience but if we need data privacy (recommended!), we could self-host our own Stirling PDF instance instead. Alternatively, feel free to swap this service out for one of your own as long as it can convert PDFs into images!

We will ask the PDF service to return each page of our statement as separate images, which it does so as a zip file. Next steps is to just unzip the file and convert the output as a list of images.

Privacy Warning!

Privacy Warning!

This example uses a public third party service. If your data is senstive, please swap this out for the self-hosted version!

4. Convert PDF Pages to Markdown Using Vision Model

4. Convert PDF Pages to Markdown Using Vision Model

Learn more about using the Basic LLM node

Pitch decks are fundamentally extravagant sales documents and as such, are incredibly varied in how they are styled, structured and presented. Traditional OCR has often struggled with parsing these kinds of documents as layers and graphical elements and when extracting their contents typically yields poor results; either garbled or missing texts.

Multimodal LLMs are a solution as they use AI vision to "read" the pitch deck and can reason about it's layout and intent. Images can be understood and described with context and charts and graphs can also be interpreted. In this demonstration, we'll ask our LLM to transcribe each page in the pitch deck into markdown ensuring it also describes any images or charts it sees.

5. Extract Key Data Confidently From Statement

5. Extract Key Data Confidently From Statement

Read more about the Information Extractor

With our generated markdown, we can use an information extractor node to extract required information or data point from the pitch deck. This can be useful to generate reports and later compare pitch decks against each other. Here, we'll retain the extracted data by updating the relevant row in our Airtable database.

6. Build a Vector Store Collection for the Pitch Deck

6. Build a Vector Store Collection for the Pitch Deck

Read more about Qdrant Vector Store

When it comes to pitch deck, it may not be enough to capture static attributes in table. Wouldn't it be cool if we could also ask questions about the pitch deck itself? Well, thanks for n8n's first class support for vector stores, you can and quite easily too!

In this demonstration, we'll use the Qdrant Vector Store which you can either sign-up for a free instance at https://qdrant.tech or self-host via docker. Next, it's a simple case of just funneling our transcribed pages into the vector store using the Qdrant Vector Store node.

6. Offer a Pitch Deck Q&A Chatbot to your Team

6. Offer a Pitch Deck Q&A Chatbot to your Team

Learn more about using AI Agents

Take your workflows to the next level with n8n's AI Agents! This step demonstrates how powerful and yet simple it is to spin up an AI-powered chatbot and RAG implementation over the pitch decks. This AI Agent connects to our Pitch deck vector store and because it able to filter by company, it is capable of answering any questions about any relevant pitch decks the user is enquirying about. This makes for a powerful workflow which goes beyond just reporting and is a way to engage all stakeholders!

2. Download the Pitch Deck

2. Download the Pitch Deck

Learn more about Execute Workflow Trigger

In step 1 we triggered the subworkflow with the name and Airtable asset URL of the pitch deck. We'll use the HTTP request node to download the PDF of the pitch deck. Important to note that this template only handles PDF pitch decks and if you have pitchdecks in other formats such as PPT, you'll have to convert them to PDF.

1. Trigger Workflow From Airtable

1. Trigger Workflow From Airtable

Read more about using Airtable

This workflow uses Airtable as the database to find and track which pitch decks are available and which need to be processed. You can find the example Airtable here: https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc. This workflow is also designed to run through multiple pitch decks using seperate executions. To do this, we'll send each pitch deck through the "execute workflow" to start a new subworkflow execution.

Try It Out!

Try It Out!

This n8n template imports Pitch Decks and generates a report into Airtable as well as creates an AI Chatbot to ask questions about each Pitch Deck.

  • Airtable is used as the pitch deck database and PDF decks are downloaded from it.
  • An AI Vision model is used to transcribe each page of the pitch deck into markdown.
  • An Information Extractor is used to generate a report from the transcribed markdown and update required information back into pitch deck database.
  • The transcribed markdown is also uploaded to a vector store to build an AI chatbot which can be used to ask questions on the pitch deck.

Check out the sample Airtable here: https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc

How To Use

  • This template depends on the availability of the Airtable - make a duplicate of the airtable (https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc) and its columns before running the workflow.
  • When a new pitchdeck is received, enter the company name into the Name column and upload the pdf into the File column. Leave all other columns blank.
  • If you have the Airtable trigger active, the execution should start immediately once the file is uploaded. Otherwise, click the manual test trigger to start the workflow.
  • When manually triggered, all "new" pitch decks will be handled by the workflow as separate executions.

Need Help?

Join the Discord or ask in the Forum!

Change Me!

Change Me!

Remember to update Airtable nodes to point to your own.

Change Me!

Change Me!

You'll need to update the Qdrant URL in the "Delete Existing Vectors" node.

sort and split pdf into images and extract zip file

sort and split pdf into images and extract zip file

Purpose and structure

This folder contains the sort and split pdf into images and extract zip file workflow. Its executable nodes use agent, aggregate, airtable, airtableTool, airtableTrigger, chainLlm, chatTrigger, code, compression, convertToFile, documentDefaultDataLoader, editImage, embeddingsOpenAi, executeWorkflow, executeWorkflowTrigger, extractFromFile, httpRequest, if, informationExtractor, lmChatOpenAi, manualTrigger, memoryBufferWindow, merge, noOp, set, sort, textSplitterRecursiveCharacterTextSplitter, toolVectorStore, vectorStoreQdrant. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.

Setup

Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.

Entry points

When clicking ‘Test workflow’, Execute Workflow Trigger, Airtable Trigger For Pending Rows, When chat message received

Verification

Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.

Attribution

https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Code/0600_Code_Extractfromfile_Create_Webhook.json MIT; preserve source notices.

More in AI & research