Google Sheets、Drive、Cloudinary、Graph API を使って Instagram カルーセル投稿を自動化
中級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、15個のノードを含みます。主にSet, Aggregate, GoogleDrive, HttpRequest, GoogleSheetsなどのノードを使用。 Google Sheets、Drive、Cloudinary、Graph API を使って Instagram カルーソルを LinkedIn 自動投稿
前提条件
- •Google Drive API認証情報
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "0a25db4fd0692af64b58f35e01611f2ef0b5bb9d6654c57ef3741021e7d8cc11",
"templateId": "5833"
},
"nodes": [
{
"id": "f0c8b3af-13db-4fdd-8cbc-46986ca7dd18",
"name": "Google Driveフォルダから画像リストを取得",
"type": "n8n-nodes-base.googleDrive",
"position": [
1824,
560
],
"parameters": {
"filter": {
"folderId": {
"__rl": true,
"mode": "url",
"value": "={{ $('Get Execution for Carousel').item.json.Folder }}"
}
},
"options": {
"fields": [
"id",
"name",
"thumbnailLink",
"webViewLink"
]
},
"resource": "fileFolder",
"returnAll": true,
"queryString": "="
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "01wemhcagGbSGx8L",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "51f669e2-d933-47ce-9892-ba18bfaf92de",
"name": "カルーセル用実行データを取得",
"type": "n8n-nodes-base.googleSheets",
"position": [
1600,
560
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "ToDo",
"lookupColumn": "Status"
},
{
"lookupValue": "Carousel",
"lookupColumn": "Type"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1315784118,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g/edit#gid=1315784118",
"cachedResultName": "Execute "
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g/edit?usp=drivesdk",
"cachedResultName": "0004_Master"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cjPjcwa3RdiMAu79",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "8c2b669d-9185-469f-9084-7075ffce5a90",
"name": "スケジュールトリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1376,
560
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "00027ef7-ece6-4b31-ad04-6508684b33ac",
"name": "画像をCloudinaryにアップロード",
"type": "n8n-nodes-base.httpRequest",
"position": [
2272,
560
],
"parameters": {
"url": "https://api.cloudinary.com/v1_1/<your-cloud-name>/image/upload",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
},
{
"name": "upload_preset",
"value": "<your_upload_preset>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7b22ae20-73c9-44f0-8f87-673836a47a25",
"name": "Instagram 設定(アクセストークン、ig_business_id)",
"type": "n8n-nodes-base.set",
"position": [
1248,
832
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5b2dad43-2ec9-4bc0-8427-c9bab6a5fc2c",
"name": "access_token",
"type": "string",
"value": "<your-instagram-access-token>"
},
{
"id": "55b08009-fd62-44b8-b21e-6dde6aa9594f",
"name": "ig_user_id",
"type": "string",
"value": "<your-ig_user_id>"
},
{
"id": "53127a63-5583-4a5b-84bf-d2efd439af2b",
"name": "image_url",
"type": "string",
"value": "={{ $json.url }}"
},
{
"id": "90a680ca-49c2-4b83-bbf4-45614e882c01",
"name": "caption",
"type": "string",
"value": "={{ $('Get Execution for Carousel').item.json['Expected content'] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8f7f2ba9-4157-40a2-8561-17e77c74baef",
"name": "Google Driveから画像をダウンロード(カルーセル用)",
"type": "n8n-nodes-base.httpRequest",
"position": [
2048,
560
],
"parameters": {
"url": "=https://drive.google.com/uc?export=download&id={{ $json.id }}",
"options": {
"response": {
"response": {
"fullResponse": true,
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.2
},
{
"id": "09cb809c-9997-413c-b94f-9203e80eaa1d",
"name": "メディアコンテナを作成(画像)",
"type": "n8n-nodes-base.httpRequest",
"position": [
1472,
832
],
"parameters": {
"url": "=https://graph.instagram.com/v23.0/{{ $json.ig_user_id }}/media",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "image_url",
"value": "={{ $json.image_url }}"
},
{
"name": "caption",
"value": "={{ $json.caption }}"
},
{
"name": "access_token",
"value": "={{ $json.access_token }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d0453b3b-5c36-4a27-a808-65893674d451",
"name": "Instagram メディアコンテナを結合",
"type": "n8n-nodes-base.aggregate",
"position": [
1696,
832
],
"parameters": {
"options": {
"mergeLists": true
},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "body.id"
}
]
}
},
"typeVersion": 1
},
{
"id": "04b3998b-3fb1-4128-a77c-7ea8029235a0",
"name": "メディアコンテナを作成(カルーセル)",
"type": "n8n-nodes-base.httpRequest",
"position": [
1920,
832
],
"parameters": {
"url": "=https://graph.instagram.com/v23.0/{{ $('Setup for Instagram (access token, ig_business_id)').first().json.ig_user_id }}/media",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendBody": true,
"contentType": "form-urlencoded",
"bodyParameters": {
"parameters": [
{
"name": "caption",
"value": "={{ $('Get Execution for Carousel').item.json['Expected content'] }}"
},
{
"name": "media_type",
"value": "=CAROUSEL"
},
{
"name": "children",
"value": "={{ $json.id }}"
},
{
"name": "access_token",
"value": "={{ $('Setup for Instagram (access token, ig_business_id)').first().json.access_token }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "662e0de0-26b0-4045-ae9e-e2f5b630419f",
"name": "Instagram カルーセルを投稿",
"type": "n8n-nodes-base.httpRequest",
"position": [
2144,
832
],
"parameters": {
"url": "=https://graph.instagram.com/v23.0/{{ $('Setup for Instagram (access token, ig_business_id)').first().json.ig_user_id }}/media_publish",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "creation_id",
"value": "={{ $json.body.id }}"
},
{
"name": "access_token",
"value": "={{ $('Setup for Instagram (access token, ig_business_id)').first().json.access_token }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8f4ad80f-53e2-4c86-be4a-02f4f8bb630e",
"name": "実行ステータスを「処理済み」に更新",
"type": "n8n-nodes-base.googleSheets",
"position": [
2368,
832
],
"parameters": {
"columns": {
"value": {
"Status": "Processed",
"ExecuteId": "={{ $('Get Execution for Carousel').item.json.ExecuteId }}"
},
"schema": [
{
"id": "ExecuteId",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ExecuteId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Folder",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Folder",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Expected content",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Expected content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Language",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Language",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Schedule_at",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Schedule_at",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"ExecuteId"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1315784118,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g/edit#gid=1315784118",
"cachedResultName": "Execute "
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g/edit?usp=drivesdk",
"cachedResultName": "0004_Master"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cjPjcwa3RdiMAu79",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "32b01069-b985-4647-abaa-ac667c38e79b",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
1184,
368
],
"parameters": {
"color": 4,
"width": 368,
"height": 144,
"content": "## STEP 1 · Schedule & Pick Jobs\n**Schedule Trigger** runs every X minutes.\n**Sheets (Execute)** filters rows: `Status=ToDo` + `Type=Carousel`.\nTip: use `ExecuteId` as the unique key for updates."
},
"typeVersion": 1
},
{
"id": "13b43b13-794e-4599-a6ab-e341970bdeb9",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1728,
368
],
"parameters": {
"color": 5,
"width": 336,
"content": "## STEP 2 · Collect Assets\n**Drive list** reads images from the Folder in the row.\n**HTTP download** fetches each file as binary.\nTip: private Drive files need OAuth download (or make them publicly readable)."
},
"typeVersion": 1
},
{
"id": "31ef9def-afe5-4a94-94e9-f3f487804021",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
2176,
400
],
"parameters": {
"color": 6,
"width": 384,
"height": 128,
"content": "## STEP 3 · Host Images\n**Cloudinary upload** receives binary → returns URL.\nUse `secure_url` for Instagram.\nTip: prefer **signed uploads**; keep preset locked down."
},
"typeVersion": 1
},
{
"id": "ffb028a5-4b45-4e0b-ba99-0f48cd17ad31",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2496,
592
],
"parameters": {
"color": 7,
"height": 256,
"content": "## STEP 4 · IG Carousel & Log\n**Set IG vars** (token, user id, caption).\nCreate **media container** per image → **Aggregate IDs** → **Create carousel** → **Publish**.\nFinally **update Sheets**: `Status=Processed` for that `ExecuteId`."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"8c2b669d-9185-469f-9084-7075ffce5a90": {
"main": [
[
{
"node": "51f669e2-d933-47ce-9892-ba18bfaf92de",
"type": "main",
"index": 0
}
]
]
},
"51f669e2-d933-47ce-9892-ba18bfaf92de": {
"main": [
[
{
"node": "f0c8b3af-13db-4fdd-8cbc-46986ca7dd18",
"type": "main",
"index": 0
}
]
]
},
"662e0de0-26b0-4045-ae9e-e2f5b630419f": {
"main": [
[
{
"node": "8f4ad80f-53e2-4c86-be4a-02f4f8bb630e",
"type": "main",
"index": 0
}
]
]
},
"00027ef7-ece6-4b31-ad04-6508684b33ac": {
"main": [
[
{
"node": "7b22ae20-73c9-44f0-8f87-673836a47a25",
"type": "main",
"index": 0
}
]
]
},
"09cb809c-9997-413c-b94f-9203e80eaa1d": {
"main": [
[
{
"node": "d0453b3b-5c36-4a27-a808-65893674d451",
"type": "main",
"index": 0
}
]
]
},
"04b3998b-3fb1-4128-a77c-7ea8029235a0": {
"main": [
[
{
"node": "662e0de0-26b0-4045-ae9e-e2f5b630419f",
"type": "main",
"index": 0
}
]
]
},
"d0453b3b-5c36-4a27-a808-65893674d451": {
"main": [
[
{
"node": "04b3998b-3fb1-4128-a77c-7ea8029235a0",
"type": "main",
"index": 0
}
]
]
},
"f0c8b3af-13db-4fdd-8cbc-46986ca7dd18": {
"main": [
[
{
"node": "8f7f2ba9-4157-40a2-8561-17e77c74baef",
"type": "main",
"index": 0
}
]
]
},
"8f7f2ba9-4157-40a2-8561-17e77c74baef": {
"main": [
[
{
"node": "00027ef7-ece6-4b31-ad04-6508684b33ac",
"type": "main",
"index": 0
}
]
]
},
"7b22ae20-73c9-44f0-8f87-673836a47a25": {
"main": [
[
{
"node": "09cb809c-9997-413c-b94f-9203e80eaa1d",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
LinkedInおよびXウイルスのなコンテンツ自動エンジン
AIを使ってLinkedInとXにウイルスのなコンテンツを自動生成して公開する
If
Set
Wait
+
If
Set
Wait
156 ノードDiptamoy Barman
コンテンツ作成
再生リスト詳細設定ボットコピー
Suno、GPT-4、Runway、Creatomate を使って AI 生成の YouTube ミュージックプレイリストを作成
If
Set
Code
+
If
Set
Code
203 ノードJoseph
コンテンツ作成
マージ
Suno API、Claude、Telegramボットを使って完全な20曲YouTubeプレイリストを作成
If
Set
Code
+
If
Set
Code
150 ノードJoseph
コンテンツ作成
GPT-4、FAL AI、ElevenLabs を使用した SNS 用ブランディング動画生成
GPT-4、FAL AI、ElevenLabs を使ってソーシャルメディア向けブランド向けショート動画を生成する
If
Set
Wait
+
If
Set
Wait
43 ノードAashit Sharma
コンテンツ作成
リード呼出を自動化:VAPI、Googleスheetsへの記録、カレンダー予約
リード呼出の自動化:VAPI、Googleスプレッドシートへの記録とカレンダー予約
Set
Code
Webhook
+
Set
Code
Webhook
13 ノードMeak
コンテンツ作成