diff --git a/docs/_images/courses/level-two/chapter-five/workflow2.png b/docs/_images/courses/level-two/chapter-five/workflow2.png
index 39049b140..08c24cda6 100644
Binary files a/docs/_images/courses/level-two/chapter-five/workflow2.png and b/docs/_images/courses/level-two/chapter-five/workflow2.png differ
diff --git a/docs/_images/courses/level-two/chapter-five/workflow2_2.png b/docs/_images/courses/level-two/chapter-five/workflow2_2.png
index acd7a09c6..a2b2d91ed 100644
Binary files a/docs/_images/courses/level-two/chapter-five/workflow2_2.png and b/docs/_images/courses/level-two/chapter-five/workflow2_2.png differ
diff --git a/docs/_images/courses/level-two/chapter-five/workflow2_3.png b/docs/_images/courses/level-two/chapter-five/workflow2_3.png
index 64ca55f81..957318513 100644
Binary files a/docs/_images/courses/level-two/chapter-five/workflow2_3.png and b/docs/_images/courses/level-two/chapter-five/workflow2_3.png differ
diff --git a/docs/courses/level-two/chapter-2.md b/docs/courses/level-two/chapter-2.md
index ba565815e..4b71fb9aa 100644
--- a/docs/courses/level-two/chapter-2.md
+++ b/docs/courses/level-two/chapter-2.md
@@ -13,7 +13,7 @@ You're most likely familiar with HTML and XML.
If you need to process HTML or XML data in your n8n workflows, use the [HTML Extract node](/integrations/core-nodes/n8n-nodes-base.htmlExtract/) or [XML node](/integrations/core-nodes/n8n-nodes-base.xml/).
-The HTML Extract node allows you to extract HTML content of a webpage, by referencing CSS selectors. This is useful if you want to collect structured notermation from a website (web-scraping).
+The HTML Extract node allows you to extract HTML content of a webpage, by referencing CSS selectors. This is useful if you want to collect structured information from a website (web-scraping).
### Exercise
@@ -260,7 +260,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 notermation, 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 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.
In n8n, you can process binary data with the following nodes:
@@ -284,7 +284,7 @@ To read or write a binary file, you need to write the path (location) of the fil
Make an HTTP request to get this PDF file: `https://media.kaspersky.com/pdf/Kaspersky_Lab_Whitepaper_Anti_blocker.pdf.` Then, use the Move Binary Data node to convert the file from binary to JSON, with [base64](https://developer.mozilla.org/en-US/docs/Glossary/Base64) encoding.
-??? note "Show me the solution""
+??? note "Show me the solution"
In the HTTP Request node, you should see the PDF file in JSON, Table, and Binary view, like this:
@@ -451,4 +451,4 @@ Make an HTTP request to the Poemist API `https://www.poemist.com/api/v1/randompo
}
}
}
- ```
\ No newline at end of file
+ ```
diff --git a/docs/courses/level-two/chapter-3.md b/docs/courses/level-two/chapter-3.md
index 35d83bbf9..64fc7333b 100644
--- a/docs/courses/level-two/chapter-3.md
+++ b/docs/courses/level-two/chapter-3.md
@@ -14,9 +14,9 @@ Merging data can involve:
!!! 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 notermation changes in that main system, it automatically changes in the secondary system; but if notermation 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 are not reflected in the main system.
- In a two-way sync, data is synchronized in both directions (between both systems). When notermation changes in either of the two systems, it automatically changes in the other one as well.
+ 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.
[This blog tutorial](https://n8n.io/blog/how-to-sync-data-between-two-systems/) explains how to sync data one-way and two-way between two CRMs.
@@ -46,7 +46,7 @@ Build a workflow that merges data from the Customer Datastore node and Function
* Add a Merge node that takes Input 1 from a Customer Datastore node and Input 2 from a Function node.
* In the Customer Datastore node, run the operation Get All People.
-* In the Function node, create an array of two objects with three properties: `name`, `language`, and `country`, where the property `country` has two sub-properties `code` and `name`. Fill out the values of these properties with the notermation of two characters from the Customer Database. For example, Jay Gatsby's language would be English and country name would be United States.
+* In the Function node, create an array of two objects with three properties: `name`, `language`, and `country`, where the property `country` has two sub-properties `code` and `name`. Fill out the values of these properties with the information of two characters from the Customer Database. For example, Jay Gatsby's language would be English and country name would be United States.
* In the Merge node, try out different merge modes.
??? note "Show me the solution"
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 721bef602..9d5bb6028 100644
--- a/docs/courses/level-two/chapter-5/chapter-5.0.md
+++ b/docs/courses/level-two/chapter-5/chapter-5.0.md
@@ -4,7 +4,7 @@ Remember [our friend Nathan](/courses/level-one/chapter-3)?
**Nathan π:** Hello, it's me again. My manager was so impressed with my first workflow automation solution, that she entrusted me with more responsibility.
**You π©βπ§:** More work and responsibility. Congratulations, I guess. What do you need to do now?
-**Nathan π:** I got access to all sales data and am responsible for creating two reports: one for regional sales (as PDF) and one for orders prices (as spreadsheets). They are based on data from different sources and come in different formats.
+**Nathan π:** I got access to all sales data and am responsible for creating two reports: one for regional sales and one for orders prices. They are based on data from different sources and come in different formats.
**You π©βπ§:** Sounds like a lot of manual workβbut the kind that can be automated. So let's do it!
@@ -14,12 +14,12 @@ Now that we have an idea of what Nathan wants to automate, letβs list the step
1. Get and combine data from all necessary sources.
2. Sort the data and format the dates.
-3. Write binary data (spreadsheet and PDF).
+3. Write binary files.
4. Send notifications via email and Discord.
n8n provides core nodes for all these steps. This use case is somewhat complex and it will be made up of three separate workflows:
-1. A workflow that merges the company data with external notermation.
+1. A workflow that merges the company data with external information.
2. A workflow that generates the reports.
3. A workflow that monitors errors in the second workflow.
@@ -27,8 +27,8 @@ n8n provides core nodes for all these steps. This use case is somewhat complex a
To build the workflows, you will need the following:
-* An [Airtable](https://airtable.com/) account and [credentials]().
-* A [Google](https://www.google.com/account/about/) account and [credentials]() to access Gmail and Google Drive.
-* A [Discord](https://discord.com/) webhook URL.
+* An [Airtable](https://airtable.com/) account and [credentials](/integrations/credentials/airtable/).
+* A [Google](https://www.google.com/account/about/) account and [credentials](/integrations/credentials/google/) to access Gmail.
+* A [Discord](https://discord.com/) account and webhook URL (you receive this via email when you sign up for this course).
Next, you will build these three workflows with step-by-step instructions.
diff --git a/docs/courses/level-two/chapter-5/chapter-5.1.md b/docs/courses/level-two/chapter-5/chapter-5.1.md
index b458950ed..4ae0b3065 100644
--- a/docs/courses/level-two/chapter-5/chapter-5.1.md
+++ b/docs/courses/level-two/chapter-5/chapter-5.1.md
@@ -1,6 +1,6 @@
# Workflow 1 β Merging data
-The company's customer data is stored in Airtable. It contains notermation about the customers' ID, country, email, and join date, but lacks data about their respective region and subregion. You need to fill in these last two fields in order to create the reports for regional sales.
+The company's customer data is stored in Airtable. It contains information about the customers' ID, country, email, and join date, but lacks data about their respective region and subregion. You need to fill in these last two fields in order to create the reports for regional sales.
To accomplish this task, you first need to make a copy of this [customers table](https://airtable.com/shrZBXHXWvQ57LHuX) in your Airtable account.
@@ -8,11 +8,10 @@ To accomplish this task, you first need to make a copy of this [customers table]
Next, you have to build a small workflow that merges data from Airtable and a REST API.
-1. Use the [Cron node](/integrations/core-nodes/n8n-nodes-base.cron/) to trigger the workflow on the 1st of every month at 10:00.
-2. Use the [Airtable node](/integrations/nodes/n8n-nodes-base.airtable/) to list the data in the Airtable table named `customers`.
-3. use the [HTTP Request node](/integrations/core-nodes/n8n-nodes-base.httpRequest/) to get data from the REST Countries API: `https://restcountries.com/v3.1/all`. This will return data about world countries. Note that the incoming data needs to be split into items.
-4. Use the [Merge node](/integrations/core-nodes/n8n-nodes-base.merge/) to merge data from Airtable and the Countries API by country name (the common key), represented as `customerCountry` in Airtable and `name.common` in the Countries API, respectively.
-5. Use the Airtable node to update the fields `region` and `subregion` in Airtable with the data from the Countries API.
+1. Use the [Airtable node](/integrations/nodes/n8n-nodes-base.airtable/) to list the data in the Airtable table named `customers`.
+2. use the [HTTP Request node](/integrations/core-nodes/n8n-nodes-base.httpRequest/) to get data from the REST Countries API: `https://restcountries.com/v3.1/all`. This will return data about world countries. Note that the incoming data needs to be split into items.
+3. Use the [Merge node](/integrations/core-nodes/n8n-nodes-base.merge/) to merge data from Airtable and the Countries API by country name (the common key), represented as `customerCountry` in Airtable and `name.common` in the Countries API, respectively.
+4. Use the Airtable node to update the fields `region` and `subregion` in Airtable with the data from the Countries API.
The workflow should look like this:
diff --git a/docs/courses/level-two/chapter-5/chapter-5.2.md b/docs/courses/level-two/chapter-5/chapter-5.2.md
index 5830b2755..793fd1469 100644
--- a/docs/courses/level-two/chapter-5/chapter-5.2.md
+++ b/docs/courses/level-two/chapter-5/chapter-5.2.md
@@ -39,9 +39,11 @@ The second part of the workflow consists of five nodes:
1. Use the [IF node](/integrations/core-nodes/n8n-nodes-base.if/) to filter order from the region Americas.
2. Use the [Move Binary Data node](/integrations/core-nodes/n8n-nodes-base.moveBinaryData/) to transform the incoming data from JSON to binary format. Note that you need to convert all data.
-3. Use the [Write Binary File node](/integrations/core-nodes/n8n-nodes-base.writeBinaryFile/) to generate a PDF file.
-4. Use the [Gmail node](/integrations/nodes/n8n-nodes-base.gmail/) (or another email node) to send the PDF file via email to an address you have access to.
-5. Use the [Discord node](/integrations/nodes/n8n-nodes-base.discord/) to send a message in the n8n Discord channel `#course-level-two` with the Text: "I sent the PDF via email. My ID:" followed by your ID.
+3. Use the [Write Binary File node](/integrations/core-nodes/n8n-nodes-base.writeBinaryFile/) to create and store files with the orders information. In the File Name field, use an expression to include the oder id in the file name, like this: `report_orderID{oder_id}.json` (you need to replace the `{order id}` with the reference the Move Binary Data node).
+4. Use the [Gmail node](/integrations/nodes/n8n-nodes-base.gmail/) (or another email node) to send the files via email to an address you have access to. Note that you need to add an attachment with the data property.
+5. Use the [Discord node](/integrations/nodes/n8n-nodes-base.discord/) to send a message in the n8n Discord channel `#course-level-two`. In the node, configure the following parameters:
+ * Webhook URL: The webhook URL you received in the email when you signed up for this course.
+ * Text: "I sent the file via email with the label ID `{label ID}` and wrote the binary file `{file name}`. My ID: " followed by your ID.
Note that you need to replace the text in curly braces `{}` with expressions that reference the data from the nodes.
!!! question "Quiz questions"
@@ -58,11 +60,10 @@ The third part of the workflow consists of seven nodes:
1. Use the [Split In Batches node](/integrations/core-nodes/n8n-nodes-base.splitInBatches/) to split data from the Item Lists node into batches of 5.
2. Use the [Set node](/integrations/core-nodes/n8n-nodes-base.set/) to set four values, referenced with expressions from the previous node: `customerEmail`, `customerRegion`, `customerSince`, and `orderPrice`.
3. Use the [Date & Time node](/integrations/core-nodes/n8n-nodes-base.dateTime/) to change the date format of the field `customerSince` to the format MM/DD/YYYY.
-4. Use the [Move Binary Data node](/integrations/core-nodes/n8n-nodes-base.moveBinaryData/) to transform the incoming data from JSON to binary format. Note that you need to convert all data.
-5. Use the [Spreadsheet File node](/integrations/core-nodes/n8n-nodes-base.spreadsheetFile/) to create a spreadsheet with the file name set as the expression: `{{$runIndex > 0 ? 'file_low_orders':'file_high_orders'}}`.
-6. Use the [Google Drive node](/integrations/nodes/n8n-nodes-base.googleDrive/) to upload the spreadsheet to Google Drive.
-7. Use the [Discord node](/integrations/nodes/n8n-nodes-base.discord/) to send a message in the n8n Discord channel `#course-level-two` with the Text:
- "I uploaded the spreadsheet `{file name}`. My ID:" followed by your ID.
+4. Use the [Spreadsheet File node](/integrations/core-nodes/n8n-nodes-base.spreadsheetFile/) to create a CSV spreadsheet with the file name set as the expression: `{{$runIndex > 0 ? 'file_low_orders':'file_high_orders'}}`.
+5. Use the [Discord node](/integrations/nodes/n8n-nodes-base.discord/) to send a message in the n8n Discord channel `#course-level-two`. In the node, configure the following parameters:
+ * Webhook URL: The webhook URL you received in the email when you signed up for this course.
+ * Text: "I created the spreadsheet `{file name}`. My ID:" followed by your ID.
The `{file name}` should be an expression that references data from the Spreadsheet File node.
!!! question "Quiz questions"
diff --git a/docs/courses/level-two/chapter-5/chapter-5.3.md b/docs/courses/level-two/chapter-5/chapter-5.3.md
index d8555efcd..ce04a3b3c 100644
--- a/docs/courses/level-two/chapter-5/chapter-5.3.md
+++ b/docs/courses/level-two/chapter-5/chapter-5.3.md
@@ -8,7 +8,7 @@ To accomplish this task, you have to create an Error workflow that monitors the
* Webhook URL: The URL that you received in the email from n8n when you signed up for this course.
* Text: The workflow `{workflow name}` failed, with the error message: `{execution error message}`. Last node executed: `{name of the last executed node}`. Check this workflow execution here: `{execution URL}`.
- Note that you need to replace the text in curly brackets `{}` with expressions that take the respective notermation from the Error Trigger node.
+ Note that you need to replace the text in curly brackets `{}` with expressions that take the respective information from the Error Trigger node.
3. Execute the Discord node.
4. Set the newly created workflow as Error Workflow for the main workflow.
@@ -20,6 +20,6 @@ The workflow should look like this:
!!! question "Quiz questions"
* What fields does the Error Trigger node return?
- * What notermation about the execution does the Error Trigger node return?
- * What notermation about the workflow does the Error Trigger node return?
+ * What information about the execution does the Error Trigger node return?
+ * What information about the workflow does the Error Trigger node return?
* What is the expression to reference the workflow name?
diff --git a/docs/courses/level-two/index.md b/docs/courses/level-two/index.md
index 852dfc2a8..95a5d59a1 100644
--- a/docs/courses/level-two/index.md
+++ b/docs/courses/level-two/index.md
@@ -34,9 +34,9 @@ Completing the course should take around two hours. You do not have to complete
## Do I get a certificate?
-We believe all good works deserve recognition. If you successfully complete the course, we will email you a **badge** that you can share with your peers to showcase your n8n skills. To get your n8n badge, you need to complete the following milestones:
+We believe all good works deserve recognition. If you successfully complete the course, you will get a **badge** in your [community forum](http://community.n8n.io/) profile to showcase your n8n skills. To get your n8n badge, you need to complete the following milestones:
-- [x] [Sign up](https://n8n-community.typeform.com/to/HQoQ7nXg) for the course to get your unique ID and other notermation you will need for the exercises.
-- [x] Automatically generate and email a PDF file.
-- [x] Automatically generate and upload two spreadsheets.
+- [x] [Sign up](https://n8n-community.typeform.com/to/HQoQ7nXg) for the course to get your unique ID and other information you will need for the exercises.
+- [x] Run an HTTP Request to get the data set.
+- [x] Automatically generate binary files and send notifications in Discord.
- [x] Pass the quiz at the end of the course.