This workflow follows the Emailsend → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Course Import Workflow",
"nodes": [
{
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyDay"
}
]
}
},
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"filePath": "src/data/Book2.xlsx",
"options": {}
},
"name": "Read Binary File",
"type": "n8n-nodes-base.readBinaryFile",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"binaryPropertyName": "data",
"options": {
"sheetName": "Courses"
}
},
"name": "Spreadsheet File",
"type": "n8n-nodes-base.spreadsheetFile",
"typeVersion": 1,
"position": [
650,
300
]
},
{
"parameters": {
"jsCode": "// Transform each row into the required format\nreturn items.map(item => {\n return {\n Course: item.json['Course Title'],\n Module: 'General',\n Topic: item.json['Course Title'],\n WebsiteLink: item.json['Website Link']\n };\n});"
},
"name": "Transform Data",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [
850,
300
]
},
{
"parameters": {
"url": "http://localhost:8000/api/courses/",
"options": {
"bodyContentType": "json",
"fullResponse": true
},
"authentication": "none",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "Course",
"value": "={{$json.Course}}"
},
{
"name": "Module",
"value": "={{$json.Module}}"
},
{
"name": "Topic",
"value": "={{$json.Topic}}"
},
{
"name": "WebsiteLink",
"value": "={{$json.WebsiteLink}}"
}
]
}
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
1050,
300
]
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$json.statusCode}}",
"value2": 201
}
]
}
},
"name": "IF",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
1250,
300
]
},
{
"parameters": {
"channel": "course-imports",
"text": "=\u2705 Successfully imported course: {{$json.body.Course}}",
"otherOptions": {}
},
"name": "Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"position": [
1450,
200
]
},
{
"parameters": {
"fromEmail": "n8n@example.com",
"toEmail": "admin@example.com",
"subject": "Course Import Failed",
"text": "=\u274c Failed to import course: {{$json.body.Course}}\nError: {{$json.body.error}}",
"options": {}
},
"name": "Send Email",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 1,
"position": [
1450,
400
]
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Read Binary File",
"type": "main",
"index": 0
}
]
]
},
"Read Binary File": {
"main": [
[
{
"node": "Spreadsheet File",
"type": "main",
"index": 0
}
]
]
},
"Spreadsheet File": {
"main": [
[
{
"node": "Transform Data",
"type": "main",
"index": 0
}
]
]
},
"Transform Data": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"IF": {
"main": [
[
{
"node": "Slack",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Course Import Workflow. Uses readBinaryFile, spreadsheetFile, httpRequest, slack. Scheduled trigger; 8 nodes.
Source: https://github.com/Lumixxy/E-learn2/blob/623e1a79ea0d6eafb5d3e77d9c2131c73bf719bc/n8n-workflows/course-import.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Simplify financial oversight with this automated n8n workflow. Triggered daily, it fetches cash flow and expense data from a Google Sheet, analyzes inflows and outflows, validates records, and generat
This workflow automatically monitors competitor affiliate programs twice daily using Bright Data's web scraping API to extract commission rates, cookie durations, average order values, and payout term
Real Estate Market Scanning. Uses scheduleTrigger, httpRequest, splitOut, emailSend. Scheduled trigger; 15 nodes.
Automate your payroll process with this efficient workflow. Triggered monthly on the 28th, it fetches employee data from a Google Sheet, uses AI to calculate net salaries with tax and deductions, stru