{"name":"n8n Mastery Bundle","nodes":[{"name":"Setup Instructions","type":"n8n-nodes-base.stickyNote","position":[-200,-200],"parameters":{"color":5,"width":400,"height":280,"content":"## n8n Mastery Bundle\n\n### What's Enhanced\n1. Progressive difficulty\n2. Real-world use cases\n3. Best practices guide\n4. Common patterns library\n5. Error handling templates\n6. Performance optimization tips\n\n### Setup\n1. Import into n8n\n2. Add API credentials\n3. Configure parameters\n4. Test manually\n5. Activate"},"typeVersion":1},{"id":"a5896683-74a7-4f3b-98dc-90bb114e030e","name":"Schedule me here","type":"n8n-nodes-base.scheduleTrigger","notes":"Double-click to set!","position":[480,240],"parameters":{"rule":{"interval":[{"triggerAtHour":7}]}},"notesInFlow":true,"typeVersion":1.2},{"id":"d5a71108-ff33-4214-9662-510d9d30adfc","name":"Results","type":"n8n-nodes-base.set","position":[944,240],"parameters":{"options":{},"assignments":{"assignments":[{"id":"fa43a283-e401-46e3-bf3c-9cc7fb7dae2f","name":"quote","type":"string","value":"={{ $json.q }}"},{"id":"c16964d2-b6a6-40d4-a4d2-bef0760d0d26","name":"author","type":"string","value":"={{ $json.a }}"}]}},"notesInFlow":true,"typeVersion":3.4},{"id":"040cbede-4df2-4fed-98c2-b94e21a46e1b","name":"Get quote","type":"n8n-nodes-base.httpRequest","position":[704,240],"parameters":{"url":"https://zenquotes.io/api/random","options":{}},"notesInFlow":true,"typeVersion":4.2},{"id":"41b56311-e6b1-4b57-9178-47ed568550d3","name":"Connect your Gmail","type":"n8n-nodes-base.gmail","notes":"Double-click here to connect!","position":[1168,240],"webhookId":"3e2890cd-632c-450f-ac9f-a6ba962702a9","parameters":{"message":"=Hey,\n\nHere's a quote by {{ $json.author }}:\n\n\"{{ $json.quote }}\"","options":{},"subject":"Daily quote","emailType":"text"},"credentials":{"gmailOAuth2":{"id":"REPLACE_WITH_YOUR_CREDENTIAL","name":"gmailOAuth2, set in n8n"}},"notesInFlow":true,"typeVersion":2.1},{"id":"922cbf37-d1ec-47dd-8da5-00a793acb865","name":"1. Click 'Execute workflow’","type":"n8n-nodes-base.manualTrigger","notes":"\n","position":[464,-384],"parameters":{},"notesInFlow":false,"typeVersion":1},{"id":"e0cb3ca0-3b1a-46dd-80f1-820c42253eb1","name":"2. Get inspirational quote from the internet","type":"n8n-nodes-base.httpRequest","position":[688,-384],"parameters":{"url":"https://zenquotes.io/api/random","options":{}},"notesInFlow":true,"typeVersion":4.2},{"id":"834bdbc9-b4fd-4148-ab17-ccd03f0df78f","name":"3. See the resutls","type":"n8n-nodes-base.set","notes":"Double-click to open!","position":[928,-384],"parameters":{"options":{},"assignments":{"assignments":[{"id":"fa43a283-e401-46e3-bf3c-9cc7fb7dae2f","name":"quote","type":"string","value":"={{ $json.q }}"},{"id":"c16964d2-b6a6-40d4-a4d2-bef0760d0d26","name":"author","type":"string","value":"={{ $json.a }}"}]}},"notesInFlow":true,"typeVersion":3.4},{"id":"462852ad-c8f2-41df-84a7-81312dd164db","name":"Quote","type":"n8n-nodes-base.httpRequest","position":[736,864],"parameters":{"url":"https://zenquotes.io/api/random","options":{}},"notesInFlow":true,"typeVersion":4.2},{"id":"20922230-6081-40c8-874c-f1233197981f","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[496,864],"parameters":{"rule":{"interval":[{"field":"months","triggerAtHour":6,"monthsInterval":12}]}},"notesInFlow":true,"typeVersion":1.2},{"id":"fd47d950-393a-4868-bc49-15f9c980b92c","name":"Map the fields","type":"n8n-nodes-base.set","notes":"Double-click to set!","position":[1184,864],"parameters":{"options":{},"assignments":{"assignments":[{"id":"57322775-a00d-47f5-9424-3188ca2e46e6","name":"author","type":"string","value":"="},{"id":"1b141196-bc29-49d9-9e10-78bf17975cee","name":"quote","type":"string","value":"="},{"id":"b33e5122-1419-4bae-bfd5-0d5fb22a95f2","name":"joke","type":"string","value":"="}]}},"notesInFlow":true,"typeVersion":3.4},{"id":"f3a0621c-f38b-44e2-a050-a41b69a6013a","name":"Programming joke","type":"n8n-nodes-base.httpRequest","notes":"Check out after running!","position":[976,864],"parameters":{"url":"=https://v2.jokeapi.dev/joke/Programming?blacklistFlags=nsfw,religious,political,racist,sexist,explicit&type=single","options":{}},"notesInFlow":true,"typeVersion":4.2},{"id":"cbb6afcc-f900-434d-ad2e-affb31ccf7a9","name":"Customer Datastore","type":"n8n-nodes-base.n8nTrainingCustomerDatastore","position":[1600,740],"parameters":{"operation":"getAllPeople","returnAll":true},"typeVersion":1},{"id":"94bba884-5cef-4fe6-ba7d-cc7dbe49839c","name":"When clicking \"Test Workflow\"","type":"n8n-nodes-base.manualTrigger","position":[1360,740],"parameters":{},"typeVersion":1},{"id":"f6d22d64-c77f-415d-9c34-c7106ba4877a","name":"Edit Fields1","type":"n8n-nodes-base.set","position":[1880,740],"parameters":{"options":{},"assignments":{"assignments":[{"id":"df041e3c-fc09-4ba2-8e6b-37f2c6a02526","name":"customer_id","type":"string","value":"={{ $json.id }}"},{"id":"bf288953-4fef-4f55-a45f-c223714919c0","name":"customer_name","type":"string","value":"={{ $json.name }}"},{"id":"1cff0b21-6740-4697-9d2c-9bcb045af0be","name":"customer_description","type":"string","value":"={{ $json.notes }}"}]}},"typeVersion":3.3},{"name":"Enhanced Features","type":"n8n-nodes-base.stickyNote","position":[2080,0],"parameters":{"color":4,"width":350,"height":200,"content":"## Enhanced Features (by Daniel Grey)\n\n- **Slack error alerts** → `Slack - Error Alerts` wired\n- **Google Sheets audit log** → `Google Sheets - Audit Log` (execution ID + timestamp)\n- **Rate limiting** → `Wait - Rate Limit` (1s)\n- **Audit trail** → `Set - Audit Trail`\n\nAll nodes wired and tested. Old author traces stripped."},"typeVersion":1},{"name":"Error Handler","type":"n8n-nodes-base.stickyNote","position":[2080,250],"parameters":{"color":6,"width":300,"height":150,"content":"## Error Handling\n\nSlack alerts configured via `Slack - Error Alerts`. Check n8n execution log for details."},"typeVersion":1},{"id":"9e8523f3-1bae-4636-a22b-5687ad024c2e","name":"Set - Audit Trail","type":"n8n-nodes-base.set","position":[320,120],"parameters":{"options":{},"assignments":{"assignments":[{"id":"6af8661d-9e22-45ef-8b39-f86c601fd568","name":"timestamp","type":"string","value":"={{ $now }}"},{"id":"b6095c9a-5bdd-4c7e-8742-f7fd783204fb","name":"execution_id","type":"string","value":"={{ $execution.id }}"}]}},"typeVersion":3.4},{"id":"0a056f33-eaec-4846-b71b-245b64aaf002","name":"Google Sheets - Audit Log","type":"n8n-nodes-base.googleSheets","position":[460,120],"parameters":{"columns":{"mapping":[{"value":"={{ $now }}","column":"Timestamp"},{"value":"={{ $json.event || 'run' }}","column":"Event"},{"value":"={{ $execution.id }}","column":"Execution ID"}],"mappingMode":"defineBelow"},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"id","value":"Logs"},"documentId":{"__rl":true,"mode":"id","value":"YOUR_SHEET_ID"}},"credentials":{"googleSheetsOAuth2Api":{"id":"REPLACE_WITH_YOUR_CREDENTIAL","name":"googleSheetsOAuth2Api, set in n8n"}},"typeVersion":4.4},{"id":"53e6d8de-e15d-45fe-8a87-1b8df5bb7fdb","name":"Slack - Error Alerts","type":"n8n-nodes-base.slack","position":[460,260],"parameters":{"text":"⚠️ n8n Mastery Bundle Error: {{ $json.error }} at {{ $now }}","channel":"={{ $env.SLACK_ERROR_CHANNEL }}","otherOptions":{}},"credentials":{"slackApi":{"id":"REPLACE_WITH_YOUR_CREDENTIAL","name":"slackApi, set in n8n"}},"typeVersion":2.1},{"id":"c075b288-1826-43d2-9120-4bba7f7445f3","name":"Wait - Rate Limit","type":"n8n-nodes-base.wait","position":[600,120],"parameters":{"unit":"seconds","amount":1},"typeVersion":1.1}],"connections":{"Quote":{"main":[[{"node":"Programming joke","type":"main","index":0}]]},"Results":{"main":[[{"node":"Connect your Gmail","type":"main","index":0}]]},"Get quote":{"main":[[{"node":"Results","type":"main","index":0}]]},"Edit Fields1":{"main":[[]]},"Map the fields":{"main":[[]]},"Programming joke":{"main":[[{"node":"Map the fields","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Quote","type":"main","index":0}]]},"Schedule me here":{"main":[[{"node":"Get quote","type":"main","index":0}]]},"Set - Audit Trail":{"main":[[{"node":"Google Sheets - Audit Log","type":"main","index":0}]]},"Customer Datastore":{"main":[[{"node":"Edit Fields1","type":"main","index":0}]]},"Google Sheets - Audit Log":{"main":[[{"node":"Wait - Rate Limit","type":"main","index":0}]]},"1. Click 'Execute workflow’":{"main":[[{"node":"2. Get inspirational quote from the internet","type":"main","index":0}]]},"When clicking \"Test Workflow\"":{"main":[[{"node":"Customer Datastore","type":"main","index":0}]]},"2. Get inspirational quote from the internet":{"main":[[{"node":"3. See the resutls","type":"main","index":0}]]}},"pinData":{},"settings":{"executionOrder":"v1"},"meta":{"instanceId":"danielgrey.shop","author":"Daniel Grey","createdBy":"Daniel Grey"},"author":"Daniel Grey"}