This workflow follows the Gmail → Google Drive 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 →
{
"id": 3,
"name": "Orlen",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
240,
300
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Current date",
"type": "n8n-nodes-base.function",
"position": [
1160,
960
],
"parameters": {
"functionCode": "var today = new Date();\nvar year = today.getFullYear();\nvar month = today.getMonth() + 1;\nvar day = today.getDate();\n\nif(month < 10) {\n month = \"0\" + month;\n}\n\nitems[0].json.year = year;\nitems[0].json.month = month;\nitems[0].json.day = day;\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Every 23:45",
"type": "n8n-nodes-base.cron",
"position": [
960,
960
],
"parameters": {
"triggerTimes": {
"item": [
{
"hour": 23,
"minute": 45
}
]
}
},
"typeVersion": 1
},
{
"name": "Get Year folder",
"type": "n8n-nodes-base.googleDrive",
"position": [
1360,
960
],
"parameters": {
"options": {
"fields": [
"id"
]
},
"operation": "list",
"queryFilters": {
"name": [
{
"value": "={{$json[\"year\"]}}",
"operation": "is"
}
],
"mimeType": [
{
"mimeType": "application/vnd.google-apps.folder"
}
]
},
"authentication": "oAuth2"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Get Month folder",
"type": "n8n-nodes-base.googleDrive",
"position": [
1560,
960
],
"parameters": {
"options": {
"fields": [
"id"
]
},
"operation": "list",
"queryString": "='{{$json[\"id\"]}}' in parents and name = '{{$node[\"Current date\"].json[\"month\"]}}'",
"authentication": "oAuth2",
"useQueryString": true
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Orlen Invoice",
"type": "n8n-nodes-base.gmail",
"position": [
1760,
960
],
"parameters": {
"resource": "message",
"operation": "getAll",
"returnAll": true,
"additionalFields": {
"q": "from:(orlenpay@orlen.pl) has:attachment is:unread",
"format": "resolved"
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Upload Invoice to Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1960,
960
],
"parameters": {
"name": "=Orlen {{$binary.attachment_0.directory}}.{{$binary.attachment_0.fileExtension}}",
"options": {},
"parents": [
"={{$node[\"Get Month folder\"].json[\"id\"]}}"
],
"binaryData": true,
"resolveData": true,
"authentication": "oAuth2",
"binaryPropertyName": "attachment_0"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Mark as Read",
"type": "n8n-nodes-base.gmail",
"position": [
2160,
960
],
"parameters": {
"labelIds": [
"UNREAD"
],
"resource": "messageLabel",
"messageId": "={{$node[\"Orlen Invoice\"].json[\"id\"]}}",
"operation": "remove"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
2280,
960
],
"parameters": {
"mode": "mergeByIndex"
},
"typeVersion": 1
},
{
"name": "Slack",
"type": "n8n-nodes-base.slack",
"position": [
860,
540
],
"parameters": {
"text": "=Kapitanie!\nDodano faktur\u0119 {{$node[\"Orlen Invoice\"].binary.attachment_0.directory}} do Firma/{{$node[\"Current date\"].json[\"year\"]}}/{{$node[\"Current date\"].json[\"month\"]}}",
"channel": "n8n",
"attachments": [],
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": true,
"settings": {
"timezone": "Europe/Warsaw",
"saveExecutionProgress": "DEFAULT"
},
"createdAt": "2022-04-11T17:11:34.040Z",
"updatedAt": "2022-04-11T21:59:45.898Z",
"staticData": null,
"connections": {
"Merge": {
"main": [
[
{
"node": "Upload Invoice to Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Every 23:45": {
"main": [
[
{
"node": "Orlen Invoice",
"type": "main",
"index": 0
}
]
]
},
"Current date": {
"main": [
[
{
"node": "Get Year folder",
"type": "main",
"index": 0
}
]
]
},
"Mark as Read": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
}
]
]
},
"Orlen Invoice": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Get Year folder": {
"main": [
[
{
"node": "Get Month folder",
"type": "main",
"index": 0
}
]
]
},
"Get Month folder": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Orlen Invoice",
"type": "main",
"index": 0
}
]
]
},
"Upload Invoice to Google Drive": {
"main": [
[
{
"node": "Mark as Read",
"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.
gmailOAuth2googleDriveOAuth2ApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow streamlines invoice management for Orlen-related correspondence by automatically retrieving and archiving emails with attachments into organised Google Drive folders, saving hours of manual filing each month. It's ideal for finance teams or administrators handling recurring supplier invoices from Orlen, ensuring nothing gets overlooked amid busy inboxes. The key step involves scanning Gmail for specific invoice emails, extracting attachments, and uploading them to year- and month-based folders in Google Drive, with notifications sent via Slack for confirmation.
Use this workflow for daily or scheduled processing of predictable invoice emails to maintain compliance and easy retrieval, especially in regulated industries like energy. Avoid it for high-volume, variable email patterns that require AI parsing, or when real-time alerts are needed beyond Slack updates. Common variations include adjusting the cron schedule to hourly checks or adding filters for multiple senders to handle broader procurement flows.
About this workflow
Orlen. Uses manualTrigger, googleDrive, gmail, slack. Event-driven trigger; 10 nodes.
Source: https://github.com/Zie619/n8n-workflows — 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.
Categories: Payments, Project Operations, Client Onboarding
Hiring teams often struggle with document follow-ups, offer letter generation, and stakeholder communication. Manual checks, email back-and-forth, and missing files slow down hiring and create chaos d
Brand Asset Folder Automation & Client Notification. Uses googleDrive, slack, gmail, googleSheetsTrigger. Event-driven trigger; 8 nodes.
This template is ideal for HR teams, startup founders, operations leads, remote-first companies, and freelancers managing onboarding manually or across multiple tools.
Automate event registration with capacity management, a waitlist, and multi-tier PDF ticket generation using PDF Generator API. When attendees register, the workflow checks available spots, routes by