Files
n8n-flows/flows/recipe.json
T

227 lines
9.2 KiB
JSON

{
"updatedAt": "2026-04-11T10:18:14.686Z",
"createdAt": "2026-03-09T07:21:50.076Z",
"id": "mXYla2g5o8kLumAJ",
"name": "Recipe",
"description": null,
"active": true,
"isArchived": false,
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "recipe-import",
"options": {}
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
0,
0
],
"id": "77aa56a0-bb5c-4a0d-877e-940dc46a1169",
"webhookId": "ed5885d6-7a81-4a35-8998-8e540991ff21"
},
{
"parameters": {
"url": "={{$node[\"Webhook\"].json[\"body\"][\"url\"]}}",
"options": {}
},
"name": "Fetch HTML",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
224,
0
],
"id": "9f8833dd-be35-4d09-bbc0-53ac053ea3f2",
"retryOnFail": true,
"notesInFlow": false
},
{
"parameters": {
"method": "POST",
"url": "https://nc.nuclide.systems/index.php/apps/cookbook/api/v1/recipes",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{ $json.output }}",
"options": {}
},
"name": "Post to Cookbook",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
1088,
0
],
"id": "478bdf04-c93e-4e81-ad81-7584ee5e2c62",
"credentials": {
"httpBasicAuth": {
"id": "LIjnFZEJ6LNkhOAR",
"name": "Nextcloud"
}
}
},
{
"parameters": {
"text": "={{ $json.data }}",
"schemaType": "manual",
"inputSchema": "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Recipe (schema.org)\",\n \"description\": \"Ein Kochrezept basierend auf schema.org/Recipe\",\n \"type\": \"object\",\n \"required\": [\"@context\", \"@type\", \"name\", \"recipeIngredient\", \"recipeInstructions\"],\n \"properties\": {\n \"@context\": {\n \"type\": \"string\",\n \"const\": \"https://schema.org\"\n },\n \"@type\": {\n \"type\": \"string\",\n \"const\": \"Recipe\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Der Name des Gerichts.\"\n },\n \"image\": {\n \"oneOf\": [\n { \"type\": \"string\", \"format\": \"uri\" },\n { \"type\": \"array\", \"items\": { \"type\": \"string\", \"format\": \"uri\" } }\n ],\n \"description\": \"URL zu einem Bild des fertigen Gerichts.\"\n },\n \"author\": {\n \"type\": \"object\",\n \"properties\": {\n \"@type\": { \"type\": \"string\", \"enum\": [\"Person\", \"Organization\"] },\n \"name\": { \"type\": \"string\" }\n }\n },\n \"datePublished\": {\n \"type\": \"string\",\n \"format\": \"date\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Kurze Zusammenfassung des Rezepts.\"\n },\n \"prepTime\": {\n \"type\": \"string\",\n \"pattern\": \"^P([0-9]+Y)?([0-9]+M)?([0-9]+D)?T?([0-9]+H)?([0-9]+M)?([0-9]+S)?$\",\n \"description\": \"Vorbereitungszeit im ISO 8601 Format (z.B. PT15M).\"\n },\n \"cookTime\": {\n \"type\": \"string\",\n \"pattern\": \"^P([0-9]+Y)?([0-9]+M)?([0-9]+D)?T?([0-9]+H)?([0-9]+M)?([0-9]+S)?$\",\n \"description\": \"Kochzeit im ISO 8601 Format.\"\n },\n \"totalTime\": {\n \"type\": \"string\",\n \"pattern\": \"^P([0-9]+Y)?([0-9]+M)?([0-9]+D)?T?([0-9]+H)?([0-9]+M)?([0-9]+S)?$\",\n \"description\": \"Gesamtzeit im ISO 8601 Format.\"\n },\n \"recipeCategory\": {\n \"type\": \"string\",\n \"description\": \"z.B. 'Vorspeise' oder 'Dessert'.\"\n },\n \"recipeCuisine\": {\n \"type\": \"string\",\n \"description\": \"z.B. 'Italienisch' oder 'Franz\u00f6sisch'.\"\n },\n \"recipeYield\": {\n \"oneOf\": [\n { \"type\": \"string\" },\n { \"type\": \"number\" }\n ],\n \"description\": \"Menge, die das Rezept ergibt (z.B. '4 Portionen').\"\n },\n \"nutrition\": {\n \"type\": \"object\",\n \"properties\": {\n \"@type\": { \"type\": \"string\", \"const\": \"NutritionInformation\" },\n \"calories\": { \"type\": \"string\", \"description\": \"z.B. '240 calories'\" },\n \"fatContent\": { \"type\": \"string\" },\n \"proteinContent\": { \"type\": \"string\" },\n \"carbohydrateContent\": { \"type\": \"string\" }\n }\n },\n \"recipeIngredient\": {\n \"type\": \"array\",\n \"items\": { \"@type\": \"PropertyValue\", \"value\": 1, \"name\": \"egg\" },\n \"description\": \"Liste der ben\u00f6tigten Zutaten.\"\n },\n \"recipeInstructions\": {\n \"type\": \"array\",\n \"items\": {\n \"oneOf\": [\n { \"type\": \"string\" },\n {\n \"type\": \"object\",\n \"properties\": {\n \"@type\": { \"type\": \"string\", \"const\": \"HowToStep\" },\n \"text\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" },\n \"url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"image\": { \"type\": \"string\", \"format\": \"uri\" }\n },\n \"required\": [\"text\"]\n }\n ]\n },\n \"description\": \"Schritt-f\u00fcr-Schritt-Anleitung.\"\n },\n \"aggregateRating\": {\n \"type\": \"object\",\n \"properties\": {\n \"@type\": { \"type\": \"string\", \"const\": \"AggregateRating\" },\n \"ratingValue\": { \"type\": \"number\" },\n \"reviewCount\": { \"type\": \"number\" }\n }\n }\n }\n}",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"typeVersion": 1.2,
"position": [
688,
0
],
"id": "5f9d6b78-9430-4008-85bb-7633568e6311",
"name": "Information Extractor"
},
{
"parameters": {
"html": "={{ $json.data }}",
"options": {
"useLinkReferenceDefinitions": true
}
},
"type": "n8n-nodes-base.markdown",
"typeVersion": 1,
"position": [
432,
0
],
"id": "b363c14e-2ee8-4608-a8ff-e567583e8097",
"name": "Markdown"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "SAIA/llama-3.1-sauerkrautlm-70b-instruct",
"mode": "list",
"cachedResultName": "SAIA/llama-3.1-sauerkrautlm-70b-instruct"
},
"responsesApiEnabled": false,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.3,
"position": [
688,
192
],
"id": "c7012e63-c468-45d4-bcb5-ca1b1d9e2180",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"id": "5sHTE0Wl8Qi6twzX",
"name": "nuclide.systems"
}
}
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Fetch HTML",
"type": "main",
"index": 0
}
]
]
},
"Fetch HTML": {
"main": [
[
{
"node": "Markdown",
"type": "main",
"index": 0
}
]
]
},
"Information Extractor": {
"main": [
[
{
"node": "Post to Cookbook",
"type": "main",
"index": 0
}
]
]
},
"Markdown": {
"main": [
[
{
"node": "Information Extractor",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Information Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"binaryMode": "separate",
"availableInMCP": false,
"timeSavedMode": "fixed",
"timezone": "Europe/Berlin",
"callerPolicy": "workflowsFromSameOwner",
"saveDataSuccessExecution": "none",
"redactionPolicy": "none"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"pinData": {},
"versionId": "de91ceef-da7e-4bbc-9d91-a2ea04763d6f",
"activeVersionId": "de91ceef-da7e-4bbc-9d91-a2ea04763d6f",
"versionCounter": 375,
"triggerCount": 1,
"tags": [],
"shared": [
{
"updatedAt": "2026-03-09T07:21:50.078Z",
"createdAt": "2026-03-09T07:21:50.078Z",
"role": "workflow:owner",
"workflowId": "mXYla2g5o8kLumAJ",
"projectId": "hkIaTyp1CKVS8ywT",
"project": {
"updatedAt": "2026-03-09T07:21:36.510Z",
"createdAt": "2026-03-09T07:20:59.502Z",
"id": "hkIaTyp1CKVS8ywT",
"name": "Florian Krebs <fkrebs@nucli.de>",
"type": "personal",
"icon": null,
"description": null,
"creatorId": "8af5c813-f89c-4b83-bcf8-5d59864a038a"
}
}
],
"versionMetadata": {
"name": "Version de91ceef",
"description": ""
}
}