Sous-flux de travail pour la valeur des actifs YNAB
Ceci est unPersonal Productivity, Multimodal AIworkflow d'automatisation du domainecontenant 17 nœuds.Utilise principalement des nœuds comme If, Set, Crypto, Discord, HttpRequest. Automatisation des mises à jour de la valeur immobilière dans YNAB avec Rentcast.io et les rappels Discord
- •Token Bot Discord ou Webhook
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
Nœuds utilisés (17)
{
"id": "d3bI8kfQ6uKjfER3",
"meta": {
"instanceId": "ae3a7d69e340d9eec0196c03fd00e81b6e376d3084103c5850dd2cee1ac033f6"
},
"name": "YNAB Property Value Subworkflow",
"tags": [],
"nodes": [
{
"id": "d46c4d7e-10ff-498c-a009-9f684bd895f4",
"name": "Aucune opération, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
1344,
144
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e6ee1747-c27b-4cfc-94fd-4e3aa9daea9d",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
224,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "288b3077-cf0f-4e97-b8ee-460cbd788e54",
"name": "rentcast_api",
"type": "string",
"value": "={{ $json.rentcast_api }}"
},
{
"id": "18b6218a-822d-4458-9cfd-abd3e9682139",
"name": "ynab_api",
"type": "string",
"value": "={{ $json.ynab_api }}"
},
{
"id": "18f5b320-426b-4d62-97e4-dbfc2b9698be",
"name": "address",
"type": "string",
"value": "={{ $json.address }}"
},
{
"id": "87861b17-9350-4c75-aea1-e802a4801dbe",
"name": "propertyType",
"type": "string",
"value": "={{ $json.propertyType }}"
},
{
"id": "c0e713a4-aad3-4d6f-b757-232ee6e148bd",
"name": "bedrooms",
"type": "number",
"value": "={{ $json.bedrooms }}"
},
{
"id": "96902f6b-ba5a-45af-9ccc-a354e915bf52",
"name": "bathrooms",
"type": "number",
"value": "={{ $json.bathrooms }}"
},
{
"id": "9e0e7ad0-1eac-47cf-a9c4-77d9abb55d88",
"name": "squareFootage",
"type": "number",
"value": "={{ $json.squareFootage }}"
},
{
"id": "6a079c8e-e3f2-455c-8749-d5f0634ea2c5",
"name": "ynab_budget",
"type": "string",
"value": "={{ $json.ynab_budget }}"
},
{
"id": "c4bce4a9-816f-4c72-a1d3-84181a2c1c63",
"name": "ynab_account",
"type": "string",
"value": "={{ $json.ynab_account }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "73000abb-1a23-4f86-a091-d47973c40710",
"name": "YNAB Asset Value",
"type": "n8n-nodes-base.httpRequest",
"position": [
672,
48
],
"parameters": {
"url": "=https://api.ynab.com/v1/budgets/{{$('Edit Fields').item.json.ynab_budget}}/accounts/{{$('Edit Fields').item.json.ynab_account}}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $('Edit Fields').item.json.ynab_api }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f36fdf71-cc82-4c9f-a3e4-2201a34a40a6",
"name": "Get Value",
"type": "n8n-nodes-base.set",
"position": [
896,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ce68c03d-a486-4fb1-a688-5b4b92b79b14",
"name": "data.account.balance",
"type": "number",
"value": "={{ $json.data.account.balance /1000}}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "8cd50113-3a53-43fa-a0a9-d381d49d7ad0",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1120,
48
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1c3b354c-9fc2-4468-8130-1c14bc674645",
"operator": {
"type": "number",
"operation": "notEquals"
},
"leftValue": "={{ Math.round(($('Get Property Value').item.json.price * 1000) - $('Get Value').item.json.data.account.balance * 1000) }}",
"rightValue": 0
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e81cd156-355e-4add-8f1c-783f2910b87a",
"name": "Get Property Value",
"type": "n8n-nodes-base.httpRequest",
"position": [
448,
48
],
"parameters": {
"url": "=https://api.rentcast.io/v1/avm/value?address={{encodeURIComponent($json.address)}}&propertyType={{encodeURIComponent($json.propertyType)}}&bedrooms={{$json.bedrooms}}&bathrooms={{$json.bathrooms}}&squareFootage={{$json.squareFootage}}&compCount=5",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "X-Api-Key",
"value": "={{ $json.rentcast_api }}"
},
{
"name": "accept",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "a5d5449c-be98-4f57-81d8-23c625fcf9aa",
"name": "Requête HTTP",
"type": "n8n-nodes-base.httpRequest",
"position": [
1568,
-48
],
"parameters": {
"url": "=https://api.ynab.com/v1/budgets/{{ $('Edit Fields').item.json.ynab_budget }}/transactions",
"method": "POST",
"options": {},
"jsonBody": "={\n \"transaction\": {\n \"account_id\": \"{{ $('Edit Fields').item.json.ynab_account }}\",\n \"date\": \"{{$today.format('yyyy-MM-dd')}}\",\n \"amount\": {{ Math.round(($('Get Property Value').item.json.price * 1000) - $('Get Value').item.json.data.account.balance * 1000) }},\n \"payee_name\": \"n8n\",\n \"memo\": \"n8n adjustment from rentcast.io\",\n \"cleared\": \"reconciled\",\n \"approved\": true,\n \"flag_color\": \"yellow\",\n \"subtransactions\": [],\n \"import_id\": \"{{ $json.data }}\"\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $('Edit Fields').item.json.ynab_api }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "639257f6-0f8e-4306-bdeb-32f7d1bf4536",
"name": "Chiffrement",
"type": "n8n-nodes-base.crypto",
"position": [
1344,
-48
],
"parameters": {
"action": "generate"
},
"typeVersion": 1
},
{
"id": "d1740d6a-2c15-4bfc-9ccd-37ab0834a707",
"name": "Début",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
16,
48
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "rentcast_api"
},
{
"name": "ynab_api"
},
{
"name": "address"
},
{
"name": "propertyType"
},
{
"name": "bedrooms",
"type": "number"
},
{
"name": "squareFootage",
"type": "number"
},
{
"name": "ynab_budget"
},
{
"name": "ynab_account"
},
{
"name": "bathrooms",
"type": "number"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "b12c0b5d-21a5-450c-907e-111d0ed59cfb",
"name": "Discord No Change",
"type": "n8n-nodes-base.discord",
"position": [
1568,
144
],
"webhookId": "2dbc856f-8ac7-46ee-92df-46157dd4ed35",
"parameters": {
"content": "=No change in property value\nAddress: {{ $('Edit Fields').item.json.address }}\nValue: {{ '$' + ($('Get Value').item.json.data.account.balance).toLocaleString('en-US') }}",
"options": {
"username": "n8n Equity Watcher",
"avatar_url": "https://www.iconsdb.com/icons/download/navy-blue/house-64.png"
},
"authentication": "webhook"
},
"credentials": {
"discordWebhookApi": {
"id": "jtusjd0AfNR35Ocl",
"name": "Discord Webhook Budget Items"
}
},
"typeVersion": 2
},
{
"id": "8d434762-5406-45a4-bdab-111f5e63d9c5",
"name": "Discord Changed",
"type": "n8n-nodes-base.discord",
"position": [
1824,
-48
],
"webhookId": "2dbc856f-8ac7-46ee-92df-46157dd4ed35",
"parameters": {
"content": "=💵 Property Value Changed \nAddresss: {{ $('Edit Fields').item.json.address }}\nValue: {{ '$' + ($('Get Property Value').item.json.price).toLocaleString('en-US') }}\n\n",
"options": {
"username": "n8n Equity Watcher",
"avatar_url": "https://www.iconsdb.com/icons/download/navy-blue/house-64.png"
},
"authentication": "webhook"
},
"credentials": {
"discordWebhookApi": {
"id": "jtusjd0AfNR35Ocl",
"name": "Discord Webhook Budget Items"
}
},
"typeVersion": 2
},
{
"id": "9d58ca53-e05e-4cae-ad81-c6198cb15834",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
-240
],
"parameters": {
"width": 2064,
"height": 688,
"content": "## YNAB Property Value\n### Leverages the rentcast.io api to fetch approximate value of real estate. \n### It then creates an adjustment transaction in YNAB to reflect the asset value. \n### Rentago provides 50 free api requests per month, then its $0.20 per request. \n"
},
"typeVersion": 1
},
{
"id": "693b592c-0e99-4851-9d03-15a355821e15",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-32
],
"parameters": {
"color": 4,
"width": 208,
"height": 256,
"content": "### rentago.io api fetch"
},
"typeVersion": 1
},
{
"id": "8ddbddb4-009f-4886-bd1d-c1571e25c186",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1056,
-32
],
"parameters": {
"color": 4,
"height": 256,
"content": "### If property value has changed 0 dollars, do nothing.\n"
},
"typeVersion": 1
},
{
"id": "8e9ef8fb-002a-48ba-94e4-72b58a807ec7",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
624,
-32
],
"parameters": {
"color": 4,
"width": 400,
"height": 256,
"content": "### Compare rentago property value with the current asset value in YNAB"
},
"typeVersion": 1
},
{
"id": "0d4a761c-9789-4af8-b0a1-587434aa311a",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-32
],
"parameters": {
"color": 4,
"width": 400,
"height": 256,
"content": "### This workflow is intended to be a subworkflow that can be called multiple times (once per property)"
},
"typeVersion": 1
},
{
"id": "88898c45-2502-4cb0-8187-de6d8efc9b5d",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1504,
-128
],
"parameters": {
"color": 4,
"height": 256,
"content": "### Create adjustment transaction in YNAB\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "dba17b05-6291-482b-8e8c-dcec6454254a",
"connections": {
"8cd50113-3a53-43fa-a0a9-d381d49d7ad0": {
"main": [
[
{
"node": "Crypto",
"type": "main",
"index": 0
}
],
[
{
"node": "No Operation, do nothing",
"type": "main",
"index": 0
}
]
]
},
"Start": {
"main": [
[
{
"node": "e6ee1747-c27b-4cfc-94fd-4e3aa9daea9d",
"type": "main",
"index": 0
}
]
]
},
"Crypto": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"f36fdf71-cc82-4c9f-a3e4-2201a34a40a6": {
"main": [
[
{
"node": "8cd50113-3a53-43fa-a0a9-d381d49d7ad0",
"type": "main",
"index": 0
}
]
]
},
"e6ee1747-c27b-4cfc-94fd-4e3aa9daea9d": {
"main": [
[
{
"node": "e81cd156-355e-4add-8f1c-783f2910b87a",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "8d434762-5406-45a4-bdab-111f5e63d9c5",
"type": "main",
"index": 0
}
]
]
},
"73000abb-1a23-4f86-a091-d47973c40710": {
"main": [
[
{
"node": "f36fdf71-cc82-4c9f-a3e4-2201a34a40a6",
"type": "main",
"index": 0
}
]
]
},
"e81cd156-355e-4add-8f1c-783f2910b87a": {
"main": [
[
{
"node": "73000abb-1a23-4f86-a091-d47973c40710",
"type": "main",
"index": 0
}
]
]
},
"No Operation, do nothing": {
"main": [
[
{
"node": "b12c0b5d-21a5-450c-907e-111d0ed59cfb",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Productivité personnelle, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
spencer owen
@spuderPartager ce workflow