Transcribe LinkedIn Ad Library video ads to Google Sheets with Apify
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (14)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - Manual Trigger
n8n-nodes-base.manualTrigger - Edit Fields (Set)
n8n-nodes-base.set - Code
n8n-nodes-base.code - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - HTTP Request
n8n-nodes-base.httpRequest - If
n8n-nodes-base.if - Remove Duplicates
n8n-nodes-base.removeDuplicates - No Operation, do nothing
n8n-nodes-base.noOp - Information Extractor
@n8n/n8n-nodes-langchain.informationExtractor - Groq Chat Model
@n8n/n8n-nodes-langchain.lmChatGroq - Google Sheets
n8n-nodes-base.googleSheets - Aggregate
n8n-nodes-base.aggregate - Slack
n8n-nodes-base.slack
What it does
Quick overview Every Monday this workflow transcribes your competitors' new LinkedIn video ads, has an AI classify the hook and offer, appends the new ones to a Google Sheet and posts a digest to Slack. How it works 1. A Schedule Trigger fires weekly. One Config node holds the Ad Library URLs, the ads per competitor and the Slack channel. 2. It loops over the competitors: each Ad Library page is scraped on Apify, then that run's dataset goes straight to the LinkedIn Ads Transcript Scraper. 3. Remove Duplicates drops every ad seen in an earlier execution, so a weekly run only reports new creatives. Nothing new means nothing is written and nothing is sent. 4. An Information Extractor classifies each new ad: hook type, offer, CTA, persona, angle and why it works. 5. Google Sheets appends a row per ad; Slack gets the five longest new hooks. Setup 1. Create an HTTP Header Auth credential (name Authorization, value Bearer YOURAPIFYTOKEN) and select it on the three HTTP Request nodes. 2. Add a Groq credential on the chat model node - a drop-in swap for OpenAI or Anthropic. 3. Connect Google Sheets and Slack, then paste your competitors' Ad Library URLs into Config. Requirements - An Apify account, a chat model account, Google Sheets and Slack. - Transcription is charged only when text is delivered; ads with no speech are uncharged. Customization - Swap in any Ad Library scraper - the transcript step reads the run by dataset ID. - Change the digest ranking in the Code node. Additional info B2B demand generation and ABM managers who watch a fixed list of competitors and want the message, not the thumbnail.