
Het onderzoeken van content voor contentcreatie neemt stilletjes hele middagen in beslag. Scrollen door TikTok, YouTube en Instagram, het aantal weergaven kopiëren naar een spreadsheet, en dan het ene bericht kwijtraken dat er echt toe doet.
Een wekelijkse inbox vol onderzoeksresultaten van contentmakers maakt een einde aan die routine.
Apify-acteurs openbare berichten van makers schrapen, en een n8n automatiseringsworkflow beoordeelt elk bericht, markeert uitschieters en stelt een vraag. AI model om haakpatronen te herkennen.
Vervolgens ontvang je elke week op dezelfde dag een overzichtelijke samenvatting in je Gmail, klaar voordat je aan je eerste kop koffie begint.
Hieronder volgt de volledige opbouw, knooppunt voor knooppunt, op basis van de input van de actor. logica voor het scoren van betrokkenheid naar AI inhoudssamenvattingen en foutmeldingen. Geen theorie, gewoon een systeem dat je kunt kopiëren.
AIMOJO's Snelle uitspraak
Wat ontvang je elke week in je inbox?
Voordat je een knooppunt aanraakt, vergrendel je de uitvoer. Een onderzoeksmailbox werkt alleen als elke e-mail dezelfde vragen in dezelfde volgorde beantwoordt.
| Samenvattingssectie | Wat het laat zien | Bronknooppunt |
|---|---|---|
| Topuitschieters | Berichten met de meeste weergaven versus de maker's gebruikelijke mediaan | Scorecode-knooppunt |
| Betrokkenheidsleiders | Berichten met de meeste likes, reacties en deelacties per weergave | Scorecode-knooppunt |
| Patroonnotities | Terugkerende elementen, formats en onderwerpen in winnende berichten. | Basis LLM-keten |
| Contentideeën | Drie ideeën die je team deze week kan uitproberen. | Basis LLM-keten |
| Link naar onbewerkt logboek | Google Sheet met alle verzamelde berichten voor latere filtering. | Google Sheets-knooppunt |
Bureau's gebruiken het om klanten te briefen, merkenteams gebruiken het om influencer-partnerschappen te scouten en individuele contentmakers gebruiken het om concurrenten in de gaten te houden zonder een app te hoeven openen.
De gegevensstroom blijft eenvoudig:
Apify Actors selecteren voor Creator-gegevens

Apify Store biedt kant-en-klare scrapers aan, genaamd Actors. Drie daarvan dekken de meeste behoeften op het gebied van contentonderzoek en elk biedt datumfilters die ervoor zorgen dat de gegevens per week worden opgehaald.
| Acteur | Belangrijke invoervelden | Uitvoervelden die de moeite waard zijn om te behouden |
|---|---|---|
| YouTube-scraperstreamers/youtube-scraper | startUrls, maxResults, maxResultsShorts, maxResultStreams, sortVideosBy, oldestPostDate | titel, url, datum, aantal weergaven, likes, aantal reacties, kanaalnaam, aantal abonnees |
| TikTok-schraperuurwerk/tiktok-scraper | profielen, resultatenPerPagina, profielsortering, vastgepinde berichten uitsluiten, oudsteBerichtDatumGecombineerd | tekst, webVideoUrl, createTimeISO, playCount, diggCount, commentCount, shareCount, collectCount, authorMeta.fans |
| Instagram-schraperapify/instagram-scraper | directeUrls, resultaattype, resultaatlimiet, alleen berichten die nieuwer zijn dan | bijschrift, url, shortcode, tijdstempel, aantal likes, aantal reacties, aantal videoweergaven, gebruikersnaam van de eigenaar |
Enkele details zijn hier van belang. YouTube Scraper's Het datumbereik is alleen van toepassing op kanaal-URL's; als u een typebeperking op 0 instelt, wordt dat formaat volledig overgeslagen.
TikTok Scraper accepteert profielen sorteren op nieuwste, populairste of oudste profielen. De datumfilters worden op de pagina van de gebruiker als betaalde filters weergegeven, dus controleer dit voordat u ze inschakelt.
Wil je het aantal volgers en de biografie van een Instagram-profiel weten? Voeg dan Instagram Profile Scraper (apify/instagram-profile-scraper) toe met een array van gebruikersnamen. Het retourneert het aantal volgers, de biografie, geverifieerde profielen en de meest recente berichten.
Transcripten zijn optionele extra's. YouTube Scraper's transcriptieAndSubtitle en TikTok Scraper's downloadSubtitlesOptions trekt gesproken hooks, wat maakt AI De patroonnoten zijn veel scherper.
Binnenin de officiële Apify-node voor n8n

Apify levert een geverifieerd communityknooppunt mee, @apify/n8n-nodes-apify. Zoek op n8n Cloud naar "Apify" in het knooppuntenpaneel en installeer het, mits geverifieerde communityknooppunten zijn toegestaan in het beheerderspaneel.

Op een zelfgehoste n8n-server ga je naar Instellingen > Community Nodes , plak je de pakketnaam en installeer je het pakket. De node heeft n8n versie 1.57.0 of hoger nodig.
| Informatiebronnen | Beschikbare operaties | Gebruik in deze build |
|---|---|---|
| Acteurs | Voer een Actor uit, voer een Actor uit en haal de bijbehorende dataset op, Web Fetch, haal de meest recente uitvoering op | Hoofdschraapstap |
| Taken van de acteur | Voer een taak uit, voer een taak uit en verkrijg de bijbehorende dataset. | Invoergegevens van de cleaner opgeslagen in Apify |
| Executies door acteurs | Haal er één op, haal er veel op, afbreken | Foutopsporing en opruimen |
| Opslag | Haal items uit de dataset op, haal een record uit de sleutel-waardeopslag op. | Haal resultaten op via defaultDatasetId |
| Trigger | Bij een nieuw Apify-evenement (geslaagd, mislukt, afgebroken, time-out, willekeurig) | Gesplitste versie van de inbox voor grote teams |
Authenticatie werkt op twee manieren. Apify API- gegevens halen uw API-token uit de Apify Console, terwijl Apify OAuth2 API alleen op n8n Cloud met één klik verbinding maakt.
De Actor-bewerking biedt ook de volgende opties: Aangepaste invoer (JSON), Time-out in seconden, Geheugen in megabytes, Build Tag en Wachten tot het klaar is.
Laat het aangepaste invoerveld leeg en de Actor gebruikt het opgeslagen standaardinvoerveld.
Stapsgewijze handleiding voor de wekelijkse workflow voor het onderzoeken van contentmakers
Stap 1: Stel de lijst met makers samen in Google Sheets.
Maak een spreadsheet met de naam 'Creator Roster' met deze kolommen. Teamgenoten kunnen creators rechtstreeks vanuit Sheets toevoegen of pauzeren zonder n8n te hoeven openen.
Voeg een tweede tabblad toe met de naam 'Berichtenlogboek' . Elk beoordeeld bericht wordt daar opgeslagen, zodat je een historisch overzicht hebt voor een betere basislijn in de loop van de tijd.
Stap 2: Sla elke scraper op als een Apify Actor-taak.

Open elke actor in de Apify Console, stel redelijke limieten in en klik op 'Opslaan als een nieuwe taak'.
Apify Actor-taken slaan de invoer, de time-out en het geheugen op, waardoor de n8n-kant overzichtelijk blijft.
Schakel alle downloadopties uit. Videobestanden , covers en avatars voegen extra bestandsgrootte toe zonder het onderzoek te bevorderen.
Stap 3: Verbind de inloggegevens van Apify, Google Sheets en Gmail.

Installeer het Apify-knooppunt en voeg vervolgens drie inloggegevens toe in n8n: Apify API , Google Sheets OAuth2 en Gmail OAuth2 . Test ze alle drie voordat je verdergaat met bouwen.
Een ongeldige inlog halverwege een workflow zorgt voor onnodige inspanningen bij het scrapen, dus deze controle loont de moeite.
Stap 4: Configureer de n8n-planningstrigger
Voeg een Schedule Trigger-node toe met de volgende instellingen:
| foeild | Waarde |
|---|---|
| Triggerinterval | weken |
| Weken tussen de triggers | 1 |
| Activering op weekdagen | maandag |
| Trigger op uur | 7am |
| Trigger op minuut | 0 |
Stel een tijdzone in onder Workflowinstellingen . Zonder tijdzone gebruikt n8n standaard de tijdzone van de instantie, en bij zelfgehoste installaties wordt standaard America/New_York gebruikt.
Liever cron? Gebruik dan Aangepast (Cron) met 0 7 * * 1. In beide gevallen wordt de n8n Schedule Trigger pas geactiveerd nadat de workflow is opgeslagen en gepubliceerd.
Stap 5: Bouw platforminvoer met een codeknooppunt
Voeg een Google Sheets-node toe (Rij(en) ophalen, tabblad Makerslijst) en vervolgens een Code-node. Deze Code-node zet de rijen van de lijst om in één invoerobject per platform.
const rows = $input.all().map(i => i.json).filter(r => r.active === 'yes');
const since = $now.minus({ days: 7 }).toFormat('yyyy-MM-dd');
const pick = p => rows.filter(r => r.platform === p);
return [{ json: {
youtube: {
startUrls: pick('youtube').map(r => ({ url: r.profile_url })),
maxResults: 15, maxResultsShorts: 15, maxResultStreams: 0,
sortVideosBy: 'NEWEST', oldestPostDate: since
},
tiktok: {
profiles: pick('tiktok').map(r => r.handle),
resultsPerPage: 20, profileSorting: 'latest',
excludePinnedPosts: true, oldestPostDateUnified: since
},
instagram: {
directUrls: pick('instagram').map(r => r.profile_url),
resultsType: 'posts', resultsLimit: 20, onlyPostsNewerThan: since
}
}}];
$now is n8n's De Luxon-datum is ingebouwd, waardoor het venster van zeven dagen elke week automatisch doorschuift. Nooit meer handmatig de datum aanpassen.
Stap 6: Voer drie Apify-actors parallel uit.
Splits het Code-knooppunt op in drie Apify-knooppunten. Kies de Actor Tasks-resource met de bewerking die een taak uitvoert en de bijbehorende datasetitems retourneert.
Geef bij 'Aangepaste invoer' het overeenkomende object door als expressie:
{{ JSON.stringify($json.youtube) }}
Herhaal dit met $json.tiktok en $json.instagram. Aangepaste invoer overschrijft de opgeslagen taakinvoer, terwijl de time-out en het geheugen nog steeds afkomstig zijn van de taak zelf.
Liever twee aparte nodes? Voer de Actor uit met 'Wachten tot voltooiing ' ingeschakeld en voeg vervolgens 'Get dataset items using {{ $json.defaultDatasetId }}' toe. Beide paden leveren identieke gegevens op.

Stap 7: Samenvoegen en normaliseren tot één schema
Verbind alle drie de Apify-nodes met een Merge- node die is ingesteld op Append. Elk platform geeft velden een andere naam, dus een Code-node zet ze om in één gedeelde structuur.
const out = [];
for (const { json: p } of $input.all()) {
if (p.error) continue; // skip failed inputs
if (p.webVideoUrl) {
out.push({ platform: 'tiktok', post_id: p.id, creator: p.authorMeta?.name,
url: p.webVideoUrl, caption: p.text, published: p.createTimeISO,
views: p.playCount, likes: p.diggCount, comments: p.commentCount,
shares: p.shareCount });
} else if (p.shortCode) {
out.push({ platform: 'instagram', post_id: p.shortCode, creator: p.ownerUsername,
url: p.url, caption: p.caption, published: p.timestamp,
views: p.videoViewCount ?? null, likes: p.likesCount,
comments: p.commentsCount, shares: null });
} else if (p.viewCount !== undefined) {
out.push({ platform: 'youtube', post_id: p.id, creator: p.channelName,
url: p.url, caption: p.title, published: p.date,
views: p.viewCount, likes: p.likes, comments: p.commentsCount,
shares: null });
}
}
return out.map(json => ({ json }));
YouTube Scraper genereert foutmeldingen voor verwijderde video's of ontbrekende kanalen. De p.error-controle verwijdert deze meldingen voordat ze de score kunnen beïnvloeden.
Stap 8: Beoordeel elk bericht met behulp van Outlier- en Engagement-berekeningen.
Het aantal ruwe weergaven geeft grote accounts een vertekend beeld. Een uitschieterscore voor makers vergelijkt elk bericht met het gemiddelde van die maker zelf, waardoor een uitschieter van een klein kanaal eruit springt.
| metrisch | Formule | Wat het je vertelt |
|---|---|---|
| Uitschieterscore | berichtweergaven ÷ mediaan aantal weergaven van de maker | Hoeveel een bericht zijn eigen basislijn heeft overtroffen |
| Betrokkenheidspercentage | (likes + reacties + deelacties) ÷ weergaven × 100 | Hoe heftig de reacties van de kijkers waren. |
| Instagram-alternatief | Aantal likes van het bericht ÷ mediaan aantal likes van de maker | Werkt voor afbeeldingsberichten zonder weergaveteller. |
const items = $input.all().map(i => i.json);
const base = it => it.views || it.likes || 0;
const groups = {};
for (const it of items) (groups[it.creator] ??= []).push(base(it));
const median = a => { const s = [...a].sort((x, y) => x - y), m = Math.floor(s.length / 2);
return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2; };
return items.map(it => {
const med = median(groups[it.creator]) || 1;
const eng = it.views ? ((it.likes || 0) + (it.comments || 0) + (it.shares || 0)) / it.views * 100 : null;
return { json: { ...it, outlier: +(base(it) / med).toFixed(2),
engagement: eng === null ? null : +eng.toFixed(2) } };
}).sort((a, b) => b.json.outlier - a.json.outlier);
De berichten van één week vormen een smalle basislijn. Lees na een paar weken het tabblad 'Berichtenlogboek' en bereken de medianen op basis van de eerdere gegevens.
Stap 9: Blokkeer herhalingen met het knooppunt 'Duplicaten verwijderen'.

Voeg na het scoren een knooppunt 'Dubbele waarden verwijderen' toe. Stel de bewerking in op 'Verwijder items die in eerdere uitvoeringen zijn verwerkt en behoud items waar de waarde nieuw is'.
Deze permanente deduplicatie voorkomt dat een handmatige heractivering dezelfde berichten twee keer per e-mail verstuurt. Door de deduplicatiegeschiedenis te wissen, wordt deze functie tijdens het testen gereset.
Stap 10: Voeg de . toe AI Patroonanalyse-laag
Gebruik een Limit-node om de bovenste 15 berichten te behouden, en vervolgens een Aggregate-node ingesteld op 'All Item Data'. Dat geeft de hele batch door aan AI als één geheel.

Voeg vervolgens een basis-LLM-keten toe met een chatmodel dat je al gebruikt, zoals OpenAI, Anthropic of Gemini.
Schakel 'Specifiek uitvoerformaat vereisen' in en koppel een gestructureerde uitvoerparser.
Je bent een contentstrateeg voor korte teksten.
Hieronder staan de resultaten van deze week.'s De beste berichten van makers als JSON, gerangschikt op basis van uitschieterscore.
Retourneer JSON met:
– “patronen”: 3 terugkerende elementen of formats, die elk verwijzen naar URL's van berichten.
– “onderwerpen”: onderwerpen die in 2 of meer winnende berichten voorkomen
– “Ideeën”: 3 ideeën voor content die ons team deze week kan filmen
Gebruik alleen bewijs uit de data. Als een patroon zwak is, zeg dat dan.
{{ JSON.stringify($json.data) }}
Ondertiteling alleen mist de gesproken intro, die meestal het succes van een korte video bepaalt.'s lot.
Als transcripties zijn ingeschakeld in de YouTube- of TikTok-taak, neem dan de eerste regels van de ondertiteltekst over naar het genormaliseerde item.
Kort de tekst in tot ongeveer de eerste 300 tekens. Het model vergelijkt vervolgens de daadwerkelijke openingszinnen van de winnaars, en het gebruik van tokens blijft laag.
De regel "gebruik alleen bewijsmateriaal" is belangrijk. Het zorgt ervoor dat... AI content Patroonanalyse gebaseerd op echte berichten in plaats van algemene trendpraat.
Stap 11: Stel de HTML-samenvatting samen en verstuur deze via Gmail.
Een laatste Code-knooppunt koppelt gescoorde berichten met AI genereert de uitvoer en bouwt de e-mailtekst op:
const posts = $('Limit').all().map(i => i.json);
const ai = ('BasicLLMChain').first().json.output;constrows=posts.map(p=>`<tr><td>{p.platform}</td><td>p.creator</td><td><ahref="{p.url}">(p.caption||'').slice(0,70)</a></td><td>{p.outlier}x</td><td>p.engagement??'–'%</td></tr>`).join('');consthtml=`<h2>TopOutliers</h2><tableborder="1"cellpadding="6">{rows}</table>
<h2>Patterns</h2><ul>${ai.patterns.map(x => `<li>${x}</li>`).join('')}</ul>
<h2>Ideas</h2><ul>${ai.ideas.map(x => `<li>${x}</li>`).join('')}</ul>`;
return [{ json: { html } }];const items = $input.all().map(i => i.json);
const base = it => it.views || it.likes || 0;
const groups = {};
for (const it of items) (groups[it.creator] ??= []).push(base(it));
const median = a => { const s = [...a].sort((x, y) => x - y), m = Math.floor(s.length / 2);
return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2; };
return items.map(it => {
const med = median(groups[it.creator]) || 1;
const eng = it.views ? ((it.likes || 0) + (it.comments || 0) + (it.shares || 0)) / it.views * 100 : null;
return { json: { ...it, outlier: +(base(it) / med).toFixed(2),
engagement: eng === null ? null : +eng.toFixed(2) } };
}).sort((a, b) => b.json.outlier - a.json.outlier);
Voeg vervolgens een Gmail-node toe met de volgende instellingen:

Stap 12: Berichten registreren in Google Sheets en publiceren
Maak vanuit het knooppunt 'Dubbele waarden verwijderen' een vertakking naar een Google Sheets-knooppunt met behulp van 'Rij toevoegen' of 'Rij bijwerken' op het tabblad 'Berichtenlogboek'. Gebruik de post_id als basis, zodat vernieuwde statistieken oudere rijen overschrijven.
Stel de toewijzing in op 'Automatisch toewijzen' , aangezien de genormaliseerde veldnamen al overeenkomen met de kolommen. Voer de workflow eenmaal handmatig uit, controleer de e-mail en publiceer vervolgens de workflow.
Opschalen met Apify-schema's en gebeurtenistriggers

Een enkele geplande workflow is geschikt voor roosters van een paar dozijn makers. Daarboven houden lange scraping-taken de n8n-uitvoeringen minutenlang bezig en zorgt één traag platform ervoor dat de rest vastloopt.
De oplossing verdeelt het werk over beide platforms:
| Factor | Eén workflow | Gesplitste workflow |
|---|---|---|
| Installatie tijd | Sneller | Iets langer |
| Langdurige schraapklussen | De uitvoering wacht gedurende | Geen wachttijd binnen n8n |
| Eén platform faalt | Kan de spijsvertering blokkeren | Anderen landen nog steeds |
| Zelf gehoste behoeften | Geen extra's | Openbare WEBHOOK_URL voor de trigger |
Nieuwe Apify-schema's zijn standaard uitgeschakeld, dus schakel ze in nadat je ze hebt opgeslagen. Apify stuurt je ook een e-mail als een geplande taak niet start.
Week na week de pijplijn gezond houden
Stille mislukkingen zijn hier de echte vijand. Een lege inbox lijkt precies op een rustige week, dus stel vanaf dag één meldingen in.
Het gebruik blijft beperkt door alleen al de invoerlimieten. Strikte datumvensters, een maximum aantal resultaten per profiel en transcripties alleen waar nodig, zorgen ervoor dat elke wekelijkse download klein blijft.
Waar het scrapen van contentcreatie echt zijn grenzen bereikt

Bij elke presentatie over automatisering wordt dit onderdeel overgeslagen, dus hier is het duidelijk uitgelegd.
Beschouw je inbox als een onderzoeksassistent , niet als een orakel. Een mens beslist uiteindelijk welke patronen een fotoshoot waard zijn.
Snelle antwoorden op vragen over Apify en n8n Creator Research
Kan n8n Apify Actors activeren zonder code?
Het officiële Apify-knooppunt voert Actors of taken uit, wacht op resultaten en retourneert datasetitems, allemaal geconfigureerd via velden in n8n.
Welke makers kan deze workflow volgen?
Elk openbaar YouTube-kanaal, TikTok-profiel of Instagram-account. Wissel tussen de Apify Store-actors om meer platforms toe te voegen.
Werkt het Apify-knooppunt als een AI Agenttool?
Voeg de Apify-tool onder een AI Agent's tools waarmee een model op aanvraag gegevens uit een chat kan verzamelen.
Conclusie
Ontwerponderzoek beloont degene die als eerste een patroon ontdekt. Handmatig scrollen maakt dat een fulltime baan, en de meeste teams geven het na een paar weken stilletjes op.
Apify en n8n besteden die taak uit aan een systeem.
Store Actors halen nieuwe openbare berichten op, Code nodes beoordelen ze aan de hand van de score van elke maker.'s eigen basislijn, en een AI lagen Zet cijfers om in samenvattingen.
Begin met één geplande workflow en vijf makers die je al volgt. Zodra de samenvatting nuttig blijkt, kun je het aantal makers uitbreiden en overstappen op de gesplitste opzet met Apify Schedules.
Geef het drie of vier weken aan geregistreerde geschiedenis.'s wanneer de uitschieters steeds scherper worden en je maandagse inbox elk trendrapport dat je zou kunnen kopen overtreft.
AiMojo raadt aan:



