diff --git a/.vale.ini b/.vale.ini
index a2ffb82d7..13e60b00e 100644
--- a/.vale.ini
+++ b/.vale.ini
@@ -4,4 +4,5 @@ Vocab = default
[*.md]
BasedOnStyles = alex, write-good, Microsoft, n8n-styles, Vale
alex.Profanity = NO
+BlockIgnores = (\**Release date:\**.*), (\### Contributors.*#)
TokenIgnores = (\-\-8\<\-\- \".*\")
diff --git a/docs/_extra/publicapi.yml b/docs/_extra/publicapi.yml
index 1a82ca72c..e624e28c6 100644
--- a/docs/_extra/publicapi.yml
+++ b/docs/_extra/publicapi.yml
@@ -823,7 +823,7 @@ components:
risk: credentials
sections:
- title: Credentials not used in any workflow
- description: These credentials are not used in any workflow. Keeping unused credentials in your instance is an unneeded security risk.
+ description: These credentials aren't used in any workflow. Keeping unused credentials in your instance is an unneeded security risk.
recommendation: Consider deleting these credentials if you no longer need them.
location:
- kind: credential
@@ -853,7 +853,7 @@ components:
- title: Nodes that interact with the filesystem
description: This node reads from and writes to any accessible file in the host filesystem. Sensitive file content may be manipulated through a node operation.
recommendation: Consider protecting any sensitive files in the host filesystem
- or refactoring the workflow so that it does not require host filesystem interaction.: null
+ or refactoring the workflow so that it doesn'trequire host filesystem interaction.: null
location:
- kind: node
workflowId: '1'
@@ -867,7 +867,7 @@ components:
risk: nodes
sections:
- title: Community nodes
- description: This node is sourced from the community. Community nodes are not vetted by the n8n team and have full access to the host system.
+ description: This node is sourced from the community. Community nodes aren't vetted by the n8n team and have full access to the host system.
recommendation: Consider reviewing the source code in any community nodes installed in this n8n instance
and uninstalling any community nodes no longer used.: null
location:
@@ -880,7 +880,7 @@ components:
risk: execution
sections:
- title: Unprotected webhooks in instance
- description: These webhook nodes have the "Authentication" field set to "None" and are not directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL.
+ description: These webhook nodes have the "Authentication" field set to "None" and aren't directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL.
recommendation: Consider setting the "Authentication" field to an option other than "None"
or validating the payload with one of the following nodes.: null
location:
diff --git a/docs/api/v1/openapi.yml b/docs/api/v1/openapi.yml
index fd5180c66..a45478b45 100644
--- a/docs/api/v1/openapi.yml
+++ b/docs/api/v1/openapi.yml
@@ -823,7 +823,7 @@ components:
risk: credentials
sections:
- title: Credentials not used in any workflow
- description: These credentials are not used in any workflow. Keeping unused credentials in your instance is an unneeded security risk.
+ description: These credentials aren't used in any workflow. Keeping unused credentials in your instance is an unneeded security risk.
recommendation: Consider deleting these credentials if you no longer need them.
location:
- kind: credential
@@ -853,7 +853,7 @@ components:
- title: Nodes that interact with the filesystem
description: This node reads from and writes to any accessible file in the host filesystem. Sensitive file content may be manipulated through a node operation.
recommendation: Consider protecting any sensitive files in the host filesystem
- or refactoring the workflow so that it does not require host filesystem interaction.: null
+ or refactoring the workflow so that it doesn'trequire host filesystem interaction.: null
location:
- kind: node
workflowId: '1'
@@ -867,7 +867,7 @@ components:
risk: nodes
sections:
- title: Community nodes
- description: This node is sourced from the community. Community nodes are not vetted by the n8n team and have full access to the host system.
+ description: This node is sourced from the community. Community nodes aren't vetted by the n8n team and have full access to the host system.
recommendation: Consider reviewing the source code in any community nodes installed in this n8n instance
and uninstalling any community nodes no longer used.: null
location:
@@ -880,7 +880,7 @@ components:
risk: execution
sections:
- title: Unprotected webhooks in instance
- description: These webhook nodes have the "Authentication" field set to "None" and are not directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL.
+ description: These webhook nodes have the "Authentication" field set to "None" and aren't directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL.
recommendation: Consider setting the "Authentication" field to an option other than "None"
or validating the payload with one of the following nodes.: null
location:
diff --git a/docs/choose-n8n/faircode-license.md b/docs/choose-n8n/faircode-license.md
index 27eabacf9..eab88ea1e 100644
--- a/docs/choose-n8n/faircode-license.md
+++ b/docs/choose-n8n/faircode-license.md
@@ -78,7 +78,7 @@ Provided you are using n8n for internal business purposes, and not making n8n av
Any code you contribute on GitHub is subject to GitHub's [terms of use](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service#d-user-generated-content). In simple terms, this means you own, and are responsible for, anything you contribute, but that you grant other GitHub users certain rights to use this code. When you contribute code to a repository containing notice of a license, you license the code under the same terms.
-n8n asks every contributor to sign our [Contributor License Agreement](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTOR_LICENSE_AGREEMENT.md). In addition to the above, this gives n8n the ability to change its license without seeking additional permission. It also means you are not liable for your contributions (e.g. in case they cause damage to someone else's business).
+n8n asks every contributor to sign our [Contributor License Agreement](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTOR_LICENSE_AGREEMENT.md). In addition to the above, this gives n8n the ability to change its license without seeking additional permission. It also means you aren't liable for your contributions (e.g. in case they cause damage to someone else's business).
It's easy to get started contributing code to n8n [here](https://github.com/n8n-io), and we've listed broader ways of participating in our community [here](https://docs.n8n.io/reference/contributing.html).
@@ -99,7 +99,7 @@ That means you are now free to offer commercial consulting or support services (
### Is n8n open source?
-Although n8n's source code is available under the Sustainable Use License, according to the [Open Source Initiative](https://opensource.org/) (OSI), open source licenses cannot include limitations on use, so we do not call ourselves open source. In practice, n8n offers most users many of the same benefits as OSI-approved open source.
+Although n8n's source code is available under the Sustainable Use License, according to the [Open Source Initiative](https://opensource.org/) (OSI), open source licenses can't include limitations on use, so we do not call ourselves open source. In practice, n8n offers most users many of the same benefits as OSI-approved open source.
We coined the term ['fair-code'](https://faircode.io/) as a way of describing our licensing model, and the model of other companies who are source-available, but restrict commercial use of their source code.
diff --git a/docs/code/builtin/index.md b/docs/code/builtin/index.md
index 20a906028..616d0643c 100644
--- a/docs/code/builtin/index.md
+++ b/docs/code/builtin/index.md
@@ -8,7 +8,7 @@ contentType: overview
n8n provides built-in methods and variables for working with data and accessing n8n data. This section provides a reference of available methods and variables for use in expressions, with a short description.
/// note | Availability in the expressions editor and the Code node
-Some methods and variables aren't available in the Code node. These are noted in the documentation.
+Some methods and variables aren't available in the Code node. These aren'ted in the documentation.
All data transformation functions are only available in the expressions editor.
///
diff --git a/docs/code/cookbook/expressions/check-incoming-data.md b/docs/code/cookbook/expressions/check-incoming-data.md
index 9972bf4d6..c337d5993 100644
--- a/docs/code/cookbook/expressions/check-incoming-data.md
+++ b/docs/code/cookbook/expressions/check-incoming-data.md
@@ -4,7 +4,7 @@ contentType: howto
# Check incoming data
-At times, you may want to check the incoming data. If the incoming data doesn't satisfy a condition, you may want to return a different value. For example, you want to check if a variable from the previous node is empty and return a string if it is empty. Use the following code snippet to return `not found` if the variable is empty.
+At times, you may want to check the incoming data. If the incoming data doesn't satisfy a condition, you may want to return a different value. For example, you want to check if a variable from the previous node is empty and return a string if it's empty. Use the following code snippet to return `not found` if the variable is empty.
```js
{{$json["variable_name"]? $json["variable_name"] :"not found"}}
diff --git a/docs/code/expressions.md b/docs/code/expressions.md
index dd4343852..7f939a8aa 100644
--- a/docs/code/expressions.md
+++ b/docs/code/expressions.md
@@ -87,7 +87,7 @@ However, the first example isn't a valid n8n expression:
```js
// This example is split over multiple lines for readability
-// It is still invalid when formatted as a single line
+// It's still invalid when formatted as a single line
{{
function example() {
let end = DateTime.fromISO('2017-03-13');
diff --git a/docs/courses/level-one/chapter-1.md b/docs/courses/level-one/chapter-1.md
index 151a246a3..7f167c4c1 100644
--- a/docs/courses/level-one/chapter-1.md
+++ b/docs/courses/level-one/chapter-1.md
@@ -16,7 +16,7 @@ The first step is setting up n8n. There are two ways you can do this:
For more details on the different ways to set up n8n, see our [platforms documentation](/choose-n8n/#platforms){:target="_blank" .external}
/// warning | n8n version
-This course was developed on n8n version 1.15.0. In other versions, some of the user interface might look different, but the core functionality should not be impacted.
+This course was developed on n8n version 1.15.0. In other versions, some of the user interface might look different, but the core functionality shouldn't be impacted.
///
Once you have n8n running, open the Editor UI in a browser window. It should look like this:
diff --git a/docs/courses/level-one/chapter-2.md b/docs/courses/level-one/chapter-2.md
index 38dd1fa41..9802e09d2 100644
--- a/docs/courses/level-one/chapter-2.md
+++ b/docs/courses/level-one/chapter-2.md
@@ -48,7 +48,7 @@ The *Settings* section includes several options for node design and executions.
- *Notes:* Get the 10 latest articles
/// note | Node notes
-It is often helpful, especially for complex or shared workflows, to add a short description in the node about what it does.
+It's often helpful, especially for complex or shared workflows, to add a short description in the node about what it does.
///
- *Display note in flow?:* toggle to true
This option will display the description note under the node in the Editor UI.
@@ -108,11 +108,11 @@ The node window displays more information about the node execution:
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 grey *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.
-- Under the node name beside the **Parameters** tab, there is a link to the node's **Docs**. Check it out if you run into trouble or are not sure how to configure the node's parameters.
+- Under the node name beside the **Parameters** tab, there is a link to the node's **Docs**. Check it out if you run into trouble or aren't sure how to configure the node's parameters.
/// warning | Error in nodes
-A red warning icon on a node means that the node has errors. This might happen if the node credentials are missing or incorrect, or the node parameters are not configured correctly.
+A red warning icon on a node means that the node has errors. This might happen if the node credentials are missing or incorrect, or the node parameters aren't configured correctly.
///
Error in nodes
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 8fd01d15f..f2ccd14ee 100644
--- a/docs/courses/level-one/chapter-5/chapter-5.2.md
+++ b/docs/courses/level-one/chapter-5/chapter-5.2.md
@@ -18,7 +18,7 @@ If we are going to insert data into Airtable, we first need to set up a table th
Create an Airtable base
3. In the beginner course base you have by default a *Table 1* with four fields: *Name, Notes, Assignee, and Status*.
-These fields are not relevant for us since they are not in our orders data set. This brings us to the next point: the names of the fields in Airtable have to match the names of the columns in the node result.
+These fields aren't relevant for us since they aren't in our orders data set. This brings us to the next point: the names of the fields in Airtable have to match the names of the columns in the node result.
- Replace the four default table fields with the five column names from the data set, selecting `Number` field type for orderID, customerID, and orderPrice, and `Single line text` for employeeName and orderStatus.
- Delete the 3 blank rows created by default.
- Also, rename the table from *Table 1* to *orders* to make it easier to identify.
diff --git a/docs/courses/level-two/chapter-2.md b/docs/courses/level-two/chapter-2.md
index 5af124415..ca90fe96f 100644
--- a/docs/courses/level-two/chapter-2.md
+++ b/docs/courses/level-two/chapter-2.md
@@ -89,7 +89,7 @@ If you need to convert date and time data to different formats, and calculate da
You can also schedule workflows to run at a specific time, interval, or duration, using the [Schedule Trigger](/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/) node.
-In some cases, you might need to pause the workflow execution. This might be necessary, for example, if you know that a service doesn't process the data instantly or it is generally slower, so you don't want the incomplete data to be passed to the next node. In this case, you can use the [Wait node](/integrations/builtin/core-nodes/n8n-nodes-base.wait/) after the node that you want to delay. The Wait node pauses the workflow execution and resumes it at a specific time, after a time interval, or on a webhook call.
+In some cases, you might need to pause the workflow execution. This might be necessary, for example, if you know that a service doesn't process the data instantly or it's generally slower, so you don't want the incomplete data to be passed to the next node. In this case, you can use the [Wait node](/integrations/builtin/core-nodes/n8n-nodes-base.wait/) after the node that you want to delay. The Wait node pauses the workflow execution and resumes it at a specific time, after a time interval, or on a webhook call.
### Exercise
@@ -268,7 +268,7 @@ Build a workflow that adds five days to an input date. Then, if the calculated d
## Binary data
-So far, you have mainly worked with text data. But what if you want to process data that is not text? For example, images or PDF files. This is binary data, as it is represented in the binary numeral system. In this form, binary data doesn't offer you useful information, so it needs to be converted into a readable form.
+So far, you have mainly worked with text data. But what if you want to process data that is not text? For example, images or PDF files. This is binary data, as it's represented in the binary numeral system. In this form, binary data doesn't offer you useful information, so it needs to be converted into a readable form.
In n8n, you can process binary data with the following nodes:
diff --git a/docs/courses/level-two/chapter-3.md b/docs/courses/level-two/chapter-3.md
index 7ba7d7242..1bc9a806d 100644
--- a/docs/courses/level-two/chapter-3.md
+++ b/docs/courses/level-two/chapter-3.md
@@ -17,7 +17,7 @@ Merging data can involve:
- Synchronizing data between multiple systems. For example, removing duplicate data, or updating data in one system when it changes in another.
/// note | One-way vs. two-way sync
-In a one-way sync, data is synchronized in one direction. One system serves as the single source of truth. When information changes in that main system, it automatically changes in the secondary system; but if information changes in the secondary system, the changes are not reflected in the main system.
+In a one-way sync, data is synchronized in one direction. One system serves as the single source of truth. When information changes in that main system, it automatically changes in the secondary system; but if information changes in the secondary system, the changes aren't reflected in the main system.
In a two-way sync, data is synchronized in both directions (between both systems). When information changes in either of the two systems, it automatically changes in the other one as well.
@@ -83,7 +83,7 @@ To [create a loop in an n8n workflow](/flow-logic/looping/#using-loops-in-n8n){:
If you need to process large incoming data, execute the Code node multiple times, or avoid API rate limits, it's best to split the data into batches (groups) and process these batches. You can do this with the [Loop Over Items node](/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/){:target="_blank" .external}. This node splits input data into a specified batch size and, with each iteration, returns a predefined amount of data.
/// warning | Execution of Loop Over Items node
-The Loop Over Items node stops executing after all the incoming items get divided into batches and passed on to the next node in the workflow, so it is not necessary to add an IF node to stop the loop.
+The Loop Over Items node stops executing after all the incoming items get divided into batches and passed on to the next node in the workflow, so it's not necessary to add an IF node to stop the loop.
///
### Exercise
diff --git a/docs/courses/level-two/chapter-4.md b/docs/courses/level-two/chapter-4.md
index df74c50ef..eb777630d 100644
--- a/docs/courses/level-two/chapter-4.md
+++ b/docs/courses/level-two/chapter-4.md
@@ -113,7 +113,7 @@ Throwing exceptions with the Stop and Error node is useful for verifying the dat
If you are working with data from a third-party service, you may come across problems such as: wrongly formatted JSON output, data with the wrong type (for example, numeric data that has a non-numeric value), missing values, or errors from remote servers.
-Though this kind of invalid data might not cause the workflow to fail right away, it could cause problems later on, and then it can become difficult to track the source error. This is why it is better to throw an error at the time you know there might be a problem.
+Though this kind of invalid data might not cause the workflow to fail right away, it could cause problems later on, and then it can become difficult to track the source error. This is why it's better to throw an error at the time you know there might be a problem.
Stop and Error node with error message
///
diff --git a/docs/hosting/logging-monitoring/logging.md b/docs/hosting/logging-monitoring/logging.md
index 26b7138da..ef6ed769b 100644
--- a/docs/hosting/logging-monitoring/logging.md
+++ b/docs/hosting/logging-monitoring/logging.md
@@ -91,11 +91,11 @@ Logger.verbose(`Executing hook (workflowExecuteBefore, hookFunctionsPush)`, {exe
When creating new loggers, some useful standards to keep in mind are:
-- Craft log messages to be as easily human-readable as possible. For example, always wrap names in quotes.
+- Craft log messages to be as human-readable as possible. For example, always wrap names in quotes.
- Duplicating information in the log message and metadata, like workflow name in the above example, can be useful as messages are easier to search and metadata enables easier filtering.
- Include multiple IDs (e.g. executionId, workflowId, and sessionId) throughout all logs.
- Use node types instead of node names (or both) as this is more consistent, and so easier to search.
## Front-end logs
-As of now, front-end logs are not available. Using `Logger` or `LoggerProxy` would yield errors in the `editor-ui` package. This functionality will get implemented in the future versions.
+As of now, front-end logs aren't available. Using `Logger` or `LoggerProxy` would yield errors in the `editor-ui` package. This functionality will get implemented in the future versions.
diff --git a/docs/hosting/logging-monitoring/monitoring.md b/docs/hosting/logging-monitoring/monitoring.md
index f2df40b6c..48a5f3566 100644
--- a/docs/hosting/logging-monitoring/monitoring.md
+++ b/docs/hosting/logging-monitoring/monitoring.md
@@ -9,7 +9,7 @@ There are two API endpoints you can call to check the status of your instance: `
## healthz
-The `/healthz` endpoint returns a standard HTTP status code. 200 indicates the instance is reachable. It is available for both self-hosted and Cloud users.
+The `/healthz` endpoint returns a standard HTTP status code. 200 indicates the instance is reachable. It's available for both self-hosted and Cloud users.
Access the endpoint:
diff --git a/docs/hosting/scaling/memory-errors.md b/docs/hosting/scaling/memory-errors.md
index 515e9d3b4..3b0162c94 100644
--- a/docs/hosting/scaling/memory-errors.md
+++ b/docs/hosting/scaling/memory-errors.md
@@ -52,4 +52,4 @@ However, as long as your sub-workflow does the heavy lifting for each batch and
### Increase old memory
-This applies to self-hosting n8n. When encountering **JavaScript heap out of memory** errors, it is often useful to allocate additional memory to the old memory section of the V8 JavaScript engine. To do this, set the appropriate [V8 option](https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes){:target=_blank .external-link} `--max-old-space-size=SIZE` either through the CLI or through the `NODE_OPTIONS` [environment variable](https://nodejs.org/api/cli.html#node_optionsoptions){:target=_blank .external-link}.
+This applies to self-hosting n8n. When encountering **JavaScript heap out of memory** errors, it's often useful to allocate additional memory to the old memory section of the V8 JavaScript engine. To do this, set the appropriate [V8 option](https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-megabytes){:target=_blank .external-link} `--max-old-space-size=SIZE` either through the CLI or through the `NODE_OPTIONS` [environment variable](https://nodejs.org/api/cli.html#node_optionsoptions){:target=_blank .external-link}.
diff --git a/docs/index.md b/docs/index.md
index 59d7e3608..9fe746108 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,7 +8,7 @@ hide:
This is the documentation for [n8n](https://n8n.io/), a [fair-code](http://faircode.io) licensed node-based workflow automation tool.
-It covers everything from setup to usage and development. It is a work in progress and all [contributions](/contributing/) are welcome.
+It covers everything from setup to usage and development. It's a work in progress and all [contributions](/contributing/) are welcome.
## Where to start
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.getresponse.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.getresponse.md
index 761881b2e..c8d0e9f50 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.getresponse.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.getresponse.md
@@ -58,7 +58,7 @@ In the screenshot below, you will notice that the node retrieves all the contact
### 3. IF node
-This node will check if a contact belongs to the `n8n` campaign or not. If a contact does not belong to the `n8n` campaign, it will return true otherwise false. Create a campaign in GetResponse if you don't already have one.
+This node will check if a contact belongs to the `n8n` campaign or not. If a contact doesn'tbelong to the `n8n` campaign, it will return true otherwise false. Create a campaign in GetResponse if you don't already have one.
1. Click on ***Add Condition*** and select 'String'.
2. Click on the gears icon next to the ***Value 1*** field and click on ***Add Expression***.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.gsuiteadmin.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.gsuiteadmin.md
index 7b5219376..d19280093 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.gsuiteadmin.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.gsuiteadmin.md
@@ -103,7 +103,7 @@ In the screenshot below, you will notice that the node returns the information o
There are three different ways to project a user's information:
-- ***Basic:*** Does not include any custom fields.
+- ***Basic:*** Doesn'tinclude any custom fields.
- ***Custom:*** Includes the custom fields from schemas in customField.
- ***Full:*** Include all the fields associated with the user.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.humanticai.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.humanticai.md
index ab03cb0bb..4d56b0595 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.humanticai.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.humanticai.md
@@ -91,7 +91,7 @@ This node will return the `Hiring` persona for the candidate that we created usi
5. Select 'Hiring' from the ***Persona*** dropdown list.
6. Click on ***Execute Node*** to run the node.
-In the screenshot below, you will notice that the node returns the `Hiring` persona for the candidate that we created using the Humantic AI node (column headers are not visible in the screenshot since we've scrolled down to show the data).
+In the screenshot below, you will notice that the node returns the `Hiring` persona for the candidate that we created using the Humantic AI node (column headers aren't visible in the screenshot since we've scrolled down to show the data).

diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.jenkins.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.jenkins.md
index 536f084ae..634341079 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.jenkins.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.jenkins.md
@@ -24,8 +24,8 @@ For usage examples and templates to help you get started, take a look at n8n's [
* Instance
* Cancel quiet down state
* Put Jenkins in quiet mode, no builds can be started, Jenkins is ready for shutdown
- * Restart Jenkins immediately on environments where it is possible
- * Restart Jenkins once no jobs are running on environments where it is possible
+ * Restart Jenkins immediately on environments where it's possible
+ * Restart Jenkins once no jobs are running on environments where it's possible
* Shutdown once no jobs are running
* Shutdown Jenkins immediately
* Job
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.kobotoolbox.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.kobotoolbox.md
index e5ab97c1c..dbc4bc553 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.kobotoolbox.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.kobotoolbox.md
@@ -65,7 +65,7 @@ All operations that return form submission data offer options to tweak the respo
#### About reformatting
-The default JSON format for KoBoToolbox submission data is sometimes hard to deal with, because it is not schema-aware, and all fields are therefore returned as strings.
+The default JSON format for KoBoToolbox submission data is sometimes hard to deal with, because it's not schema-aware, and all fields are therefore returned as strings.
This node provides a lightweight opinionated reformatting logic, enabled with the **Reformat?** parameter, available on all operations that return form submissions: the submission query, get, and the attachment download operations.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.matrix.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.matrix.md
index 24a6820ec..b3af6ad0e 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.matrix.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.matrix.md
@@ -99,7 +99,7 @@ In the screenshot below, you will notice that the node returns the information o
### 4. IF node
-This node will compare your user ID with the user ID of other members. If the user IDs are not equal, the output will be true.
+This node will compare your user ID with the user ID of other members. If the user IDs aren't equal, the output will be true.
1. Click on ***Add Condition*** and select 'String'.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.nextcloud.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.nextcloud.md
index 9f2792e4c..d888b79d6 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.nextcloud.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.nextcloud.md
@@ -34,7 +34,7 @@ For usage examples and templates to help you get started, take a look at n8n's [
* Move a folder
* Share a folder
* User
- * Invite a user to a NextCloud organization
+ * Invite a user to a Nextcloud organization
* Delete a user.
* Retrieve information about a single user.
* Retrieve a list of users.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.openthesaurus.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.openthesaurus.md
index 40baa41d5..fa884352e 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.openthesaurus.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.openthesaurus.md
@@ -11,7 +11,7 @@ Use the OpenThesaurus node to automate work in OpenThesaurus, and integrate Open
On this page, you'll find a list of operations the OpenThesaurus node supports and links to more resources.
/// note | Credentials
-OpenThesaurus node does not require authentication.
+OpenThesaurus node doesn'trequire authentication.
///
/// note | Examples and templates
For usage examples and templates to help you get started, take a look at n8n's [OpenThesaurus integrations](https://n8n.io/integrations/openthesaurus/){:target="_blank" .external-link} list.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.phantombuster.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.phantombuster.md
index 12786b224..82903dd93 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.phantombuster.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.phantombuster.md
@@ -1,20 +1,20 @@
---
-title: Phantombuster
-description: Documentation for the Phantombuster node in n8n, a workflow automation platform. Includes details of operations and configuration, and links to examples and credentials information.
+title: PhantomBuster
+description: Documentation for the PhantomBuster node in n8n, a workflow automation platform. Includes details of operations and configuration, and links to examples and credentials information.
contentType: integration
---
-# Phantombuster
+# PhantomBuster
-Use the Phantombuster node to automate work in Phantombuster, and integrate Phantombuster with other applications. n8n has built-in support for a wide range of Phantombuster features, including adding, deleting, and getting agents.
+Use the PhantomBuster node to automate work in PhantomBuster, and integrate PhantomBuster with other applications. n8n has built-in support for a wide range of PhantomBuster features, including adding, deleting, and getting agents.
-On this page, you'll find a list of operations the Phantombuster node supports and links to more resources.
+On this page, you'll find a list of operations the PhantomBuster node supports and links to more resources.
/// note | Credentials
-Refer to [Phantombuster credentials](/integrations/builtin/credentials/phantombuster/) for guidance on setting up authentication.
+Refer to [PhantomBuster credentials](/integrations/builtin/credentials/phantombuster/) for guidance on setting up authentication.
///
/// note | Examples and templates
-For usage examples and templates to help you get started, take a look at n8n's [Phantombuster integrations](https://n8n.io/integrations/phantombuster/){:target="_blank" .external-link} list.
+For usage examples and templates to help you get started, take a look at n8n's [PhantomBuster integrations](https://n8n.io/integrations/phantombuster/){:target="_blank" .external-link} list.
///
## Operations
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.redis.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.redis.md
index 84c60686c..fdfced6b0 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.redis.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.redis.md
@@ -22,7 +22,7 @@ For usage examples and templates to help you get started, take a look at n8n's [
* Delete a key from Redis.
* Get the value of a key from Redis.
* Returns generic information about the Redis instance.
-* Atomically increments a key by 1. Creates the key if it does not exist.
+* Atomically increments a key by 1. Creates the key if it doesn'texist.
* Returns all the keys matching a pattern.
* Set the value of a key in redis.
* Publish message to redis channel.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.wekan.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.wekan.md
index 2ec4097ea..a44526e90 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.wekan.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.wekan.md
@@ -1,20 +1,20 @@
---
-title: Wekan
-description: Documentation for the Wekan node in n8n, a workflow automation platform. Includes details of operations and configuration, and links to examples and credentials information.
+title: WeKan
+description: Documentation for the WeKan node in n8n, a workflow automation platform. Includes details of operations and configuration, and links to examples and credentials information.
contentType: integration
---
-# Wekan
+# WeKan
-Use the Wekan node to automate work in Wekan, and integrate Wekan with other applications. n8n has built-in support for a wide range of Wekan features, including creating, updating, deleting, and getting boards and cards.
+Use the WeKan node to automate work in WeKan, and integrate WeKan with other applications. n8n has built-in support for a wide range of WeKan features, including creating, updating, deleting, and getting boards and cards.
-On this page, you'll find a list of operations the Wekan node supports and links to more resources.
+On this page, you'll find a list of operations the WeKan node supports and links to more resources.
/// note | Credentials
-Refer to [Wekan credentials](/integrations/builtin/credentials/wekan/) for guidance on setting up authentication.
+Refer to [WeKan credentials](/integrations/builtin/credentials/wekan/) for guidance on setting up authentication.
///
/// note | Examples and templates
-For usage examples and templates to help you get started, take a look at n8n's [Wekan integrations](https://n8n.io/integrations/wekan/){:target="_blank" .external-link} list.
+For usage examples and templates to help you get started, take a look at n8n's [WeKan integrations](https://n8n.io/integrations/wekan/){:target="_blank" .external-link} list.
///
## Basic Operations
@@ -52,13 +52,13 @@ For usage examples and templates to help you get started, take a look at n8n's [
## Example Usage
-This workflow allows you to create a board and two lists called `To Do` and `Done` using the Wekan node. It also allows you to create a card and update the list ID of the card, enabling you to move it from the `To Do` list to the `Done` list. You can also find the [workflow](https://n8n.io/workflows/728) on n8n.io. This example usage workflow uses the following nodes.
+This workflow allows you to create a board and two lists called `To Do` and `Done` using the WeKan node. It also allows you to create a card and update the list ID of the card, enabling you to move it from the `To Do` list to the `Done` list. You can also find the [workflow](https://n8n.io/workflows/728) on n8n.io. This example usage workflow uses the following nodes.
- [Start](/integrations/builtin/core-nodes/n8n-nodes-base.start/)
-- [Wekan]()
+- [WeKan]()
The final workflow should look like the following image.
-
+
### 1. Start node
@@ -66,11 +66,11 @@ The final workflow should look like the following image.
The start node exists by default when you create a new workflow.
-### 2. Wekan node (create: board)
+### 2. WeKan node (create: board)
-This node will create a board called `Documentation` in Wekan. To create a board with a different name, you can enter the name of your board instead.
+This node will create a board called `Documentation` in WeKan. To create a board with a different name, you can enter the name of your board instead.
-1. First of all, you'll have to enter credentials for the Wekan node. You can find out how to do that [here](/integrations/builtin/credentials/wekan/).
+1. First of all, you'll have to enter credentials for the WeKan node. You can find out how to do that [here](/integrations/builtin/credentials/wekan/).
2. Select 'Board' from the ***Resource*** dropdown list.
3. Enter `Documentation` in the ***Title*** field.
@@ -80,29 +80,29 @@ This node will create a board called `Documentation` in Wekan. To create a board
In the screenshot below, you will notice that the node creates a new board with the title `Documentation`.
-
+
-### 3. Wekan1 node (create: list)
+### 3. WeKan1 node (create: list)
This node will create a list with the title `To Do` in the `Documentation` board, which was created using the previous node.
1. Select the credentials that you entered in the previous node.
2. Select 'List' from the ***Resource*** dropdown list.
3. Click on the gears icon next to the ***Board ID*** field and click on ***Add Expression***.
-4. Select the following in the ***Variable Selector*** section: Nodes > Wekan > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan"].json["_id"]}}`.
+4. Select the following in the ***Variable Selector*** section: Nodes > WeKan > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan"].json["_id"]}}`.
5. Enter `To Do` in the ***Title*** field.
6. Click on ***Execute Node*** to run the node.
In the screenshot below, you will notice that the node creates a new list called `To Do` in the `Documentation` board.
-
+
-### 4. Wekan2 node (create: list)
+### 4. WeKan2 node (create: list)
-This node will create a list with the title `Done` in the `Documentation` board, which was created using the Wekan node.
+This node will create a list with the title `Done` in the `Documentation` board, which was created using the WeKan node.
1. Select the credentials that you entered in the previous node.
2. Select 'List' from the ***Resource*** dropdown list.
@@ -114,55 +114,55 @@ This node will create a list with the title `Done` in the `Documentation` board,
In the screenshot below, you will notice that the node creates a new list called `Done` in the `Documentation` board.
-
+
-### 5. Wekan3 node (create: card)
+### 5. WeKan3 node (create: card)
-This node will create a card in the `Documentation` board under the list titled `To Do`, which was created using the Wekan1 node.
+This node will create a card in the `Documentation` board under the list titled `To Do`, which was created using the WeKan1 node.
1. Select the credentials that you entered in the previous node.
2. Click on the gears icon next to the ***Board ID*** field and click on ***Add Expression***.
3. Select the following in the ***Variable Selector*** section: Nodes > Wekan > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan"].json["_id"]}}`.
4. Click on the gears icon next to the ***List ID*** field and click on ***Add Expression***.
5. Select the following in the ***Variable Selector*** section: Nodes > Wekan1 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan1"].json["_id"]}}`.
-6. Enter `Document Wekan node` in the ***Title*** field.
+6. Enter `Document WeKan node` in the ***Title*** field.
7. Select 'Default' from the ***Swimlane ID*** dropdown list.
8. Select an author from the ***Author ID*** dropdown list.
9. Click on ***Execute Node*** to run the node.
-In the screenshot below, you will notice that the node creates a new card with the title `Document Wekan node` in the `To Do` list of the `Documentation` board.
+In the screenshot below, you will notice that the node creates a new card with the title `Document WeKan node` in the `To Do` list of the `Documentation` board.
-
+
-### 6. Wekan4 node (update: card)
+### 6. WeKan4 node (update: card)
This node will update the list ID of the card created by the previous node and move it from the `To Do` list to the `Done` list.
1. Select the credentials that you entered in the previous node.
2. Select 'Update' from the ***Operation*** dropdown list.
3. Click on the gears icon next to the ***Board ID*** field and click on ***Add Expression***.
-4. Select the following in the ***Variable Selector*** section: Nodes > Wekan > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan"].json["_id"]}}`.
+4. Select the following in the ***Variable Selector*** section: Nodes > WeKan > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan"].json["_id"]}}`.
5. Click on the gears icon next to the ***List ID*** field and click on ***Add Expression***.
-6. Select the following in the ***Variable Selector*** section: Nodes > Wekan1 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan1"].json["_id"]}}`.
+6. Select the following in the ***Variable Selector*** section: Nodes > WeKan1 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan1"].json["_id"]}}`.
7. Click on the gears icon next to the ***Card ID*** field and click on ***Add Expression***.
-8. Select the following in the ***Variable Selector*** section: Nodes > Wekan3 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan3"].json["_id"]}}`.
+8. Select the following in the ***Variable Selector*** section: Nodes > WeKan3 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan3"].json["_id"]}}`.
9. Click on the ***Add Field*** button and select 'List ID'.
10. Click on the gears icon next to the ***List ID*** field and click on ***Add Expression***.
-11. Select the following in the ***Variable Selector*** section: Nodes > Wekan2 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan2"].json["_id"]}}`.
+11. Select the following in the ***Variable Selector*** section: Nodes > WeKan2 > Output Data > JSON > _id. You can also add the following expression: `{{$node["Wekan2"].json["_id"]}}`.
12. Click on ***Execute Node*** to run the node.
In the screenshot below, you will notice that the node updates the list id of the card that we created in the previous node and moves it from the `To Do` list to the `Done` list.
-
+
## FAQs
### How to load all the parameters for the node?
-To load all the parameters, for example, Author ID, you need to give admin permissions to the user. Refer to the [Wekan documentation](https://github.com/wekan/wekan/wiki/Features#members-click-member-initials-or-avatar--permissions-adminnormalcomment-only) to learn how to change permissions.
+To load all the parameters, for example, Author ID, you need to give admin permissions to the user. Refer to the [WeKan documentation](https://github.com/wekan/wekan/wiki/Features#members-click-member-initials-or-avatar--permissions-adminnormalcomment-only) to learn how to change permissions.
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.wordpress.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.wordpress.md
index a92efe405..dddbadab2 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.wordpress.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.wordpress.md
@@ -44,7 +44,7 @@ The final workflow should look like the following image.
The start node exists by default when you create a new workflow.
-### 2. Wordpress node (create: post)
+### 2. WordPress node (create: post)
1. First of all, you'll have to enter credentials for the WordPress node. You can find out how to do that [here](/integrations/builtin/credentials/wordpress/).
2. Enter the title in the ***Title*** field.
@@ -53,12 +53,12 @@ The start node exists by default when you create a new workflow.

-### 3. Wordpress1 node (update: post)
+### 3. WordPress1 node (update: post)
1. Select the credentials that you entered in the previous node.
2. Select 'Update' from the ***Operation*** dropdown list.
3. Click on the gears icon next to the ***Post ID*** field and click on ***Add Expression***.
-4. Select the following in the ***Variable Selector*** section: Nodes > Wordpress > Output Data > JSON > id. You can also add the following expression: `{{$node["Wordpress"].json["id"]}}`.
+4. Select the following in the ***Variable Selector*** section: Nodes > WordPress > Output Data > JSON > id. You can also add the following expression: `{{$node["Wordpress"].json["id"]}}`.
5. Click on the ***Add Field*** button and select 'Content' from the dropdown list.
6. Enter the content in the ***Content*** filed.
7. Click on ***Execute Node*** to run the workflow.
diff --git a/docs/integrations/builtin/core-nodes/n8n-nodes-base.activationtrigger.md b/docs/integrations/builtin/core-nodes/n8n-nodes-base.activationtrigger.md
index 7486cc74b..6da46bb5f 100644
--- a/docs/integrations/builtin/core-nodes/n8n-nodes-base.activationtrigger.md
+++ b/docs/integrations/builtin/core-nodes/n8n-nodes-base.activationtrigger.md
@@ -24,7 +24,7 @@ The Activation trigger node gets triggered for the workflow that it gets added t
- Events
- ***Activation:*** Run when the workflow gets activated
- ***Start:*** Run when n8n starts or restarts
- - ***Update:*** Run when the workflow gets saved while it is active
+ - ***Update:*** Run when the workflow gets saved while it's active
## Example Usage
diff --git a/docs/integrations/builtin/core-nodes/n8n-nodes-base.if.md b/docs/integrations/builtin/core-nodes/n8n-nodes-base.if.md
index 1523b8d46..45030e0cd 100644
--- a/docs/integrations/builtin/core-nodes/n8n-nodes-base.if.md
+++ b/docs/integrations/builtin/core-nodes/n8n-nodes-base.if.md
@@ -25,22 +25,22 @@ Add comparison conditions using the **Add Condition** filter. The available comp
**String**:
- exists
-- does not exist
+- doesn'texist
- is equal to
- is not equal to
- contains
-- does not contain
+- doesn'tcontain
- starts with
-- does not start with
+- doesn'tstart with
- ends with
-- does not end with
+- doesn'tend with
- matches regex
-- does not match regex
+- doesn'tmatch regex
**Number**:
- exists
-- does not exist
+- doesn'texist
- is equal to
- is not equal to
- is greater than
@@ -51,7 +51,7 @@ Add comparison conditions using the **Add Condition** filter. The available comp
**Date & Time**:
- exists
-- does not exist
+- doesn'texist
- is equal to
- is not equal to
- is after
@@ -62,7 +62,7 @@ Add comparison conditions using the **Add Condition** filter. The available comp
**Boolean**:
- exists
-- does not exist
+- doesn'texist
- is true
- is false
- is equal to
@@ -71,11 +71,11 @@ Add comparison conditions using the **Add Condition** filter. The available comp
**Array**:
- exists
-- does not exist
+- doesn'texist
- is equal to
- is not equal to
- contains
-- does not contain
+- doesn'tcontain
- length equal to
- length not equal to
- length greater than
@@ -86,7 +86,7 @@ Add comparison conditions using the **Add Condition** filter. The available comp
**Object**:
- exists
-- does not exist
+- doesn'texist
- is empty
- is not empty
diff --git a/docs/integrations/builtin/core-nodes/n8n-nodes-base.markdown.md b/docs/integrations/builtin/core-nodes/n8n-nodes-base.markdown.md
index eae4d4311..e546dacf6 100644
--- a/docs/integrations/builtin/core-nodes/n8n-nodes-base.markdown.md
+++ b/docs/integrations/builtin/core-nodes/n8n-nodes-base.markdown.md
@@ -33,7 +33,7 @@ Some of the options depend on each other, or can interact. We recommend testing
| **GitHub Mentions** | Whether to support tagging GitHub users with `@` (enabled) or not (disabled). When enabled, n8n replaces `@name` with `https://github.com/name`. | Disabled |
| **GitHub Task Lists** | Whether to support GitHub Flavored Markdown task lists (enabled) or not (disabled). | Disabled |
| **Header Level Start** | Number. Set the start level for headers. For example, changing this field to `2` causes n8n to treat `#` as `