Notion과 GPT-4를 사용한 SNS 자동 게시기 (Instagram 자동 게시 + Threads/X/블로그 초안)
고급
이것은Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 Notion, Webhook, HttpRequest, OpenAi 등의 노드를 사용하며. GPT-4, Notion, Instagram API로 소셜 미디어 콘텐츠 자동 생성 및 게시
사전 요구사항
- •Notion API Key
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (17)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "A90U504fcvjJqgF5",
"meta": {
"instanceId": "ad59d09d8e026d0e92690243618d86d51b0293b236148394ca356eae1d1ea59b"
},
"name": "SNS Auto-Poster with Notion & GPT-4 (Instagram Auto + Threads/X/Blog Drafts)",
"tags": [],
"nodes": [
{
"id": "feef23dc-de7b-426f-9e86-26e3ba755c16",
"name": "Step 1: 입력",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
-64
],
"parameters": {
"width": 464,
"height": 448,
"content": "# Step 1: Input\n\n- Receive raw text via Webhook (e.g., LINE Bot)\n- Save input automatically into Notion database"
},
"typeVersion": 1
},
{
"id": "a58fb4c9-73e7-486b-aaa4-8bb537c63117",
"name": "Step 2: 캡션 생성",
"type": "n8n-nodes-base.stickyNote",
"position": [
144,
-64
],
"parameters": {
"color": 3,
"width": 2224,
"height": 448,
"content": "# Step 2: Generate Captions\n\n- Use GPT-4o to create captions for multiple platforms\n- Instagram (for auto-post), Threads, X/Twitter, Blog (draft only)\n- Save all drafts back into Notion for tracking and reuse"
},
"typeVersion": 1
},
{
"id": "60353fc8-ea55-46a6-af74-744ff9bc99cf",
"name": "Step 3: 이미지 처리",
"type": "n8n-nodes-base.stickyNote",
"position": [
2416,
-64
],
"parameters": {
"color": 4,
"width": 416,
"height": 448,
"content": "# Step 3: Image Handling\n\n- Fetch book cover image from external APIs (Google Books, OpenBD, OpenLibrary)\n- Upload selected image to Cloudinary\n- Generate final optimized URL for Instagram posting"
},
"typeVersion": 1
},
{
"id": "d6e2fe83-ee28-4917-962b-7d3eff5e3be7",
"name": "Step 4: Instagram 게시",
"type": "n8n-nodes-base.stickyNote",
"position": [
2864,
-64
],
"parameters": {
"color": 6,
"width": 384,
"height": 448,
"content": "# Step 4: Instagram Publish\n\n- Create a media container via Instagram Graph API\n- Publish automatically with the generated caption + image\n- Verify post status before final publishing"
},
"typeVersion": 1
},
{
"id": "77eac861-c22d-46b9-b321-91f275c7e2a9",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"notes": "Receive text input (from LINE or other source).",
"position": [
-288,
160
],
"webhookId": "d00a0c29-6e20-47f7-b57a-c60ed357c486",
"parameters": {
"path": "line-book-output",
"options": {},
"httpMethod": "POST",
"responseMode": "=onReceived"
},
"typeVersion": 2
},
{
"id": "d9caab24-f532-455a-b19d-d9cff6dc1fe1",
"name": "Notion 페이지 생성",
"type": "n8n-nodes-base.notion",
"notes": "Create a new Notion page with input text.",
"position": [
-64,
160
],
"parameters": {
"options": {},
"resource": "databasePage",
"databaseId": "<your_database_id>",
"propertiesUi": {
"propertyValues": [
{
"key": "Title|title",
"textContent": "={{ $json.body.events[0].message.text }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "bf244b57-2dcf-4232-9460-e77c882d5982",
"name": "Instagram 캡션 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "Generate Instagram caption using GPT-4.",
"position": [
160,
160
],
"parameters": {
"modelId": {
"mode": "list",
"value": "chatgpt-4o-latest"
},
"options": {},
"messages": {
"values": [
{
"content": "=Summarize for Instagram (<=1000 chars, include hashtags):\n{{ $json.name }}"
}
]
}
},
"typeVersion": 1.8
},
{
"id": "f10bfbfa-031b-4299-b4d4-f91707ced60c",
"name": "Instagram 캡션 저장",
"type": "n8n-nodes-base.notion",
"position": [
512,
160
],
"parameters": {
"pageId": {
"mode": "url",
"value": "={{ $('Notion Page Create').item.json.url }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Instagram Caption|rich_text",
"textContent": "={{ $json.message.content }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2f1034e6-61fc-4c78-adfd-dd4d02b8dbe5",
"name": "Threads 캡션 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
736,
160
],
"parameters": {
"modelId": {
"mode": "list",
"value": "chatgpt-4o-latest"
},
"options": {},
"messages": {
"values": [
{
"content": "=Summarize for Threads (<=500 chars, include hashtags):\n{{ $json.name }}"
}
]
}
},
"typeVersion": 1.8
},
{
"id": "7d9b7435-1580-40fb-8b4d-e3e9fa1364fe",
"name": "Threads 캡션 저장",
"type": "n8n-nodes-base.notion",
"position": [
1088,
160
],
"parameters": {
"pageId": {
"mode": "url",
"value": "={{ $('Notion Page Create').item.json.url }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Threads Caption|rich_text",
"textContent": "={{ $json.message.content }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e71cc3dd-4c56-46f5-b590-8a6bab4c33b7",
"name": "X 캡션 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1312,
160
],
"parameters": {
"modelId": {
"mode": "list",
"value": "chatgpt-4o-latest"
},
"options": {},
"messages": {
"values": [
{
"content": "=Summarize for X/Twitter (<=280 chars, include hashtags):\n{{ $json.name }}"
}
]
}
},
"typeVersion": 1.8
},
{
"id": "d9ed8fd0-cfa5-4e3f-84b8-b4c45d5ada00",
"name": "X 캡션 저장",
"type": "n8n-nodes-base.notion",
"position": [
1664,
160
],
"parameters": {
"pageId": {
"mode": "url",
"value": "={{ $('Notion Page Create').item.json.url }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "X Caption|rich_text",
"textContent": "={{ $json.message.content }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "bb04cea6-8bfe-4167-a688-74f0b56bdef8",
"name": "블로그 초안 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1888,
160
],
"parameters": {
"modelId": {
"mode": "list",
"value": "chatgpt-4o-latest"
},
"options": {},
"messages": {
"values": [
{
"content": "=Rewrite into blog article (<=1800 chars, include Title, TOC, Body):\n{{ $json.name }}"
}
]
}
},
"typeVersion": 1.8
},
{
"id": "ba0f53a5-ac72-4fc6-925e-8bee44e32b32",
"name": "블로그 초안 저장",
"type": "n8n-nodes-base.notion",
"position": [
2240,
160
],
"parameters": {
"pageId": {
"mode": "url",
"value": "={{ $('Notion Page Create').item.json.url }}"
},
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Blog Draft|rich_text",
"textContent": "={{ $json.message.content }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "813fdc45-f135-4f91-a35a-7711f86de3f4",
"name": "Cloudinary에 업로드",
"type": "n8n-nodes-base.httpRequest",
"position": [
2464,
160
],
"parameters": {
"url": "https://api.cloudinary.com/v1_1/<your_cloud_name>/image/upload",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data1"
},
{
"name": "folder",
"value": "ig/books"
},
{
"name": "public_id",
"value": "=ig_books_{{ $json.isbn13 || Date.now() }}_cover"
},
{
"name": "upload_preset",
"value": "<your_upload_preset>"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "74721ffb-a236-4fdf-b4c0-23745f357c65",
"name": "Instagram 미디어 컨테이너",
"type": "n8n-nodes-base.httpRequest",
"position": [
2688,
160
],
"parameters": {
"url": "https://graph.facebook.com/v23.0/17841458946648987/media",
"method": "POST",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "access_token",
"value": "={{$env.IG_ACCESS_TOKEN}}"
},
{
"name": "image_url",
"value": "={{$('Upload to Cloudinary').item.json.secure_url}}"
},
{
"name": "caption",
"value": "={{ $('Instagram Caption Save').item.json[\"Instagram Caption|rich_text\"][0].plain_text }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "9e25da48-1164-4b10-94c7-2108cdbd67ff",
"name": "Instagram 게시",
"type": "n8n-nodes-base.httpRequest",
"position": [
2992,
160
],
"parameters": {
"url": "https://graph.facebook.com/v23.0/17841458946648987/media_publish",
"method": "POST",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "creation_id",
"value": "={{ $('Instagram Media Container').item.json.id }}"
},
{
"name": "access_token",
"value": "={{$env.IG_ACCESS_TOKEN}}"
}
]
}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "840dc1ba-d065-490f-85da-563e46ebe80d",
"connections": {
"77eac861-c22d-46b9-b321-91f275c7e2a9": {
"main": [
[
{
"node": "d9caab24-f532-455a-b19d-d9cff6dc1fe1",
"type": "main",
"index": 0
}
]
]
},
"d9ed8fd0-cfa5-4e3f-84b8-b4c45d5ada00": {
"main": [
[
{
"node": "bb04cea6-8bfe-4167-a688-74f0b56bdef8",
"type": "main",
"index": 0
}
]
]
},
"ba0f53a5-ac72-4fc6-925e-8bee44e32b32": {
"main": [
[
{
"node": "813fdc45-f135-4f91-a35a-7711f86de3f4",
"type": "main",
"index": 0
}
]
]
},
"d9caab24-f532-455a-b19d-d9cff6dc1fe1": {
"main": [
[
{
"node": "bf244b57-2dcf-4232-9460-e77c882d5982",
"type": "main",
"index": 0
}
]
]
},
"e71cc3dd-4c56-46f5-b590-8a6bab4c33b7": {
"main": [
[
{
"node": "d9ed8fd0-cfa5-4e3f-84b8-b4c45d5ada00",
"type": "main",
"index": 0
}
]
]
},
"bb04cea6-8bfe-4167-a688-74f0b56bdef8": {
"main": [
[
{
"node": "ba0f53a5-ac72-4fc6-925e-8bee44e32b32",
"type": "main",
"index": 0
}
]
]
},
"7d9b7435-1580-40fb-8b4d-e3e9fa1364fe": {
"main": [
[
{
"node": "e71cc3dd-4c56-46f5-b590-8a6bab4c33b7",
"type": "main",
"index": 0
}
]
]
},
"813fdc45-f135-4f91-a35a-7711f86de3f4": {
"main": [
[
{
"node": "74721ffb-a236-4fdf-b4c0-23745f357c65",
"type": "main",
"index": 0
}
]
]
},
"f10bfbfa-031b-4299-b4d4-f91707ced60c": {
"main": [
[
{
"node": "2f1034e6-61fc-4c78-adfd-dd4d02b8dbe5",
"type": "main",
"index": 0
}
]
]
},
"2f1034e6-61fc-4c78-adfd-dd4d02b8dbe5": {
"main": [
[
{
"node": "7d9b7435-1580-40fb-8b4d-e3e9fa1364fe",
"type": "main",
"index": 0
}
]
]
},
"74721ffb-a236-4fdf-b4c0-23745f357c65": {
"main": [
[
{
"node": "9e25da48-1164-4b10-94c7-2108cdbd67ff",
"type": "main",
"index": 0
}
]
]
},
"bf244b57-2dcf-4232-9460-e77c882d5982": {
"main": [
[
{
"node": "f10bfbfa-031b-4299-b4d4-f91707ced60c",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 기타, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Gmail 이메일 분류기와 GPT-4 자동 원고 답변 생성
Gmail 메일 분류기, GPT-4로 자동으로 초안 답변 생성
Gmail
Gmail Trigger
Open Ai
+
Gmail
Gmail Trigger
Open Ai
15 노드Supira Inc.
기타
GPT-5 nano 및 Yoast SEO를 사용한 WordPress SEO 최적화 자동화
GPT-5 nano 및 Yoast SEO를 사용한 WordPress SEO 최적화 자동화
Set
Code
Gmail
+
Set
Code
Gmail
35 노드Oriol Seguí
기타
뉴스 자동 수집기 → Google 스프레드시트
NewsAPI, OpenAI 및 Google 스프레드시트를 사용하여 다양한 언어의 뉴스를 수집 및 요약
If
Set
Code
+
If
Set
Code
19 노드Supira Inc.
AI 요약
매일 WhatsApp 그룹 지능형 분석: GPT-4.1 분석 및 음성 메시지 변환
매일 WhatsApp 그룹 지능 분석: GPT-4.1 분석 및 음성 메시지 트랜스크립션
If
Set
Code
+
If
Set
Code
52 노드Daniel Lianes
기타
심층 연구 인공지능에이전트
심층 연구 인공지능 - 자동 연구 및 Notion 보고서 생성기
Set
Code
Filter
+
Set
Code
Filter
43 노드Aziz B
시장 조사
演示 - 分享模板 - 에서职位描述构建候选人短名单
AI招聘流程:사용Apollo및Airtable에서职位로候选人短名单
Set
Limit
Switch
+
Set
Limit
Switch
40 노드Fabian Herhold
기타