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.
Upload a job posting (PDF, image, or screenshot) and instantly get a tailored CV section and a matching cover letter – both written in the posting's language and tone, both honest about what you actua
This workflow accepts invoice PDFs or images from an n8n Form or Telegram, uses Google Gemini to OCR and extract structured invoice fields and line items, appends the results to Google Sheets, and sen
This workflow monitors Gmail for new unread emails, uses Google Gemini to classify each email’s intent, then creates Gmail draft replies and Slack alerts for questions/requests, escalates complaints w
This workflow polls Gmail for labeled outreach replies, cleans and classifies each reply with Google Gemini, logs results to Google Sheets, and for actionable messages, creates a Gmail draft response
Analyze Amazon product reviews with Gemini and save to Google Sheets