Code workflow'ları
1.006 sonuç — tümü kaynağa bağlı n8n referansı
Monitor crypto news risk with CoinDesk RSS, OpenAI, Gmail, and Google Sheets
Quick overview This workflow polls the CoinDesk RSS feed every 10 minutes, filters for crypto-related stories, checks Google Sheets to avoid duplicates, uses OpenAI to score and summarize risk, logs results to Google Sheets, and sends Gmail alerts when the risk priority is HIGH or MEDIUM. How it works Polls the CoinDesk RSS feed every 10 minutes and retrieves the latest articles. Extracts each article’s title, description, link, and publish date, generates an article ID, and filters to only crypto-relevant items using a keyword match. Checks a Google Sheets “Seen Articles” tab to skip any article IDs that have already been processed. Sends the article text to the OpenAI Chat Completions API to return a JSON risk assessment including summary, coins, risk level, score, and recommended action. Parses the OpenAI response, normalizes the risk level into a HIGH/MEDIUM/LOW priority, and appends the article ID to the “Seen Articles” tab and the full analysis to a “Risk Log” tab in Google Sheets. Sends a formatted Gmail alert email for articles marked HIGH or MEDIUM priority. Setup Add an OpenAI API credential (OpenAI API) for the HTTP request to the Chat Completions endpoint. Create a Goog
Screen resumes and route hiring decisions with Airtable, DeepSeek, and gotoHuman
Quick overview This workflow collects job applications via Gmail, deduplicates candidates in Airtable, extracts resume text with LlamaParse, scores candidates against an Airtable role rubric using a DeepSeek chat model, and routes results to gotoHuman for approve/reject decisions that update the candidate’s stage. How it works Receives a job application submission from Gmail, including the applicant’s name, email, role, and resume file. Searches Airtable Candidates by email to detect duplicates and either creates a new candidate record or updates the existing record. Extracts text from the uploaded resume with LlamaParse and runs a basic quality check to detect likely mis-parsed or incomplete text. If parsing looks poor, updates the candidate in Airtable to “Needs Manual Review” with a “poor” parse quality flag. If parsing looks good, fetches the role-specific scoring rubric from the Airtable Roles table, sanitizes the resume text, and sends both to a DeepSeek chat model (via LangChain) to produce a structured JSON scorecard. Validates and normalizes the AI’s JSON output, saves the score, reasoning, confidence, red flags, and recommendation back to Airtable, and submits the scoreca
Draft weekly blog newsletter digests from RSS with OpenAI-compatible APIs
Quick overview This workflow runs every Monday at 08:00, reads your blog’s RSS feed, filters posts from the last 7 days, and uses an OpenAI-compatible Chat Completions API to generate a markdown newsletter digest you can copy into your email tool. How it works Runs every Monday at 08:00 on a schedule. Loads configuration values (RSS feed URL, OpenAI-compatible base URL, model name, and desired tone). Reads the RSS feed and keeps only items published in the last 7 days, collecting each post’s title, link, and a short snippet. Stops with a “nothing to send” outcome when no posts are found for the week. Sends the weekly post list to an OpenAI-compatible Chat Completions endpoint to write a clean markdown digest (intro, one bullet per post, and a sign-off). Extracts the generated markdown content into a single field so you can copy the draft from the final output. Setup Update the RSS feed URL (and optionally the model, tone, and API base URL) in the configuration step. Create an HTTP Header Auth credential with an Authorization: Bearer header and attach it to the HTTP request that calls the Chat Completions API. If you use a non-OpenAI provider, set the API base URL to your OpenAI-com
Screen, score and route job applicants with Gemini, Gmail, Sheets and Slack
Quick Overview This workflow runs daily to pull job applicants from Google Sheets, score each candidate against role requirements using the Google Gemini API, log results back to Google Sheets, and notify a Slack channel when an applicant meets or exceeds a minimum score. How it works Runs every day at 08:00 on a schedule. Reads applicant records from an “Applicants” tab in Google Sheets. Combines the job title, requirements, and each applicant’s resume text into a screening prompt. Sends the prompt to the Google Gemini API and requests a JSON response with score, verdict, strengths, gaps, and summary. Parses the returned JSON and normalizes the screening fields (score, verdict, strengths, gaps, and summary). Appends the screening result for every applicant to a “Screening” tab in Google Sheets. Posts a formatted message to a Slack channel when the applicant’s score is greater than or equal to the configured minimum score. Setup Connect credentials for Google Sheets OAuth, Google Gemini (PaLM) API, and Slack OAuth. Select your Google Sheets spreadsheet and ensure it has an “Applicants” sheet with fields like Name, Email, and Resume/ResumeText, plus a “Screening” sheet to store resu
Repurpose blog posts into social content with Gemini, Google Sheets, and Slack
Quick Overview This workflow runs daily, reads your blog RSS feed, uses Google Gemini to repurpose the latest posts into Twitter/X and LinkedIn drafts in your brand voice, then appends the drafts to Google Sheets and posts them to a Slack channel for review. How it works Runs every day on a schedule and reads items from your blog’s RSS feed. Keeps only the three most recent posts to process. Builds a prompt that includes your brand voice, hashtags, and each post’s title, URL, and excerpt. Sends the prompt to the Google Gemini API to generate Twitter/X and LinkedIn copy formatted as JSON. Parses the Gemini response into separate twitter and linkedin draft fields. Appends the drafts to a Google Sheets worksheet and posts the formatted drafts to a Slack channel for review. Setup Add credentials for the Google Gemini (PaLM) API, Google Sheets OAuth2, and Slack OAuth2. Paste your blog RSS feed URL in the RSS reader step. Update the brand voice text and default hashtags to match your tone. Select the target Google Sheets spreadsheet and worksheet (for example, a “Social Drafts” tab) where drafts are appended. Choose the Slack channel where draft messages are posted.
Triage and route support emails with Gemini, Gmail, Sheets and Slack
Quick Overview This workflow monitors unread Gmail support emails, uses Google Gemini to classify and summarize each message and draft a reply, logs the ticket details to Google Sheets, creates a Gmail draft response, and sends a Slack alert when the ticket is marked high priority. How it works Triggers every minute when a new unread email arrives in Gmail. Adds brand context and support guidelines, then builds a prompt that asks Google Gemini to return a JSON classification, priority, summary, and suggested reply. Sends the prompt to the Google Gemini API and parses the returned JSON into structured ticket fields. Appends the ticket details (sender, subject, category, priority, summary, and suggested reply) to a Google Sheets tab. Creates a Gmail draft reply in the original thread using the suggested response text. Sends a Slack message to a chosen channel when the ticket priority is high. Setup Connect credentials for Gmail, Google Gemini (PaLM) API, Google Sheets, and Slack. Update the brand name and support guidelines values used to guide Gemini’s response. Select the target Google Sheets spreadsheet and the “Tickets” sheet (and ensure your header columns match the fields you w
Run LinkedIn outreach with Google Gemini, Apify, Google Sheets, and PhantomBuster
Quick overview This workflow collects a plain-English LinkedIn audience description via an n8n form, uses Google Gemini to generate a search URL, pulls matching leads from Apify, writes five personalized icebreakers to Google Sheets, and drip-launches a PhantomBuster agent every 15 minutes. How it works Receives a form submission with a plain-English description of your target LinkedIn audience. Uses Google Gemini to turn the audience description into a JSON response containing an Apollo-style search URL, then parses and extracts the searchUrl value. Calls the Apify API to run an actor and return up to 100 lead records matching the configured filters. Limits processing to the first five leads to control outreach volume. Uses Google Gemini to generate a short, unique connection-message icebreaker for each lead based on their profile fields. Appends or updates each lead in Google Sheets with contact details, LinkedIn URLs, and the generated icebreaker. Waits 15 minutes per lead and then triggers a PhantomBuster agent via HTTP request to start the outreach action. Setup Create and add credentials for Google Gemini (PaLM API) and update the model selection if needed. Add an Apify API t
Create daily vaping news avatar videos with Perplexity, Browserless, HeyGen, Telegram and Google Drive
Quick Overview This workflow runs daily at 9 AM, uses Perplexity to compile vaping industry news, optionally captures article screenshots via Browserless, and generates a HeyGen avatar video from a template. It then polls for completion, sends a Telegram notification, and archives the final video to Google Drive. How it works Runs daily at 9 AM and sets the output mode (portrait/landscape) and background type (screenshot or inline_title). If set to inline_title, it asks Perplexity for 4 ready-to-use stories (title, script, subtitle) and maps them into HeyGen template variables. If set to screenshot, it asks Perplexity for up to 10 stories, validates article accessibility with Browserless scraping until it collects 4 reachable URLs, and prepares the final story list. For the screenshot path, it screenshots each article with Browserless, uploads each image to HeyGen, and combines each story with its uploaded image URL. It sends the assembled template variables to HeyGen to generate a template-based video (in test mode) with the configured dimensions. It waits briefly, polls HeyGen until the video status is completed, and formats the final video metadata. It posts an optional Telegram
Handle WhatsApp customer service chats with Google Gemini and Google Sheets
Quick Overview This workflow handles WhatsApp customer service via OpenWA, using Google Gemini and a Google Sheets knowledge base to answer personal chats, while routing conversations to a human queue in Google Sheets when escalation is needed. How it works Triggers on OpenWA WhatsApp events and ignores message reactions except for specific ✅/☑ reactions used to re-enable AI handling. Normalizes incoming event fields and processes only personal chats (IDs ending with @c.us) that are not sent by your own WhatsApp account. Checks a Google Sheets “Session Chat” list to decide whether the conversation is currently handled by a human, and only continues to AI when no active human session is found. Uses a Google Gemini chat model with short-term memory and a Google Sheets “Database Company” tool to draft a friendly Indonesian response based only on the sheet data. If the AI response does not contain the #admin escalation token, it sends the reply back to the customer via OpenWA. If the AI response contains #admin, it appends the chat to the Google Sheets “Session Chat” sheet to flag it for human follow-up. When a ✅/☑ reaction is received for a chat, it finds and deletes the corresponding
Generate Seedance videos with the Vancine Doubao API using polling
Quick overview Generate Seedance videos through the Vancine API, automatically poll asynchronous tasks, return the final video URL, and handle failed or timed-out generations with bounded retries. How it works Starts manually to define the Seedance model, prompt, video size, base URL, and polling limits. Sends a POST request to the Vancine /v1/video/generations endpoint to create a video generation task. Extracts and stores the returned task ID and initializes polling state (interval and maximum attempts). Waits for the configured interval, then sends a GET request to /v1/video/generations/{task_id} to check task status. Repeats polling until the task status is completed or until the maximum poll count is reached. Outputs the generated video result_url when completed, or stops with an error if the task fails or times out. Setup Create an HTTP Header Auth credential with Name set to Authorization and Value set to Bearer YOUR_VANCINE_API_KEY. Assign the same credential to both HTTP Request nodes: submitTask and pollTask. Confirm the Vancine API base URL in the workflow (default https://vancine.com) matches your environment. Update the prompt, model, size, and polling settings (interv
Clone brand voices and generate voiceovers with Smallest AI and Google Drive
Quick Overview This workflow receives a webhook request with an audio sample URL, voice name, and script, clones a voice and generates a matching voiceover using Smallest AI, uploads the MP3 to Google Drive, logs the voice ID in Google Sheets, and returns a public link in the webhook response. How it works Receives a POST webhook request containing an audio_url, voice_name, and script text. Downloads the provided voice sample file from the audio_url. Sends the sample to Smallest AI Voice Cloning to create a new voice profile and extracts the returned voiceId. Truncates the script text to a safe length and synthesizes speech with Smallest AI using the cloned voice ID. Uploads the generated MP3 voiceover to Google Drive and updates its sharing settings to be publicly readable. Appends the cloned voice ID and voice name to a Google Sheets “voice library” spreadsheet and returns a JSON response with the voice ID, Drive link, and timestamp. Setup Create a Smallest AI API key, store it securely in n8n, and replace the hardcoded Authorization: Bearer ... header used for voice cloning. Add a Smallest AI credential in n8n for the speech synthesis step and ensure it has access to the same Sm
Handle NPS survey responses with OpenAI, Gmail, and Google Sheets
Quick Overview This workflow runs every 6 hours to read new NPS survey responses from Google Sheets, generates a personalized reply with OpenAI, and sends the email via Gmail. It then routes promoters, passives, and detractors for follow-up actions and marks each response as processed. How it works Runs on a schedule every 6 hours. Reads NPS responses from a Google Sheets tab and keeps only rows where Status equals "new". Validates required fields, parses the 0–10 NPS score, and classifies each response as Promoter, Passive, or Detractor. Sends the response context to OpenAI (Chat Completions) to generate a concise, personalized email body and builds a segment-specific subject line. Sends the personalized reply to the respondent using Gmail. For promoters, appends the comment as a quote to a separate Google Sheets testimonials tab and updates the original row’s Status to "Processed". For passives, updates the original Google Sheets row’s Status to "Processed", and for detractors, emails an alert to a support inbox via Gmail and then updates Status to "Processed". Setup Add credentials for Google Sheets, Gmail, and OpenAI in n8n. Replace YOUR_NPS_SHEET_ID with your Google Sheets doc
Handle NPS survey replies and routing with OpenAI, Gmail, and Google Sheets
Quick Overview This workflow runs every 6 hours to read new NPS responses from Google Sheets, uses OpenAI to draft a personalized reply, sends it via Gmail, routes respondents by NPS segment, logs promoter quotes back to Google Sheets, alerts support on detractors, and marks each row as processed. How it works Runs on a schedule every 6 hours and reads NPS response rows from a Google Sheets document. Filters the sheet to keep only rows where Status equals “new” to avoid reprocessing. Validates required fields, parses the 0–10 NPS score, and classifies each response as Promoter, Passive, or Detractor. Calls the OpenAI Chat Completions API to generate a warm, personalized email body based on the score segment and the customer’s comment. Sends the generated reply to the customer via Gmail and then routes the workflow by segment. For promoters, appends the customer comment as a quote to a “promoter-quotes” tab in Google Sheets and marks the original row as Processed; for passives, it marks the row as Processed. For detractors, sends an alert email to your support team via Gmail and then updates the original Google Sheets row status to Processed. Setup Create credentials for Google Shee
Answer Slack knowledge base questions with Notion, Pinecone, and OpenAI
Quick overview This workflow syncs an internal Notion knowledge base to Pinecone on a daily schedule, then runs a Slack bot that answers questions in a specific channel using Pinecone retrieval and an OpenAI chat model, replying in a thread with citations back to the source Notion pages. How it works Runs on a daily schedule to sync your Notion knowledge base into a Pinecone vector index. Fetches all pages from a specified Notion database and then pulls each page’s full block content (including nested blocks). Combines each page’s blocks into a single document and attaches metadata such as the Notion title, URL, and last edited time. Splits each document into overlapping text chunks, generates OpenAI embeddings, and inserts them into Pinecone while clearing and rebuilding the target namespace. Triggers when a new message is posted in the configured Slack channel and ignores bot/system messages to prevent reply loops. Uses an OpenAI-powered agent that always queries Pinecone for relevant chunks (including source metadata) and generates an answer in the user’s language. Posts the response back to Slack as a threaded reply, including cited Notion sources. Setup Create a Notion interna
Tailor ATS-ready resumes and cover letters with Gemini, Google Drive, Notion, and Gmail
Quick overview Transform any resume into a professional, ATS-compliant document with AI. Supports Global ATS, German, and Japanese resume formats, generates personalized cover letters, and automates PDF creation and delivery for every job application. How it works Receives an n8n form submission with the company name, job description, selected ATS type, and an optional request to generate a cover letter. Lists resume PDF files from a specified Google Drive folder, downloads each file, extracts the PDF text, and cleans it into a single plain-text resume input. Uses Google Gemini to rewrite the resume into pure-HTML output tailored to the job description, choosing Global ATS, German Lebenslauf, or Japanese Rirekisho formatting based on the selected ATS type. Converts the generated HTML resume into a PDF using the PDF.co HTML-to-PDF API and retrieves the resulting PDF from the returned URL. Uploads the generated resume PDF to a Google Drive output folder, then reads the existing Notion database entries to compute the next serial number and creates a new Notion database page linking to the uploaded file. If cover letter generation is requested, uses Google Gemini to write a localized c
Text back missed callers with Twilio, CallRail, and email alerts
Quick overview This workflow receives missed-call webhooks from Twilio or CallRail, normalizes call details, and instantly sends a compliant text-back via Twilio when allowed, then emails your firm a delivery-status summary. How it works Receives an incoming call event via a webhook from Twilio StatusCallback or a CallRail missed-call webhook. Extracts and standardizes the caller number, caller name, firm number, source, timestamp, and whether the event is a true missed call. Stops processing if the event is not a valid missed call (for example, an answered-call status from Twilio). Determines whether the call occurred outside your configured business hours and adjusts the text wording accordingly. Builds a personalized SMS message using your firm name and booking link and submits it to a separate Bar-Compliance Guardrail workflow for opt-out and TCPA checks. If approved, sends the SMS via Twilio and then emails the firm a summary including the caller details, message text, and whether Twilio returned a delivery SID. Setup Create and connect a Twilio account credential and configure your Twilio phone number StatusCallback URL to point to the n8n webhook (enable no-answer, busy, fai
Assess visa eligibility and send PDF checklists with Claude and SendGrid
Quick overview This workflow receives visa eligibility requests via webhook, uses Anthropic Claude to extract passport details and assess visa requirements, generates a purpose-specific document checklist, converts it to a PDF via PDFShift, logs each request to Google Sheets, and emails the PDF to the applicant using SendGrid. How it works Receives a webhook POST with applicant details, travel plan, and raw passport OCR text. Uses Anthropic Claude to extract and validate passport data (name, nationality, passport number, expiry) and scores whether the passport text is readable. If passport data is insufficient, immediately returns a webhook response asking the applicant to resubmit a clearer passport scan. If passport data is sufficient, waits briefly and uses Anthropic Claude again to determine whether a visa is required, the visa category, a recommended visa type, processing time, risks, and confidence. Builds a document checklist from a standard base list plus purpose-specific items and any AI-flagged eligibility risks, then renders it into HTML. Sends the HTML to PDFShift to generate a PDF, formats a summary row, and appends the application record to a Google Sheets tab. Emails
Detect LLM prompt regressions with Data Tables, OpenAI APIs, and Telegram
Quick overview Continuous quality checks for your production LLM prompts. Keeps a golden test set in n8n Data Tables, runs it on a schedule against any OpenAI-compatible API, compares each run to a blessed baseline, and pings Telegram only when quality actually changes. How it works A Schedule Trigger starts each run. The Execute workflow button runs it on demand. Prompt profiles (system prompt, model, temperature) and test cases (input, expected output, check type) load from two Data Tables. When both tables are empty the workflow seeds demo rows, so the first run works immediately. Every case calls its own model through a generic OpenAI-compatible HTTP request with retries. Failed calls are recorded and reported, never silently dropped. Deterministic checks (exact, contains, regex, numeric) grade most answers for free. An LLM judge scores only the free-form cases marked llm-judge on a 1-5 scale. The run is aggregated, snapshotted to an eval history table, and compared to the blessed baseline: a flipped case must fail two runs in a row to count, while a broad pass-rate or judge-score drop alerts at once. A Telegram digest goes out on baseline capture, regression, recovery, or an o
Translate audio transcripts with Gladia, Google Drive, and Google Sheets
Quick overview This workflow collects a public media URL and target language via an n8n form, sends the audio/video to Gladia for transcription and translation, then saves a Markdown transcript file to Google Drive and logs the outcome (success or failure) to Google Sheets. How it works Receives a form submission containing a publicly reachable audio/video URL and a target language code. Starts a Gladia pre-recorded job with transcription enabled and translation configured for the requested target language. Waits and repeatedly polls Gladia’s result URL until the job finishes, errors, or reaches the maximum number of attempts. When Gladia reports the job as done, builds a Markdown file containing the original transcript, the translated transcript, and language metadata. Uploads the Markdown file to Google Drive. Appends a “Translated” row to Google Sheets with the media URL, detected language, target language, and a Drive link, or logs a “Failed” row with error details if any step fails. Setup Add a Gladia API key using an HTTP Header Auth credential (header name x-gladia-key) and select it for both Gladia HTTP Request steps. Connect Google Drive OAuth credentials and choose the de
Transcribe speaker-labeled recordings with Gladia, Google Drive, and Slack
Quick overview This workflow collects a public media URL via an n8n form, sends it to Gladia for diarized transcription, formats the result as a speaker-labeled Markdown note, saves it to Google Drive, and posts the Drive link (or any failure reason) to a Slack channel. How it works Receives a form submission containing a public audio/video URL and an optional hint for the number of speakers. Starts an asynchronous Gladia pre-recorded transcription job with speaker diarization enabled. Waits and repeatedly polls Gladia for the job status until it is done, errors, or reaches the configured maximum number of attempts. When complete, converts Gladia’s diarized utterances into a readable Markdown transcript grouped by speaker and timestamped. Uploads the transcript file to Google Drive and posts a Slack message with the share link. If the Gladia requests fail or the job times out/errors, posts a Slack message describing the failure. Setup Create an HTTP Header Auth credential for Gladia (header x-gladia-key) and select it on both Gladia HTTP Request steps. Connect a Google Drive OAuth2 account and choose the target Drive/folder where transcripts are uploaded. Connect a Slack account an
Rotate YouTube channel banners on a schedule with Google Sheets and Drive
Quick Overview This workflow runs daily at 8am to rotate a YouTube channel banner based on a schedule stored in Google Sheets, downloading the banner image from Google Drive, applying it via the YouTube API, and updating the sheet to mark the banner as applied. How it works Runs every day at 8am on a schedule trigger. Reads the banner rotation plan from Google Sheets, including swap date, Google Drive file ID, label, and status. Filters the sheet rows to keep banners due today or overdue that are not yet marked as Applied, and sorts them oldest-first. Downloads the selected banner image from Google Drive and uploads it as a YouTube channel banner. Fetches the current YouTube channel branding settings and updates the channel to activate the new banner while preserving existing branding fields. Updates the matching Google Sheets row to set Status to Applied and outputs a log record with the swap timestamp, channel ID, and banner details. Setup Add Google OAuth credentials for YouTube Data API and connect them to the YouTube nodes. Add Google Sheets and Google Drive credentials and connect them to the respective nodes. Set your YouTube channel ID in the banner configuration step. Upda
Extract and log Gmail admin tasks with OpenAI, Google Sheets and Airtable
Quick overview This workflow monitors Gmail for messages labeled “Admin”, redacts sensitive data, uses OpenAI to extract structured admin tasks and reminders, skips duplicates by checking Google Sheets and/or Airtable, sends optional Slack or Microsoft Teams alerts for urgent items, and logs the clean task details. How it works Triggers every minute when a new Gmail message matches the query label:Admin newer_than:7d. Loads configurable settings (log destination, alert channels, due-soon window, dedupe window, and redaction toggle) and normalizes the email into a clean text body. Redacts sensitive patterns (such as SSNs, card-like numbers, phone numbers, email addresses, and addresses) and generates an “admin hash” fingerprint for deduplication. Checks Google Sheets and/or Airtable for recent matching Message IDs or admin hashes and skips processing if the email appears to be a duplicate. Sends the redacted email content to OpenAI to classify whether it is an admin item and to extract fields like task title, summary, priority, due date/time, and recommended next step. If the item is valid, optionally posts an alert to Slack and/or Microsoft Teams for urgent/high-priority, due-soon,
Extract and log Gmail receipt expenses with OpenAI, Sheets and Airtable
Quick overview This workflow monitors a Gmail “Receipts” label, downloads attachments, uses OpenAI to extract expense data from receipt emails and images, skips duplicates and non-receipts, fails safely when extraction is unreadable, sends Slack/Teams alerts for high-value, warranty, or review-needed receipts, and logs valid receipts to Sheets or Airtable. How it works Triggers every minute when Gmail finds new emails matching the query label:Receipts newer_than:2d. Normalizes the email into consistent fields (message ID, subject, sender, received date, plain-text body) and generates a receipt hash for stable matching. Searches Airtable and/or Google Sheets for existing records matching the message ID or receipt hash and marks the email as a duplicate if it falls within the configured duplicate window. For new receipts, sends the email content to OpenAI to extract receipt details like merchant, total, category, line items, tax hints, and return/warranty dates. Evaluates the extraction to flag high-value, warranty/return-relevant, or needs-review receipts and formats alert messages. Posts alerts to Slack and/or Microsoft Teams when enabled and the receipt is not “standard.” Appends
Start ScraperAPI crawler jobs from webhooks and store results in data tables
Quick Overview This workflow starts a ScraperAPI crawler job from an incoming webhook request and stores each crawled page returned via a callback webhook into an n8n Data Table. How it works Receives a POST request on a webhook with crawl inputs like startUrl, optional includeRegexp, and optional maxDepth. Builds ScraperAPI crawler parameters, including defaults (includeRegexp scoped to the start URL, maxDepth 1, country code, and render setting) and a callback URL for results. Creates a ScraperAPI crawler job and returns the job details in the webhook response. Receives per-page crawl results from ScraperAPI on a second webhook callback endpoint. Filters out job-summary payloads and failed page fetches, then extracts each page’s URL, markdown content, status code, and scrape timestamp. Upserts the parsed page results into an n8n Data Table named crawl_results keyed by URL. Setup Create and connect your ScraperAPI credentials in n8n so the workflow can create crawler jobs. Run the manual storage setup once (or ensure it exists) to create the crawl_results Data Table with the required columns. Replace the CALLBACK_URL in the crawl-parameter code with your “Receive crawl results” pr