AI NÊN SỬ DỤNG WORKFLOW NÀY?
- CONTENT CREATORS & INFLUENCERS: Tập trung sáng tạo nội dung, giảm tải công việc đăng bài
- DIGITAL MARKETERS: Đảm bảo nội dung được đăng đều đặn trên nhiều nền tảng
- SOCIAL MEDIA MANAGERS: Tiết kiệm thời gian, giảm sai sót khi đăng video thủ công
WORKFLOW GIẢI QUYẾT VẤN ĐỀ GÌ?
- Tự động tải video lên Instagram & TikTok từ Google Drive
- Tạo mô tả video hấp dẫn với OpenAI mà không cần viết tay
- Đồng bộ nội dung đa nền tảng, đảm bảo nhất quán thương hiệu
- Thông báo lỗi qua Telegram để kịp thời xử lý sự cố
CÁCH HOẠT ĐỘNG CỦA WORKFLOW
1. QUẢN LÝ VIDEO & TẠO MÔ TẢ
- Tải video lên thư mục Google Drive đã chỉ định
- OpenAI tự động phân tích âm thanh trong video để tạo mô tả hấp dẫn
2. ĐĂNG VIDEO LÊN INSTAGRAM & TIKTOK
- Sử dụng API Upload-Post.com để đăng video kèm mô tả tự động
- Tích hợp đồng thời cả TikTok & Instagram, giúp tiết kiệm thời gian
3. QUẢN LÝ LỖI & THÔNG BÁO
- Gửi thông báo qua Telegram nếu có lỗi khi tải lên
- Đảm bảo quá trình đăng bài diễn ra mượt mà & không bị gián đoạn
CÀI ĐẶT & TRIỂN KHAI (ƯỚC TÍNH: 15-30 PHÚT)
1. CẤU HÌNH API
- Tạo API Token trên Upload-Post.com và kết nối với các node TikTok & Instagram
- Google Cloud:
- Tạo Google Cloud Project
- Kích hoạt Google Drive API
- Cấu hình OAuth Credentials để kết nối Google Drive
- OpenAI API: Dùng cho mô tả tự động
- (Tuỳ chọn) Telegram API: Nhận thông báo lỗi
2. THIẾT LẬP WORKFLOW
- Google Drive Trigger: Chỉ định thư mục chứa video
- OpenAI Prompt: Tùy chỉnh mô tả theo phong cách thương hiệu
- Cấu hình đăng TikTok & Instagram với API Upload-Post
3. CHẠY THỬ & KIỂM TRA
- Đăng thử một video mẫu
- Kiểm tra mô tả tự động
- Đảm bảo video lên đúng Instagram & TikTok
- Xác nhận nhận thông báo lỗi trên Telegram (nếu có)
LỢI ÍCH & ỨNG DỤNG
✔ Tiết kiệm thời gian – Không cần đăng bài thủ công
✔ Tạo nội dung chuyên nghiệp – Mô tả hấp dẫn, đúng phong cách thương hiệu
✔ Tối ưu hiệu suất – Đăng đồng thời trên nhiều nền tảng
✔ Giảm thiểu sai sót – Hệ thống tự động & có thông báo lỗi
Code Json:
{
"nodes": [
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"value": "1"
},
"event": "fileCreated",
"options": {}
},
"id": "14f93cdb-72cb-419a-b8d7-a68ae9383290",
"name": "Google Drive Trigger",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
820,
560
],
"typeVersion": 1,
"credentials": {
"googleDriveOAuth2Api": {
"id": "bcOOmn1HApa4ltSq",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"authentication": "oAuth2",
"operation": "download",
"fileId": {
"__rl": true,
"mode": "",
"value": "={{ $json.id || $json.data[0].id }}"
},
"options": {}
},
"id": "d4ab0d11-b110-46fa-9cd2-6091737c302e",
"name": "Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
1000,
560
],
"retryOnFail": true,
"typeVersion": 1,
"waitBetweenTries": 5000,
"credentials": {
"googleDriveOAuth2Api": {
"id": "bcOOmn1HApa4ltSq",
"name": "Google Drive account"
}
}
},
{
"parameters": {},
"id": "fde9df88-3f9e-4732-bb1c-72eb33ce6826",
"name": "Error Trigger",
"type": "n8n-nodes-base.errorTrigger",
"position": [
1220,
900
],
"typeVersion": 1
},
{
"parameters": {
"chatId": "1",
"text": "=🔔 ERROR SUBIENDO VIDEOS",
"additionalFields": {
"appendAttribution": false
}
},
"id": "ecfe1ad1-6887-492b-a2f7-f9b6c43f9b91",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1560,
880
],
"webhookId": "f6729386-9905-45f1-800f-4fe01a06ac9c",
"retryOnFail": true,
"typeVersion": 1.2,
"waitBetweenTries": 5000,
"credentials": {
"telegramApi": {
"id": "uMRGqfmRcAcxeJ9A",
"name": "luyenthiminhhangtuvanbot"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9fadb3fd-2547-42bd-8f40-f410a97dcf57",
"operator": {
"type": "string",
"operation": "notContains"
},
"leftValue": "={{ $json.trigger.error.message }}",
"rightValue": "The DNS server returned an error, perhaps the server is offline"
}
]
},
"options": {}
},
"id": "6ed274c7-726f-40aa-92b0-70768dc053a5",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1360,
900
],
"typeVersion": 2.1
},
{
"parameters": {
"resource": "audio",
"operation": "transcribe",
"options": {}
},
"id": "299e3e95-dbcb-4798-b843-a4424ce3f3bf",
"name": "Get Audio from Video",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1460,
560
],
"notesInFlow": true,
"retryOnFail": true,
"typeVersion": 1,
"waitBetweenTries": 5000,
"credentials": {
"openAiApi": {
"id": "g2zXjjjhrsvqSL44",
"name": "OpenAi account"
}
},
"notes": "Extract the audio from video for generate the description"
},
{
"parameters": {
"fileName": "={{ $json.originalFilename.replaceAll(\" \", \"_\") }}",
"options": {}
},
"id": "da9048ce-542e-44e0-ba67-ab853822c428",
"name": "Read video from Google Drive",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1180,
560
],
"typeVersion": 1
},
{
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"messages": {
"values": [
{
"content": "You are an expert assistant in creating engaging social media video titles.",
"role": "system"
},
{
"content": "=I'm going to upload a video to social media. Here are some examples of descriptions that have worked well on Instagram:\n\nFollow and save for later. Discover InfluencersDe, the AI tool that automates TikTok creation and publishing to drive traffic to your website. Perfect for entrepreneurs and brands.\n#digitalmarketing #ugc #tiktok #ai #influencersde #contentcreation\n\nDiscover the video marketing revolution with InfluencersDe!\n.\n.\n.\n#socialmedia #videomarketing #ai #tiktok #influencersde #growthhacking\n\nDon't miss InfluencersDe, the tool that transforms your marketing strategy with just one click!\n.\n.\n.\n#ugc #ai #tiktok #digitalmarketing #influencersde #branding\n\nCan you create another title for the Instagram post based on this recognized audio from the video?\n\nAudio: {{ $('Get Audio from Video').item.json.text }}\n\nIMPORTANT: Reply only with the description, don't add anything else."
}
]
},
"options": {}
},
"id": "5977baf1-d4a2-439f-aafe-14745201d3d8",
"name": "Generate Description for Videos in Tiktok and Instagram",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1660,
560
],
"notesInFlow": true,
"retryOnFail": true,
"typeVersion": 1.4,
"waitBetweenTries": 5000,
"credentials": {
"openAiApi": {
"id": "g2zXjjjhrsvqSL44",
"name": "OpenAi account"
}
},
"notes": "Request to OpenAi for generate description with the audio extracted from the video"
},
{
"parameters": {
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
"dataPropertyName": "datavideo"
},
"id": "a139c8b0-b934-492b-8f85-e42c9c345af4",
"name": "Read Video from Google Drive",
"type": "n8n-nodes-base.readBinaryFile",
"position": [
2220,
340
],
"typeVersion": 1
},
{
"parameters": {
"filePath": "={{ $('Read video from Google Drive').item.json.originalFilename.replaceAll(\" \", \"_\") }}",
"dataPropertyName": "datavideo"
},
"id": "63230edb-8346-4441-929f-1f6403507501",
"name": "Read Video from Google Drive2",
"type": "n8n-nodes-base.readBinaryFile",
"position": [
2220,
700
],
"typeVersion": 1
},
{
"parameters": {
"method": "POST",
"url": "https://api.upload-post.com/api/upload",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "title",
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
},
{
"name": "platform[]",
"value": "tiktok"
},
{
"parameterType": "formBinaryData",
"name": "video",
"inputDataFieldName": "datavideo"
},
{
"name": "user",
"value": "Add user generated in upload-post"
}
]
},
"options": {}
},
"id": "5d6e26ef-1bb4-43d6-a282-151c95856905",
"name": "Upload Video and Description to Tiktok",
"type": "n8n-nodes-base.httpRequest",
"position": [
2480,
340
],
"notesInFlow": true,
"typeVersion": 4.2,
"credentials": {
"httpHeaderAuth": {
"id": "ctEByAtJX3zgljqm",
"name": "Header Auth account"
}
},
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)"
},
{
"parameters": {
"method": "POST",
"url": "https://api.upload-post.com/api/upload",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "title",
"value": "={{ $('Generate Description for Videos in Tiktok and Instagram').item.json.message.content.replaceAll(\"\\\"\", \"\") }}"
},
{
"name": "platform[]",
"value": "instagram"
},
{
"parameterType": "formBinaryData",
"name": "video",
"inputDataFieldName": "datavideo"
},
{
"name": "user",
"value": "Add user generated in upload-post"
}
]
},
"options": {}
},
"id": "ed785663-50e4-43cc-9dc0-a340d0360b38",
"name": "Upload Video and Description to Instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
2480,
700
],
"notesInFlow": true,
"typeVersion": 4.2,
"credentials": {
"httpHeaderAuth": {
"id": "ctEByAtJX3zgljqm",
"name": "Header Auth account"
}
},
"notes": "Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)"
}
],
"connections": {
"Google Drive Trigger": {
"main": [
[
{
"node": "Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Google Drive": {
"main": [
[
{
"node": "Read video from Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Error Trigger": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"Get Audio from Video": {
"main": [
[
{
"node": "Generate Description for Videos in Tiktok and Instagram",
"type": "main",
"index": 0
}
]
]
},
"Read video from Google Drive": {
"main": [
[
{
"node": "Get Audio from Video",
"type": "main",
"index": 0
}
]
]
},
"Generate Description for Videos in Tiktok and Instagram": {
"main": [
[
{
"node": "Read Video from Google Drive",
"type": "main",
"index": 0
},
{
"node": "Read Video from Google Drive2",
"type": "main",
"index": 0
}
]
]
},
"Read Video from Google Drive": {
"main": [
[
{
"node": "Upload Video and Description to Tiktok",
"type": "main",
"index": 0
}
]
]
},
"Read Video from Google Drive2": {
"main": [
[
{
"node": "Upload Video and Description to Instagram",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"templateId": "2894",
"templateCredsSetupCompleted": true,
"instanceId": "3a518cf9c1233b7b7bac22dfea1751b4d34a0a3fbe239239f0d74077e5203687"
}
}
💬 Nếu có bất kỳ thắc mắc nào, hãy để lại comment bên dưới để được giải đáp nhanh nhất!