3 templates found
Category:
Author:
Sort:

Search and download torrents using transmission-daemon

Ok google download "movie name" I develop this automation to improve my quality of life in handling torrents in my media-center. Goal Automate the search operations of a movie based on its name and trigger a download using your transmission-daemon. Setup Prerequisite Transmission daemon up and running and its authentication method N8N configured self-hosted or with the possibility to add npm package better with docker-compose.yaml Telegram bot credential [optional] Configuration Create a folder where your docker-compose.yaml belongs n8n_dir and proceed in installing the node package. bash cd ~/n8n_dir npm i torrent-search-api Configuring your docker-compose.yaml file this way. You must include all the dependencies of torrent-search-api. This will let you run the new torrent search node presented in this workflow. version: '3.3' services: n8n: container_name: n8n ports: '5678:5678' restart: always volumes: '~/n8n_dir/.n8n:/home/node/.n8n' '~/n8ndir/nodemodules/@tootallnate:/usr/local/lib/node_modules/@tootallnate' '~/n8ndir/nodemodules/accepts:/usr/local/lib/node_modules/accepts' '~/n8ndir/nodemodules/agent-base:/usr/local/lib/node_modules/agent-base' '~/n8ndir/nodemodules/ajv:/usr/local/lib/node_modules/ajv' '~/n8ndir/nodemodules/ansi-styles:/usr/local/lib/node_modules/ansi-styles' '~/n8ndir/nodemodules/asn1:/usr/local/lib/node_modules/asn1' '~/n8ndir/nodemodules/assert:/usr/local/lib/node_modules/assert' '~/n8ndir/nodemodules/assert-plus:/usr/local/lib/node_modules/assert-plus' '~/n8ndir/nodemodules/ast-types:/usr/local/lib/node_modules/ast-types' '~/n8ndir/nodemodules/asynckit:/usr/local/lib/node_modules/asynckit' '~/n8ndir/nodemodules/aws-sign2:/usr/local/lib/node_modules/aws-sign2' '~/n8ndir/nodemodules/aws4:/usr/local/lib/node_modules/aws4' '~/n8ndir/nodemodules/base64-js:/usr/local/lib/node_modules/base64-js' '~/n8ndir/nodemodules/batch:/usr/local/lib/node_modules/batch' '~/n8ndir/nodemodules/bcrypt-pbkdf:/usr/local/lib/node_modules/bcrypt-pbkdf' '~/n8ndir/nodemodules/bluebird:/usr/local/lib/node_modules/bluebird' '~/n8ndir/nodemodules/boolbase:/usr/local/lib/node_modules/boolbase' '~/n8ndir/nodemodules/brotli:/usr/local/lib/node_modules/brotli' '~/n8ndir/nodemodules/bytes:/usr/local/lib/node_modules/bytes' '~/n8ndir/nodemodules/caseless:/usr/local/lib/node_modules/caseless' '~/n8ndir/nodemodules/chalk:/usr/local/lib/node_modules/chalk' '~/n8ndir/nodemodules/cheerio:/usr/local/lib/node_modules/cheerio' '~/n8ndir/nodemodules/cloudscraper:/usr/local/lib/node_modules/cloudscraper' '~/n8ndir/nodemodules/co:/usr/local/lib/node_modules/co' '~/n8ndir/nodemodules/color-convert:/usr/local/lib/node_modules/color-convert' '~/n8ndir/nodemodules/color-name:/usr/local/lib/node_modules/color-name' '~/n8ndir/nodemodules/combined-stream:/usr/local/lib/node_modules/combined-stream' '~/n8ndir/nodemodules/component-emitter:/usr/local/lib/node_modules/component-emitter' '~/n8ndir/nodemodules/content-disposition:/usr/local/lib/node_modules/content-disposition' '~/n8ndir/nodemodules/content-type:/usr/local/lib/node_modules/content-type' '~/n8ndir/nodemodules/cookiejar:/usr/local/lib/node_modules/cookiejar' '~/n8ndir/nodemodules/core-util-is:/usr/local/lib/node_modules/core-util-is' '~/n8ndir/nodemodules/css-select:/usr/local/lib/node_modules/css-select' '~/n8ndir/nodemodules/css-what:/usr/local/lib/node_modules/css-what' '~/n8ndir/nodemodules/dashdash:/usr/local/lib/node_modules/dashdash' '~/n8ndir/nodemodules/data-uri-to-buffer:/usr/local/lib/node_modules/data-uri-to-buffer' '~/n8ndir/nodemodules/debug:/usr/local/lib/node_modules/debug' '~/n8ndir/nodemodules/deep-is:/usr/local/lib/node_modules/deep-is' '~/n8ndir/nodemodules/degenerator:/usr/local/lib/node_modules/degenerator' '~/n8ndir/nodemodules/delayed-stream:/usr/local/lib/node_modules/delayed-stream' '~/n8ndir/nodemodules/delegates:/usr/local/lib/node_modules/delegates' '~/n8ndir/nodemodules/depd:/usr/local/lib/node_modules/depd' '~/n8ndir/nodemodules/destroy:/usr/local/lib/node_modules/destroy' '~/n8ndir/nodemodules/dom-serializer:/usr/local/lib/node_modules/dom-serializer' '~/n8ndir/nodemodules/domelementtype:/usr/local/lib/node_modules/domelementtype' '~/n8ndir/nodemodules/domhandler:/usr/local/lib/node_modules/domhandler' '~/n8ndir/nodemodules/domutils:/usr/local/lib/node_modules/domutils' '~/n8ndir/nodemodules/ecc-jsbn:/usr/local/lib/node_modules/ecc-jsbn' '~/n8ndir/nodemodules/ee-first:/usr/local/lib/node_modules/ee-first' '~/n8ndir/nodemodules/emitter-component:/usr/local/lib/node_modules/emitter-component' '~/n8ndir/nodemodules/enqueue:/usr/local/lib/node_modules/enqueue' '~/n8ndir/nodemodules/enstore:/usr/local/lib/node_modules/enstore' '~/n8ndir/nodemodules/entities:/usr/local/lib/node_modules/entities' '~/n8ndir/nodemodules/error-inject:/usr/local/lib/node_modules/error-inject' '~/n8ndir/nodemodules/escape-html:/usr/local/lib/node_modules/escape-html' '~/n8ndir/nodemodules/escape-string-regexp:/usr/local/lib/node_modules/escape-string-regexp' '~/n8ndir/nodemodules/escodegen:/usr/local/lib/node_modules/escodegen' '~/n8ndir/nodemodules/esprima:/usr/local/lib/node_modules/esprima' '~/n8ndir/nodemodules/estraverse:/usr/local/lib/node_modules/estraverse' '~/n8ndir/nodemodules/esutils:/usr/local/lib/node_modules/esutils' '~/n8ndir/nodemodules/extend:/usr/local/lib/node_modules/extend' '~/n8ndir/nodemodules/extsprintf:/usr/local/lib/node_modules/extsprintf' '~/n8ndir/nodemodules/fast-deep-equal:/usr/local/lib/node_modules/fast-deep-equal' '~/n8ndir/nodemodules/fast-json-stable-stringify:/usr/local/lib/node_modules/fast-json-stable-stringify' '~/n8ndir/nodemodules/fast-levenshtein:/usr/local/lib/node_modules/fast-levenshtein' '~/n8ndir/nodemodules/file-uri-to-path:/usr/local/lib/node_modules/file-uri-to-path' '~/n8ndir/nodemodules/forever-agent:/usr/local/lib/node_modules/forever-agent' '~/n8ndir/nodemodules/form-data:/usr/local/lib/node_modules/form-data' '~/n8ndir/nodemodules/format-parser:/usr/local/lib/node_modules/format-parser' '~/n8ndir/nodemodules/formidable:/usr/local/lib/node_modules/formidable' '~/n8ndir/nodemodules/fs-extra:/usr/local/lib/node_modules/fs-extra' '~/n8ndir/nodemodules/ftp:/usr/local/lib/node_modules/ftp' '~/n8ndir/nodemodules/get-uri:/usr/local/lib/node_modules/get-uri' '~/n8ndir/nodemodules/getpass:/usr/local/lib/node_modules/getpass' '~/n8ndir/nodemodules/graceful-fs:/usr/local/lib/node_modules/graceful-fs' '~/n8ndir/nodemodules/har-schema:/usr/local/lib/node_modules/har-schema' '~/n8ndir/nodemodules/har-validator:/usr/local/lib/node_modules/har-validator' '~/n8ndir/nodemodules/has-flag:/usr/local/lib/node_modules/has-flag' '~/n8ndir/nodemodules/htmlparser2:/usr/local/lib/node_modules/htmlparser2' '~/n8ndir/nodemodules/http-context:/usr/local/lib/node_modules/http-context' '~/n8ndir/nodemodules/http-errors:/usr/local/lib/node_modules/http-errors' '~/n8ndir/nodemodules/http-incoming:/usr/local/lib/node_modules/http-incoming' '~/n8ndir/nodemodules/http-outgoing:/usr/local/lib/node_modules/http-outgoing' '~/n8ndir/nodemodules/http-proxy-agent:/usr/local/lib/node_modules/http-proxy-agent' '~/n8ndir/nodemodules/http-signature:/usr/local/lib/node_modules/http-signature' '~/n8ndir/nodemodules/https-proxy-agent:/usr/local/lib/node_modules/https-proxy-agent' '~/n8ndir/nodemodules/iconv-lite:/usr/local/lib/node_modules/iconv-lite' '~/n8ndir/nodemodules/inherits:/usr/local/lib/node_modules/inherits' '~/n8ndir/nodemodules/ip:/usr/local/lib/node_modules/ip' '~/n8ndir/nodemodules/is-browser:/usr/local/lib/node_modules/is-browser' '~/n8ndir/nodemodules/is-typedarray:/usr/local/lib/node_modules/is-typedarray' '~/n8ndir/nodemodules/is-url:/usr/local/lib/node_modules/is-url' '~/n8ndir/nodemodules/isarray:/usr/local/lib/node_modules/isarray' '~/n8ndir/nodemodules/isobject:/usr/local/lib/node_modules/isobject' '~/n8ndir/nodemodules/isstream:/usr/local/lib/node_modules/isstream' '~/n8ndir/nodemodules/jsbn:/usr/local/lib/node_modules/jsbn' '~/n8ndir/nodemodules/json-schema:/usr/local/lib/node_modules/json-schema' '~/n8ndir/nodemodules/json-schema-traverse:/usr/local/lib/node_modules/json-schema-traverse' '~/n8ndir/nodemodules/json-stringify-safe:/usr/local/lib/node_modules/json-stringify-safe' '~/n8ndir/nodemodules/jsonfile:/usr/local/lib/node_modules/jsonfile' '~/n8ndir/nodemodules/jsprim:/usr/local/lib/node_modules/jsprim' '~/n8ndir/nodemodules/koa-is-json:/usr/local/lib/node_modules/koa-is-json' '~/n8ndir/nodemodules/levn:/usr/local/lib/node_modules/levn' '~/n8ndir/nodemodules/lodash:/usr/local/lib/node_modules/lodash' '~/n8ndir/nodemodules/lodash.assignin:/usr/local/lib/node_modules/lodash.assignin' '~/n8ndir/nodemodules/lodash.bind:/usr/local/lib/node_modules/lodash.bind' '~/n8ndir/nodemodules/lodash.defaults:/usr/local/lib/node_modules/lodash.defaults' '~/n8ndir/nodemodules/lodash.filter:/usr/local/lib/node_modules/lodash.filter' '~/n8ndir/nodemodules/lodash.flatten:/usr/local/lib/node_modules/lodash.flatten' '~/n8ndir/nodemodules/lodash.foreach:/usr/local/lib/node_modules/lodash.foreach' '~/n8ndir/nodemodules/lodash.map:/usr/local/lib/node_modules/lodash.map' '~/n8ndir/nodemodules/lodash.merge:/usr/local/lib/node_modules/lodash.merge' '~/n8ndir/nodemodules/lodash.pick:/usr/local/lib/node_modules/lodash.pick' '~/n8ndir/nodemodules/lodash.reduce:/usr/local/lib/node_modules/lodash.reduce' '~/n8ndir/nodemodules/lodash.reject:/usr/local/lib/node_modules/lodash.reject' '~/n8ndir/nodemodules/lodash.some:/usr/local/lib/node_modules/lodash.some' '~/n8ndir/nodemodules/lru-cache:/usr/local/lib/node_modules/lru-cache' '~/n8ndir/nodemodules/media-typer:/usr/local/lib/node_modules/media-typer' '~/n8ndir/nodemodules/methods:/usr/local/lib/node_modules/methods' '~/n8ndir/nodemodules/mime:/usr/local/lib/node_modules/mime' '~/n8ndir/nodemodules/mime-db:/usr/local/lib/node_modules/mime-db' '~/n8ndir/nodemodules/mime-types:/usr/local/lib/node_modules/mime-types' '~/n8ndir/nodemodules/monotonic-timestamp:/usr/local/lib/node_modules/monotonic-timestamp' '~/n8ndir/nodemodules/ms:/usr/local/lib/node_modules/ms' '~/n8ndir/nodemodules/negotiator:/usr/local/lib/node_modules/negotiator' '~/n8ndir/nodemodules/netmask:/usr/local/lib/node_modules/netmask' '~/n8ndir/nodemodules/nth-check:/usr/local/lib/node_modules/nth-check' '~/n8ndir/nodemodules/oauth-sign:/usr/local/lib/node_modules/oauth-sign' '~/n8ndir/nodemodules/object-assign:/usr/local/lib/node_modules/object-assign' '~/n8ndir/nodemodules/on-finished:/usr/local/lib/node_modules/on-finished' '~/n8ndir/nodemodules/optionator:/usr/local/lib/node_modules/optionator' '~/n8ndir/nodemodules/pac-proxy-agent:/usr/local/lib/node_modules/pac-proxy-agent' '~/n8ndir/nodemodules/pac-resolver:/usr/local/lib/node_modules/pac-resolver' '~/n8ndir/nodemodules/parseurl:/usr/local/lib/node_modules/parseurl' '~/n8ndir/nodemodules/performance-now:/usr/local/lib/node_modules/performance-now' '~/n8ndir/nodemodules/prelude-ls:/usr/local/lib/node_modules/prelude-ls' '~/n8ndir/nodemodules/process-nextick-args:/usr/local/lib/node_modules/process-nextick-args' '~/n8ndir/nodemodules/promise-polyfill:/usr/local/lib/node_modules/promise-polyfill' '~/n8ndir/nodemodules/proxy-agent:/usr/local/lib/node_modules/proxy-agent' '~/n8ndir/nodemodules/proxy-from-env:/usr/local/lib/node_modules/proxy-from-env' '~/n8ndir/nodemodules/psl:/usr/local/lib/node_modules/psl' '~/n8ndir/nodemodules/punycode:/usr/local/lib/node_modules/punycode' '~/n8ndir/nodemodules/qs:/usr/local/lib/node_modules/qs' '~/n8ndir/nodemodules/querystring:/usr/local/lib/node_modules/querystring' '~/n8ndir/nodemodules/raw-body:/usr/local/lib/node_modules/raw-body' '~/n8ndir/nodemodules/readable-stream:/usr/local/lib/node_modules/readable-stream' '~/n8ndir/nodemodules/request:/usr/local/lib/node_modules/request' '~/n8ndir/nodemodules/request-promise:/usr/local/lib/node_modules/request-promise' '~/n8ndir/nodemodules/request-promise-core:/usr/local/lib/node_modules/request-promise-core' '~/n8ndir/nodemodules/request-x-ray:/usr/local/lib/node_modules/request-x-ray' '~/n8ndir/nodemodules/safe-buffer:/usr/local/lib/node_modules/safe-buffer' '~/n8ndir/nodemodules/safer-buffer:/usr/local/lib/node_modules/safer-buffer' '~/n8ndir/nodemodules/selectn:/usr/local/lib/node_modules/selectn' '~/n8ndir/nodemodules/setprototypeof:/usr/local/lib/node_modules/setprototypeof' '~/n8ndir/nodemodules/sliced:/usr/local/lib/node_modules/sliced' '~/n8ndir/nodemodules/smart-buffer:/usr/local/lib/node_modules/smart-buffer' '~/n8ndir/nodemodules/socks:/usr/local/lib/node_modules/socks' '~/n8ndir/nodemodules/socks-proxy-agent:/usr/local/lib/node_modules/socks-proxy-agent' '~/n8ndir/nodemodules/source-map:/usr/local/lib/node_modules/source-map' '~/n8ndir/nodemodules/sshpk:/usr/local/lib/node_modules/sshpk' '~/n8ndir/nodemodules/statuses:/usr/local/lib/node_modules/statuses' '~/n8ndir/nodemodules/stealthy-require:/usr/local/lib/node_modules/stealthy-require' '~/n8ndir/nodemodules/stream-to-string:/usr/local/lib/node_modules/stream-to-string' '~/n8ndir/nodemodules/string-format:/usr/local/lib/node_modules/string-format' '~/n8ndir/nodemodules/stringdecoder:/usr/local/lib/nodemodules/string_decoder' '~/n8ndir/nodemodules/superagent:/usr/local/lib/node_modules/superagent' '~/n8ndir/nodemodules/superagent-proxy:/usr/local/lib/node_modules/superagent-proxy' '~/n8ndir/nodemodules/supports-color:/usr/local/lib/node_modules/supports-color' '~/n8ndir/nodemodules/toidentifier:/usr/local/lib/node_modules/toidentifier' '~/n8ndir/nodemodules/torrent-search-api:/usr/local/lib/node_modules/torrent-search-api' '~/n8ndir/nodemodules/tough-cookie:/usr/local/lib/node_modules/tough-cookie' '~/n8ndir/nodemodules/tslib:/usr/local/lib/node_modules/tslib' '~/n8ndir/nodemodules/tunnel-agent:/usr/local/lib/node_modules/tunnel-agent' '~/n8ndir/nodemodules/tweetnacl:/usr/local/lib/node_modules/tweetnacl' '~/n8ndir/nodemodules/type-check:/usr/local/lib/node_modules/type-check' '~/n8ndir/nodemodules/type-is:/usr/local/lib/node_modules/type-is' '~/n8ndir/nodemodules/universalify:/usr/local/lib/node_modules/universalify' '~/n8ndir/nodemodules/unpipe:/usr/local/lib/node_modules/unpipe' '~/n8ndir/nodemodules/uri-js:/usr/local/lib/node_modules/uri-js' '~/n8ndir/nodemodules/util:/usr/local/lib/node_modules/util' '~/n8ndir/nodemodules/util-deprecate:/usr/local/lib/node_modules/util-deprecate' '~/n8ndir/nodemodules/uuid:/usr/local/lib/node_modules/uuid' '~/n8ndir/nodemodules/vary:/usr/local/lib/node_modules/vary' '~/n8ndir/nodemodules/verror:/usr/local/lib/node_modules/verror' '~/n8ndir/nodemodules/word-wrap:/usr/local/lib/node_modules/word-wrap' '~/n8ndir/nodemodules/wrap-fn:/usr/local/lib/node_modules/wrap-fn' '~/n8ndir/nodemodules/x-ray:/usr/local/lib/node_modules/x-ray' '~/n8ndir/nodemodules/x-ray-crawler:/usr/local/lib/node_modules/x-ray-crawler' '~/n8ndir/nodemodules/x-ray-parse:/usr/local/lib/node_modules/x-ray-parse' '~/n8ndir/nodemodules/x-ray-scraper:/usr/local/lib/node_modules/x-ray-scraper' '~/n8ndir/nodemodules/xregexp:/usr/local/lib/node_modules/xregexp' '~/n8ndir/nodemodules/yallist:/usr/local/lib/node_modules/yallist' '~/n8ndir/nodemodules/yieldly:/usr/local/lib/node_modules/yieldly' image: 'n8nio/n8n:latest-rpi' environment: N8NBASICAUTH_ACTIVE=true N8NBASICAUTH_USER=username N8NBASICAUTHPASSWORD=yoursecretn8npassword EXECUTIONSDATAPRUNE=true EXECUTIONSDATAMAX_AGE=120 EXECUTIONS_TIMEOUT=300 EXECUTIONSTIMEOUTMAX=500 GENERIC_TIMEZONE=Europe/Berlin NODEFUNCTIONALLOW_EXTERNAL=torrent-search-api Once configured this way run n8n and create a new workflow coping the one proposed. Configure workflow Transmission In order to send command to transmission you must validate the Basic Auth. To do so: open the Start download node and edit the Credentials. Perform the same operation choosing the new credentials also in node Start download new token. In this automation we call transmission twice due to a security protocol in transmission system that prevents single click commands to be triggered, performing the request twice bypasses this security mechanism. https://en.wikipedia.org/wiki/Cross-siterequestforgery We use the X-Transmission-Session-Id provided by the first request to authenticate the second request. Telegram In order to make the workflow work as expected you must create a telegram bot and configure the nodes (Torrent not found and Telegram1) to send your message once the workflow is complete. Here's an easy guide to follow https://docs.n8n.io/nodes/n8n-nodes-base.telegram/ In those nodes you also should configure the Chat ID, you may use your telegram username or use a bot to retrieve your id. You may chat with useridinfobot that sends you your id. Ok google automation Since right now we do not have a n8n client for mobile that can trigger automation using google assistant I decided to use an IFTTT automation to trigger the webhook. I connect my IFTTT account with google assistant and pick the trigger. Say a phrase with a text ingredient as in the picture below. And configure the trigger this way. scarica $ -> download $ or metti in download $ -> put in download $ or some other trigger you may want. Then configure your server to trigger the webhook of n8n. Conclusion In conclusion we provide a fully working automation that integrates in n8n a node library and provides an easy trigger to perform a complex operation. Security concern Giving the ability to trigger a download may be problematic for potential unwanted torrent malware download, so you may decide to authenticate the webhook request passing in the body another field with a shared token between the two endpoints. Moreover the torrent-search-api library and its dependencies have some vulnerability that you may want to avoid on your own media-center, this will hopefully be patched soon in a further release of the library. This is just an interesting proof of concept. Quality of the download You may want to introduce another block between torrent search and webhook trigger to search for a movie based on the words detected by google assistant, sometimes it misinterprets something and you may end up downloading potential copyrighted material. Please use this automation only for free and open source movies and music.

DangerBy Danger
3077

Personalized sales outreach with Apollo, GPT, and Gmail automation

This n8n template shows you how to turn outbound sales into a fully automated machine: scrape verified leads, research them with AI, and fire off personalized cold emails while you sleep. Use cases are simple: scale B2B lead gen without hiring more SDRs, run targeted outreach campaigns that don’t feel generic, and give founders or agencies a repeatable system that books more calls with less effort. Good to know At time of writing, each AI call may incur costs depending on your OpenAI plan. This workflow uses Apollo/Apify for lead scraping, which requires an active token. Telegram approval flow is optional but recommended for quality control. How it works Define your ICP (role, location, industry) in the workflow. Generate Apollo search URLs and scrape verified contacts. AI enriches leads with personal + company research. Hormozi-style cold emails are generated and queued for approval. Approve drafts in Telegram, then Gmail automatically sends them out. How to use Start with the included Schedule Trigger or replace with a Webhook/Form trigger. Adjust ICP settings in the Set node to fit your target audience. Test with a small batch of leads before scaling to larger runs. Requirements Google Sheets, Docs, Drive, and Gmail connected to n8n Apollo/Apify account and token OpenAI API key Telegram bot for approvals Customising this workflow Swap Apollo scraping with another data source if needed. Adapt the AI prompt for a different email tone (formal, friendly, etc.). Extend with a CRM integration to sync approved leads and outreach results.

Tamas DemeterBy Tamas Demeter
406

Automated job scraping with SerpAPI, Gemini AI filter & email notifications

🛜 Daily Notification on Specific Latest Job Offers 🛜 🌟 Overview: Never miss a job offer again! This n8n workflow automates daily job scraping from LinkedIn, Indeed, Welcome to the Jungle, and more, using Google Dorks and SerpAPI. It filters offers with a Gemini AI agent, stores them in Google Sheets, and sends a sleek HTML newsletter to your inbox or subscribers—all manageable from your phone! 💼 Use Cases: Students hunting for M&A, valuation, or transaction services internships (6+ months). Career switchers seeking automated, curated job alerts. Content creators building a job newsletter to monetize their audience. ⚙️ How It Works: Scrape: Uses SerpAPI with a tailored Google Dork to fetch fresh job listings daily from top platforms. Filter: A Gemini AI agent validates offers to ensure they match corporate finance criteria. Store: Saves new offers in Google Sheets, marking duplicates to avoid spam. Notify: Generates an email/newsletter notification and sends it via Outlook 🛠️ Setup Instructions: Import the JSON workflow into n8n. Add credentials: SerpAPI (API key), Google Sheets (OAuth2), Microsoft Outlook (OAuth2) Customize the Google Dork in the "Edit Fields" node for specific job criteria. Schedule to run daily at 7 AM. Test and tweak the AI prompt for precision. 🔑 Required Credentials & Nodes: Credentials: SerpAPI, Google Sheets OAuth2, Microsoft Outlook OAuth2 Nodes: Schedule Trigger, HTTP Request, Google Sheets, AI Agent (Gemini), Microsoft Outlook 🔗 Creator: Louis Delahaye | n8n.io/creators/louisdl 🎥 YouTube @cash-routine My AI Agency : https://agence-alain.fr

LouisBy Louis
65
All templates loaded