This workflow corresponds to n8n.io template #13803 — we link there as the canonical source.
This workflow follows the Form Trigger → Googlegemini recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "183f2352-a016-4e9a-afc5-62202caa492c",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
0,
0
],
"parameters": {
"options": {},
"formTitle": "invoice extractor",
"formFields": {
"values": [
{
"fieldName": "data",
"fieldType": "file",
"fieldLabel": "data",
"requiredField": true
}
]
}
},
"typeVersion": 2.4
},
{
"id": "2258c647-11fc-41a4-bb93-ae743106b4a2",
"name": "Upload a file",
"type": "n8n-nodes-base.awsS3",
"position": [
240,
-176
],
"parameters": {
"fileName": "={{ $json.data[0].filename }}",
"operation": "upload",
"bucketName": "test",
"additionalFields": {}
},
"typeVersion": 2
},
{
"id": "998ca05e-e2d7-44dc-881e-d2db7570575b",
"name": "AWS Textract",
"type": "n8n-nodes-base.awsTextract",
"position": [
256,
112
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d0b952d3-5a77-420a-82be-d2d5cb6f4ca1",
"name": "Message a model",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
432,
112
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-2.5-flash",
"cachedResultName": "models/gemini-2.5-flash"
},
"options": {},
"messages": {
"values": [
{
"content": "you will be given invoice data you have to summarize that invoice with key important things"
}
]
},
"builtInTools": {}
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.1
},
{
"id": "27ffaaad-8d6b-4e4b-b150-9a95906c3ffe",
"name": "Send a message",
"type": "n8n-nodes-base.slack",
"position": [
784,
112
],
"parameters": {
"user": {
"__rl": true,
"mode": "list",
"value": "U07G370G5MW",
"cachedResultName": "asana"
},
"select": "user",
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "0d869e2d-b131-4074-8c8f-23a1794828df",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
-288
],
"parameters": {
"width": 560,
"height": 528,
"content": "## Automate Invoice Data Extraction and Summarization\n\n\n### How it works\n1. A user submits an invoice file through an n8n form.\n2. The uploaded invoice file is automatically stored in your configured AWS S3 bucket.\n3. AWS Textract processes the file to accurately extract all relevant data, such as line items, totals, and vendor information.\n4. Google Gemini then summarizes the extracted invoice details, highlighting key financial and transactional information.\n5. Finally, this AI-generated summary is sent as a direct message to a specified user or channel in Slack.\n\n\n### Setup\n* [ ] Connect your AWS S3 account.\n* [ ] Specify the AWS S3 bucket name for storing invoice files.\n* [ ] Add your Google Gemini API credentials.\n* [ ] Connect your Slack account.\n* [ ] Select the Slack user or channel to receive the invoice summaries.\n* [ ] Ensure your AWS account has the necessary permissions for Textract and S3 operations."
},
"typeVersion": 1
},
{
"id": "0fbc07e9-1bb1-4e6f-ad37-67847a5793c2",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-224
],
"parameters": {
"color": 7,
"width": 464,
"height": 512,
"content": "## Upload to AWS and extract text"
},
"typeVersion": 1
},
{
"id": "1031b1f7-50a6-4ece-b6fa-c73d756b201e",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
32
],
"parameters": {
"color": 7,
"width": 560,
"height": 256,
"content": "## summarize and send to slack"
},
"typeVersion": 1
}
],
"connections": {
"AWS Textract": {
"main": [
[
{
"node": "Message a model",
"type": "main",
"index": 0
}
]
]
},
"Message a model": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Upload a file",
"type": "main",
"index": 0
},
{
"node": "AWS Textract",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googlePalmApislackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow is built for finance teams, operations managers, founders, and businesses that process invoices regularly and want to eliminate manual document handling. It’s especially useful for teams that need quick, structured invoice insights delivered directly to their…
Source: https://n8n.io/workflows/13803/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Analyze Amazon product reviews with Gemini and save to Google Sheets
This n8n template retrieves verbal brand identity markers from any web site.
Customer Feedback Loop Analyzer. Uses formTrigger, lmChatGoogleGemini, gmail, slack. Event-driven trigger; 11 nodes.
This workflow automates the process of converting audio meeting recordings into a structured to-do list. It listens for new audio files in a Google Drive folder, transcribes them, extracts action item
This n8n workflow converts invoices in PDF format into a structured, ready-to-use JSON, using AI and XML transformation — without writing any code. Upload form → The user uploads a PDF file. Text extr