Submit any course or lecture video URL along with the course title, module name, assignee, due date, and priority and the workflow automatically converts the entire module into a ClickUp task list. WayinVideo summarizes the video and extracts key learning highlights, then GPT-4o-mini reads the summary and returns 5–12 structured tasks — each with a title starting with an action verb, a description with what to do and why it matters, a task type, an estimated time, and step-by-step checklist items. Each task is created in ClickUp with your chosen priority and due date, tagged as course-task and learning, and every task is logged to Google Sheets with the ClickUp Task ID and URL. Built for learning and development teams, student communities, training managers, and knowledge workers who want learning to translate directly into action.
[Course Title] Task Title so your board stays organized when processing multiple modules⚠️ WayinVideo API key appears in 2 steps — replace
YOUR_WAYINVIDEO_API_KEYin both 2. WayinVideo — Submit Summarization and 4. WayinVideo — Get Summary Results. Missing either one will cause the workflow to fail.
Estimated Setup Time: 20–25 minutes
Import the workflow — Open n8n → Workflows → Import from JSON → paste the workflow JSON → click Import
Get your WayinVideo API key — Log in to your WayinVideo account → go to Account Settings → copy your API key
Add your WayinVideo API key to node 2 — Open node 2. WayinVideo — Submit Summarization → find the Authorization header value Bearer YOUR_WAYINVIDEO_API_KEY → replace YOUR_WAYINVIDEO_API_KEY with your actual key
Add your WayinVideo API key to node 4 — Open node 4. WayinVideo — Get Summary Results → find the same Authorization header → replace YOUR_WAYINVIDEO_API_KEY with the same key
Connect OpenAI — Open node 9. OpenAI — GPT-4o-mini Model → click the credential dropdown → add your OpenAI API key → test the connection
Get your ClickUp List ID — Open ClickUp in a browser → navigate to the List where you want tasks created → right-click the List name → click Copy link → the List ID is the last segment of the URL after the final /
Connect ClickUp — Open node 11. ClickUp — Create Task → click the credential dropdown → add ClickUp OAuth2 → complete the authorization flow → in the List ID field, replace YOUR_CLICKUP_LIST_ID with your actual List ID
Create your Google Sheet tab — Open your Google Sheet → add a tab named exactly Course Tasks Log → add these 14 column headers in row 1: Course Title, Module Title, Video URL, Task Number, Task Title, Task Type, Estimated Minutes, Total Tasks in Module, ClickUp Task ID, ClickUp Task URL, Assigned To, Due Date, Priority, Generated On
Get your Google Sheet ID — Open your Google Sheet in a browser → copy the string between /d/ and /edit in the URL — this is your Sheet ID
Connect Google Sheets — Open node 12. Google Sheets — Log Tasks → click the document field → replace YOUR_GOOGLE_SHEET_ID by selecting your spreadsheet or entering the Sheet ID manually → click the credential dropdown → add Google Sheets OAuth2 → authorize access
Activate the workflow — Toggle the workflow to Active → copy the Form URL from node 1. Form — Course Video + Details → open it in a browser to submit your first module
Step 1 — Form: Course Video + Details
You open the form URL and fill in six fields: the course video URL (YouTube, Zoom, Vimeo, Loom, or any direct link), the course title, the module or lecture title, who to assign tasks to, the task due date (formatted as YYYY-MM-DD), and the task priority (High, Normal, or Low). Submitting the form starts the entire pipeline.
Step 2 — HTTP: WayinVideo — Submit Summarization
The course video URL is sent to WayinVideo's Summarization API. WayinVideo accepts the job and returns a task ID confirming the summarization has started.
Step 3 — Wait: 90 Seconds
The workflow pauses 90 seconds before the first status check, giving WayinVideo time to process the video.
Step 4 — HTTP: WayinVideo — Get Summary Results
A GET request checks the summarization results endpoint using the task ID. It returns the current status and, once complete, the summary text, highlights array, and tags array.
Step 5 — IF: Summary Complete?
This is the polling gate. If the status equals SUCCEEDED (YES path), the summary is ready and the workflow moves forward to data extraction. If still processing (NO path), the workflow routes to 6. Wait — 30 Seconds Retry which pauses 30 seconds then loops back to step 4. This repeats until SUCCEEDED.
Step 6 — Wait: 30 Seconds Retry
When the summary is not yet ready, the workflow waits 30 seconds then returns to step 4 for another check.
Step 7 — Code: Extract Summary Data
The summary text and highlights (formatted as a numbered list) are extracted from the WayinVideo response. All six form inputs are also packaged. Two important conversions happen here: the priority text (e.g. "High") is mapped to the ClickUp priority number (2) using a lookup table — Urgent=1, High=2, Normal=3, Low=4 — and the due date string is converted to a Unix timestamp in milliseconds which is what ClickUp requires.
Step 8 — AI Agent: Extract Learning Tasks
GPT-4o-mini receives the module summary, numbered highlights, and full module context in the system prompt. It is instructed to return ONLY a valid JSON array with no extra text — a strict format that makes parsing reliable. Each task in the array must have a title starting with an action verb, a description explaining what to do and why it matters with the video URL included as a reference, a task type chosen from Review, Practice, Build, Implement, or Reflect, a realistic estimated time in minutes between 15 and 120, and 2–3 specific checklist steps. A minimum of 5 tasks and a maximum of 12 must be extracted.
Step 9 — OpenAI: GPT-4o-mini Model
This is the language model producing the JSON task array.
Step 10 — Code: Parse Tasks Array
The AI output is cleaned of any markdown backticks and parsed as JSON. If parsing fails, the step throws a clear error showing the first 300 characters of the output for debugging. If the array is empty or missing, another error is thrown. Each task in the array is returned as a separate row — one per task — with the course name prefixed to every task title as [Course Title] Task Title. The total number of tasks is also carried forward for the sheet log.
Step 11 — ClickUp: Create Task
One ClickUp task is created per learning objective in your specified List. The task title, due date timestamp, priority number, status set to To Do, and two tags (course-task and learning) are all set. ClickUp returns the new task's ID and URL.
Step 12 — Google Sheets: Log Tasks
One row is appended to your Course Tasks Log tab for every task created. The row captures all 14 fields: course title, module title, video URL, task number, task title, task type, estimated minutes, total tasks in module, ClickUp Task ID, ClickUp Task URL, assignee, due date, priority, and generation timestamp. Every task is logged immediately after its ClickUp task is created.
✅ Pure JSON output from GPT — GPT is instructed to return only a JSON array with no extra text — making the output directly parseable without complex regex extraction
✅ Priority mapped automatically to ClickUp numbers — Your plain text input (High, Normal, Low) is converted to ClickUp's numeric priority system (1–4) in one step — no manual mapping needed
✅ Due date converted to ClickUp timestamp format — The date you type in the form is automatically converted to the Unix millisecond timestamp that ClickUp requires — no manual conversion
✅ Course name prefixed to every task title — Tasks appear in ClickUp as [Course Name] Task Title so your board stays identifiable when processing multiple courses or modules
✅ Course-task and learning tags on every task — All created tasks are automatically tagged so you can filter your entire ClickUp workspace for course-related tasks across any list or project
✅ Estimated minutes per task — GPT assigns a realistic completion time to each task so assignees can plan their learning schedule without guessing how long each task will take
✅ ClickUp Task ID and URL captured in Google Sheets — Every row in the log includes direct links to the ClickUp task so you can navigate from the sheet to any task in one click
Add checklist items to each ClickUp task — After node 11. ClickUp — Create Task, add a ClickUp Create Checklist step using the Task ID returned from step 11 and loop through the checklistItems array from step 10 to add each step as a checklist item on the task.
Change the minimum and maximum task count — In the system prompt of node 8. AI Agent — Extract Learning Tasks, change minimum 5 tasks, maximum 12 tasks to a different range — for example 3–8 for shorter lectures or 8–15 for full-day workshops.
Send a summary email when all tasks are created — After node 12. Google Sheets — Log Tasks (on the last task row), add a Gmail step that sends the assignee a plain-text email listing all task titles, types, estimated times, and ClickUp URLs so they have everything in their inbox.
Add a Slack notification when tasks are created — After node 12. Google Sheets — Log Tasks, add a Slack step that posts the course title, module name, number of tasks created, and a link to the ClickUp List to a #learning or #training channel.
Change the ClickUp task status — In node 11. ClickUp — Create Task, change "status": "To Do" to match your ClickUp List's actual status names — for example "status": "Backlog" or "status": "Learning" if your List uses custom statuses.
Form submission not starting the workflow:
WayinVideo returning an error on submission:
YOUR_WAYINVIDEO_API_KEY in node 2. WayinVideo — Submit Summarization is replaced with your actual API keyGPT returning a parse error (JSON parsing failed):
ClickUp tasks not being created:
YOUR_CLICKUP_LIST_ID has been replaced with your actual List ID — the ID is the last segment of the URL when viewing the list in ClickUp in a browserGoogle Sheets not logging rows:
YOUR_GOOGLE_SHEET_ID in node 12. Google Sheets — Log Tasks is replaced with your actual Sheet ID from the URLNeed help setting this up or want a custom version built for your team or agency?
📧 Email: [email protected]
🌐 Website: https://www.incrementors.com/