From 0bdf961a23d647969e1507197ed0e6a517fbcb46 Mon Sep 17 00:00:00 2001 From: Deborah Barnard Date: Mon, 9 May 2022 16:31:13 +0100 Subject: [PATCH] =?UTF-8?q?remove=20=E2=80=99=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contributing.md | 4 ++-- docs/courses/index.md | 4 ++-- docs/courses/level-one/chapter-1.md | 10 ++++----- docs/courses/level-one/chapter-2.md | 14 ++++++------ docs/courses/level-one/chapter-3.md | 14 ++++++------ docs/courses/level-one/chapter-4.md | 8 +++---- .../level-one/chapter-5/chapter-5.1.md | 22 +++++++++---------- .../level-one/chapter-5/chapter-5.2.md | 2 +- .../level-one/chapter-5/chapter-5.4.md | 4 ++-- .../level-one/chapter-5/chapter-5.5.md | 6 ++--- .../level-one/chapter-5/chapter-5.6.md | 2 +- .../level-one/chapter-5/chapter-5.7.md | 2 +- .../level-one/chapter-5/chapter-5.8.md | 2 +- docs/courses/level-one/chapter-6.md | 4 ++-- docs/courses/level-one/chapter-7.md | 4 ++-- docs/courses/level-one/index.md | 2 +- docs/courses/level-two/chapter-4.md | 2 +- .../level-two/chapter-5/chapter-5.0.md | 2 +- docs/courses/level-two/chapter-6.md | 4 ++-- docs/data/transforming-data.md | 4 ++-- docs/flow-logic/looping.md | 4 ++-- .../scaling/execution-modes-processes.md | 2 +- docs/hosting/scaling/queue-mode.md | 4 ++-- .../core-nodes/n8n-nodes-base.webhook.md | 10 ++++----- .../creating-nodes/code/create-first-node.md | 16 +++++++------- .../code/create-n8n-nodes-module.md | 10 ++++----- .../code/create-trigger-node.md | 12 +++++----- .../code/troubleshooting-node-development.md | 2 +- .../credentials/activeCampaign.md | 2 +- docs/integrations/credentials/affinity.md | 2 +- .../nodes/n8n-nodes-base.Brandfetch.md | 2 +- .../nodes/n8n-nodes-base.airtable.md | 2 +- .../nodes/n8n-nodes-base.googleAnalytics.md | 2 +- .../nodes/n8n-nodes-base.harvest.md | 2 +- .../nodes/n8n-nodes-base.lemlist.md | 2 +- .../nodes/n8n-nodes-base.mailcheck.md | 2 +- .../nodes/n8n-nodes-base.notion.md | 2 +- .../integrations/nodes/n8n-nodes-base.oura.md | 2 +- .../nodes/n8n-nodes-base.phantombuster.md | 2 +- .../nodes/n8n-nodes-base.questDb.md | 2 +- .../nodes/n8n-nodes-base.sentryIo.md | 2 +- .../n8n-nodes-base.acuitySchedulingTrigger.md | 2 +- .../n8n-nodes-base.airtableTrigger.md | 2 +- .../n8n-nodes-base.autopilotTrigger.md | 2 +- .../n8n-nodes-base.getResponseTrigger.md | 2 +- .../n8n-nodes-base.mailerLiteTrigger.md | 2 +- .../n8n-nodes-base.typeformTrigger.md | 2 +- .../n8n-nodes-base.wiseTrigger.md | 2 +- docs/reference/data-collection.md | 2 +- styles/alex/Profanity.yml | 2 +- 50 files changed, 110 insertions(+), 110 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index f295be9e3..b34150f7c 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -68,7 +68,7 @@ The repository for the docs is [here](https://github.com/n8n-io/n8n-docs) and th ## Share your story -n8n users come from a wide range of backgrounds, experience levels, and interests. We like to highlight different users and their projects in our [blog interviews](https://medium.com/n8n-io/tagged/interview). If you’re working with n8n and would like to inspire the community, we'd love to hear from you. +n8n users come from a wide range of backgrounds, experience levels, and interests. We like to highlight different users and their projects in our [blog interviews](https://medium.com/n8n-io/tagged/interview). If you're working with n8n and would like to inspire the community, we'd love to hear from you. We have the following process for user stories for our blog: @@ -96,6 +96,6 @@ Do you know someone who would be a great fit for one of our [open positions](htt Here's how this works: 1. **Search**: Have a look at the description and requirements of each role, and consider if someone you know would be a great fit. -2. **Referral**: Once you’ve identified a potential candidate, send an email to [Jobs at n8n](mailto:jobs@n8n.io) with the subject line *Employee referral - [job title]* and a short description of the person you’re referring (and the reason why). Also, tell your referral to apply for the job through our [careers page](https://n8n.io/careers). +2. **Referral**: Once you've identified a potential candidate, send an email to [Jobs at n8n](mailto:jobs@n8n.io) with the subject line *Employee referral - [job title]* and a short description of the person you're referring (and the reason why). Also, tell your referral to apply for the job through our [careers page](https://n8n.io/careers). 3. **Evaluation**: We'll screen the application and inform you about the next steps of the hiring process. 4. **Reward**: As soon as your referral has successfully finished the probationary period, we'll reward you for your efforts by transferring the €1,000 to your bank account. diff --git a/docs/courses/index.md b/docs/courses/index.md index 779af931f..87edc96bd 100644 --- a/docs/courses/index.md +++ b/docs/courses/index.md @@ -1,8 +1,8 @@ # Courses -If you’ve found your way here, it means you’re serious about your interest in automation. Maybe you're tired of manually entering data into the same spreadsheet every day, of clicking through a series of tabs and buttons for that one piece of information you need, of managing tens of different tools and systems. +If you've found your way here, it means you're serious about your interest in automation. Maybe you're tired of manually entering data into the same spreadsheet every day, of clicking through a series of tabs and buttons for that one piece of information you need, of managing tens of different tools and systems. -Whatever the reason, one thing is clear: you shouldn’t spend precious time doing things that don’t spark joy or contribute to your personal and professional growth. +Whatever the reason, one thing is clear: you shouldn't spend precious time doing things that don't spark joy or contribute to your personal and professional growth. These tasks can and should be automated! And you don't need advanced technical knowledge or excellent coding skills to do this–with no-code tools like n8n, automation is for everyone. diff --git a/docs/courses/level-one/chapter-1.md b/docs/courses/level-one/chapter-1.md index 203b157d8..f4676403b 100644 --- a/docs/courses/level-one/chapter-1.md +++ b/docs/courses/level-one/chapter-1.md @@ -63,7 +63,7 @@ The *canvas* is the gray grid background in the Editor UI. On the canvas, there - Place two fingers on your touchpad and slide -Don’t worry about workflow execution and activation for now, we will explain these concepts later on in the course. +Don't worry about workflow execution and activation for now, we will explain these concepts later on in the course. ## Nodes @@ -88,9 +88,9 @@ The [*Start node*](/integrations/core-nodes/n8n-nodes-base.start/) is the defaul
Start node
Start node
-The **Start** node cannot be deleted or duplicated. If you have a workflow in which you don’t use the Start node, you can remove the connection, deactivate it, and move it away from the workflow. If you need more than one Start node, you probably need to use other Trigger nodes or create separate workflows. +The **Start** node cannot be deleted or duplicated. If you have a workflow in which you don't use the Start node, you can remove the connection, deactivate it, and move it away from the workflow. If you need more than one Start node, you probably need to use other Trigger nodes or create separate workflows. -You’ve probably figured out already that the *Start node* is a Core Trigger node. Apart from it, there are over 290 other Regular and Trigger nodes for various functions, apps, and services. +You've probably figured out already that the *Start node* is a Core Trigger node. Apart from it, there are over 290 other Regular and Trigger nodes for various functions, apps, and services. ### Finding nodes @@ -112,13 +112,13 @@ If you want to get a specific node, type in the name of the node, app, or servic To add a new node to the Editor UI, click on the node you want in the nodes panel. The new node will automatically be connected to the selected node on the canvas. -To review, here’s a walkthrough of the Editor UI touching on all the settings you’ve learned so far: +To review, here's a walkthrough of the Editor UI touching on all the settings you've learned so far:
Editor UI walkthrough
Editor UI walkthrough
### Node buttons -If you hover on a node, you’ll notice that four icons appear on top: +If you hover on a node, you'll notice that four icons appear on top: - Delete the node - Deactivate/Activate the node diff --git a/docs/courses/level-one/chapter-2.md b/docs/courses/level-one/chapter-2.md index b2504f858..fa27761bd 100644 --- a/docs/courses/level-one/chapter-2.md +++ b/docs/courses/level-one/chapter-2.md @@ -2,7 +2,7 @@ In this lesson you will apply what you learned in the previous lesson by building your first workflow, consisting of the *Start node* and a Regular node. -A simple, yet useful, automation is getting articles from Hacker News so that you’re up to date with the tech world. More specifically, let’s say you want to get the latest 10 articles related to automation. +A simple, yet useful, automation is getting articles from Hacker News so that you're up to date with the tech world. More specifically, let's say you want to get the latest 10 articles related to automation. You can build a workflow for this use case in 4 steps: @@ -42,7 +42,7 @@ The configuration of the parameters for the *Hacker News node* should now look l ### Settings -The *Settings* section includes several options for node design and executions. In this case, we’ll configure only the first two settings, which set the node’s appearance in the Editor UI. In the *Hacker News node* settings, edit: +The *Settings* section includes several options for node design and executions. In this case, we'll configure only the first two settings, which set the node's appearance in the Editor UI. In the *Hacker News node* settings, edit: - *Notes:* Get the 10 latest articles !!! note "Node notes" @@ -57,7 +57,7 @@ The configuration of the settings for the *Hacker News node* looks like this: !!! note "Renaming a node" - You can rename the node with a name that’s more descriptive for your use case. There are two ways to do this: + You can rename the node with a name that's more descriptive for your use case. There are two ways to do this: - Double-click on the node to open the node window. Click on the name of the node in the top left corner of the window, rename it as you like, then click on the ✔ symbol to save the node under the new name.
Renaming a node from the window
Renaming a node from the window
@@ -103,11 +103,11 @@ If the parameters are configured correctly and everything works fine, the reques The node window displays more information about the node execution: -- In the top left corner of the results window, you’ll notice another piece of information: ***Items**: 10*. -This field displays the number of items (records) that are returned by the node request. In our case, it’s expected to be 10, since this is the limit we set in the node. But if you don’t set a limit, it’s useful to see how many records are actually returned. -- Next to the *Items* information, notice a small orange *i* icon. If you hover on it, you’ll get two more pieces of information: ***Start Time*** (when the node execution started) and ***Execution Time*** (how long it took for the node to return the results from the moment it started executing). +- In the top left corner of the results window, you'll notice another piece of information: ***Items**: 10*. +This field displays the number of items (records) that are returned by the node request. In our case, it's expected to be 10, since this is the limit we set in the node. But if you don't set a limit, it's useful to see how many records are actually returned. +- Next to the *Items* information, notice a small orange *i* icon. If you hover on it, you'll get two more pieces of information: ***Start Time*** (when the node execution started) and ***Execution Time*** (how long it took for the node to return the results from the moment it started executing). *Start Time* and *Execution Time* can provide insights into the performance of each individual node. -- In the bottom right corner right under the node window, there is a reference link to the node’s **documentation**. Check it out if you run into trouble or are not sure how to configure the node’s parameters. +- In the bottom right corner right under the node window, there is a reference link to the node's **documentation**. Check it out if you run into trouble or are not sure how to configure the node's parameters. !!! warning "Error in nodes" diff --git a/docs/courses/level-one/chapter-3.md b/docs/courses/level-one/chapter-3.md index b9b552115..c2b40ddaf 100644 --- a/docs/courses/level-one/chapter-3.md +++ b/docs/courses/level-one/chapter-3.md @@ -2,20 +2,20 @@ Meet Nathan 🙋. Nathan works as an Analytics Manager at ABCorp. His job is to support the ABCorp team with reporting and analytics. Being a true jack of all trades, he also handles several miscellaneous initiatives. -Some of the things that Nathan does are very repetitive and mind-numbing. He wants to automate some of these tasks so that he doesn’t burn out. As an **Automation Expert**, you are meeting with Nathan today to help him understand how he can offload some of his responsibilities to n8n. +Some of the things that Nathan does are very repetitive and mind-numbing. He wants to automate some of these tasks so that he doesn't burn out. As an **Automation Expert**, you are meeting with Nathan today to help him understand how he can offload some of his responsibilities to n8n. ## Understanding the scenario -**You 👩‍🔧:** Nice to meet you, Nathan. Glad to be doing this! What’s a repetitive task that is error-prone and that you’d like to get off your plate first? +**You 👩‍🔧:** Nice to meet you, Nathan. Glad to be doing this! What's a repetitive task that is error-prone and that you'd like to get off your plate first? -**Nathan 🙋:** Thanks for coming in! The most annoying one’s gotta be the weekly sales reporting. +**Nathan 🙋:** Thanks for coming in! The most annoying one's gotta be the weekly sales reporting. I have to collect sales data from our legacy data warehouse, which manages data from the main business processes of an organization, such as sales or production. Now, each sales order can have the status Processing or Booked. I have to calculate the sum of all the Booked orders and announce them in the company Discord every Monday. Then I have to create a spreadsheet of all the Processing sales so that the Sales Managers can review them and check if they need to follow up with customers. -This manual work is tough and requires high attention to detail to make sure that all the numbers are right. Inevitably, I sometimes lose my focus and mistype a number or don’t get to do it on time. I’ve been criticized once by my manager for miscalculating the data. +This manual work is tough and requires high attention to detail to make sure that all the numbers are right. Inevitably, I sometimes lose my focus and mistype a number or don't get to do it on time. I've been criticized once by my manager for miscalculating the data. -**You 👩‍🔧:** Oh no! Doesn’t the data warehouse have a way to export the data? +**You 👩‍🔧:** Oh no! Doesn't the data warehouse have a way to export the data? -**Nathan 🙋:** The data warehouse was written in-house ages ago. It doesn’t have a CSV export but they recently added a couple of API endpoints that expose this data, if that helps. +**Nathan 🙋:** The data warehouse was written in-house ages ago. It doesn't have a CSV export but they recently added a couple of API endpoints that expose this data, if that helps. -**You 👩‍🔧:** Perfect! That’s a good start. If you have a generic API, we can add some custom code and a couple of services to make an automated workflow. This gig has n8n written all over it. Let’s get started! +**You 👩‍🔧:** Perfect! That's a good start. If you have a generic API, we can add some custom code and a couple of services to make an automated workflow. This gig has n8n written all over it. Let's get started! diff --git a/docs/courses/level-one/chapter-4.md b/docs/courses/level-one/chapter-4.md index ad25ab0a1..be9310e50 100644 --- a/docs/courses/level-one/chapter-4.md +++ b/docs/courses/level-one/chapter-4.md @@ -1,17 +1,17 @@ # Designing the Workflow -Now that we have an idea of what Nathan wants to automate, let’s enumerate the steps he needs to take to achieve this: +Now that we have an idea of what Nathan wants to automate, let's enumerate the steps he needs to take to achieve this: 1. Get the relevant data (order id, order status, order value, employee name) from the data warehouse 2. Filter the orders by their status (processing or booked) 3. Calculate the total value of all the booked orders -4. Notify the team members about the booked orders in the company’s Discord channel +4. Notify the team members about the booked orders in the company's Discord channel 5. Insert the details about the processing orders in Airtable for follow-up 6. Schedule this workflow to run every Monday morning -Nathan’s workflow involves sending data from the company’s data warehouse to two external services: Discord and Airtable. In between, the data has to be wrangled with general functions (conditional filtering, calculation, scheduling). +Nathan's workflow involves sending data from the company's data warehouse to two external services: Discord and Airtable. In between, the data has to be wrangled with general functions (conditional filtering, calculation, scheduling). -n8n provides integrations for all these steps, so Nathan’s workflow in n8n would look like this: +n8n provides integrations for all these steps, so Nathan's workflow in n8n would look like this:
Finished workflow
Nathan's workflow
diff --git a/docs/courses/level-one/chapter-5/chapter-5.1.md b/docs/courses/level-one/chapter-5/chapter-5.1.md index 58c5ee763..bfa9d27ed 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.1.md +++ b/docs/courses/level-one/chapter-5/chapter-5.1.md @@ -2,21 +2,21 @@ In this part of the workflow you will learn how to get data by making HTTP requests using the *HTTP Request* node. -First, let’s set up the scene for building Nathan’s workflow. Open your Editor UI and create a new workflow with one of the two possible commands: +First, let's set up the scene for building Nathan's workflow. Open your Editor UI and create a new workflow with one of the two possible commands: - Click **Ctrl + Alt + N** or **Cmd + Option + N** on your keyboard - Open the left menu and click on *New* under the Workflow section -Name this new workflow “Nathan’s workflow”. +Name this new workflow “Nathan's workflow”. -The first thing we need to do is get data from ABCorp’s old data warehouse. +The first thing we need to do is get data from ABCorp's old data warehouse. -In the previous chapter, we used a regular node for a specific app (Hacker News). However, not all apps or services have dedicated nodes – like the legacy data warehouse from Nathan’s company. Nathan mentioned that it’s not possible to directly export the data, however the data warehouse has a couple of API endpoints. +In the previous chapter, we used a regular node for a specific app (Hacker News). However, not all apps or services have dedicated nodes – like the legacy data warehouse from Nathan's company. Nathan mentioned that it's not possible to directly export the data, however the data warehouse has a couple of API endpoints. -That’s all we need to access the data via the [***HTTP Request node***](/integrations/core-nodes/n8n-nodes-base.httpRequest/)in n8n. +That's all we need to access the data via the [***HTTP Request node***](/integrations/core-nodes/n8n-nodes-base.httpRequest/)in n8n. !!! note "No node for that service?" - The *HTTP Request node* is one of the most versatile nodes, allowing you to make HTTP requests which can be used to query data from apps and services. You can use it to access data from apps or services that don’t have a dedicated node in n8n. + The *HTTP Request node* is one of the most versatile nodes, allowing you to make HTTP requests which can be used to query data from apps and services. You can use it to access data from apps or services that don't have a dedicated node in n8n. Now, in your Editor UI, add an *HTTP Request node* like you learned in the [lesson *Adding nodes*](/courses/level-one/chapter-1/#adding-nodes). The node window will open, where you need to configure some parameters. @@ -46,7 +46,7 @@ In the left panel, click on *Create New* in the box next to the parameter *Crede - *Credentials Name* in the top left corner, next to the node logo. By default, the name of the credentials is `Header Auth account`, but you can can rename to `beginner_course`, for example. !!! note "Credentials naming" - You can name your credentials however you want. It’s good practice to give them descriptive names for the app/service, type, and purpose of the credential. A naming convention will make it easier for you to keep track of and identify your credentials. + You can name your credentials however you want. It's good practice to give them descriptive names for the app/service, type, and purpose of the credential. A naming convention will make it easier for you to keep track of and identify your credentials. - *Name:* `api_key` @@ -66,12 +66,12 @@ This view should be familiar to you from the [Hacker News mini-workflow](/course - *orderID:* The unique id of each order. - *customerID:* The unique id of each customer. -- *employeeName:* The name of Nathan’s colleagues who are responsible for each client. -- *orderPrice:* The total price of the customer’s order. -- *orderStatus:* Whether the customer’s order is booked or still in processing. +- *employeeName:* The name of Nathan's colleagues who are responsible for each client. +- *orderPrice:* The total price of the customer's order. +- *orderStatus:* Whether the customer's order is booked or still in processing. ## What's next? **Nathan 🙋**: This is great! You already automated an important part of my job with only one node. Now instead of manually accessing the data every time I need it, I can use the HTTP Node to automatically get the information. -**You 👩‍🔧**: Exactly! In the next step, I’ll help you one step further and insert the received data into Airtable, as you need it. +**You 👩‍🔧**: Exactly! In the next step, I'll help you one step further and insert the received data into Airtable, as you need it. diff --git a/docs/courses/level-one/chapter-5/chapter-5.2.md b/docs/courses/level-one/chapter-5/chapter-5.2.md index 9ab1bedfe..fcc7daf85 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.2.md +++ b/docs/courses/level-one/chapter-5/chapter-5.2.md @@ -23,7 +23,7 @@ Now your table should look like this:
Orders table in Airtable
Orders table in Airtable
-Now that the table is prepared let’s return to the workflow in the Editor UI. +Now that the table is prepared let's return to the workflow in the Editor UI. Add an ***Airtable node*** connected to the HTTP Request node. diff --git a/docs/courses/level-one/chapter-5/chapter-5.4.md b/docs/courses/level-one/chapter-5/chapter-5.4.md index c29a7a6b9..2789421eb 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.4.md +++ b/docs/courses/level-one/chapter-5/chapter-5.4.md @@ -2,7 +2,7 @@ In this step of the workflow you will learn how to select and set data before transferring it to Airtable using the *Set* node. -The next step in Nathan’s workflow is to insert the *employeeName* and *orderId* of all *processing* orders into Airtable. +The next step in Nathan's workflow is to insert the *employeeName* and *orderId* of all *processing* orders into Airtable. For this, you need to use the [**Set node**](/integrations/core-nodes/n8n-nodes-base.set/), which allows you to select and set the data you want to be transferred from one app/service to another. @@ -31,7 +31,7 @@ Next, we need to insert these values into Airtable. Go to your Airtable account Remember to update the Airtable node configuration to point to this new table. -Once that’s done, execute the *Airtable* node in the workflow and you should see the records inserted in the table. +Once that's done, execute the *Airtable* node in the workflow and you should see the records inserted in the table. At this stage, it looks like this: diff --git a/docs/courses/level-one/chapter-5/chapter-5.5.md b/docs/courses/level-one/chapter-5/chapter-5.5.md index 70933f95a..687332def 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.5.md +++ b/docs/courses/level-one/chapter-5/chapter-5.5.md @@ -2,7 +2,7 @@ In this step of the workflow you will learn how n8n data is structured and how to add custom JavaScript code to perform calculations using the *Function* node. -The next step in Nathan’s workflow is to calculate two values from the booked orders: +The next step in Nathan's workflow is to calculate two values from the booked orders: - The total number of booked orders - The total value of all booked orders @@ -49,7 +49,7 @@ In n8n, the data that is passed between nodes is an array of objects with the fo ] ``` -Now let’s see how to implement this. +Now let's see how to implement this. In your workflow, add a *Function* node connected to the false branch of the *IF* node. In the *Function* node window paste the following code in the JavaScript Code box: @@ -67,7 +67,7 @@ Notice the format in which we return the results of the calculation: `return [{json:{totalBooked, bookedSum}}]` !!! warning "Data structure error" - If you don’t use the correct data structure, you will get an error message: `Error: Always an Array of items has to be returned!` + If you don't use the correct data structure, you will get an error message: `Error: Always an Array of items has to be returned!` Now execute the node and you should see the following results: diff --git a/docs/courses/level-one/chapter-5/chapter-5.6.md b/docs/courses/level-one/chapter-5/chapter-5.6.md index 90c9e78a2..bbdcde8e4 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.6.md +++ b/docs/courses/level-one/chapter-5/chapter-5.6.md @@ -2,7 +2,7 @@ In this step of the workflow you will learn how to send messages to a Discord channel using the *Discord* node. -Now that you have a calculated summary of the booked orders you need to notify Nathan’s team in their Discord channel. n8n has a **Discord node** that allows you to send messages. We'll be sending the messages to the [n8n server](https://discord.gg/G98WXzsjky) on Discord. +Now that you have a calculated summary of the booked orders you need to notify Nathan's team in their Discord channel. n8n has a **Discord node** that allows you to send messages. We'll be sending the messages to the [n8n server](https://discord.gg/G98WXzsjky) on Discord. !!! note "Communication nodes" You can replace the *Discord* node with another communication app. For example, n8n also has nodes for [*Slack*](/integrations/nodes/n8n-nodes-base.slack/) and [*Mattermost*](/integrations/nodes/n8n-nodes-base.mattermost/). diff --git a/docs/courses/level-one/chapter-5/chapter-5.7.md b/docs/courses/level-one/chapter-5/chapter-5.7.md index c696460b3..5f332d167 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.7.md +++ b/docs/courses/level-one/chapter-5/chapter-5.7.md @@ -2,7 +2,7 @@ In this step of the workflow you will learn how to schedule your workflow so that it runs automatically at a set time/interval using the *Cron node*. -The workflow you’ve built so far executes only when you click on _Execute Workflow_. But Nathan needs it to run automatically every Monday morning. You can do this with the [***Cron node***](/integrations/core-nodes/n8n-nodes-base.cron/), which allows you to schedule workflows to run periodically at fixed dates, times, or intervals. +The workflow you've built so far executes only when you click on _Execute Workflow_. But Nathan needs it to run automatically every Monday morning. You can do this with the [***Cron node***](/integrations/core-nodes/n8n-nodes-base.cron/), which allows you to schedule workflows to run periodically at fixed dates, times, or intervals. In your workflow, replace the *Start node* with the *Cron node* and configure its parameters: diff --git a/docs/courses/level-one/chapter-5/chapter-5.8.md b/docs/courses/level-one/chapter-5/chapter-5.8.md index 01a458d1b..1ec2f2cec 100644 --- a/docs/courses/level-one/chapter-5/chapter-5.8.md +++ b/docs/courses/level-one/chapter-5/chapter-5.8.md @@ -4,7 +4,7 @@ In this step of the workflow you will learn how to activate your workflow and ch Activating a workflow means that it will run automatically every time a trigger node receives input or meets a condition. By default, all newly created workflows are deactivated. -To activate your workflow toggle the *Active* button on the top right corner of the Editor UI. Nathan’s workflow will now be executed automatically every Monday at 9 am. +To activate your workflow toggle the *Active* button on the top right corner of the Editor UI. Nathan's workflow will now be executed automatically every Monday at 9 am.
Activated workflow
Activated workflow
diff --git a/docs/courses/level-one/chapter-6.md b/docs/courses/level-one/chapter-6.md index 8ffab505e..438016588 100644 --- a/docs/courses/level-one/chapter-6.md +++ b/docs/courses/level-one/chapter-6.md @@ -9,7 +9,7 @@ In this chapter you will learn how to export and import workflows, as well as sh Workflows can be saved locally as JSON files. This is useful if you want to share your workflow with someone else or import a workflow from someone else. !!! warning "Sharing credentials" - Note that the exported JSON file of your workflow will contain your credentials as well. If you don’t want to share your credentials (recommended), delete them from the JSON file. + Note that the exported JSON file of your workflow will contain your credentials as well. If you don't want to share your credentials (recommended), delete them from the JSON file. You can export and import workflows in two ways: @@ -25,7 +25,7 @@ You can export and import workflows in two ways: We love to see what users build with n8n and discover inspiring workflows while also sharing our ideas with them! On the [n8n workflows page](https://n8n.io/workflows) you can find hundreds of workflows contributed by our team or community of users. Feel free to share your workflows too! -Of course, since many users take this course and build the same workflow, there is no point in sharing Nathan’s workflow on the workflows page. However, we encourage you to build other helpful and original workflows and share them with the community. +Of course, since many users take this course and build the same workflow, there is no point in sharing Nathan's workflow on the workflows page. However, we encourage you to build other helpful and original workflows and share them with the community. To share a workflow, follow these steps: diff --git a/docs/courses/level-one/chapter-7.md b/docs/courses/level-one/chapter-7.md index de62688f7..71d667248 100644 --- a/docs/courses/level-one/chapter-7.md +++ b/docs/courses/level-one/chapter-7.md @@ -2,7 +2,7 @@ Congratulations – you finished the n8n Course Level 1! You helped Nathan build a business use case workflow, saving him hours of tedious work and making him more productive. -You’ve come a long way throughout this course and learned a lot about workflow automation. Here’s what you can do next: +You've come a long way throughout this course and learned a lot about workflow automation. Here's what you can do next: * Test your knowledge of everything you've learned in this course with a **quiz**. The quiz consists of questions about the theoretical concepts and workflows covered in this course. @@ -16,5 +16,5 @@ You’ve come a long way throughout this course and learned a lot about workflow -* Create new workflows for your work or personal use and share them with us. Don’t have any ideas? Find inspiration on our [blog](https://n8n.io/blog/), [YouTube channel](https://www.youtube.com/c/n8n-io), [community forum](https://community.n8n.io), and [Discord server](https://discord.gg/vWwMVThRta). +* Create new workflows for your work or personal use and share them with us. Don't have any ideas? Find inspiration on our [blog](https://n8n.io/blog/), [YouTube channel](https://www.youtube.com/c/n8n-io), [community forum](https://community.n8n.io), and [Discord server](https://discord.gg/vWwMVThRta). * Take the n8n [Course Level 2](/courses/level-two/). diff --git a/docs/courses/level-one/index.md b/docs/courses/level-one/index.md index d967d59f0..5df113b3c 100644 --- a/docs/courses/level-one/index.md +++ b/docs/courses/level-one/index.md @@ -55,5 +55,5 @@ We believe all good works deserve recognition. If you successfully complete the - [x] Pass the quiz (theory and practice) at the end of the course
- +
diff --git a/docs/courses/level-two/chapter-4.md b/docs/courses/level-two/chapter-4.md index 8038e0f42..12b908b33 100644 --- a/docs/courses/level-two/chapter-4.md +++ b/docs/courses/level-two/chapter-4.md @@ -30,7 +30,7 @@ The only difference between a regular workflow and an Error Workflow is that the - You don't need to activate workflows that use the Error Workflow node. - A workflow that uses the *Error Trigger node* uses itself as the error workflow. - - The Error Trigger node is designed to get triggered only when the monitored workflow gets executed automatically. This means you can’t test this (to see the result of) an error workflow while executing the monitored workflow manually. + - The Error Trigger node is designed to get triggered only when the monitored workflow gets executed automatically. This means you can't test this (to see the result of) an error workflow while executing the monitored workflow manually. - You can set the same Error Workflow for multiple workflows. diff --git a/docs/courses/level-two/chapter-5/chapter-5.0.md b/docs/courses/level-two/chapter-5/chapter-5.0.md index 9d5bb6028..5411d97d6 100644 --- a/docs/courses/level-two/chapter-5/chapter-5.0.md +++ b/docs/courses/level-two/chapter-5/chapter-5.0.md @@ -10,7 +10,7 @@ Remember [our friend Nathan](/courses/level-one/chapter-3)? ## Workflow design -Now that we have an idea of what Nathan wants to automate, let’s list the steps he needs to take to achieve this: +Now that we have an idea of what Nathan wants to automate, let's list the steps he needs to take to achieve this: 1. Get and combine data from all necessary sources. 2. Sort the data and format the dates. diff --git a/docs/courses/level-two/chapter-6.md b/docs/courses/level-two/chapter-6.md index 55bc68c8b..c54d8d2ff 100644 --- a/docs/courses/level-two/chapter-6.md +++ b/docs/courses/level-two/chapter-6.md @@ -2,7 +2,7 @@ Congratulations – you finished the n8n Course Level 2! You helped Nathan build a business workflow automation, saving him hours of tedious work and making him more productive. -You’ve come a long way throughout this course and learned a lot about workflow automation. Here’s what you can do next: +You've come a long way throughout this course and learned a lot about workflow automation. Here's what you can do next: * Test your knowledge of everything you've learned in this course with a quiz. The quiz consists of questions about the theoretical concepts and workflows covered in this course. @@ -14,5 +14,5 @@ You’ve come a long way throughout this course and learned a lot about workflow -* Create new workflows for your work or personal use and share them with us. Don’t have any ideas? Find inspiration on the [workflows page](https://n8n.io/workflows) and on our [blog](https://n8n.io/blog/). +* Create new workflows for your work or personal use and share them with us. Don't have any ideas? Find inspiration on the [workflows page](https://n8n.io/workflows) and on our [blog](https://n8n.io/blog/). * Dive deeper into n8n's features by reading the [docs](/). diff --git a/docs/data/transforming-data.md b/docs/data/transforming-data.md index e49408e43..ee73a4b22 100644 --- a/docs/data/transforming-data.md +++ b/docs/data/transforming-data.md @@ -4,14 +4,14 @@ n8n uses a predefined [data structure](/data/data-structure/) that allows all no Your incoming data may have a different data structure, in which case you will need to transform it to allow each item to be processed individually. -For example, the image below shows the output of an [HTTP Request](/integrations/core-nodes/n8n-nodes-base.httpRequest/) node that returns data incompatible with n8n’s data structure. The node returns the data and displays that only one item was returned. +For example, the image below shows the output of an [HTTP Request](/integrations/core-nodes/n8n-nodes-base.httpRequest/) node that returns data incompatible with n8n's data structure. The node returns the data and displays that only one item was returned. ![HTTP Request node output](/_images/data/transforming-data/HTTPRequest_output.png) To transform this kind of structure into the n8n data structure you will have to use the Item Lists node. !!! note - If you’re using the HTTP Request node, you should use the Split Into items option to transform the data. You don’t have to use a Function node in that case. + If you're using the HTTP Request node, you should use the Split Into items option to transform the data. You don't have to use a Function node in that case. diff --git a/docs/flow-logic/looping.md b/docs/flow-logic/looping.md index b4d903fe7..e17b34421 100644 --- a/docs/flow-logic/looping.md +++ b/docs/flow-logic/looping.md @@ -2,7 +2,7 @@ Looping enables you to repeatedly perform the same actions, stopping only after a set number of repetitions (e.g. fetch the 10 most recent items) or when a specific condition is met (e.g. no new items exist). -Looping is useful when you want to process multiple similar items, for example sending a message to every contact in your address book. In n8n this repetitive processing is handled automatically, meaning you do not need to specifically build loops into your workflows. There are some [special cases](#node-exceptions) where this isn’t true. +Looping is useful when you want to process multiple similar items, for example sending a message to every contact in your address book. In n8n this repetitive processing is handled automatically, meaning you do not need to specifically build loops into your workflows. There are some [special cases](#node-exceptions) where this isn't true. ## Using loops in n8n @@ -86,7 +86,7 @@ There are a limited number of nodes and operations where you need to design a lo * [**Microsoft SQL**](/integrations/nodes/n8n-nodes-base.microsoftSql/) node does not natively handle looping, so if you want the node to process all incoming items you must create a loop. * [**Postgres**](/integrations/nodes/n8n-nodes-base.postgres/) node will execute and iterate over all incoming items only for Postgres related functions (for example, `pgInsert`, `pgUpdate`, `pqQuery`). * [**QuestDB**](/integrations/nodes/n8n-nodes-base.questDb/) node will execute and iterate over all incoming items only for Postgres related functions (e.g. `pgInsert`, `pgUpdate`, `pqQuery`). -* [**Read Binary Files**](/integrations/core-nodes/n8n-nodes-base.readBinaryFiles/) node will fetch the files from the specified path only once. This node doesn’t execute multiple times based on the incoming data. However, if the path is referenced from the incoming data, the node will fetch the files for all the valid paths. +* [**Read Binary Files**](/integrations/core-nodes/n8n-nodes-base.readBinaryFiles/) node will fetch the files from the specified path only once. This node doesn't execute multiple times based on the incoming data. However, if the path is referenced from the incoming data, the node will fetch the files for all the valid paths. * [**Redis**](/integrations/nodes/n8n-nodes-base.redis/) node: * **Info**: This operation executes only once, regardless of the number of items in the incoming data. * [**RSS**](/integrations/core-nodes/n8n-nodes-base.rssFeedRead/) nodes executes only once regardless of the number of items in the incoming data. diff --git a/docs/hosting/scaling/execution-modes-processes.md b/docs/hosting/scaling/execution-modes-processes.md index dcfb18f0b..1ca231807 100644 --- a/docs/hosting/scaling/execution-modes-processes.md +++ b/docs/hosting/scaling/execution-modes-processes.md @@ -45,7 +45,7 @@ This is the default setting for n8n. When running n8n in the `regular` mode, eve ### Queue -`Queue` mode is designed for handling very high workloads. In this mode you run multiple instances of n8n: one ‘main’ instance coordinates, and other ‘worker’ instances actually process the executions. You can also add dedicated instances to handle incoming webhooks. +`Queue` mode is designed for handling very high workloads. In this mode you run multiple instances of n8n: one ‘main' instance coordinates, and other ‘worker' instances actually process the executions. You can also add dedicated instances to handle incoming webhooks. `Queue` mode requires more setup than `regular` mode, but provides great scalability and stability with minimal latency. diff --git a/docs/hosting/scaling/queue-mode.md b/docs/hosting/scaling/queue-mode.md index e203af364..b08cb570a 100644 --- a/docs/hosting/scaling/queue-mode.md +++ b/docs/hosting/scaling/queue-mode.md @@ -65,10 +65,10 @@ You can also set the following optional configurations: | Via configuration file | Via environment variables | Description | | ------ | ------ | ----- | -| `queue.bull.redis.password:PASSWORD` | `QUEUE_BULL_REDIS_PASSWORD` | By default, Redis doesn’t require a password. If you’re using a password, configure it variable. | +| `queue.bull.redis.password:PASSWORD` | `QUEUE_BULL_REDIS_PASSWORD` | By default, Redis doesn't require a password. If you're using a password, configure it variable. | | `queue.bull.redis.db:0` | `QUEUE_BULL_REDIS_DB` | The default value is `0`. If you change this value, update the configuration. | | `queue.bull.redis.timeoutThreshold:10000ms` | `QUEUE_BULL_REDIS_TIMEOUT_THRESHOLD` | Tells n8n how long it should wait if Redis is unavailable before exiting. The default value is `10000ms`. | -| `queue.bull.queueRecoveryInterval:60` | `QUEUE_RECOVERY_INTERVAL` | Adds an active watchdog to n8n that checks Redis for finished executions. This is used to recover when n8n’s main process loses connection temporarily to Redis and is not notified about finished jobs. The default value is `60` seconds. | +| `queue.bull.queueRecoveryInterval:60` | `QUEUE_RECOVERY_INTERVAL` | Adds an active watchdog to n8n that checks Redis for finished executions. This is used to recover when n8n's main process loses connection temporarily to Redis and is not notified about finished jobs. The default value is `60` seconds. | Now you can start your n8n instance and it will connect to your Redis instance. diff --git a/docs/integrations/core-nodes/n8n-nodes-base.webhook.md b/docs/integrations/core-nodes/n8n-nodes-base.webhook.md index 14739dfe3..fbe88f22a 100644 --- a/docs/integrations/core-nodes/n8n-nodes-base.webhook.md +++ b/docs/integrations/core-nodes/n8n-nodes-base.webhook.md @@ -4,7 +4,7 @@ The Webhook node is one of the most powerful nodes in n8n. It allows you to crea !!! note "Keep in mind" 1. When using the Webhook node on the localhost, ensure that n8n is running with the tunnel mode: [npm with tunnel](/hosting/installation/npm/#n8n-with-tunnel) or [Docker with tunnel](/hosting/installation/docker/#n8n-with-tunnel). -2. When working with a Production webhook, please ensure that you have saved and activated the workflow. Don’t forget that the data flowing through the webhook won’t be visible in the Editor UI with the Production webhook. +2. When working with a Production webhook, please ensure that you have saved and activated the workflow. Don't forget that the data flowing through the webhook won't be visible in the Editor UI with the Production webhook. Webhook nodes can be used as triggers for workflows when we want to receive data and run a workflow based on the data. The Webhook node also supports returning the data generated at the end of a workflow. This makes it very useful to build a workflow to process data and return the results, like an API endpoint. @@ -20,10 +20,10 @@ While building or testing a workflow, we recommend that you use a test webhook U ## Node Reference -First of all, in the parameters section, we have the Webhook URLs. Clicking on that will reveal the URLs for the webhook. Here you have two options, let’s understand the difference between them. +First of all, in the parameters section, we have the Webhook URLs. Clicking on that will reveal the URLs for the webhook. Here you have two options, let's understand the difference between them. 1. **Webhook URLs** - - **Production**: A Production webhook is only registered when a workflow has been activated (via the switch on the top right of the page). You will never see its data in the Editor UI. To save the executions, you can either set that as a global default or you can specify that on a per-workflow basis in the workflow settings. You will then see the data from the workflow under ‘Past Executions’. + - **Production**: A Production webhook is only registered when a workflow has been activated (via the switch on the top right of the page). You will never see its data in the Editor UI. To save the executions, you can either set that as a global default or you can specify that on a per-workflow basis in the workflow settings. You will then see the data from the workflow under ‘Past Executions'. - **Test**: A Test webhook is only registered in the time between executing a workflow via the UI and until the first call gets made (when it displays “waiting for Webhook call”). After the Test webhook gets called for the first time, it displays the data in the Editor UI, and then gets deactivated. @@ -50,11 +50,11 @@ First of all, in the parameters section, we have the Webhook URLs. Clicking on t - [**Response Headers**](https://developer.mozilla.org/en-US/docs/Glossary/Response_header) — This option allows you to specify additional headers in the Webhook response. - **Raw Body** — This option is used to specify when the Webhook node will receive data in a RAW format, such as JSON or XML. -- **Binary Data** — This option is available only when the Webhook node is set to receive POST requests. Setting this to ‘true’ lets the Webhook node know that it will receive binary data (such as an image/audio). You can use this option when you expect to receive a file via your Webhook node. +- **Binary Data** — This option is available only when the Webhook node is set to receive POST requests. Setting this to ‘true' lets the Webhook node know that it will receive binary data (such as an image/audio). You can use this option when you expect to receive a file via your Webhook node. **Conditional Parameters:** The Webhook node also supports several other parameters, that are used only in certain configurations. -- **Response Data:** This option is available only when set to respond when ‘Last node finishes’. It allows you to choose which data to return: +- **Response Data:** This option is available only when set to respond when ‘Last node finishes'. It allows you to choose which data to return: - **All Entries** — Choose this option to return all the data generated by the last node in the workflow, as an array. - **First Entry JSON** — Choose this option to return the first data entry of the last node in the workflow, as a JSON object. - **First Entry Binary** — Choose this option to return the binary data of the first entry of the last node in the workflow, as a binary file. diff --git a/docs/integrations/creating-nodes/code/create-first-node.md b/docs/integrations/creating-nodes/code/create-first-node.md index f70d56e19..916baa138 100644 --- a/docs/integrations/creating-nodes/code/create-first-node.md +++ b/docs/integrations/creating-nodes/code/create-first-node.md @@ -63,7 +63,7 @@ All these packages are under the `/packages` folder in the main n8n folder. We w 4. Download and add the FriendGrid [icon](https://symbols.getvecta.com/stencil_95/59_sendgrid-icon.5e86042b30.svg) to the folder. Name it `friendGrid.svg`. - The icon property has to be either a 60x60 pixels PNG or an SVG and must exist in the node’s folder. - An SVG is preferable. In case you have to use a PNG, make sure that it is compressed. A good tool for that is [tinypng](https://tinypng.com). - - A good place to find company icons is [gilbarbara/logos](https://github.com/gilbarbara/logos/tree/master/logos). + - A good place to find company icons is [gilbarbara/logos](https://github.com/gilbarbara/log's/tree/master/logos). 5. Paste the following code in the `FriendGrid.node.ts` file. ```typescript @@ -148,7 +148,7 @@ Let's see how the node looks in the UI by following these steps: - The property `description.name` uses camelCase. - The property `description.color` is the company branding's hexadecimal color. This is usually available on the company's website under style guide. In case the website does not include this information, there are other websites that help you get a company’s branding colors. For example, [brandpalettes.com](https://brandpalettes.com/). - +' ## Creating the UI for the node Double-clicking on the FriendGrid node will open the Node Editor View. It will be empty since we haven't added any UI components yet. Luckily, n8n provides predefined JSON-based UI components that we can use to ask the user for different types of data. @@ -179,7 +179,7 @@ You might say that you can “Add a contact” and you are right, but we try to Let’s make the Node Editor View ask for these parameters: -1. Add the following under `description.properties` in `packages/nodes-base/nodes/FriendGrid/FriendGrid.node.ts`. +1. 'dd the following under `description.properties` in `packages/nodes-base/nodes/FriendGrid/FriendGrid.node.ts`. ```typescript { @@ -303,7 +303,7 @@ The node should now look like in the following image. Now all our optional fields are presented in the UI and can be set individually depending on the user’s use-case. -## Creating the UI for credentials +## Creating the UI for credentials' Most REST APIs use some sort of authentication mechanism. FriendGrid's REST API uses API Keys. The API Key informs them about who is making the request to their system and gives you access to all the functionality that the API provides. Given all the things it can do, this has to be treated as a sensitive piece of information and should be kept private. @@ -311,7 +311,7 @@ n8n gives you the ability to ask for sensitive information using credentials. In With that in mind, let’s create the UI to ask for the user’s FriendGrid API Key. The process of creating and registering credentials is similar to that of creating and registering the node: -1. Go to `packages/nodes-base/credentials`. +1. Go to `packages/nod's-base/credentials`.' 2. Within the credentials folder, create a file named `FriendGridApi.credentials.ts`. 3. Paste the following code. @@ -525,9 +525,9 @@ If you open the FriendGrid node, you should see the following. As showcased above, both the items were processed. That’s how all nodes in n8n work (with a few exceptions). They will automatically iterate over all the items and process them. -Let’s go over the final version of the `execute` method. We are getting the items returned by the `this.getInputData()` function and iterating over all of them. Additionally, while doing so, we use the item index to get the correct parameter value using the function `this.getNodeParameters()`. For example, with the following input: +Let’s go over the final version of the `execute` method' We are getting the items returned by the `this.getInputData()` function and iterating over all of them. Additionally, while doing so, we use the item index to get the correct parameter value using the function `this.getNodeParameters()`. For example, with the following input: -```javascript +```'avascript [ { json: { @@ -559,7 +559,7 @@ We used the `this.helpers.request(options)` method to make the HTTP Request that We then used the `this.helpers.returnJsonArray()` method to map the API’s output data to n8n's data structure. The node then ends up returning the data like the following: -```javascript +```javascript' [ { json:{ diff --git a/docs/integrations/creating-nodes/code/create-n8n-nodes-module.md b/docs/integrations/creating-nodes/code/create-n8n-nodes-module.md index d604bc144..cd927f5a8 100644 --- a/docs/integrations/creating-nodes/code/create-n8n-nodes-module.md +++ b/docs/integrations/creating-nodes/code/create-n8n-nodes-module.md @@ -1,6 +1,6 @@ # Creating n8n-nodes-module -In this guide, you’ll learn to create a custom n8n-nodes-module that can be installed separately alongside your n8n instance. The n8n-nodes-module is an npm package that contains the node. Your custom node will get loaded automatically when n8n starts. +In this guide, you'll learn to create a custom n8n-nodes-module that can be installed separately alongside your n8n instance. The n8n-nodes-module is an npm package that contains the node. Your custom node will get loaded automatically when n8n starts. Consider creating n8n-nodes-module if any of the following conditions satisfy your needs: - The nodes are only for yourself, your organization, or a small group of people. @@ -36,7 +36,7 @@ npm install n8n ## Create custom n8n-nodes-module -You can create multiple n8n-nodes-modules. Each individual n8n-nodes-module should get created in a separate folder since they are different npm packages. A single n8n-nodes-module can contain multiple nodes. If you’re creating multiple nodes in the same module, as a best practice create each node in a separate folder. +You can create multiple n8n-nodes-modules. Each individual n8n-nodes-module should get created in a separate folder since they are different npm packages. A single n8n-nodes-module can contain multiple nodes. If you're creating multiple nodes in the same module, as a best practice create each node in a separate folder. In this tutorial, you will create an n8n-nodes-module for the OpenWeatherMap API. You will name it ***n8n-nodes-weather***. @@ -382,7 +382,7 @@ Add the newly created node and the credential to the package.json file. Add `"di ## Develop and test the module -Once you’ve created the n8n-nodes-module, you need to build the code and publish the package locally to test it. Run the following commands: +Once you've created the n8n-nodes-module, you need to build the code and publish the package locally to test it. Run the following commands: ```bash # Install dependencies @@ -426,7 +426,7 @@ Following the steps mentioned above, you can create multiple nodes within a sing Once you test and publish your n8n-nodes-module you would want to use it in your production environment. -If you’re running n8n via Docker, you will have to create a Docker image with the node module installed in n8n. Follow the steps below to create your Docker image: +If you're running n8n via Docker, you will have to create a Docker image with the node module installed in n8n. Follow the steps below to create your Docker image: 1. Create a Dockerfile and paste the code from [this Dockerfile](https://github.com/n8n-io/n8n/blob/master/docker/images/n8n/Dockerfile). 2. Add the following command in your Dockerfile before the font installation command. @@ -485,4 +485,4 @@ EXPOSE 5678/tcp You will now be able to use your n8n-nodes-module in Docker. -If you’re running either by installing it globally or via PM2, make sure that you install your n8n-nodes-module inside n8n. n8n will find the module and load it automatically. \ No newline at end of file +If you're running either by installing it globally or via PM2, make sure that you install your n8n-nodes-module inside n8n. n8n will find the module and load it automatically. \ No newline at end of file diff --git a/docs/integrations/creating-nodes/code/create-trigger-node.md b/docs/integrations/creating-nodes/code/create-trigger-node.md index 95cf63c07..f45e14a18 100644 --- a/docs/integrations/creating-nodes/code/create-trigger-node.md +++ b/docs/integrations/creating-nodes/code/create-trigger-node.md @@ -62,7 +62,7 @@ All these packages are under the `/packages` folder in the main n8n folder. We w 2. Create a folder called `Autofriend` (the folder names are PascalCase). 3. Within the Autofriend folder, create a file called `AutofriendTrigger.node.ts` (YourNodeNameTrigger.node.ts). 4. Download and add the Autofriend [icon](https://github.com/n8n-io/n8n/blob/master/packages/nodes-base/nodes/Autopilot/autopilot.svg) to the folder. Name it `autopilot.svg`. - - The icon property has to be either a 60x60 pixels PNG or an SVG and must exist in the node’s folder. + - The icon property has to be either a 60x60 pixels PNG or an SVG and must exist in the node's folder. - An SVG is preferable. In case you have to use a PNG, make sure that it is compressed. A good tool for that is [tinypng](https://tinypng.com). - A good place to find company icons is [gilbarbara/logos](https://github.com/gilbarbara/logos/tree/master/logos). 5. Paste the following code in the `AutofriendTrigger.node.ts` file. @@ -162,7 +162,7 @@ npm run dev - On startup, n8n will load all the nodes and credentials (more about credentials later) that are registered in `/packages/nodes-base/package.json`. - The property `description.name` uses camelCase. -- The property `description.color` is the company's branding color in hexadecimal. In case the website does not include this information, there are other websites that help you get a company’s branding colors. For example, [brandpalettes.com](https://brandpalettes.com/). +- The property `description.color` is the company's branding color in hexadecimal. In case the website does not include this information, there are other websites that help you get a company's branding colors. For example, [brandpalettes.com](https://brandpalettes.com/). ## Creating the UI for the node @@ -181,7 +181,7 @@ In the `target_url` parameter, we provide the URL where Autofriend will notify u ### Adding the fields -Let’s make the Node Editor View ask for these parameters: +Let's make the Node Editor View ask for these parameters: 1. Add the following under `description.properties` in `packages/nodes-base/nodes/Autofriend/AutofriendTrigger.node.ts.`. ```typescript @@ -242,7 +242,7 @@ Most REST APIs use some sort of authentication mechanism. Autofriend's REST API n8n gives you the ability to ask for sensitive information using credentials. In the credentials, you can use all the generally available UI elements. Additionally, the data that is stored using the credentials would be encrypted before being saved to the database. In order to do that, n8n uses an encryption key. -With that in mind, let’s create the UI to ask for the user’s Autofriend API Key. The process of creating and registering credentials is similar to that of creating and registering the node: +With that in mind, let's create the UI to ask for the user's Autofriend API Key. The process of creating and registering credentials is similar to that of creating and registering the node: 1. Go to `packages/nodes-base/credentials`. 2. Within the credentials folder, create a file named `AutofriendApi.credentials.ts`. @@ -301,7 +301,7 @@ When a Trigger node is executed either in test or production mode, the following ### n8n persists all the webhooks defined in description.webhooks -The persisted data will be used later to verify if the incoming requests to the n8n’s webhook endpoint are valid. +The persisted data will be used later to verify if the incoming requests to the n8n's webhook endpoint are valid. The property webhooks implements the interface **IWebhookDescription**. The interface has four properties. @@ -352,7 +352,7 @@ The life cycle methods allow us to create, delete, and check if the webhook exis Every time the external system notifies us about a change, by making an HTTP Request to the URL we previously registered in the `create` method, the `execute` method is called. Within this method, we have access to the request object and everything it contains. For example, body, headers, querystring, etc. The data the method returns is the data we want the rest of the workflow to have access to. -Let’s see how this would look for our current use-case: +Let's see how this would look for our current use-case: 1. Go to `packages/nodes-base/nodes/Autofriend`, create a file named `GenericFunctions.ts`, and paste the following code. diff --git a/docs/integrations/creating-nodes/code/troubleshooting-node-development.md b/docs/integrations/creating-nodes/code/troubleshooting-node-development.md index f1f47a181..d9f9e51b7 100644 --- a/docs/integrations/creating-nodes/code/troubleshooting-node-development.md +++ b/docs/integrations/creating-nodes/code/troubleshooting-node-development.md @@ -13,7 +13,7 @@ Ensure that the name in the credentials array matches the name used in the prope ### Error message: 'There was a problem loading init data: API-Server can not be reached. It is probably down' -- Ensure that the node’s file name, class’s name, and node’s folder name matches the path added to `packages/nodes-base/package.json`. +- Ensure that the node's file name, class's name, and node's folder name matches the path added to `packages/nodes-base/package.json`. - Ensure the names used in the `displayOptions` property are names used by UI elements in the node. ### Node icon doesn't show up in the Create Node menu and the Editor UI diff --git a/docs/integrations/credentials/activeCampaign.md b/docs/integrations/credentials/activeCampaign.md index 69275ef1b..fb03e261a 100644 --- a/docs/integrations/credentials/activeCampaign.md +++ b/docs/integrations/credentials/activeCampaign.md @@ -15,7 +15,7 @@ Create an [ActiveCampaign](https://www.activecampaign.com/) account. 1. Open your ActiveCampaign dashboard. 2. Click on the gears icon on the bottom left to open the Settings. 3. Click on the Developer option under the Settings panel. -4. In the Developer Settings, copy the 'Key' and 'URL' under the ‘API Access’ panel. +4. In the Developer Settings, copy the 'Key' and 'URL' under the ‘API Access' panel. 5. Use these credentials with your ActiveCampaign node credentials in n8n. diff --git a/docs/integrations/credentials/affinity.md b/docs/integrations/credentials/affinity.md index 10cb98847..3d1f2527a 100644 --- a/docs/integrations/credentials/affinity.md +++ b/docs/integrations/credentials/affinity.md @@ -17,7 +17,7 @@ Create an [Affinity](https://www.affinity.co/) account. 2. Open hamburger menu on the top left. 3. Click on Settings. 4. Click on API. -5. Click on 'Generate an API Key’ button. +5. Click on 'Generate an API Key' button. 6. Use the API key with your Affinity node credentials in n8n. diff --git a/docs/integrations/nodes/n8n-nodes-base.Brandfetch.md b/docs/integrations/nodes/n8n-nodes-base.Brandfetch.md index 33bb21e55..84a4e2659 100644 --- a/docs/integrations/nodes/n8n-nodes-base.Brandfetch.md +++ b/docs/integrations/nodes/n8n-nodes-base.Brandfetch.md @@ -86,7 +86,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.airtable.md b/docs/integrations/nodes/n8n-nodes-base.airtable.md index c2e8f754a..31c7711f7 100644 --- a/docs/integrations/nodes/n8n-nodes-base.airtable.md +++ b/docs/integrations/nodes/n8n-nodes-base.airtable.md @@ -52,7 +52,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.googleAnalytics.md b/docs/integrations/nodes/n8n-nodes-base.googleAnalytics.md index 5bf84c4d1..cdf28a2cf 100644 --- a/docs/integrations/nodes/n8n-nodes-base.googleAnalytics.md +++ b/docs/integrations/nodes/n8n-nodes-base.googleAnalytics.md @@ -77,7 +77,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.harvest.md b/docs/integrations/nodes/n8n-nodes-base.harvest.md index 03f30b6b5..fb9b29d8d 100644 --- a/docs/integrations/nodes/n8n-nodes-base.harvest.md +++ b/docs/integrations/nodes/n8n-nodes-base.harvest.md @@ -56,7 +56,7 @@ * Create a time entry via duration * Create a time entry via start and end time * Delete a time entry - * Delete a time entry’s external reference. + * Delete a time entry's external reference. * Get data of a time entry * Get data of all time entries * Restart a time entry diff --git a/docs/integrations/nodes/n8n-nodes-base.lemlist.md b/docs/integrations/nodes/n8n-nodes-base.lemlist.md index 0f3158d42..5e9e209b4 100644 --- a/docs/integrations/nodes/n8n-nodes-base.lemlist.md +++ b/docs/integrations/nodes/n8n-nodes-base.lemlist.md @@ -45,7 +45,7 @@ This node will list all the records from Airtable. Create a table like [this](ht 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select the 'List' option from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on the gears icon next to the ***Table*** field and click on ***Add Expression***. 6. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.mailcheck.md b/docs/integrations/nodes/n8n-nodes-base.mailcheck.md index a60464a02..13cd03dfc 100644 --- a/docs/integrations/nodes/n8n-nodes-base.mailcheck.md +++ b/docs/integrations/nodes/n8n-nodes-base.mailcheck.md @@ -33,7 +33,7 @@ Create a table like [this](https://airtable.com/shrDUFXWoHCuJjYjT) in your Airta 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select the 'List' option from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.notion.md b/docs/integrations/nodes/n8n-nodes-base.notion.md index 99cf2c85f..900ec7acb 100644 --- a/docs/integrations/nodes/n8n-nodes-base.notion.md +++ b/docs/integrations/nodes/n8n-nodes-base.notion.md @@ -55,7 +55,7 @@ The Calendly node will trigger the workflow when an invite gets created. 3. Save your workflow so that the webhook gets registered. 4. Click on ***Execute Node*** to run the node. -**Note:** Since you’ll be using the test webhook while building the workflow, the node only stays active for 120 seconds. After you click on the ***Execute Node*** button, create an invite via Calendly. +**Note:** Since you'll be using the test webhook while building the workflow, the node only stays active for 120 seconds. After you click on the ***Execute Node*** button, create an invite via Calendly. In the screenshot below, you will notice that the Calendly Trigger node triggers the workflow when an invite is created. diff --git a/docs/integrations/nodes/n8n-nodes-base.oura.md b/docs/integrations/nodes/n8n-nodes-base.oura.md index b039272b8..d9fa5bb69 100644 --- a/docs/integrations/nodes/n8n-nodes-base.oura.md +++ b/docs/integrations/nodes/n8n-nodes-base.oura.md @@ -82,7 +82,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.phantombuster.md b/docs/integrations/nodes/n8n-nodes-base.phantombuster.md index 4cea580b7..f632f2d6b 100644 --- a/docs/integrations/nodes/n8n-nodes-base.phantombuster.md +++ b/docs/integrations/nodes/n8n-nodes-base.phantombuster.md @@ -74,7 +74,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/nodes/n8n-nodes-base.questDb.md b/docs/integrations/nodes/n8n-nodes-base.questDb.md index 03637195c..95bc5cca8 100644 --- a/docs/integrations/nodes/n8n-nodes-base.questDb.md +++ b/docs/integrations/nodes/n8n-nodes-base.questDb.md @@ -1,6 +1,6 @@ # QuestDB -[QuestDB](https://questdb.io/) is an open-source NewSQL relational database designed to process time-series data, faster. QuestDB’s stack is engineered from scratch, zero-GC Java and dependency-free. It supports a a Java API, SQL via HTTP and the PostgreSQL wire protocol. +[QuestDB](https://questdb.io/) is an open-source NewSQL relational database designed to process time-series data, faster. QuestDB's stack is engineered from scratch, zero-GC Java and dependency-free. It supports a a Java API, SQL via HTTP and the PostgreSQL wire protocol. !!! note "Credentials" You can find authentication information for this node [here](/integrations/credentials/questDb/). diff --git a/docs/integrations/nodes/n8n-nodes-base.sentryIo.md b/docs/integrations/nodes/n8n-nodes-base.sentryIo.md index e165d3922..1661ba958 100644 --- a/docs/integrations/nodes/n8n-nodes-base.sentryIo.md +++ b/docs/integrations/nodes/n8n-nodes-base.sentryIo.md @@ -1,6 +1,6 @@ # Sentry.io -[Sentry.io](https://sentry.io) is a service that helps you monitor and fix crashes in realtime. Sentry’s platform helps every developer diagnose, fix, and optimize the performance of their code. +[Sentry.io](https://sentry.io) is a service that helps you monitor and fix crashes in realtime. Sentry's platform helps every developer diagnose, fix, and optimize the performance of their code. !!! note "Credentials" You can find authentication information for this node [here](/integrations/credentials/sentryIo/). diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.acuitySchedulingTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.acuitySchedulingTrigger.md index 9cf45add9..c322ae2dc 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.acuitySchedulingTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.acuitySchedulingTrigger.md @@ -1,6 +1,6 @@ # Acuity Scheduling Trigger -[Acuity Scheduling](https://acuityscheduling.com/) is a cloud-based appointment scheduling software solution that enables business owners to manage their appointments online. It has the capability to automatically sync calendars according to users’ time zones and can send regular alerts and reminders to users regarding their appointment schedules. +[Acuity Scheduling](https://acuityscheduling.com/) is a cloud-based appointment scheduling software solution that enables business owners to manage their appointments online. It has the capability to automatically sync calendars according to users' time zones and can send regular alerts and reminders to users regarding their appointment schedules. !!! note "Credentials" You can find authentication information for this node [here](/integrations/credentials/acuityScheduling/). diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.airtableTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.airtableTrigger.md index cb09c7581..2b63f20cc 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.airtableTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.airtableTrigger.md @@ -22,7 +22,7 @@ The Airtable Trigger node will trigger the workflow when new data gets added to 1. First of all, you'll have to enter credentials for the Airtable Trigger node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Click on ***Add Poll Time*** and select 'Every Minute' from the ***Mode*** dropdown list. This will check Airtable every minute for new data entries. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the table name in the ***Table*** field. 5. Enter a trigger field name in the ***Trigger Field*** field. If you don't have a 'Created Time' or 'Last modified time' field in your table, please create one. 6. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.autopilotTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.autopilotTrigger.md index 85c6249d8..7b7f1041d 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.autopilotTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.autopilotTrigger.md @@ -68,7 +68,7 @@ This node will store the data coming from the previous node in a table in Airtab 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID under the Introduction section. +3. Enter the base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID under the Introduction section. 4. In n8n, paste the ID of the base in the ***Base ID*** field. 5. Enter the table name in the ***Table*** name field. 6. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.getResponseTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.getResponseTrigger.md index d855581d3..03366dc79 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.getResponseTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.getResponseTrigger.md @@ -64,7 +64,7 @@ This node will store the data coming from the previous node in a table in Airtab 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID under the Introduction section. +3. Enter the base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID under the Introduction section. 4. In n8n, paste the ID of the base in the ***Base ID*** field. 5. Enter the table name in the ***Table*** name field. 6. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.mailerLiteTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.mailerLiteTrigger.md index 231b2e609..66b44920d 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.mailerLiteTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.mailerLiteTrigger.md @@ -69,7 +69,7 @@ This node will store the data coming from the previous node in a table in Airtab 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID under the Introduction section. +3. Enter the base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID under the Introduction section. 4. In n8n, paste the ID of the base in the ***Base ID*** field. 5. Enter the table name in the ***Table*** name field. 6. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.typeformTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.typeformTrigger.md index f54961209..f2ca2a76c 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.typeformTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.typeformTrigger.md @@ -65,7 +65,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/integrations/trigger-nodes/n8n-nodes-base.wiseTrigger.md b/docs/integrations/trigger-nodes/n8n-nodes-base.wiseTrigger.md index 0106e6ebc..deff75052 100644 --- a/docs/integrations/trigger-nodes/n8n-nodes-base.wiseTrigger.md +++ b/docs/integrations/trigger-nodes/n8n-nodes-base.wiseTrigger.md @@ -86,7 +86,7 @@ This node will append the data that we set in the previous node to a table. Crea 1. First of all, you'll have to enter credentials for the Airtable node. You can find out how to do that [here](/integrations/credentials/airtable/). 2. Select 'Append' from the ***Operation*** dropdown list. -3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You’ll find the Base ID there. +3. Enter the Base ID in the ***Base ID*** field. For obtaining the Base ID, head over to their [API page](https://airtable.com/api) and select the correct base. You'll find the Base ID there. 4. Enter the name of your table in the ***Table*** field. 5. Click on ***Execute Node*** to run the node. diff --git a/docs/reference/data-collection.md b/docs/reference/data-collection.md index 75d3fd9d0..a59db73f5 100644 --- a/docs/reference/data-collection.md +++ b/docs/reference/data-collection.md @@ -22,7 +22,7 @@ n8n collects selected usage and performance data to help us diagnose problems an - OS, RAM, and CPUs - Anonymous instance ID -## What we don’t collect +## What we don't collect We do not collect private or sensitive information, such as: diff --git a/styles/alex/Profanity.yml b/styles/alex/Profanity.yml index b319fd7f6..82da4c6df 100644 --- a/styles/alex/Profanity.yml +++ b/styles/alex/Profanity.yml @@ -1,5 +1,5 @@ extends: existence -message: Be careful with '%s', it’s profane in some cases. +message: Be careful with '%s', it's profane in some cases. level: warning ignorecase: true tokens: