{"id":33211,"date":"2025-04-19T09:57:28","date_gmt":"2025-04-19T01:57:28","guid":{"rendered":"https:\/\/www.1ai.net\/?p=33211"},"modified":"2025-04-16T13:06:40","modified_gmt":"2025-04-16T05:06:40","slug":"%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e6%90%ad%e5%bb%ba%e6%99%ba%e8%83%bd%e5%b7%a5%e4%bd%9c%e6%b5%81%e8%90%bd%e5%9c%b0%e7%af%87%ef%bc%8cn8ndeepseek%e5%a4%a7%e6%a8%a1%e5%9e%8b%e4%bf%9d","status":"publish","type":"post","link":"https:\/\/www.1ai.net\/en\/33211.html","title":{"rendered":"Hands-on teaching you to build smart workflow landing chapter, n8n + Deepseek big model nanny tutorials"},"content":{"rendered":"<p>Detailed information is provided in the basic and advanced chapters of the<a href=\"https:\/\/www.1ai.net\/en\/tag\/%e5%b7%a5%e4%bd%9c%e6%b5%81\" title=\"_Other Organiser\" target=\"_blank\" >Workflow<\/a>Commonly used AI nodes and how it operates, specifically for Deepseek calling scenarios. Deepseek was chosen because it is cost-effective, cheap and easy to use. According to the article, which describes two AI invocation methods, the current<a href=\"https:\/\/www.1ai.net\/en\/tag\/n8n\" title=\"[see articles containing [n8n] labels]\" target=\"_blank\" >n8n<\/a>You can call all the latest AI models in the world, including domestic AI models, in the new version of n8n (1.78.1) has been integrated with OpenAI just released ChatGPT o3 mini and Musk just released yesterday Grok3 as long as the big models to provide APIs for us to call are OK.<\/p>\n<p><strong>test<a href=\"https:\/\/www.1ai.net\/en\/tag\/ai%e8%87%aa%e5%8a%a8%e5%8c%96\" title=\"_OTHER ORGANISER\" target=\"_blank\" >AI automation<\/a>Workflow<\/strong><\/p>\n<p>I tested our AI workflow today outdoors on the road, in the subway, and in the office. No problem at all, I can get the news filtered by AI every few minutes. Of course, the time interval can be customized in the trigger. Here is a point of knowledge, when we make changes to the workflow in n8n when you want to run a test workflow immediately you need to click on the \"Test Workflow\" button under the \"Canvas\", so that you can run the workflow without waiting for the The trigger starts itself.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33216\" title=\"8d735861j00suso6r0006d000ee0040m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/8d735861j00suso6r0006d000ee0040m.jpg\" alt=\"8d735861j00suso6r0006d000ee0040m\" width=\"518\" height=\"144\" \/><\/p>\n<p>The workflow will show you which node the task is currently running on at runtime, which is very intuitive.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33212\" title=\"c21faf42j00suso6r0011d000my00l6m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/c21faf42j00suso6r0011d000my00l6m.jpg\" alt=\"c21faf42j00suso6r0011d000my00l6m\" width=\"826\" height=\"762\" \/><\/p>\n<p>Isn't it intuitive to see which node is currently working and the node will have a rotating red arrow on it.<\/p>\n<p>When the workflow runs through the entire task, the lower right corner will display a prompt box for the workflow to complete normally, and if it encounters an error, there will be a prompt box to display the error message.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33213\" title=\"93538d82j00suso6r0011d000u000hnm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/93538d82j00suso6r0011d000u000hnm.jpg\" alt=\"93538d82j00suso6r0011d000u000hnm\" width=\"1080\" height=\"635\" \/><\/p>\n<p>In this case, the \"Deepseek Chat Model\" node in the AI automation workflow takes a little bit longer to run because it has to wait for the remote Deepseek server to return the AI answer, and if the Deepseek service is busy, the workflow will time out, and the n8n will display a timeout message prompts a timeout message. So, the efficiency of the workflow execution usually depends on the time it takes to get the news and the efficiency of the AI replies, everything else is done very quickly within the n8n workflow.<\/p>\n<p><strong>AI Automation Workflow Scenario Extension<\/strong><\/p>\n<p>This set of AI automation workflow Demo is kind of a throwback, we can do a small extension of the scene, you can expand on this basis to a very large number of scenarios to play, for example, when the AI assistant to complete a task (automation workflow) to send me the results of the email, but also in turn by replying to the email to tell the AI in addition to pushing AI news I also want to see the entertainment news, and of course, the workflow receives the email after Of course the workflow receives the email and extracts the content of the email back to the AI, and don't forget that n8n supports one workflow calling another workflow. Anyway, cool! Proper executives \"information to reduce the burden of God\", feel really fragrant.<\/p>\n<p><strong>AI automation workflow execution and deployment<\/strong><\/p>\n<p>The reason why it is called the \"landing chapter\" is that in the last two articles, we introduced how to use each node and how to call AI in this workflow, but we didn't teach you how to start, stop, activate the workflow, and check the execution status of the workflow. In addition, we can also download and copy the workflow of n8n.<\/p>\n<p>If you can develop or your company has a technical team n8n provides a complete set of external APIs that allow us to easily incorporate automated workflows on n8n into our own systems or products, and can provide more flexible AI applications that can truly be AI on the ground.<\/p>\n<p><strong>In this post you will learn:<\/strong><\/p>\n<p>1. AI agents: which AI macromodels are supported.<\/p>\n<p>2. Workflow initiation: types of triggers, their respective roles.<\/p>\n<p>3. Data Edit: The Edit Fields node.<\/p>\n<p>4. Data Split: Data Structure Split ( Split Out ) node.<\/p>\n<p>5. Data storage: Database ( Mongodb ) node.<\/p>\n<p>5. Send Email: The Send Email node.<\/p>\n<p>6. Workflow execution: initiation, activation and checking of execution records (Executions).<\/p>\n<p>7. Workflow permissions: copy, download, delete.<\/p>\n<p><strong>What AI models does n8n support<\/strong><\/p>\n<p>AI models supported by n8n will be iterated as the version keeps updating, as of version 1.78.1 we can use the big AI models, organized to give you.<\/p>\n<p><strong>Google<\/strong><\/p>\n<p>Gemini 2\/Gemini 2 Flash<\/p>\n<p><strong>Azure OpenAI\u00a0<\/strong><\/p>\n<p>ChatGPT 4o\/ChatGPT 4o mini<\/p>\n<p><strong>Anthropic<\/strong><\/p>\n<p>Claude 3.5 Sonnet<\/p>\n<p><strong>OpenAI<\/strong><\/p>\n<p>ChatGPT o3 mini\/ChatGPT 4o<\/p>\n<p><strong>search in depth<\/strong><\/p>\n<p>Deepseek-v3\/Deepseek R1<\/p>\n<p><strong>Alibaba<\/strong><\/p>\n<p>Qwen2.5 max\/Plus\/turbo<\/p>\n<p><strong>meta<\/strong><\/p>\n<p>Llama 3.3<\/p>\n<p><strong>XAI<\/strong><\/p>\n<p>Grok3<\/p>\n<p>Here we only list the latest big AI models that are currently supported, the lower versions are not listed. In addition, AI models that are not used much and smaller in scale are not listed, such as kimi, wenshin yiyin, doubao and so on. As long as this AI company provides API to the public then n8n can be used. Commonly used AI is Deepseek-v3, Ali Qwen 2.5, ChatGPT 4o and Claude 3.5 these. About AI API calls in the basic chapter, advanced chapter has been introduced, here will not repeat.<\/p>\n<p>\ud83d\udc49<\/p>\n<h4><a href=\"https:\/\/www.1ai.net\/en\/33168.html\/\">Hands-on teaching you to build the basics of intelligent workflow, n8n + Deepseek big model nanny tutorials<\/a><\/h4>\n<p>\ud83d\udc49<\/p>\n<h4><a href=\"https:\/\/www.1ai.net\/en\/33191.html\/\">Hands-on teaching you to build smart workflow advanced chapter, n8n + Deepseek big model nanny tutorials<\/a><\/h4>\n<p><strong>Starting a workflow<\/strong><\/p>\n<p>In n8n, to make the workflow work, we need to start the workflow first, we need to use \"Trigger\" which is a special type of node used to start the workflow. Trigger nodes are usually located at the beginning of the workflow, responsible for listening to specific events or conditions, and trigger the execution of the workflow when the conditions are met. n8n has dozens of types of triggers, listing three common trigger nodes and their functions:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33214\" title=\"1cfb2387j00suso6r000ld000u00052m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/1cfb2387j00suso6r000ld000u00052m.jpg\" alt=\"1cfb2387j00suso6r000ld000u00052m\" width=\"1080\" height=\"182\" \/><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"184\" data-colwidth=\"184\">\n<section>flip-flop (electronics)<\/section>\n<\/td>\n<td width=\"180\" data-colwidth=\"180\">\n<section>Function<\/section>\n<\/td>\n<td width=\"213\" data-colwidth=\"213\">\n<section>use<\/section>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"184\" data-colwidth=\"184\">\n<section>Schedule Trigger<\/section>\n<\/td>\n<td width=\"180\" data-colwidth=\"180\">\n<section>Time-based workflow triggering. You can set a specific time interval or point in time to execute the workflow.<\/section>\n<\/td>\n<td width=\"213\" data-colwidth=\"213\">\n<section>Timed tasks, regular data synchronization, etc.<\/section>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"184\" data-colwidth=\"184\">\n<h3>Manual Trigger<\/h3>\n<\/td>\n<td width=\"180\" data-colwidth=\"180\">\n<section>Allows users to manually trigger workflows. Typically used for testing or scenarios that require manual intervention.<\/section>\n<\/td>\n<td width=\"213\" data-colwidth=\"213\">\n<section>Real-time data reception, external system integration, etc.<\/section>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"184\" data-colwidth=\"184\">\n<h3>Webhook Trigger<\/h3>\n<\/td>\n<td width=\"180\" data-colwidth=\"180\">\n<section>\nListens for HTTP requests from external systems and triggers a workflow when a request is received.<\/section>\n<\/td>\n<td width=\"213\" data-colwidth=\"213\">\n<section>Manual execution flow, debugging, etc. Webhook also has a \u201cRespond Webhook\u201d, which should control the response to the incoming webhook by using Webhook as a response, for example, to use Webhook as an API endpoint instead of backend development logic\u3002<\/section>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"184\" data-colwidth=\"184\">\n<section>Chat Trigger<\/section>\n<\/td>\n<td width=\"180\" data-colwidth=\"180\">A special trigger that allows you to trigger a workflow through a chat window.<\/td>\n<td width=\"213\" data-colwidth=\"213\">\n<section>\n<p data-pm-slice=\"2 2 [&quot;table&quot;,{&quot;interlaced&quot;:null,&quot;align&quot;:null,&quot;class&quot;:null,&quot;style&quot;:&quot;width:565px;&quot;},&quot;table_body&quot;,null,&quot;table_row&quot;,{&quot;class&quot;:null,&quot;style&quot;:null},&quot;table_cell&quot;,{&quot;colspan&quot;:1,&quot;rowspan&quot;:1,&quot;colwidth&quot;:[200],&quot;width&quot;:&quot;200&quot;,&quot;valign&quot;:null,&quot;align&quot;:null,&quot;style&quot;:null}]\">Typically used in invoking AI dialog workflows, its messages are passed to the next level of AI nodes by default.<\/p>\n<\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<section><\/section>\n<p>These are just a few of the automation workflow triggers we commonly use. Here, I'd like to say more about the \"Chat Trigger\" trigger, which is used in scenarios where you need to talk to AI, such as chatbots, intelligent customer service, and so on.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33215\" title=\"478420b6j00suso6r000wd000u000hmm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/478420b6j00suso6r000wd000u000hmm.jpg\" alt=\"478420b6j00suso6r000wd000u000hmm\" width=\"1080\" height=\"634\" \/><\/p>\n<p>Chat Trigger Details:<\/p>\n<p>Chat Trigger has no parameters to set, just create it in the canvas and switch the Workflow to chat trigger mode. The triggering mechanism is that every message sent will trigger the Workflow once.<\/p>\n<p>If the downstream AI node does not have access to Memory service, Chat Trigger will not retain the previous conversation content every time it is triggered, i.e., it does not have dynamic context capability by default, and the AI cannot memorize the content of the last conversation.<\/p>\n<p>When adding a Chat Trigger, n8n prompts that the trigger needs to be connected to an AI node. However, this is not mandatory, and the Chat Trigger is perfectly capable of being used as an input trigger. For example, if your Workflow needs to filter articles from a database for a specific date, you can enter the date via the Chat Trigger and reference that input date in subsequent filtering steps, avoiding the need to manually change the filters each time you run them.<\/p>\n<p>In this example the \"Schedule Trigger\" trigger is used.<\/p>\n<p><strong>Data Edit: Edit Fields node<\/strong><\/p>\n<p>You can set the time interval for workflow execution, such as weekly, daily, hourly, minutely, secondly, and so on. To get the data output from the node we need to use the Edit Fields node, using the Edit Fields node you can flexibly set or modify the data in the workflow. This node can either add new data or overwrite existing data. This node is especially important when dealing with workflows that need to receive data from upstream nodes. For example, the Edit Fields node is often used to adjust or format data before it is inserted into a Google Form or database.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33217\" title=\"9ddbd2caj00suso6r000bd0004q006cm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/9ddbd2caj00suso6r000bd0004q006cm.jpg\" alt=\"9ddbd2caj00suso6r000bd0004q006cm\" width=\"170\" height=\"228\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33218\" title=\"3b42be7fj00suso6r000sd000u000c1m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/3b42be7fj00suso6r000sd000u000c1m.jpg\" alt=\"3b42be7fj00suso6r000sd000u000c1m\" width=\"1080\" height=\"433\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33219\" title=\"2055dde9j00suso6r001yd000u000fym\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/2055dde9j00suso6r001yd000u000fym.jpg\" alt=\"2055dde9j00suso6r001yd000u000fym\" width=\"1080\" height=\"574\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33220\" title=\"0b3a5590j00suso6r001ud000kq00hcm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/0b3a5590j00suso6r001ud000kq00hcm.jpg\" alt=\"0b3a5590j00suso6r001ud000kq00hcm\" width=\"746\" height=\"624\" \/><\/p>\n<p>Node parameters:<\/p>\n<p>The following settings and options are available in the Edit Fields node:<\/p>\n<p>Mode:<\/p>\n<p><strong>1. Manual mapping<\/strong><br \/>\nEditing fields is intuitive through the graphical user interface (GUI). You can select specific fields and modify them or add new ones. \"Manual Mapping Mode Editing\" is shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33221\" title=\"5e5bc57fj00suso6r001gd000jo00k2m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/5e5bc57fj00suso6r001gd000jo00k2m.jpg\" alt=\"5e5bc57fj00suso6r001gd000jo00k2m\" width=\"708\" height=\"722\" \/><\/p>\n<p><strong>2. JSON output<\/strong><br \/>\nDefine how to modify the input data by writing JSON. This approach is suitable for scenarios that require more complex operations or batch processing of data. You can write JSON objects directly and n8n will apply them to the input data.<\/p>\n<p>The \"JSON Output Mode Editing\" is shown below:<\/p>\n<p>Suppose, the following data is generated by the upstream node:<\/p>\n<pre class=\"code-snippet__js\" data-lang=\"perl\"><code><span class=\"code-snippet__plaintext\">[\u00a0<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0{<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"23423535\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Zaphod Beeblebrox.\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"email\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"captain@heartofgold.com\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"notes\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Felt like I was talking to more than one person.\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"country\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"CN\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"created\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"1979-10-12\"<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 },<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"23423536\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Edmund Pevensie\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"email\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"edmund@narnia.gov\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"notes\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Passionate sailor\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"country\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"UK\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"created\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"1950-10-16\"<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 }<\/span><\/code><code><span class=\"code-snippet__plaintext\">]<\/span><\/code><\/pre>\n<p><strong>Edit the desired output in the JSON edit box.<\/strong>Fields :<\/p>\n<pre class=\"code-snippet__js\" data-lang=\"bash\"><code><span class=\"code-snippet__plaintext\">{<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"newKey\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"new value\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"array\"<\/span><span class=\"code-snippet__plaintext\">: [{{\u00a0<\/span><span class=\"code-snippet__variable\">$json<\/span><span class=\"code-snippet__plaintext\">.<\/span><span class=\"code-snippet__built_in\">id<\/span><span class=\"code-snippet__plaintext\">\u00a0}},<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__plaintext\">\"{{\u00a0<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__variable\">$json<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__plaintext\">.name }}\"<\/span><\/span><span class=\"code-snippet__plaintext\">],<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"object\"<\/span><span class=\"code-snippet__plaintext\">: {<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey1\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"new value\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey2\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__plaintext\">\"{{\u00a0<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__variable\">$json<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__plaintext\">.id }}\"<\/span><\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey3\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__plaintext\">\"{{\u00a0<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__variable\">$json<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__plaintext\">.name }}\"<\/span><\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><code><span class=\"code-snippet__plaintext\">}<\/span><\/code><\/pre>\n<p>The following output will be obtained:<\/p>\n<pre class=\"code-snippet__js\" data-lang=\"css\"><code><span class=\"code-snippet__selector-attr\">[<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"23423535\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Zaphod Beeblebrox.\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"email\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"captain@heartofgold.com\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"notes\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Felt like I was talking to more than one person.\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"country\"<\/span><span class=\"code-snippet__plaintext\">: null,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"created\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"1979-10-12\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"newKey\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"new value\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"array\"<\/span><span class=\"code-snippet__plaintext\">: [<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0 23423535,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"Zaphod Beeblebrox.\"<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 ],<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \"<\/span><span class=\"code-snippet__selector-tag\">object<\/span><span class=\"code-snippet__plaintext\">\": {<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0 \"innerKey1\".\u00a0<\/span><span class=\"code-snippet__string\">\"new value\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey2\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"23423535\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey3\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Zaphod Beeblebrox.\"<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 }<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 },<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \"id\".\u00a0<\/span><span class=\"code-snippet__string\">\"23423536\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Edmund Pevensie\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"email\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"edmund@narnia.gov\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"notes\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Passionate sailor\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"country\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"UK\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"created\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"1950-10-16\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"newKey\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"new value\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"array\"<\/span><span class=\"code-snippet__plaintext\">: [<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__number\">23423536<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"Edmund Pevensie\"<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 ],<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"object\"<\/span><span class=\"code-snippet__plaintext\">: {<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0 \"innerKey1\".\u00a0<\/span><span class=\"code-snippet__string\">\"new value\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey2\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"23423536\"<\/span><span class=\"code-snippet__plaintext\">,<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"code-snippet__string\">\"innerKey3\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Edmund Pevensie\"<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 \u00a0 }<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 }<\/span><\/code><code><span class=\"code-snippet__plaintext\">]<\/span><\/code><\/pre>\n<p>With these two modes, we have the flexibility to adapt the data as needed to ensure it meets the processing requirements of subsequent nodes.<\/p>\n<p><strong>Data Split: Data Structure Split ( Split Out ) Node<\/strong><\/p>\n<p><strong>Split Out node<\/strong>\u00a0Split Out is a powerful tool for splitting input data into separate items. Its main purpose is to break an input data containing an array or a list into individual items so that subsequent nodes can process each item separately.The Split Out node is ideal for working with batches of data or for tasks that require itemized operations.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33222\" title=\"6e9091b8j00suso6r0004d0004s005ym\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/6e9091b8j00suso6r0004d0004s005ym.jpg\" alt=\"6e9091b8j00suso6r0004d0004s005ym\" width=\"172\" height=\"214\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33223\" title=\"b0b484cdj00suso6r001yd000u000gcm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/b0b484cdj00suso6r001yd000u000gcm.jpg\" alt=\"b0b484cdj00suso6r001yd000u000gcm\" width=\"1080\" height=\"588\" \/><\/p>\n<p>Let's look at a typical application scenario:<\/p>\n<p>Scene 1.\u00a0<strong>Batch processing of data<\/strong><\/p>\n<p>There is an array containing multiple records (e.g., results returned from an API or database query), and these records need to be processed one by one.<\/p>\n<pre class=\"code-snippet__js\" data-lang=\"css\"><code><span class=\"code-snippet__selector-attr\">[<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">: 1,\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Alice.\"<\/span><span class=\"code-snippet__plaintext\">\u00a0},<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">: 2,\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Bob.\"<\/span><span class=\"code-snippet__plaintext\">\u00a0},<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">: 3,\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Charlie.\"<\/span><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><code><span class=\"code-snippet__plaintext\">]<\/span><\/code><\/pre>\n<p>With the Split Out node, the data is split:<\/p>\n<pre class=\"code-snippet__js\" data-lang=\"javascript\"><code><span class=\"code-snippet__plaintext\">{\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__number\">1<\/span><span class=\"code-snippet__plaintext\">,\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Alice.\"<\/span><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><code><span class=\"code-snippet__plaintext\">{\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__number\">2<\/span><span class=\"code-snippet__plaintext\">,\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Bob.\"<\/span><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><code><span class=\"code-snippet__plaintext\">{\u00a0<\/span><span class=\"code-snippet__string\">\"id\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__number\">3<\/span><span class=\"code-snippet__plaintext\">,\u00a0<\/span><span class=\"code-snippet__string\">\"name\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Charlie.\"<\/span><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><\/pre>\n<p>Scene 2.\u00a0<strong>message-by-message<\/strong><\/p>\n<p><strong>Suppose, you need to send a set of messages to a platform one by one (e.g. WeChat or email).<\/strong><\/p>\n<pre class=\"code-snippet__js\" data-lang=\"css\"><code><span class=\"code-snippet__selector-attr\">[<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"message\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Hello, Alice!\"<\/span><span class=\"code-snippet__plaintext\">\u00a0},<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"message\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Hello, Bob!\"<\/span><span class=\"code-snippet__plaintext\">\u00a0},<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"message\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Hello, Charlie!\"<\/span><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><code><span class=\"code-snippet__plaintext\">]<\/span><\/code><\/pre>\n<p>Scene 3.\u00a0<strong>Insertion into the database on an article-by-article basis<\/strong><\/p>\n<p><strong>Let's say you need to insert a set of data into a database table line by line. In this example, the Split Out node is used to insert an array of news item by item into a Mongodb database.<\/strong><\/p>\n<pre class=\"code-snippet__js\" data-lang=\"css\"><code><span class=\"code-snippet__selector-attr\">[<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"product\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Apple\"<\/span><span class=\"code-snippet__plaintext\">,\u00a0<\/span><span class=\"code-snippet__string\">\"price\"<\/span><span class=\"code-snippet__plaintext\">: 1.2 },<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"product\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Banana.\"<\/span><span class=\"code-snippet__plaintext\">,\u00a0<\/span><span class=\"code-snippet__string\">\"price\"<\/span><span class=\"code-snippet__plaintext\">: 0.5 },<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"product\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"Orange\"<\/span><span class=\"code-snippet__plaintext\">,\u00a0<\/span><span class=\"code-snippet__string\">\"price\"<\/span><span class=\"code-snippet__plaintext\">: 0.8 }<\/span><\/code><code><span class=\"code-snippet__plaintext\">]<\/span><\/code><\/pre>\n<p><strong>Scenario 3: Calling the API line by line<\/strong><\/p>\n<p><strong>take<\/strong>: You need to call an external API based on a set of data, line by line.<\/p>\n<pre class=\"code-snippet__js\" data-lang=\"css\"><code><span class=\"code-snippet__selector-attr\">[<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"userId\"<\/span><span class=\"code-snippet__plaintext\">: 1,\u00a0<\/span><span class=\"code-snippet__string\">\"action\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"update\"<\/span><span class=\"code-snippet__plaintext\">\u00a0},<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"userId\"<\/span><span class=\"code-snippet__plaintext\">: 2,\u00a0<\/span><span class=\"code-snippet__string\">\"action\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"delete\"<\/span><span class=\"code-snippet__plaintext\">\u00a0},<\/span><\/code><code><span class=\"code-snippet__plaintext\">\u00a0 {\u00a0<\/span><span class=\"code-snippet__string\">\"userId\"<\/span><span class=\"code-snippet__plaintext\">: 3,\u00a0<\/span><span class=\"code-snippet__string\">\"action\"<\/span><span class=\"code-snippet__plaintext\">:\u00a0<\/span><span class=\"code-snippet__string\">\"create\"<\/span><span class=\"code-snippet__plaintext\">\u00a0}<\/span><\/code><code><span class=\"code-snippet__plaintext\">]<\/span><\/code><\/pre>\n<p><strong>Data storage: database ( Mongodb ) node<\/strong><\/p>\n<p>I want to save a list of news items one by one into a database for subsequent processing, such as displaying the list of news items directly on a website. First, let the Split Out section split the news array into one data item and then insert it into the data table one by one.<\/p>\n<p>To clarify, for databases you can use a database that you commonly use or specialize in, such as Postgres<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33224\" title=\"fc04944cj00suso6r000gd000gi0094m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/fc04944cj00suso6r000gd000gi0094m.jpg\" alt=\"fc04944cj00suso6r000gd000gi0094m\" width=\"594\" height=\"328\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33225\" title=\"c5a1d17aj00suso6r002wd000u000t3m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/c5a1d17aj00suso6r002wd000u000t3m.jpg\" alt=\"c5a1d17aj00suso6r002wd000u000t3m\" width=\"1080\" height=\"1047\" \/><\/p>\n<p>Mongodb setup is simple:<\/p>\n<p>Configure the account password for connecting to the database<\/p>\n<p>Credential to connect with: xxxxxxxxxx<\/p>\n<p>Performing insertion operations<\/p>\n<p>Operation : Insert<\/p>\n<p>Name of the data to be saved to the data table<\/p>\n<p>Collection : TempNews<\/p>\n<p>The names of the fields to be saved, separated by commas<\/p>\n<p>Fields : title,author,content,publishedAt,urlToImage,url<\/p>\n<p>After saving to the Mongodb database it looks like this, below is a screenshot of the TempNews table, which makes it easier for us to process the news data outside of the non-n8n platform.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33226\" title=\"036b3f43j00suso6r003nd000u000com\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/036b3f43j00suso6r003nd000u000com.jpg\" alt=\"036b3f43j00suso6r003nd000u000com\" width=\"1080\" height=\"456\" \/><\/p>\n<p><strong>Send Email: Send Email node<\/strong><\/p>\n<p>We need to send each news item returned by the AI to the user's mailbox via email, and a common email sending node in n8n is Send Email. The Send Email node supports sending emails via third-party email services (e.g., Gmail, Outlook, QQ, 163 mailboxes, etc.) The Send Email node is ideal for automating notifications, report delivery, workflow status updates, and other scenarios via email. The Send Email node is ideal for automating notifications, reports, workflow status updates, etc. via email.<\/p>\n<p><strong>Role of the Send Email node<\/strong><\/p>\n<ol>\n<li><strong>mail<\/strong>: Send emails in text or HTML format by configuring SMTP or integrating a third-party mail service.<\/li>\n<li><strong>Supported Attachments<\/strong>: Files (e.g., reports, pictures, documents, etc.) can be attached to the e-mail.<\/li>\n<li><strong>dynamic content<\/strong>: Supports dynamic generation of message content, subject, recipient and other fields using expressions.<\/li>\n<li><strong>batch file<\/strong>: In conjunction with the Split Out node, it is possible to send emails to multiple recipients in bulk.<\/li>\n<\/ol>\n<p>This example uses 163 mailbox, because it is a tutorial case not designed for commercial use, then using a personal mailbox to provide the function of sending emails can be, if it is an enterprise scenario you need to find a professional provider of mail services provider.<\/p>\n<p>Let's look at the mailbox configuration, which is very simple.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33227\" title=\"00be4a40j00suso6r001nd000u000m4m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/00be4a40j00suso6r001nd000u000m4m.jpg\" alt=\"00be4a40j00suso6r001nd000u000m4m\" width=\"1080\" height=\"796\" \/><\/p>\n<p>Both parameter means to provide both Text and Html content format, inbox supports that kind of format.<\/p>\n<p><strong>Workflow execution: start, activate and check execution logs<\/strong><\/p>\n<p>At this point we are done with all the nodes used in the workflow, leaving us with the start, stop, and activation of the workflow, as well as execution logging.<\/p>\n<p>Startup method 1: \"Test workflow\" button<\/p>\n<p>The red \"Test workflow\" button at the bottom of the workflow canvas runs the current workflow immediately. Generally used in testing and debugging the current workflow, you can also stop the executing workflow.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33228\" title=\"9ac2d134j00suso6r000md000u000bnm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/9ac2d134j00suso6r000md000u000bnm.jpg\" alt=\"9ac2d134j00suso6r000md000u000bnm\" width=\"1080\" height=\"419\" \/><\/p>\n<p>Activation method 2: Trigger<\/p>\n<p>Trigger we introduced before, the configured trigger will automatically execute the workflow according to the rules, we can run the trigger manually, when the trigger is executed it will also drive the whole workflow to start executing. There is a run button on top of each node. (When the mouse moves to the node will appear a row of shortcuts, including execute button, delete button, etc.)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33229\" title=\"8886e499j00suso6r000ud000u000avm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/8886e499j00suso6r000ud000u000avm.jpg\" alt=\"8886e499j00suso6r000ud000u000avm\" width=\"1080\" height=\"391\" \/><\/p>\n<p>Activate workflows<\/p>\n<p>After the workflow is completed, it will be inactive by default, what is the meaning of \"active\"? As the name suggests, \"activated\" means that the workflow can run in the background all the time, such as the website is online, the app is released, the activated workflow can provide us with automation services all the time. After activating the workflow when we exit n8n or close the browser does not affect the operation of the workflow, it silently on the server to perform their own tasks.<\/p>\n<p>To activate the workflow: Click the \"Inactive\" switch in the upper right corner of the canvas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33231\" title=\"96437baej00suso6r000ud000u000dzm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/96437baej00suso6r000ud000u000dzm.jpg\" alt=\"96437baej00suso6r000ud000u000dzm\" width=\"1080\" height=\"503\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33230\" title=\"9b775552j00suso6r000vd000u000kqm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/9b775552j00suso6r000vd000u000kqm.jpg\" alt=\"9b775552j00suso6r000vd000u000kqm\" width=\"1080\" height=\"746\" \/><\/p>\n<p>Back to the Home Workflow List page, you can see the current status of each workflow, green means the workflow is running.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33232\" title=\"cce93df6j00suso6r001bd000u000glm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/cce93df6j00suso6r001bd000u000glm.jpg\" alt=\"cce93df6j00suso6r001bd000u000glm\" width=\"1080\" height=\"597\" \/><\/p>\n<p>Record of implementation<\/p>\n<p>Once the workflow has been activated and started working, we can use the \"Executions\" function to view information about each execution of the current workflow, including the time of each executed task and whether the task was successful or not.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33233\" title=\"e706a3c5j00suso6r0008d000hs006wm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/e706a3c5j00suso6r0008d000hs006wm.jpg\" alt=\"e706a3c5j00suso6r0008d000hs006wm\" width=\"640\" height=\"248\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33234\" title=\"a2e13c3fj00suso6r001cd000u000i4m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/a2e13c3fj00suso6r001cd000u000i4m.jpg\" alt=\"a2e13c3fj00suso6r001cd000u000i4m\" width=\"1080\" height=\"652\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33235\" title=\"fec81a49j00suso6r001wd000gy0106m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/fec81a49j00suso6r001wd000gy0106m.jpg\" alt=\"fec81a49j00suso6r001wd000gy0106m\" width=\"610\" height=\"1302\" \/><\/p>\n<p>Execution is recorded only in the state where the workflow is activated.<\/p>\n<p><strong>Workflow permissions: copy, download and delete<\/strong><\/p>\n<p>If we are deploying privately the administrator has the highest privileges, including inviting other users to register, deleting users and all operations on all workflows, including managing workflows generated by other users. In turn normal users cannot see the workflows created by the administrator and other users, so the administrator has the current n8n highest privileges.<\/p>\n<p>Replicating workflows<\/p>\n<p>Workflows can be copied, first of all, after more workflows in order to facilitate the management we will create some tags used to distinguish between different business scenarios of the workflow, so copying the workflow is similar to move the current workflow to other categories.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33236\" title=\"d4eb1caej00suso6r000kd000rs00aom\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/d4eb1caej00suso6r000kd000rs00aom.jpg\" alt=\"d4eb1caej00suso6r000kd000rs00aom\" width=\"1000\" height=\"384\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33237\" title=\"2479b924j00suso6r0012d000m000kmm\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/2479b924j00suso6r0012d000m000kmm.jpg\" alt=\"2479b924j00suso6r0012d000m000kmm\" width=\"792\" height=\"742\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33238\" title=\"010363e5j00suso6r000vd000u000h8m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/010363e5j00suso6r000vd000u000h8m.jpg\" alt=\"010363e5j00suso6r000vd000u000h8m\" width=\"1080\" height=\"620\" \/><\/p>\n<p>Download Workflow<\/p>\n<p>When we need to send the current workflow to a customer or deployed to other n8n platforms, then we need to use the download function, because the download is a json file, this json file is the entire workflow \"source code\", with this json file can be thrown to a random n8n platform! to any n8n platform to perform the task. Just select Import Workflow in the menu to import the json file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33239\" title=\"24c6643cj00suso6r0011d000oa00k8m\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/24c6643cj00suso6r0011d000oa00k8m.jpg\" alt=\"24c6643cj00suso6r0011d000oa00k8m\" width=\"874\" height=\"728\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33240\" title=\"04bca08fj00suso6r0005d00074007um\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/04bca08fj00suso6r0005d00074007um.jpg\" alt=\"04bca08fj00suso6r0005d00074007um\" width=\"256\" height=\"282\" \/><\/p>\n<p>Open the json file to see the workflow details of the various information, as shown in the figure:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-33241\" title=\"cdfcd15cj00suso6r0019d000u000qum\" src=\"https:\/\/www.1ai.net\/wp-content\/uploads\/2025\/04\/cdfcd15cj00suso6r0019d000u000qum.jpg\" alt=\"cdfcd15cj00suso6r0019d000u000qum\" width=\"1080\" height=\"966\" \/><\/p>\n<p>In fact, n8n the use of json, a common information format in the Internet era is one of the best compatibility, record-keeping and de-reading information is very convenient, a variety of development platforms and programming languages can easily operate json files.<\/p>\n<p><strong>Conclusion: Zero code can also play AI, white people into a technical expert!<\/strong><\/p>\n<p>This example configures an AI automation workflow with n8n to automate the entire process from news crawling, to content filtering, to emailing or social media posting.<\/p>","protected":false},"excerpt":{"rendered":"<p>The AI nodes commonly used in workflows and its operations are described in detail in the basic and advanced chapters, especially for Deepseek's invocation scenarios. Deepseek was chosen because it is cost-effective, cheap and easy to use. According to the article introduces two AI calling methods, n8n can call all the world's latest AI models, including domestic AI models, in the new version of n8n (1.78.1) has been integrated with OpenAI just released ChatGPT o3 mini and Musk yesterday just released Grok3 as long as the big models provide APIs to let us go to the call are OK. Testing AI automation workflows I tested our AI workflows today outdoors on the road, in the subway, and in the office. One.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[149,144],"tags":[6300,6244,6297,5145,6302,6303,6301],"collection":[],"class_list":{"0":"post-33211","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-jiaocheng","7":"category-baike","8":"tag-ai","9":"tag-n8n","11":"tag-5145","12":"tag-6302","13":"tag-6303","14":"tag-6301"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/posts\/33211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/comments?post=33211"}],"version-history":[{"count":0,"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/posts\/33211\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/media?parent=33211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/categories?post=33211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/tags?post=33211"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/www.1ai.net\/en\/wp-json\/wp\/v2\/collection?post=33211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}