{"workflow":{"id":13967,"name":"Grow Reddit karma with DeepSeek, Google Sheets, Multilogin and Browser MCP","views":49,"recentViews":1,"totalViews":49,"createdAt":"2026-03-09T17:19:28.255Z","description":"## How it works\n\n- **Run workflow on schedule** fires on a set interval to pull Reddit accounts from a Google Sheets spreadsheet (filtered to exclude shadowbanned accounts)\n- **Smart action calculator** randomly selects 3–8 accounts and decides whether each should **post** or **comment**, respecting cooldown timers (1–3hr gap for posts, 30–120min gap for comments) and only operating during active hours (midnight–noon)\n- **IP validation loop** routes each account through a proxy, verifies the IP against the account's creation IP using httpbin, and skips if there's a match (to avoid fingerprint overlap)\n- **Multilogin browser profile launch** opens an anti-detect browser session per account via the Multilogin API, then connects to the browser's DevTools WebSocket\n- **AI Agent (DeepSeek + Browser MCP)** autonomously navigates Reddit, reads subreddit rules, scans recent posts, and either creates a new text post or writes a context-aware comment — all with human-like scroll behavior and natural language\n- **Post-action processing** parses the AI's output to extract karma stats, permalinks, and success/failure status, then updates the Google Sheet with timestamps, karma totals, and links\n- **Profile cleanup** closes the Multilogin browser profile after each account finishes, then loops to the next account\n\n## Setup steps\n\n- **~20 minutes** to configure all credentials and services\n- Connect your **Google Sheets** service account and point it to your Reddit accounts spreadsheet (columns: `multilogin_profile_id`, `proxy_provider`, `shadowban?`, `account_id`, `account_password`, `creation_ip`, `karma`, `posts_made_today`, `comments_made_today`, `time_of_post`, `time_of_comment`, `last_allocated_ip`, `posts_links`, `comments_links`, `row_number`)\n- Set up your **Multilogin** API bearer token credential and update the folder ID in the \"Open Multilogin Profile\" node URL\n- Add your **DeepSeek API** credential for both AI Agent model nodes\n- Install the **Browser MCP** community node (`n8n-nodes-browser-mcp`) and ensure the MCP server is running at the configured `baseUrl`\n- Update the **proxy URL** in the \"Get Proxy Exit IP\" HTTP Request node with your actual proxy credentials\n- Adjust the **Run workflow on schedule** interval to your desired frequency\n- Review the sticky notes inside the workflow for detailed logic explanations\n","workflow":{"meta":{"instanceId":"ab0bd21262631cf9d731d71e2df6f7d5f9f87b44a969bd71a021b775936500bd","templateCredsSetupCompleted":true},"nodes":[{"id":"cbcaf93f-97a8-42ad-9432-3274adad1d21","name":"Browser MCP Tool (Comment)","type":"n8n-nodes-browser-mcp.browserToolTool","position":[-2576,1392],"parameters":{"baseUrl":"http://localhost:8931/mcp","toolName":"={{ $fromAI('Tool_Name', ``, 'json') }}","driverUrl":"={{ $json.url }}","operation":"callTool","toolArguments":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Arguments', ``, 'json') }}"},"typeVersion":1},{"id":"cf2ed5ea-c05d-4579-8fe8-7640817a6c05","name":"DeepSeek Model (Comment)","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[-2728,1384],"parameters":{"options":{}},"typeVersion":1},{"id":"63642b70-0478-4e5f-a6f5-291ae7bdb56b","name":"Loop Through Accounts","type":"n8n-nodes-base.splitInBatches","position":[-5200,1085],"parameters":{"options":{}},"typeVersion":3},{"id":"fb399fce-5a85-4723-8a88-9be0488b53e2","name":"Remove Shadowbanned","type":"n8n-nodes-base.filter","position":[-5872,1085],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9d19ef8f-14f5-4732-8f19-0917dfb52c6f","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.shadowban}}","rightValue":"No"}]}},"typeVersion":2.3},{"id":"03a53c01-9a8a-4595-a5a0-af44e3f35c8b","name":"Browser MCP Tool (Post)","type":"n8n-nodes-browser-mcp.browserToolTool","position":[-2600,880],"parameters":{"baseUrl":"http://localhost:8931/mcp","toolName":"={{ $fromAI('Tool_Name', ``, 'json') }}","driverUrl":"={{ $json.url }}","operation":"callTool","toolArguments":"={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Arguments', ``, 'json') }}"},"typeVersion":1},{"id":"c27b8cd1-71fa-4ea3-b79d-1ae8c6a266cb","name":"DeepSeek Model (Post)","type":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","position":[-2728,880],"parameters":{"options":{}},"typeVersion":1},{"id":"3638b6b1-fd81-4e76-b938-599a870d61e8","name":"Reddit Comment Agent","type":"@n8n/n8n-nodes-langchain.agent","onError":"continueRegularOutput","position":[-2736,1160],"parameters":{"text":"=Run autonomous Reddit community analysis and engagement.\n\nTarget:\n{{$json.target}}\n\nObjective:\n- Analyze recent posts in the target subreddit.\n- Decide whether to skip, comment, or create a new text post based on subreddit rules and content relevance.\n- If commenting or posting, generate and submit a high-quality, human-like contribution that adds value (e.g., insightful response or discussion starter).\n- If no safe or valuable engagement is possible, skip and provide a reason.\n- Always retrieve user profile details including post karma, comment karma, total karma.\n- Return the permalink if commented or posted (or a skip reason if skipped), along with karma details in a structured JSON format.","options":{"maxIterations":20,"systemMessage":"=SYSTEM DIRECTIVE — FULL AUTONOMY\nYou are an autonomous Reddit user.\nAct like a careful, normal human Redditor.\nDo NOT ask the user:\n* What to post\n* Whether to comment or post\n* For approval or clarification\nMake all decisions by reading the subreddit and its rules.\n-----------------------------------\nA. READ SUBREDDIT RULES (MANDATORY)\n-----------------------------------\n1. Open the subreddit URL using browser_navigate({url}).\n2. Take browser_snapshot({}).\n3. Read:\n   * Rules section\n   * Pinned posts\n   * Sidebar/About\nFind out:\n* Are comments allowed?\n* Are text posts allowed?\n* Any karma/account limits?\n* Any banned content (promo, links, AI, memes, etc.)\n* Required tone/format\nIf rules block safe participation →\nReturn:\nSKIPPED — subreddit rules prevent safe participation\n-----------------------------------\nB. SCAN POSTS\n-----------------------------------\n1. Scroll and review posts using browser_wait(1500–3000ms between scrolls).\n2. Take multiple browser_snapshot({}) while scrolling.\n3. Ignore pinned, mod posts, ads.\n4. Prefer posts with:\n   * 0–10 comments\n   * Clear question or discussion\n   * Real human content\nPick ONE post only.\n-----------------------------------\nC. ANALYZE POST\n-----------------------------------\n1. Open the post using browser_click({ref, element}).\n2. Take browser_snapshot({}).\n3. Read title, body, top comments.\nUnderstand OP intent:\n* Asking for help\n* Feedback\n* Discussion\n* Sharing experience\n-----------------------------------\nD. HUMAN SCROLL BEHAVIOR (REQUIRED)\n-----------------------------------\nDo NOT act immediately.\n1. Scroll slowly.\n2. browser_wait(1500–3000ms between scrolls).\n3. Take multiple snapshots while scrolling.\n4. Observe post patterns and tone.\nIgnore:\n* Pinned/mod posts\n* Ads\nPrefer:\n* 0–10 comments\n* Real questions\n* Genuine discussion\n-----------------------------------\nE. DECIDE (CHOOSE ONE)\n-----------------------------------\n1. SKIP\n   * Rules restrict participation\n   * Spam/low effort\n   * Nothing valuable to add\n2. COMMENT\n   * Allowed by rules\n   * You can add real value\n3. CREATE TEXT POST\n   * Text posts allowed\n   * Follows rules\n   * Adds value\n-----------------------------------\nF. WRITING RULES\n-----------------------------------\n* Sound human\n* No emojis\n* No promo\n* No links unless allowed\n* Match subreddit tone\n* Avoid extreme claims\n* Slightly imperfect is fine\n* Comments: 1-2 short sentences\nKeep it natural and short.\n-----------------------------------\nG. BROWSER RULES\n-----------------------------------\nAllowed actions only:\n* browser_navigate({url})\n* browser_snapshot({})\n* browser_click({ref, element})\n* browser_type({text, ref, element})\n* browser_wait({milliseconds})\n* browser_evaluate({function})\nRules:\n* ref + element required for click/type\n* element must be a string (textbox, button, etc.)\n* Always snapshot before interacting\n* Never assume UI state\nPosting steps:\n1. Click input\n2. Type content\n3. Submit\n4. Copy permalink\n-----------------------------------\nH. PARTICIPATE (IF DECIDED)\n-----------------------------------\nIf SKIP: Proceed to I.\nIf COMMENT or POST:\n1. Follow writing rules.\n2. Use browser actions to interact (click/type/submit).\n3. After submission, copy permalink.\n-----------------------------------\nI. GET USER KARMA (FINAL STEP, ALWAYS)\n-----------------------------------\n1. browser_navigate({url: 'https://www.reddit.com/user/YOUR_USERNAME_HERE'}). Replace YOUR_USERNAME_HERE with the actual username.\n2. Take browser_snapshot({}).\n3. Use browser_evaluate({function}) to parse and extract:\n   * post_karma: Numerical value from post karma element.\n   * comment_karma: Numerical value from comment karma element.\n   * total_karma: Sum of post_karma + comment_karma.\n   * status: 'comment_success' when new ‘comment_success’ or 'comment_failed' or 'skipped'.\n   * comment: Any relevant note (e.g., empty string if none).\nIf extraction fails, default to 0 for karmas and note in comment.\n-----------------------------------\nJ. FINAL OUTPUT\n-----------------------------------\n* Return ONLY a valid JSON array:\n[\n  {\n    \"username\": \"string\",\n    \"post_karma\": number,\n    \"comment_karma\": number,\n    \"comment_post\":\"string\"\n    \"comment_content\": \"string\",\n    \"coments_Permalink\":\"string\",\n    \"status\": \"string\",\n    \"total_karma\": number\n  }\n]\n* If participated: Include permalink in comment field if applicable.\nNever invent rules.\nNever break subreddit rules.\nNever ask user for guidance.","enableStreaming":true},"promptType":"define"},"retryOnFail":true,"typeVersion":3.1},{"id":"287d4168-9fc1-4d30-824d-890048a0727b","name":"Reddit Post Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-2736,656],"parameters":{"text":"=Run autonomous Reddit community analysis and posting.\n\nTarget:\n{{$json.target}}\n\nMode:\nNEW POST ONLY — commenting is forbidden\n","options":{"maxIterations":20,"systemMessage":"=⚠️ SYSTEM DIRECTIVE — FULL AUTONOMY / POST-ONLY MODE\n\nYou are an autonomous Reddit community participant.\nYour ONLY allowed engagement is creating a NEW TEXT POST.\nYou must NEVER comment on existing posts.\n\nYou must NOT ask the user for:\n- Post ideas\n- Approval\n- Clarification\n- Formatting guidance\n\nAll decisions must be made independently using subreddit content and rules.\n\n══════════════════════════════════════\nA. SUBREDDIT RULE DISCOVERY (MANDATORY)\n══════════════════════════════════════\n1. Navigate to the subreddit URL provided by the user.\n2. Take a browser_snapshot().\n3. Locate and read:\n   - Subreddit rules\n   - Sidebar / About section\n   - Pinned moderator posts\n\nDetermine internally:\n- Are TEXT POSTS allowed?\n- Are there posting restrictions (karma, account age)?\n- Are flairs required?\n- Are certain topics banned?\n\nIf text posting is unsafe:\n→ STOP and return:\n\"SKIPPED — subreddit rules do not allow safe posting\"\n\n══════════════════════════════════════\nB. EXISTING POST TITLE ANALYSIS (CRITICAL)\n══════════════════════════════════════\n1. Scroll through recent posts (at least 20–30).\n2. Collect and analyze visible POST TITLES only.\n3. Identify:\n   - Repeated questions\n   - Trending topics\n   - Recently answered discussions\n   - Overused formats (e.g., “What do you think about…”, “Beginner question”)\n\nYou MUST avoid creating a post that:\n- Duplicates a recent title or topic\n- Slightly rephrases an existing thread\n- Asks something already active in the last 24–72 hours\n\nIf no unique angle exists:\n→ SKIP immediately\n\n══════════════════════════════════════\nC. COMMUNITY & CONTENT GAP ANALYSIS\n══════════════════════════════════════\n1. Analyze tone and depth of existing posts.\n2. Identify ONE clear content gap:\n   - A missing perspective\n   - A deeper follow-up not yet discussed\n   - A practical example missing from current threads\n   - A thoughtful, rule-compliant discussion prompt\n\n══════════════════════════════════════\nD. POST DECISION GATE (CRITICAL)\n══════════════════════════════════════\nProceed ONLY if:\n- Topic is clearly distinct from recent titles\n- Adds new value\n- Fits subreddit norms\n- Can be expressed as a TEXT post\n\nIf any condition fails:\n→ SKIP without posting\n\n══════════════════════════════════════\nE. POST GENERATION RULES (STRICT)\n══════════════════════════════════════\n- Create ONE new TEXT post\n- Title must be:\n  • Unique\n  • Natural\n  • Non-clickbait\n- Body:\n  • 1–3 short paragraphs\n  • Human tone\n  • No emojis\n  • No self-promotion\n  • No links unless allowed\n  • No mention of AI or automation\n- Slight imperfection is acceptable\n\n══════════════════════════════════════\nBROWSER ACTION RULES (STRICT)\n══════════════════════════════════════\nAllowed actions only:\n- browser_navigate(arguments{url})\n- browser_snapshot(arguments{})\n- browser_click(arguments{ref, element})\n- browser_type(arguments{text, ref, element})\n- browser_wait(arguments{milliseconds})\n- browser_evaluate(arguments{function})\n\nRules:\n- \"element\" and \"ref\" is REQUIRED for click and type\n- \"element\" must be a string like textbox or button\n- Never assume UI state\n- Always snapshot before interacting\n\n\nPosting workflow:\n1. Click \"Create Post\"\n2. Select TEXT post\n3. Enter title\n4. Enter body\n5. Submit post\n6. Copy post permalink\n\n══════════════════════════════════════\nG. FINAL OUTPUT\n══════════════════════════════════════\n- If post created:\n  → Return post permalink\n- If skipped:\n  → Return \"SKIPPED — recent posts already cover this topic\"\n\n⚠️ COMMENTING IS FORBIDDEN\n⚠️ NEVER repeat existing topics\n⚠️ NEVER violate subreddit rules\n⚠️ NEVER ask the user for input"},"promptType":"define"},"typeVersion":3.1},{"id":"3702ca55-26be-421b-b0e8-1b3a890bb76e","name":"Close Multilogin Profile","type":"n8n-nodes-base.httpRequest","position":[-1712,1085],"parameters":{"url":"=https://launcher.mlx.yt:45001/api/v1/profile/stop/p/{{ $json.profile_id }}","options":{"redirect":{"redirect":{}},"allowUnauthorizedCerts":true},"sendHeaders":true,"authentication":"genericCredentialType","genericAuthType":"httpBearerAuth","headerParameters":{"parameters":[{"name":"Accept","value":"application/json"}]}},"typeVersion":4.3},{"id":"f0ba210a-c868-4abc-9617-3d176f0e21d1","name":"Update Sheet - Posts","type":"n8n-nodes-base.googleSheets","position":[-2160,760],"parameters":{"columns":{"value":{"row_number":"={{ $json.row_number }}","time_of_post":"={{$json.time_of_post}}","posts_made_today":"={{$json.posts_made_today }}","last_allocated_ip":"={{$json.last_allocated_ip}}"},"schema":[{"id":"proxy_provider","type":"string","display":true,"removed":true,"required":false,"displayName":"proxy_provider","defaultMatch":false,"canBeUsedToMatch":true},{"id":"creation_ip","type":"string","display":true,"removed":true,"required":false,"displayName":"creation_ip","defaultMatch":false,"canBeUsedToMatch":true},{"id":"last_allocated_ip","type":"string","display":true,"removed":false,"required":false,"displayName":"last_allocated_ip","defaultMatch":false,"canBeUsedToMatch":true},{"id":"multilogin_profile_name","type":"string","display":true,"removed":true,"required":false,"displayName":"multilogin_profile_name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"multilogin_folder_id","type":"string","display":true,"removed":true,"required":false,"displayName":"multilogin_folder_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"multilogin_profile_id","type":"string","display":true,"removed":true,"required":false,"displayName":"multilogin_profile_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"account_email","type":"string","display":true,"removed":true,"required":false,"displayName":"account_email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"account_id","type":"string","display":true,"removed":true,"required":false,"displayName":"account_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"account_password","type":"string","display":true,"removed":true,"required":false,"displayName":"account_password","defaultMatch":false,"canBeUsedToMatch":true},{"id":"shadowban?","type":"string","display":true,"removed":true,"required":false,"displayName":"shadowban?","defaultMatch":false,"canBeUsedToMatch":true},{"id":"karma","type":"string","display":true,"removed":true,"required":false,"displayName":"karma","defaultMatch":false,"canBeUsedToMatch":true},{"id":"age","type":"string","display":true,"removed":true,"required":false,"displayName":"age","defaultMatch":false,"canBeUsedToMatch":true},{"id":"dms_daily_limit","type":"string","display":true,"removed":true,"required":false,"displayName":"dms_daily_limit","defaultMatch":false,"canBeUsedToMatch":true},{"id":"dms_sent_today","type":"string","display":true,"removed":true,"required":false,"displayName":"dms_sent_today","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posts_made_today","type":"string","display":true,"removed":false,"required":false,"displayName":"posts_made_today","defaultMatch":false,"canBeUsedToMatch":true},{"id":"time_of_post","type":"string","display":true,"removed":false,"required":false,"displayName":"time_of_post","defaultMatch":false,"canBeUsedToMatch":true},{"id":"comments_made_today","type":"string","display":true,"removed":true,"required":false,"displayName":"comments_made_today","defaultMatch":false,"canBeUsedToMatch":true},{"id":"time_of_comment","type":"string","display":true,"removed":true,"required":false,"displayName":"time_of_comment","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posts_links","type":"string","display":true,"removed":true,"required":false,"displayName":"posts_links","defaultMatch":false,"canBeUsedToMatch":true},{"id":"comments_links","type":"string","display":true,"removed":true,"required":false,"displayName":"comments_links","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":277853152,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw/edit#gid=277853152","cachedResultName":"Reddit Accounts"},"documentId":{"__rl":true,"mode":"list","value":"10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw","cachedResultUrl":"https://docs.google.com/spreadsheets/d/10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw/edit?usp=drivesdk","cachedResultName":"Boomerang + LeadAssist | Demand Generation | Reddit DM's"},"authentication":"serviceAccount"},"typeVersion":4.7},{"id":"b5372777-d2d9-4561-9b9e-f523a6916265","name":"Update Sheet - Comments","type":"n8n-nodes-base.googleSheets","position":[-2160,1160],"parameters":{"columns":{"value":{"karma":"={{$json.total_karma}}","row_number":"={{ $json.row_number }}","posts_links":"={{ $json.posts_links }}","comments_links":"={{ $json.comments_links }}","time_of_comment":"={{ $json.time_of_comment }}","last_allocated_ip":"={{ $json.last_allocated_ip }}","comments_made_today":"={{ $json.comments_made_today}}"},"schema":[{"id":"proxy_provider","type":"string","display":true,"removed":true,"required":false,"displayName":"proxy_provider","defaultMatch":false,"canBeUsedToMatch":true},{"id":"creation_ip","type":"string","display":true,"removed":true,"required":false,"displayName":"creation_ip","defaultMatch":false,"canBeUsedToMatch":true},{"id":"last_allocated_ip","type":"string","display":true,"removed":false,"required":false,"displayName":"last_allocated_ip","defaultMatch":false,"canBeUsedToMatch":true},{"id":"multilogin_profile_name","type":"string","display":true,"removed":true,"required":false,"displayName":"multilogin_profile_name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"multilogin_folder_id","type":"string","display":true,"removed":true,"required":false,"displayName":"multilogin_folder_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"multilogin_profile_id","type":"string","display":true,"removed":true,"required":false,"displayName":"multilogin_profile_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"account_email","type":"string","display":true,"removed":true,"required":false,"displayName":"account_email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"account_id","type":"string","display":true,"removed":true,"required":false,"displayName":"account_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"account_password","type":"string","display":true,"removed":true,"required":false,"displayName":"account_password","defaultMatch":false,"canBeUsedToMatch":true},{"id":"shadowban?","type":"string","display":true,"removed":true,"required":false,"displayName":"shadowban?","defaultMatch":false,"canBeUsedToMatch":true},{"id":"karma","type":"string","display":true,"removed":false,"required":false,"displayName":"karma","defaultMatch":false,"canBeUsedToMatch":true},{"id":"age","type":"string","display":true,"removed":true,"required":false,"displayName":"age","defaultMatch":false,"canBeUsedToMatch":true},{"id":"dms_daily_limit","type":"string","display":true,"removed":true,"required":false,"displayName":"dms_daily_limit","defaultMatch":false,"canBeUsedToMatch":true},{"id":"dms_sent_today","type":"string","display":true,"removed":true,"required":false,"displayName":"dms_sent_today","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posts_made_today","type":"string","display":true,"removed":true,"required":false,"displayName":"posts_made_today","defaultMatch":false,"canBeUsedToMatch":true},{"id":"time_of_post","type":"string","display":true,"removed":true,"required":false,"displayName":"time_of_post","defaultMatch":false,"canBeUsedToMatch":true},{"id":"comments_made_today","type":"string","display":true,"removed":false,"required":false,"displayName":"comments_made_today","defaultMatch":false,"canBeUsedToMatch":true},{"id":"time_of_comment","type":"string","display":true,"removed":false,"required":false,"displayName":"time_of_comment","defaultMatch":false,"canBeUsedToMatch":true},{"id":"posts_links","type":"string","display":true,"removed":false,"required":false,"displayName":"posts_links","defaultMatch":false,"canBeUsedToMatch":true},{"id":"comments_links","type":"string","display":true,"removed":false,"required":false,"displayName":"comments_links","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":277853152,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw/edit#gid=277853152","cachedResultName":"Reddit Accounts"},"documentId":{"__rl":true,"mode":"list","value":"10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw","cachedResultUrl":"https://docs.google.com/spreadsheets/d/10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw/edit?usp=drivesdk","cachedResultName":"Boomerang + LeadAssist | Demand Generation | Reddit DM's"},"authentication":"serviceAccount"},"typeVersion":4.7},{"id":"dc08fac8-8cea-48db-9504-a53f37f8fe42","name":"Run workflow on schedule","type":"n8n-nodes-base.scheduleTrigger","position":[-6768,1085],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.3},{"id":"1d7721b3-bfc9-4104-b7d7-e883a0e8eba6","name":"Sort by Action Type","type":"n8n-nodes-base.sort","position":[-5424,1085],"parameters":{"options":{},"sortFieldsUi":{"sortField":[{"fieldName":"action"}]}},"typeVersion":1},{"id":"3aa8dac1-7b62-410c-b0f2-a001e1147b91","name":"Get Profile ID for Cleanup","type":"n8n-nodes-base.code","position":[-1936,960],"parameters":{"jsCode":"try {\n  return $('Parse Post Result').all()\n} catch (error) {\n  return $('Parse Comment Result').all()\n}\n"},"typeVersion":2},{"id":"ae7eeeeb-aa69-4c45-8e88-c2454d476a83","name":"Parse Post Result","type":"n8n-nodes-base.code","position":[-2384,760],"parameters":{"jsCode":"const comment_account = $('Route Post or Comment').all()[0].json;\nconst profile_id=$('Open Multilogin Profile').first().json.data.id\nconst extractedIP = $('Get Proxy Exit IP').first().json.origin\nconst check = $input.all()[0].json.output?.toLowerCase().includes('successfully');\ncomment_account.last_allocated_ip=extractedIP\n\nconst result = [];\n\nif (check) {\n\n    const updatedAccount = {\n        ...comment_account,\n        posts_made_today: Number(comment_account.posts_made_today || 0) + 1,\n        time_of_post: new Date().toISOString(),\n        last_action_status: \"post_success\",\n        profile_id:profile_id\n    };\n\n    result.push({ json: updatedAccount });\n\n} else {\n\n    // If failed, return original account with failure status\n    result.push({\n        json: {\n            ...comment_account,\n            last_action_status: \"post_failed\",\n           profile_id:profile_id\n        }\n    });\n}\n\nreturn result;\n\n"},"typeVersion":2},{"id":"aa886ecf-66e2-4438-ab9f-497ef647d43c","name":"Parse Comment Result","type":"n8n-nodes-base.code","position":[-2384,1160],"parameters":{"jsCode":"const comment_account = $('Route Post or Comment').all()[0].json;\n\nconst extractedIP = $('Get Proxy Exit IP').first().json.origin\nconst profile_id=$('Open Multilogin Profile').first().json.data.id\n\n// Extract fields safely from broken AI JSON\nconst x=$input.first().json.output\nconst usernameMatch = x.match(/\"username\"\\s*:\\s*\"([^\"]+)/);\nconst username = usernameMatch ? usernameMatch[1] : null;\n\nconst commentMatch = x.match(/\"comment_content\"\\s*:\\s*\"([^\"]+)/);\nconst comment_content = commentMatch ? commentMatch[1] : null;\n\n\nconst comment_postMatch = x.match(/\"comment_post\"\\s*:\\s*\"([^\"]+)/);\nconst posts_links = comment_postMatch ? comment_postMatch[1] : null;\n\nconst comment_permalingMatch = x.match(/\"coments_Permalink\"\\s*:\\s*\"([^\"]+)/);\nconst comments_links = comment_permalingMatch ? comment_permalingMatch[1] : null;\n\nconst postKarmaMatch = x.match(/\"post_karma\"\\s*:\\s*(\\d+)/);\nconst post_karma = postKarmaMatch ? Number(postKarmaMatch[1]) : 0;\n\nconst commentKarmaMatch = x.match(/\"comment_karma\"\\s*:\\s*(\\d+)/);\nconst comment_karma = commentKarmaMatch ? Number(commentKarmaMatch[1]) : 0;\n\nconst totalKarmaMatch = x.match(/\"total_karma\"\\s*:\\s*(\\d+)/);\nconst total_karma = totalKarmaMatch ? Number(totalKarmaMatch[1]) : 0;\n\nconst statusMatch = x.match(/\"status\"\\s*:\\s*\"([^\"]+)/);\nconst status = statusMatch ? statusMatch[1] : \"comment_failed\";\ncomment_account.last_allocated_ip=extractedIP\n// Build final object\nreturn [{\n  json: {\n    ...comment_account,\n    username,\n    posts_links,\n    comment_content,\n    comments_links,\n    post_karma,\n    comment_karma,\n    total_karma,\n    last_action_status: status === \"comment_success\" ? \"comment_success\" : \"comment_failed\",\n    profile_id,\n    comments_made_today: Number(comment_account.comments_made_today || 0) + (status === \"comment_success\" ? 1 : 0),\n    time_of_comment: new Date().toISOString()\n  }\n}];"},"typeVersion":2},{"id":"1a8b561c-f9fa-4ad0-b312-b61221489316","name":"Route Post or Comment","type":"n8n-nodes-base.switch","position":[-2960,960],"parameters":{"rules":{"values":[{"outputKey":"Post","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0108ef46-185e-4c85-85a3-53f7da0e3677","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.action }}","rightValue":"post"}]},"renameOutput":true},{"outputKey":"Comment","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6c0a3817-57f8-4231-b298-454ff6976ca7","operator":{"type":"string","operation":"equals"},"leftValue":"={{$json.action }}","rightValue":"comment"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.4},{"id":"e6403ec7-03cd-44aa-aa02-e652d97a8d32","name":"Prepare Agent Input","type":"n8n-nodes-base.set","position":[-3184,960],"parameters":{"options":{},"assignments":{"assignments":[{"id":"64c52a8c-19e8-4cb6-9a6a-0d765540acee","name":"url","type":"string","value":"={{ $('Get Browser WebSocket URL').first().json.webSocketDebuggerUrl }}"},{"id":"b992ef92-2684-44a6-89c4-14634c44f45f","name":"target","type":"string","value":"https://old.reddit.com/r/AskReddit/new/"},{"id":"751eb529-529d-4b73-a635-1e69020f0dca","name":"action","type":"string","value":"={{ $('Loop Through Accounts').item.json.action }}"},{"id":"cde9790a-d60f-4063-b1ec-dae513b20f13","name":"row_number","type":"number","value":"={{ $('Loop Through Accounts').item.json.row_number }}"},{"id":"64fa79e2-53ec-4efd-8c0a-81e1681f4c09","name":"comments_made_today","type":"string","value":"={{ $('Loop Through Accounts').item.json.comments_made_today }}"},{"id":"2cd6b9ec-07a3-4873-bd56-8a1e2b8180a9","name":"posts_made_today","type":"string","value":"={{ $('Loop Through Accounts').item.json.posts_made_today }}"},{"id":"40e1bc78-3222-4420-be28-a8978b58d196","name":"last_allocated_ip","type":"string","value":"={{ $('Loop Through Accounts').item.json.last_allocated_ip }}"},{"id":"b1da3a0d-654f-4ca6-b9ed-788272994f22","name":"creation_ip","type":"string","value":"={{ $('Loop Through Accounts').item.json.creation_ip }}"}]}},"typeVersion":3.4},{"id":"1891b028-6a5d-472b-824c-0688b9ee474a","name":"Get Browser WebSocket URL","type":"n8n-nodes-base.httpRequest","position":[-3408,960],"parameters":{"url":"={{ $json.localhost }}","options":{}},"typeVersion":4.3},{"id":"36fa72d9-7215-4a5c-8e61-0d9d6622e29e","name":"Build Debug URL","type":"n8n-nodes-base.set","position":[-3632,960],"parameters":{"options":{},"assignments":{"assignments":[{"id":"bbf7762d-3108-41f8-bfdc-fa10e9b40371","name":"localhost","type":"string","value":"=http://127.0.0.1:{{ $json.data.port }}/json/version"}]}},"typeVersion":3.4},{"id":"efce8dc9-b7ba-44dc-9b30-a226131e4f9a","name":"Open Multilogin Profile","type":"n8n-nodes-base.httpRequest","onError":"continueErrorOutput","position":[-4080,960],"parameters":{"url":"=https://launcher.mlx.yt:45001/api/v2/profile/f/YOUR_FOLDER_ID/p/{{$('Loop Through Accounts').item.json.multilogin_profile_id}}/start","options":{"timeout":30000,"allowUnauthorizedCerts":true},"sendQuery":true,"sendHeaders":true,"authentication":"genericCredentialType","genericAuthType":"httpBearerAuth","queryParameters":{"parameters":[{"name":"automation_type","value":"playwright"},{"name":"headless_mode","value":"false"}]},"headerParameters":{"parameters":[{"name":"Accept","value":"application/json"}]}},"notesInFlow":false,"typeVersion":4.3},{"id":"39ebeb5b-e1ef-4ae4-b0e0-f6d9c0de722c","name":"Calculate Actions","type":"n8n-nodes-base.code","position":[-5648,1085],"parameters":{"jsCode":"const accounts = $input.all().map(i => i.json);\nconst result = [];\n\nconst now = new Date();\nconst currentHour = now.getHours();\n\n// ---- ACTIVE HOURS 0 → 12 ----\nif (currentHour >= 12) {\n    return [{\n        json: {\n            action: \"none\",\n            wait_minutes: 5\n        }\n    }];\n}\n\n// ---- RANDOM ----\nfunction randomBetween(min, max) {\n    return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\n// shuffle accounts\naccounts.sort(() => Math.random() - 0.5);\n\n// pick random accounts\nconst activeAccounts = accounts.slice(0, randomBetween(3, 8));\n\nfor (const acc of activeAccounts) {\n\n    const lastPostTime = acc.time_of_post ? new Date(acc.time_of_post) : null;\n    const lastCommentTime = acc.time_of_comment ? new Date(acc.time_of_comment) : null;\n\n    const postDelay = randomBetween(60,180) * 60 * 1000;      // 1–3 hours\n    const commentDelay = randomBetween(30,120) * 60 * 1000;   // 30–120 min\n\n    const actionType = Math.random() < 0.5 ? \"post\" : \"comment\";\n\n    // ---- POST CHECK ----\n    if (\n        actionType === \"post\" &&\n        (!lastPostTime || (now - lastPostTime) >= postDelay)\n    ) {\n\n        result.push({\n            json: {\n                ...acc,\n                action: \"post\",\n                wait_minutes: 5,\n                scheduled_hour: currentHour\n            }\n        });\n\n    }\n\n    // ---- COMMENT CHECK ----\n    if (\n        actionType === \"comment\" &&\n        (!lastCommentTime || (now - lastCommentTime) >= commentDelay)\n    ) {\n\n        result.push({\n            json: {\n                ...acc,\n                action: \"comment\",\n                wait_minutes: 5,\n                scheduled_hour: currentHour\n            }\n        });\n\n    }\n\n}\n\n// prevent empty output\nif (result.length === 0) {\n    return [{\n        json: {\n            action: \"none\",\n            wait_minutes: 5\n        }\n    }];\n}\n\nreturn result;"},"typeVersion":2},{"id":"99ae7a0e-974a-4e90-8c19-cb6aa5927149","name":"Sticky Note Action timing","type":"n8n-nodes-base.stickyNote","position":[-5728,640],"parameters":{"color":7,"width":404,"height":232,"content":"## Action timing\n\nThis step picks a small random set of eligible accounts (3–8), assigns either post or comment, and enforces cooldowns based on each account’s last activity. If nothing is eligible, it returns `action: none` and retries later."},"typeVersion":1},{"id":"37a9bfc0-8507-491b-8c83-df4f31ef1029","name":"Delay Between Accounts","type":"n8n-nodes-base.wait","position":[-4976,960],"webhookId":"b0c3a12b-0027-4601-9852-c43e3cfa1fc9","parameters":{"unit":"minutes","amount":"={{ $json.wait_minutes}}"},"typeVersion":1.1},{"id":"09793fa7-9d20-4bbf-92dd-b8ddf41ada22","name":"Extract Account Fields","type":"n8n-nodes-base.set","position":[-6096,1085],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3945b285-3ab8-40f6-b2ec-b724f9f8951f","name":"row_number","type":"number","value":"={{ $json.row_number }}"},{"id":"12f40092-15be-497f-87fc-73748cab02af","name":"IP","type":"string","value":"={{ $json.creation_ip }}"},{"id":"3dd45370-f9ef-4b2f-91dd-9c99d64dc593","name":"UserID","type":"string","value":"={{ $json.account_id }}"},{"id":"e15b96ca-45b9-49b6-89cb-7b0bfe1fcc98","name":"Password","type":"string","value":"={{ $json.account_password }}"},{"id":"dcf8ce17-690c-4d97-9e16-90da23964406","name":"multilogin_profile_id","type":"string","value":"={{ $json.multilogin_profile_id }}"},{"id":"b89e4e04-aa15-4f0b-b271-49c02e347989","name":"shadowban","type":"string","value":"={{ $json['shadowban?'] }}"},{"id":"874b5301-e7ed-46bf-ae3a-ce71b5520410","name":"comments_made_today","type":"string","value":"={{ $json.comments_made_today }}"},{"id":"bde7585a-89c1-497e-8eb7-7f46ef9065a1","name":"time_of_comment","type":"string","value":"={{ $json.time_of_comment }}"},{"id":"6e099df9-d88d-4509-ba49-6e1941de4cb2","name":"posts_made_today","type":"string","value":"={{ $json.posts_made_today }}"},{"id":"9403e34b-b366-4af6-9394-ed605c3f88f4","name":"time_of_post","type":"string","value":"={{ $json.time_of_post }}"},{"id":"67e71e3b-c611-4c5f-a388-01c7a6a39cfa","name":"last_allocated_ip","type":"string","value":"={{ $json.last_allocated_ip }}"}]}},"typeVersion":3.4},{"id":"149f6f52-4c9e-4db1-811e-86d1959bae6e","name":"Compare IP Addresses","type":"n8n-nodes-base.code","position":[-4528,888],"parameters":{"jsCode":"// 1️⃣ Get httpbin single IP\nconst extractedIP = $input.first().json.origin\nconst myItems = $('Extract Account Fields').all();\nconst time=$('Loop Through Accounts').first().json.wait_minutes\n// 3️⃣ Check if ANY matches\nconst isMatch = myItems.some(item => \n  item.json.last_allocated_ip.trim() === extractedIP || item.json.last_allocated_ip.trim()==extractedIP\n);\n\n\n\n// 4️⃣ Return ONLY ONE item\nreturn [\n  {\n    json: {\n      httpbin_ip: extractedIP,\n      wait_minutes:time,\n      ip_match: isMatch\n    }\n  }\n];"},"typeVersion":2},{"id":"ea16ae4a-8fc4-4905-babd-a74e0f507023","name":"Check IP Uniqueness","type":"n8n-nodes-base.if","position":[-4304,960],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"2e4c50b1-a3e9-4feb-bfd8-2da330e81388","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.ip_match }}","rightValue":false}]}},"typeVersion":2.3},{"id":"3f84a552-eb50-4866-a0a6-d557e3d14965","name":"Filter Valid Accounts","type":"n8n-nodes-base.filter","position":[-6320,1085],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e10bb9f6-4613-4c73-bd52-dccb5b31f510","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.multilogin_profile_id }}","rightValue":""},{"id":"47b23737-49a0-423f-a0fc-d5d8887a085d","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.proxy_provider }}","rightValue":"GridPanel"}]}},"typeVersion":2.3},{"id":"540ed453-d0ef-4009-94eb-e8ab93d28eef","name":"Wait for Browser Init","type":"n8n-nodes-base.wait","position":[-3856,960],"webhookId":"e7a7320d-780c-49da-a1d2-f5264c6d4204","parameters":{"amount":10},"typeVersion":1.1},{"id":"0c9f06df-9876-4b39-9176-eda7a9bd4e19","name":"Get Proxy Exit IP","type":"n8n-nodes-base.httpRequest","onError":"continueErrorOutput","position":[-4752,888],"parameters":{"url":"https://httpbin.org/get","options":{"proxy":"http://YOUR_PROXY_USER:YOUR_PROXY_PASS@YOUR_PROXY_HOST:PORT"},"sendQuery":true,"queryParameters":{"parameters":[{}]}},"retryOnFail":true,"typeVersion":4.3},{"id":"ae063318-080c-4e9f-a978-5848e2a38b43","name":"Read Reddit Accounts","type":"n8n-nodes-base.googleSheets","position":[-6544,1085],"parameters":{"options":{},"filtersUI":{"values":[{"lookupValue":"No","lookupColumn":"shadowban?"}]},"sheetName":{"__rl":true,"mode":"list","value":277853152,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw/edit#gid=277853152","cachedResultName":"Reddit Accounts"},"documentId":{"__rl":true,"mode":"list","value":"10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw","cachedResultUrl":"https://docs.google.com/spreadsheets/d/10rlYT2b1VNbbwgfd5rXuIHDrihlf1spgkol7GvX0Oaw/edit?usp=drivesdk","cachedResultName":"Boomerang + LeadAssist | Demand Generation | Reddit DM's"},"authentication":"serviceAccount"},"typeVersion":4.7},{"id":"faf22746-5b5a-492d-b817-457f9e478d39","name":"Sticky Note Overview","type":"n8n-nodes-base.stickyNote","position":[-6816,416],"parameters":{"color":5,"width":520,"height":620,"content":"## How it works\n\nThis workflow runs on a schedule, reads Reddit account rows from Google Sheets, and keeps only valid non-shadowbanned records. It then selects a small random batch, checks proxy exit IP uniqueness, and starts each account in Multilogin.\n\nFor each account, the flow opens a Browser MCP session and routes to either the post or comment AI agent based on the calculated action. The result is parsed, activity counters and timestamps are updated in Google Sheets, the profile is closed, and the loop continues with the next account.\n\n## Setup steps\n\n1. Connect Google Sheets credentials and confirm the required columns exist in the account sheet.\n2. Configure Multilogin API access, folder ID, and profile IDs.\n3. Set your proxy credentials in `Get Proxy Exit IP`.\n4. Confirm Browser MCP is reachable at `http://localhost:8931/mcp`.\n5. Configure DeepSeek/model credentials and run one manual test.\n6. Set the schedule trigger interval and activate the workflow."},"typeVersion":1},{"id":"5cfdcd30-afeb-4f13-b658-a91985401075","name":"Sticky Note Filtering","type":"n8n-nodes-base.stickyNote","position":[-6208,656],"parameters":{"color":7,"width":392,"height":214,"content":"## Account filtering\n\nReads account rows, extracts the fields used by downstream nodes, and keeps only records with valid profile/proxy data. Shadowbanned or incomplete rows are removed before batching."},"typeVersion":1},{"id":"8f277bb5-708a-4f97-8bc5-f97ffe5a273c","name":"Sticky Note Proxy","type":"n8n-nodes-base.stickyNote","position":[-4800,592],"parameters":{"color":7,"width":392,"height":214,"content":"## Proxy validation\n\nCalls httpbin to get the active exit IP, compares it with previously assigned IPs, and only continues when the IP is unique for this run. Non-unique IPs are skipped."},"typeVersion":1},{"id":"4d7dd1ac-194b-44e8-aec0-a2a1b482f788","name":"Sticky Note Multilogin","type":"n8n-nodes-base.stickyNote","position":[-4128,640],"parameters":{"color":7,"width":488,"height":214,"content":"## Browser session setup\n\nStarts the Multilogin profile, waits for browser initialization, fetches the debug endpoint, and prepares the WebSocket URL used by Browser MCP tools."},"typeVersion":1},{"id":"0b63de7f-ce35-4b7e-baee-1ead9b8ff8e9","name":"Sticky Note AI Agents","type":"n8n-nodes-base.stickyNote","position":[-2960,224],"parameters":{"color":7,"width":472,"height":214,"content":"## AI execution\n\nRoutes each account by action (`post` or `comment`) to the matching agent. Both agents use the same Browser MCP tool and return structured output for parsing."},"typeVersion":1},{"id":"4125df22-0897-47b3-8e09-20ea38a702a7","name":"Sticky Note Tracking","type":"n8n-nodes-base.stickyNote","position":[-2384,224],"parameters":{"color":7,"width":472,"height":230,"content":"## Tracking and cleanup\n\nParses agent output, updates Google Sheets counters/timestamps/links, closes the active Multilogin profile, and continues to the next account in the batch."},"typeVersion":1}],"pinData":{},"connections":{"Build Debug URL":{"main":[[{"node":"Get Browser WebSocket URL","type":"main","index":0}]]},"Calculate Actions":{"main":[[{"node":"Sort by Action Type","type":"main","index":0}]]},"Get Proxy Exit IP":{"main":[[{"node":"Compare IP Addresses","type":"main","index":0}]]},"Parse Post Result":{"main":[[{"node":"Update Sheet - Posts","type":"main","index":0}]]},"Reddit Post Agent":{"main":[[{"node":"Parse Post Result","type":"main","index":0}]]},"Check IP Uniqueness":{"main":[[{"node":"Open Multilogin Profile","type":"main","index":0}],[{"node":"Delay Between Accounts","type":"main","index":0}]]},"Prepare Agent Input":{"main":[[{"node":"Route Post or Comment","type":"main","index":0}]]},"Remove Shadowbanned":{"main":[[{"node":"Calculate Actions","type":"main","index":0}]]},"Sort by Action Type":{"main":[[{"node":"Loop Through Accounts","type":"main","index":0}]]},"Compare IP Addresses":{"main":[[{"node":"Check IP Uniqueness","type":"main","index":0}]]},"Parse Comment Result":{"main":[[{"node":"Update Sheet - Comments","type":"main","index":0}]]},"Read Reddit Accounts":{"main":[[{"node":"Filter Valid Accounts","type":"main","index":0}]]},"Reddit Comment Agent":{"main":[[{"node":"Parse Comment Result","type":"main","index":0}]]},"Update Sheet - Posts":{"main":[[{"node":"Get Profile ID for Cleanup","type":"main","index":0}]]},"DeepSeek Model (Post)":{"ai_languageModel":[[{"node":"Reddit Post Agent","type":"ai_languageModel","index":0}]]},"Filter Valid Accounts":{"main":[[{"node":"Extract Account Fields","type":"main","index":0}]]},"Loop Through Accounts":{"main":[[],[{"node":"Delay Between Accounts","type":"main","index":0}]]},"Route Post or Comment":{"main":[[{"node":"Reddit Post Agent","type":"main","index":0}],[{"node":"Reddit Comment Agent","type":"main","index":0}]]},"Wait for Browser Init":{"main":[[{"node":"Build Debug URL","type":"main","index":0}]]},"Delay Between Accounts":{"main":[[{"node":"Get Proxy Exit IP","type":"main","index":0}]]},"Extract Account Fields":{"main":[[{"node":"Remove Shadowbanned","type":"main","index":0}]]},"Browser MCP Tool (Post)":{"ai_tool":[[{"node":"Reddit Post Agent","type":"ai_tool","index":0}]]},"Open Multilogin Profile":{"main":[[{"node":"Wait for Browser Init","type":"main","index":0}],[{"node":"Open Multilogin Profile","type":"main","index":0}]]},"Update Sheet - Comments":{"main":[[{"node":"Get Profile ID for Cleanup","type":"main","index":0}]]},"Close Multilogin Profile":{"main":[[{"node":"Loop Through Accounts","type":"main","index":0}]]},"DeepSeek Model (Comment)":{"ai_languageModel":[[{"node":"Reddit Comment Agent","type":"ai_languageModel","index":0}]]},"Run workflow on schedule":{"main":[[{"node":"Read Reddit Accounts","type":"main","index":0}]]},"Get Browser WebSocket URL":{"main":[[{"node":"Prepare Agent Input","type":"main","index":0}]]},"Browser MCP Tool (Comment)":{"ai_tool":[[{"node":"Reddit Comment Agent","type":"ai_tool","index":0}]]},"Get Profile ID for Cleanup":{"main":[[{"node":"Close Multilogin Profile","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":37,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.code":{"count":5},"n8n-nodes-base.sort":{"count":1},"n8n-nodes-base.wait":{"count":2},"n8n-nodes-base.filter":{"count":2},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.httpRequest":{"count":4},"n8n-nodes-base.googleSheets":{"count":3},"n8n-nodes-base.splitInBatches":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":1},"n8n-nodes-browser-mcp.browserToolTool":{"count":2},"@n8n/n8n-nodes-langchain.lmChatDeepSeek":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Ejaz Ullah","username":"ejaz","bio":"Automation specialist focused on n8n, MCP integrations, and AI-powered workflows. I help businesses automate APIs, data pipelines, and repetitive tasks. Publishing ready-to-use workflows and custom solutions. Contact me for custom automation projects.","verified":false,"links":["https://nexviahub.vercel.app/"],"avatar":"https://gravatar.com/avatar/c9ea8c8ab2c5b1a2d1ccd2f3f20f0c37d1172c3fcdfde446625384b53f9e9624?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":844,"icon":"fa:filter","name":"n8n-nodes-base.filter","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Filter","color":"#229eff"},"iconData":{"icon":"filter","type":"icon"},"displayName":"Filter","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1240,"icon":"file:sort.svg","name":"n8n-nodes-base.sort","codex":{"data":{"alias":["Sort","Order","Transform","Array","List","Item","Random"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sort/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Sort"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSIjODI4N0VCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzAuNSA0MjIuNWMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMzUxYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYzNTFjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiM4Mjg3RUIiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTM2LjA3NyAzMzMuNDgyYzkuMzk4LTkuMzQ2IDI0LjU5NC05LjMwNCAzMy45NC4wOTVsNzIuNDgzIDcyLjg4NyA3Mi40ODItNzIuODg3YzkuMzQ3LTkuMzk5IDI0LjU0My05LjQ0MSAzMy45NDEtLjA5NXM5LjQ0MSAyNC41NDMuMDk1IDMzLjk0MWwtODkuNSA5MGEyNCAyNCAwIDAgMS0zNC4wMzYgMGwtODkuNS05MGMtOS4zNDYtOS4zOTgtOS4zMDQtMjQuNTk0LjA5NS0zMy45NDFNMzgxLjUgODkuNWM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjM1MWMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC0yNGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMzUxYzAtNi42MjcgNS4zNzMtMTIgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjODI4N0VCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00NzUuOTIzIDE3OC41MThjLTkuMzk4IDkuMzQ2LTI0LjU5NCA5LjMwNC0zMy45NDEtLjA5NUwzNjkuNSAxMDUuNTM2bC03Mi40ODIgNzIuODg3Yy05LjM0NyA5LjM5OS0yNC41NDMgOS40NDEtMzMuOTQxLjA5NXMtOS40NDEtMjQuNTQzLS4wOTUtMzMuOTQxbDg5LjUtOTBhMjQgMjQgMCAwIDEgMzQuMDM2IDBsODkuNSA5MGM5LjM0NiA5LjM5OCA5LjMwNCAyNC41OTQtLjA5NSAzMy45NDEiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg=="},"displayName":"Sort","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1280,"icon":"file:deepseek.svg","name":"@n8n/n8n-nodes-langchain.lmChatDeepSeek","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatdeepseek/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"DeepSeek Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+RGVlcFNlZWs8L3RpdGxlPjxwYXRoIGQ9Ik0yMy43NDggNC40ODJjLS4yNTQtLjEyNC0uMzY0LjExMy0uNTEyLjIzNC0uMDUxLjAzOS0uMDk0LjA5LS4xMzcuMTM2LS4zNzIuMzk3LS44MDYuNjU3LTEuMzczLjYyNi0uODI5LS4wNDYtMS41MzcuMjE0LTIuMTYzLjg0OC0uMTMzLS43ODItLjU3NS0xLjI0OC0xLjI0Ny0xLjU0OC0uMzUyLS4xNTYtLjcwOC0uMzExLS45NTUtLjY1LS4xNzItLjI0MS0uMjE5LS41MS0uMzA1LS43NzQtLjA1NS0uMTYtLjExLS4zMjMtLjI5My0uMzUtLjItLjAzMS0uMjc4LjEzNi0uMzU2LjI3Ni0uMzEzLjU3Mi0uNDM0IDEuMjAyLS40MjIgMS44NC4wMjcgMS40MzYuNjMzIDIuNTggMS44MzggMy4zOTMuMTM3LjA5My4xNzIuMTg3LjEyOS4zMjMtLjA4Mi4yOC0uMTguNTUyLS4yNjYuODMzLS4wNTUuMTc5LS4xMzcuMjE3LS4zMjkuMTRhNS41MjYgNS41MjYgMCAwMS0xLjczNi0xLjE4Yy0uODU3LS44MjgtMS42MzEtMS43NDItMi41OTctMi40NThhMTEuMzY1IDExLjM2NSAwIDAwLS42ODktLjQ3MWMtLjk4NS0uOTU3LjEzLTEuNzQzLjM4OC0xLjgzNi4yNy0uMDk4LjA5My0uNDMyLS43NzktLjQyOC0uODcyLjAwNC0xLjY3LjI5NS0yLjY4Ny42ODRhMy4wNTUgMy4wNTUgMCAwMS0uNDY1LjEzNyA5LjU5NyA5LjU5NyAwIDAwLTIuODgzLS4xMDJjLTEuODg1LjIxLTMuMzkgMS4xMDItNC40OTcgMi42MjNDLjA4MiA4LjYwNi0uMjMxIDEwLjY4NC4xNTIgMTIuODVjLjQwMyAyLjI4NCAxLjU2OSA0LjE3NSAzLjM2IDUuNjUzIDEuODU4IDEuNTMzIDMuOTk3IDIuMjg0IDYuNDM4IDIuMTQgMS40ODItLjA4NSAzLjEzMy0uMjg0IDQuOTk0LTEuODYuNDcuMjM0Ljk2Mi4zMjcgMS43OC4zOTcuNjMuMDU5IDEuMjM2LS4wMyAxLjcwNS0uMTI4LjczNS0uMTU2LjY4NC0uODM3LjQxOS0uOTYxLTIuMTU1LTEuMDA0LTEuNjgyLS41OTUtMi4xMTMtLjkyNiAxLjA5Ni0xLjI5NiAyLjc0Ni0yLjY0MiAzLjM5Mi03LjAwMy4wNS0uMzQ3LjAwNy0uNTY1IDAtLjg0NS0uMDA0LS4xNy4wMzUtLjIzNy4yMy0uMjU2YTQuMTczIDQuMTczIDAgMDAxLjU0NS0uNDc1YzEuMzk2LS43NjMgMS45Ni0yLjAxNSAyLjA5My0zLjUxNy4wMi0uMjMtLjAwNC0uNDY3LS4yNDctLjU4OHpNMTEuNTgxIDE4Yy0yLjA4OS0xLjY0Mi0zLjEwMi0yLjE4My0zLjUyLTIuMTYtLjM5Mi4wMjQtLjMyMS40NzEtLjIzNS43NjMuMDkuMjg4LjIwNy40ODYuMzcxLjczOS4xMTQuMTY3LjE5Mi40MTYtLjExMy42MDMtLjY3My40MTYtMS44NDItLjE0LTEuODk3LS4xNjctMS4zNjEtLjgwMi0yLjUtMS44Ni0zLjMwMS0zLjMwNy0uNzc0LTEuMzkzLTEuMjI0LTIuODg3LTEuMjk4LTQuNDgyLS4wMi0uMzg2LjA5My0uNTIyLjQ3Ny0uNTkyYTQuNjk2IDQuNjk2IDAgMDExLjUyOS0uMDM5YzIuMTMyLjMxMiAzLjk0NiAxLjI2NSA1LjQ2OCAyLjc3NC44NjguODYgMS41MjUgMS44ODcgMi4yMDIgMi44OTEuNzIgMS4wNjYgMS40OTQgMi4wODIgMi40OCAyLjkxNC4zNDguMjkyLjYyNS41MTQuODkxLjY3Ny0uODAyLjA5LTIuMTQuMTEtMy4wNTQtLjYxNHptMS02LjQ0YS4zMDYuMzA2IDAgMDEuNDE1LS4yODcuMzAyLjMwMiAwIDAxLjIuMjg4LjMwNi4zMDYgMCAwMS0uMzEuMzA3LjMwMy4zMDMgMCAwMS0uMzA0LS4zMDh6bTMuMTEgMS41OTZjLS4yLjA4MS0uMzk5LjE1MS0uNTkuMTZhMS4yNDUgMS4yNDUgMCAwMS0uNzk4LS4yNTRjLS4yNzQtLjIzLS40Ny0uMzU4LS41NTItLjc1OGExLjczIDEuNzMgMCAwMS4wMTYtLjU4OGMuMDctLjMyNy0uMDA4LS41MzctLjIzOS0uNzI3LS4xODctLjE1Ni0uNDI2LS4xOTktLjY4OC0uMTk5YS41NTkuNTU5IDAgMDEtLjI1NC0uMDc4Yy0uMTEtLjA1NC0uMi0uMTktLjExNC0uMzU4LjAyOC0uMDU0LjE2LS4xODYuMTkyLS4yMS4zNTYtLjIwMi43NjctLjEzNiAxLjE0Ni4wMTYuMzUyLjE0NC42MTguNDA4IDEuMDAxLjc4Mi4zOTEuNDUxLjQ2Mi41NzYuNjg1LjkxNC4xNzYuMjY1LjMzNi41MzcuNDQ1Ljg0OC4wNjcuMTk1LS4wMTkuMzU0LS4yNS40NTJ6IiBmaWxsPSIjNEQ2QkZFIj48L3BhdGg+PC9zdmc+Cg=="},"displayName":"DeepSeek Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":33,"name":"Social Media"},{"id":47,"name":"AI Chatbot"}],"image":[]}}