@@ -34,10 +34,10 @@ Upload to AWS S3
3434
3535{% assign quickExample = '
3636 ===
37- image: /images /samples/analytics/n8n-node/quick-example.png
37+ image: https://img.thingsboard.io /samples/analytics/n8n-node/quick-example.png
3838 title: The complete workflow showing all nodes: Schedule trigger → Code (time calc) → Get device → Get timeseries → Convert to file → AWS S3 upload.
3939 ===
40- image: /images /samples/analytics/n8n-node/quick-example-result.png
40+ image: https://img.thingsboard.io /samples/analytics/n8n-node/quick-example-result.png
4141 title: Successful execution result showing the telemetry data exported to S3 as a JSON file.
4242'
4343%}
@@ -103,16 +103,16 @@ Before you start, make sure n8n is already running. Check the [official n8n docs
103103
104104{% assign n8nGuiInstallation = '
105105 ===
106- image: /images /samples/analytics/n8n-node/n8n-gui-installation-1.png
106+ image: https://img.thingsboard.io /samples/analytics/n8n-node/n8n-gui-installation-1.png
107107 title: Open ** n8n** in your browser. In the bottom-left corner, click the ** three dots** button and select ** Settings** from the dropdown menu.
108108 ===
109- image: /images /samples/analytics/n8n-node/n8n-gui-installation-2.png
109+ image: https://img.thingsboard.io /samples/analytics/n8n-node/n8n-gui-installation-2.png
110110 title: Go to the **Community Nodes** tab and click **Install a community node**.
111111 ===
112- image: /images /samples/analytics/n8n-node/n8n-gui-installation-3.png
112+ image: https://img.thingsboard.io /samples/analytics/n8n-node/n8n-gui-installation-3.png
113113 title: Enter the package name: `@thingsboard/n8n-nodes-thingsboard` and click **Install**.
114114 ===
115- image: /images /samples/analytics/n8n-node/n8n-gui-installation-4.png
115+ image: https://img.thingsboard.io /samples/analytics/n8n-node/n8n-gui-installation-4.png
116116 title: Wait for the installation to complete. Then, refresh the browser page.
117117'
118118%}
@@ -163,16 +163,16 @@ The credentials are encrypted and stored securely by n8n. You can reuse the same
163163
164164{% assign n8nGuiInstallation = '
165165 ===
166- image: /images /samples/analytics/n8n-node/credentials-configuration-1.png
166+ image: https://img.thingsboard.io /samples/analytics/n8n-node/credentials-configuration-1.png
167167 title: In the top-left corner, click ** +** and select ** Credentials** from the dropdown menu.
168168 ===
169- image: /images /samples/analytics/n8n-node/credentials-configuration-2.png
169+ image: https://img.thingsboard.io /samples/analytics/n8n-node/credentials-configuration-2.png
170170 title: Search and select ** ThingsBoard API** to connect to and click ** Continue** .
171171 ===
172- image: /images /samples/analytics/n8n-node/credentials-configuration-3.png
172+ image: https://img.thingsboard.io /samples/analytics/n8n-node/credentials-configuration-3.png
173173 title: Fill in the ** Base URL** — your ThingsBoard instance URL (without a trailing slash), and the ** API Key** — generated from your ThingsBoard instance. Click ** Save** to store the credentials.
174174 ===
175- image: /images /samples/analytics/n8n-node/credentials-configuration-4.png
175+ image: https://img.thingsboard.io /samples/analytics/n8n-node/credentials-configuration-4.png
176176 title: The credentials are saved and the connection is tested successfully. You can reuse the same credentials across multiple ThingsBoard nodes in different workflows.
177177'
178178%}
@@ -191,16 +191,16 @@ After installing the node and restarting n8n, verify the ThingsBoard node is ava
191191
192192{% assign installationVerification = '
193193 ===
194- image: /images /samples/analytics/n8n-node/installation-verification-1.png
194+ image: https://img.thingsboard.io /samples/analytics/n8n-node/installation-verification-1.png
195195 title: In the top-right corner of the interface, click Create Workflow.
196196 ===
197- image: /images /samples/analytics/n8n-node/installation-verification-2.png
197+ image: https://img.thingsboard.io /samples/analytics/n8n-node/installation-verification-2.png
198198 title: On the workflow canvas, click the ** +** button to open the list of available nodes.
199199 ===
200- image: /images /samples/analytics/n8n-node/installation-verification-3.png
200+ image: https://img.thingsboard.io /samples/analytics/n8n-node/installation-verification-3.png
201201 title: In the node search field, type ** ThingsBoard** . The ** ThingsBoard node** should appear in the search results. Click on it.
202202 ===
203- image: /images /samples/analytics/n8n-node/installation-verification-4.png
203+ image: https://img.thingsboard.io /samples/analytics/n8n-node/installation-verification-4.png
204204 title: A list of available ** actions** will be displayed.
205205'
206206%}
@@ -219,7 +219,7 @@ After installing the node and restarting n8n, verify the ThingsBoard node is ava
219219
220220{% assign n8nUsageNode = '
221221 ===
222- image: /images /samples/analytics/n8n-node/thingsboard-n8n-node.png
222+ image: https://img.thingsboard.io /samples/analytics/n8n-node/thingsboard-n8n-node.png
223223 title: A ThingsBoard Node and a ThingsBoard Tool for AI Agent.
224224'
225225%}
@@ -277,16 +277,16 @@ This section provides practical examples demonstrating the three usage patterns
277277
278278{% assign example1 = '
279279 ===
280- image: /images /samples/analytics/n8n-node/example-1-1-0.png
280+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-1-1-0.png
281281 title: Create a new workflow with AI Agent node. Choose your AI Model (Gemini, Anthropic, ChatGPT, etc.) and configure memory settings.
282282 ===
283- image: /images /samples/analytics/n8n-node/example-1-1-1.png
283+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-1-1-1.png
284284 title: Select ThingsBoard from the Tools list. Add ** Get devices** and ** Get timeseries** operations.
285285 ===
286- image: /images /samples/analytics/n8n-node/ai-agent-define-parameter.png
286+ image: https://img.thingsboard.io /samples/analytics/n8n-node/ai-agent-define-parameter.png
287287 title: For tools with required or optional fields, the AI model intelligently determines parameter values based on conversation context. The model decides which values to pass automatically.
288288 ===
289- image: /images /samples/analytics/n8n-node/example-1-2.png
289+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-1-2.png
290290 title: Open the chat interface and write your natural language query.
291291'
292292%}
@@ -337,10 +337,10 @@ Start by creating a new workflow and adding a Schedule Trigger to run the export
337337
338338{% assign example21 = '
339339 ===
340- image: /images /samples/analytics/n8n-node/example-2-1.png
340+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-1.png
341341 title: Create a new workflow and select ** Schedule Trigger** to run the export daily.
342342 ===
343- image: /images /samples/analytics/n8n-node/example-2-2.png
343+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-2.png
344344 title: Configure the trigger to run every day at 00:00 UTC (midnight).
345345'
346346%}
@@ -372,10 +372,10 @@ return [{ startTsMs, endTsMs }]; // Pass to next node
372372
373373{% assign example22 = '
374374 ===
375- image: /images /samples/analytics/n8n-node/example-2-3.png
375+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-3.png
376376 title: Add a ** Code** node after the Schedule Trigger.
377377 ===
378- image: /images /samples/analytics/n8n-node/example-2-4.png
378+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-4.png
379379 title: Paste the time calculation code and click ** Execute node** to test it.
380380'
381381%}
@@ -397,10 +397,10 @@ Now retrieve the device you want to export telemetry for.
397397
398398{% assign example23 = '
399399 ===
400- image: /images /samples/analytics/n8n-node/example-2-5.png
400+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-5.png
401401 title: Add ThingsBoard node and select ** Get a device by name** .
402402 ===
403- image: /images /samples/analytics/n8n-node/example-2-6.png
403+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-6.png
404404 title: Enter the device name and execute to retrieve the device object.
405405'
406406%}
@@ -427,10 +427,10 @@ Fetch the telemetry data using the time range from the Code node.
427427
428428{% assign example24 = '
429429 ===
430- image: /images /samples/analytics/n8n-node/example-2-7.png
430+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-7.png
431431 title: Add ThingsBoard ** Get timeseries** node.
432432 ===
433- image: /images /samples/analytics/n8n-node/example-2-8.png
433+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-8.png
434434 title: Configure with device ID, entity type, and time range from previous nodes. Execute to fetch telemetry data.
435435'
436436%}
@@ -455,10 +455,10 @@ Finally, upload the file to your S3 bucket.
455455
456456{% assign example26 = '
457457 ===
458- image: /images /samples/analytics/n8n-node/example-2-10.png
458+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-10.png
459459 title: Add ** AWS S3** node and configure upload settings with your bucket name and credentials.
460460 ===
461- image: /images /samples/analytics/n8n-node/example-2-11.png
461+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-2-11.png
462462 title: Execute the workflow to see the file successfully uploaded to S3.
463463'
464464%}
@@ -532,16 +532,16 @@ We'll use a manual trigger to simulate what would normally be a webhook from you
532532
533533{% assign example31 = '
534534 ===
535- image: /images /samples/analytics/n8n-node/example-3-1-1.png
535+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-1-1.png
536536 title: Click ** Add first step…** and select ** Trigger manually** .
537537 ===
538- image: /images /samples/analytics/n8n-node/example-3-1-2.png
538+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-1-2.png
539539 title: Click on the trigger node to open its configuration.
540540 ===
541- image: /images /samples/analytics/n8n-node/example-3-1-3.png
541+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-1-3.png
542542 title: In the top-right corner, click the ** pencil** icon.
543543 ===
544- image: /images /samples/analytics/n8n-node/example-3-1-4.png
544+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-1-4.png
545545 title: Paste the following JSON into the input field. ** Save** the changes and ** back to canvas** .
546546'
547547%}
@@ -567,22 +567,22 @@ Now we need to look up the device by name to get its ID (since most ThingsBoard
567567
568568{% assign example32 = '
569569 ===
570- image: /images /samples/analytics/n8n-node/example-3-2-1.png
570+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-2-1.png
571571 title: Click the ** +** button to the right of the ** trigger node** .
572572 ===
573- image: /images /samples/analytics/n8n-node/example-3-2-2.png
573+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-2-2.png
574574 title: Find and select ** ThingsBoard**
575575 ===
576- image: /images /samples/analytics/n8n-node/example-3-2-3.png
576+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-2-3.png
577577 title: Choose ** Get a device by name** action.
578578 ===
579- image: /images /samples/analytics/n8n-node/example-3-2-4.png
579+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-2-4.png
580580 title: Drag ** deviceName** from the ** INPUT** panel (left side) into the ** Name** field. This creates a dynamic reference to the trigger input.
581581 ===
582- image: /images /samples/analytics/n8n-node/example-3-2-5.png
582+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-2-5.png
583583 title: Click ** Execute step**
584584 ===
585- image: /images /samples/analytics/n8n-node/example-3-2-6.png
585+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-2-6.png
586586 title: The node returns the full device object, including:<br >- device ID<br >- <span class =" code-light " >type</span ><br >- additional metadata<br >** Back to canvas** .
587587'
588588%}
@@ -608,10 +608,10 @@ Before we can fetch telemetry, we need to know what keys are available (temperat
608608
609609{% assign example33 = '
610610 ===
611- image: /images /samples/analytics/n8n-node/example-3-3-1.png
611+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-3-1.png
612612 title: - Click the ** +** button to the right of the ** Get a device by name** node.<br >- Select ** ThingsBoard** <br >- Choose ** Get timeseries keys** action.
613613 ===
614- image: /images /samples/analytics/n8n-node/example-3-3-2.png
614+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-3-2.png
615615 title: - Set parameters dynamically:<br >- Entity ID<br >- Entity Type<br >You can drag these values directly from the ** INPUT** panel (left side).<br >- Click ** Execute step** <br >- ** Back to canvas**
616616'
617617%}
@@ -642,10 +642,10 @@ Finally, get the actual sensor readings using the keys we just discovered.
642642
643643{% assign example34 = '
644644 ===
645- image: /images /samples/analytics/n8n-node/example-3-4-1.png
645+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-4-1.png
646646 title: Click the ** +** button to the right of the trigger node.<br >Select ** ThingsBoard** .<br >Choose ** Get timeseries action** .
647647 ===
648- image: /images /samples/analytics/n8n-node/example-3-4-2.png
648+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-4-2.png
649649 title: Configure parameters:<br >- ** Entity ID** <br >- ** Entity Type** <br >- ** Keys (Comma Separated)** <br >You can drag these values directly from the ** INPUT** panel (left side).<br >- Click ** Execute step** .<br >- ** Back to canvas** .
650650'
651651%}
@@ -668,13 +668,13 @@ You just built a completely reusable workflow. Change the input from "Refrigerat
668668
669669{% assign ruleChainUseCase = '
670670 ===
671- image: /images /samples/analytics/n8n-node/example-3-final-1.png
671+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-final-1.png
672672 title: Accepts a device name as input. Finds the corresponding device in ThingsBoard.
673673 ===
674- image: /images /samples/analytics/n8n-node/example-3-final-2.png
674+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-final-2.png
675675 title: Discovers available telemetry keys.
676676 ===
677- image: /images /samples/analytics/n8n-node/example-3-final-3.png
677+ image: https://img.thingsboard.io /samples/analytics/n8n-node/example-3-final-3.png
678678 title: Retrieves telemetry values for the specified time window.
679679'
680680%}
0 commit comments