Datalab.to API를 사용하여 PDF, DOC 및 이미지를 Markdown로 변환
중급
이것은Document Extraction, Multimodal AI분야의자동화 워크플로우로, 11개의 노드를 포함합니다.주로 Set, Wait, Switch, FormTrigger, HttpRequest 등의 노드를 사용하며. Datalab.to API를 사용하여 PDF, DOC 및 이미지를 Markdown로 변환
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "b3c467df4053d13fe31cc98f3c66fa1d16300ba750506bfd019a0913cec71ea3"
},
"nodes": [
{
"id": "c302f8e5-6bed-4b64-8d52-33eaa5fce86a",
"name": "폼 제출 시",
"type": "n8n-nodes-base.formTrigger",
"position": [
-336,
48
],
"webhookId": "a857ad3f-4b4d-4574-b503-809a95b1fbbf",
"parameters": {
"options": {},
"formTitle": "upload file",
"formFields": {
"values": [
{
"fieldType": "file",
"fieldLabel": "file",
"multipleFiles": false,
"requiredField": true
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3cc12307-f5da-476a-811a-79920f20abf7",
"name": "Markdown 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
336,
48
],
"parameters": {
"url": "={{ $json.request_check_url }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "7Wx4MGEDgCG0D7fT",
"name": "datalab.io"
}
},
"typeVersion": 4.2
},
{
"id": "ec9e9703-fb38-4ba5-97f6-a73bee7c47f7",
"name": "Datalab API로 전송",
"type": "n8n-nodes-base.httpRequest",
"position": [
-112,
48
],
"parameters": {
"url": "https://www.datalab.to/api/v1/marker",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "max_pages",
"value": "4"
},
{
"name": "use_llm",
"value": "true"
},
{
"name": "output_format",
"value": "markdown"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "file"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "7Wx4MGEDgCG0D7fT",
"name": "datalab.io"
}
},
"typeVersion": 4.2
},
{
"id": "542793bf-05c1-4c6c-b0e0-b087669f966c",
"name": "필드 설정",
"type": "n8n-nodes-base.set",
"position": [
560,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "20280dbd-8188-4f5e-8e4e-74621d65d40a",
"name": "markdown",
"type": "string",
"value": "={{ $json.markdown }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "cb900de1-e4b1-488f-8a12-9946bb8466f6",
"name": "대기",
"type": "n8n-nodes-base.wait",
"position": [
112,
48
],
"webhookId": "7b49cf9b-9859-4361-a8b8-2407d114d418",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "9fcdcaab-2041-4411-8ec1-10edfe29f1d6",
"name": "스티커 노트13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1424,
-32
],
"parameters": {
"width": 972,
"height": 564,
"content": ""
},
"typeVersion": 1
},
{
"id": "32550fd8-2570-4e42-b249-8d53288da00a",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
-32
],
"parameters": {
"width": 1200,
"height": 272,
"content": "## Convert Files to Markdown for LLM with Datalab.to"
},
"typeVersion": 1
},
{
"id": "f968189c-83c4-436c-91c6-dc0313ee4256",
"name": "스티커 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
272
],
"parameters": {
"width": 1200,
"height": 256,
"content": "## Guide\nThis simple automation enables you to convert .doc, .pdf, .png, .jpg, and .webp files to markdown using datalab.to API. This is useful for llm workflows for ai processing. \n\nSetup \n- Sign up to datalab.to to get your api key. Get the free $5 credits by entering your payment method.\n- Set up a Generic Header with name \"X-API-Key\" and api key as the value. \n- Thats it you are good to go.\n\nLearn more on tweaking the body payload here; [api reference](https://www.datalab.to/redoc#operation/marker_api_v1_marker_post)"
},
"typeVersion": 1
},
{
"id": "883e4090-cb4f-4de6-bfc4-4c5c7ce85728",
"name": "스티커 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
-32
],
"parameters": {
"color": 6,
"width": 400,
"height": 416,
"content": "## Polling Confirmation Node\n\nYou can add this node after \"Get Markdown\" node to confirm if the get request worked or the doc is still being processed. If the outcome is \"*success*\" then proceed, if \"*failed*\" then plug that route to the wait node, to try again. You can also add more outcomes of this node to cover api call fails. If you are processing **larger files**, increase the wait time."
},
"typeVersion": 1
},
{
"id": "4f0c8ae8-e92e-419f-a609-d426db8321d8",
"name": "스위치",
"type": "n8n-nodes-base.switch",
"disabled": true,
"position": [
832,
192
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "success",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cbac06bd-0ee6-40ac-bad9-bdb0929ca0ad",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "complete"
}
]
},
"renameOutput": true
},
{
"outputKey": "failed",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bc2570f6-c9ec-4c4f-9a04-863be5fb1ced",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "complete"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "33ec2be6-e49a-4973-b105-5db71fc2cf40",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
400
],
"parameters": {
"color": 4,
"width": 400,
"height": 128,
"content": "## Wanna work with me?\n**Email**: joseph@uppfy.com\n**X/Twitter**: [@juppfy](https://x.com/juppfy)"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"cb900de1-e4b1-488f-8a12-9946bb8466f6": {
"main": [
[
{
"node": "3cc12307-f5da-476a-811a-79920f20abf7",
"type": "main",
"index": 0
}
]
]
},
"3cc12307-f5da-476a-811a-79920f20abf7": {
"main": [
[
{
"node": "542793bf-05c1-4c6c-b0e0-b087669f966c",
"type": "main",
"index": 0
}
]
]
},
"c302f8e5-6bed-4b64-8d52-33eaa5fce86a": {
"main": [
[
{
"node": "ec9e9703-fb38-4ba5-97f6-a73bee7c47f7",
"type": "main",
"index": 0
}
]
]
},
"ec9e9703-fb38-4ba5-97f6-a73bee7c47f7": {
"main": [
[
{
"node": "cb900de1-e4b1-488f-8a12-9946bb8466f6",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 문서 추출, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
PDF에서 주문으로
AI를 사용한 PDF 구매 주문서를 Adobe Commerce 판매 주문서로 자동 변환
If
Set
Code
+
If
Set
Code
96 노드JKingma
문서 추출
GPT-4.1-mini, Firecrawl, Parsera를 사용하여 웹사이트를 LLM 준비된 지식 라이브러리로 변환합니다.
GPT-4.1-mini, Firecrawl, Parsera를 사용하여 웹사이트를 LLM 준비된 지식 라이브러리로 변환합니다.
Set
Switch
Split Out
+
Set
Switch
Split Out
31 노드Aayushman Sharma
문서 추출
1. 플레이리스트 상세 설정 로봇 복사본
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
콘텐츠 제작
AI 기반 WhatsApp 지원 봇(Google Sheets 티켓 생성)
AI 기반 WhatsApp 지원 봇(Google Sheets 티켓 생성)
Set
Xml
Code
+
Set
Xml
Code
35 노드Zain Khan
지원 챗봇
익명화 작업 생성
BlurIt을 사용하여 미디어 속 얼굴 및 번호판 익명화
Set
Wait
Merge
+
Set
Wait
Merge
16 노드Blurit
기타
워크플로우 정보
난이도
중급
노드 수11
카테고리2
노드 유형6
저자
Joseph
@mjombaAutomation expert specializing in building smart, scalable workflows using tools like n8n, Make, and Airtable. I help businesses save time, reduce manual work, and grow faster with tailored automation solutions. Feel free to reach out at joseph@uppfy.com to discuss your project. I am also on x.com/juppfy
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유