This workflow corresponds to n8n.io template #6536 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "eae8bb8d-38e3-4215-bcaa-0cbf37ad689d",
"name": "Start: Monthly Schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
360
],
"parameters": {
"rule": {
"interval": [
{
"field": "months"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "166350e8-b294-4426-8be0-162c58030b81",
"name": "1. Run TikTok Hashtag Scraper",
"type": "n8n-nodes-apify.apify",
"position": [
220,
360
],
"parameters": {
"build": "",
"memory": {},
"actorId": {
"__rl": true,
"mode": "list",
"value": "iegmveuLh4C0XH7Hc",
"cachedResultUrl": "https://console.apify.com/actors/undefined/input",
"cachedResultName": "tiktok-trending-hashtags-analytics"
},
"maxItems": 100,
"resource": "Actors",
"webhooks": "",
"operation": "Run actor",
"customBody": "{\n \"country\": \"US\",\n \"result_type\": \"top100\",\n \"top100_new_on_board\": false,\n \"top100_period\": \"30\"\n}",
"useCustomBody": true,
"requestOptions": {}
},
"credentials": {
"apifyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "40f9c3b6-7bc8-4ddd-9944-12c02a71945b",
"name": "2. Get Scraped Hashtag Data",
"type": "n8n-nodes-apify.apify",
"position": [
440,
360
],
"parameters": {
"omit": "",
"clean": true,
"fields": "",
"unwind": "",
"flatten": "",
"resource": "Datasets",
"datasetId": "={{ $json.data.defaultDatasetId }}",
"operation": "Get items",
"attachment": false,
"requestOptions": {}
},
"credentials": {
"apifyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "29c2b157-cb90-42a5-9bf4-8fc3540fe0a4",
"name": "3. Split Hashtags into Items",
"type": "n8n-nodes-base.splitOut",
"position": [
660,
360
],
"parameters": {
"options": {},
"fieldToSplitOut": "data"
},
"typeVersion": 1
},
{
"id": "386898b1-0ea3-41dc-ac70-a5189e5e7fd2",
"name": "4. Save Hashtag to Airtable",
"type": "n8n-nodes-base.airtable",
"position": [
880,
360
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appwEOGxCbXgEGwjT",
"cachedResultUrl": "https://airtable.com/appwEOGxCbXgEGwjT",
"cachedResultName": "Creative Ideation"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblwu2gVIYLTwN1yq",
"cachedResultUrl": "https://airtable.com/appwEOGxCbXgEGwjT/tblwu2gVIYLTwN1yq",
"cachedResultName": "Trending Hashtags"
},
"columns": {
"value": {
"ID": "={{ $json.hashtag_id }}",
"Name": "={{ $json.hashtag_name }}",
"Rank": "={{ $json.rank }}",
"Status": "Added",
"Country": "={{ $json.country_info.value }}",
"Industry": "={{ $json.industry_info.value }}",
"Date Added": "={{$now}}",
"Video Views": "={{ $json.video_views }}",
"Publish Count": "={{ $json.publish_cnt }}"
},
"schema": [
{
"id": "ID",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Industry",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Industry",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date Added",
"type": "dateTime",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Date Added",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Added",
"value": "Added"
},
{
"name": "Scraped",
"value": "Scraped"
},
{
"name": "",
"value": ""
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Publish Count",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Publish Count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Video Views",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Video Views",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Rank",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Rank",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"typecast": true
},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "6dd6e4f6-6d32-4e7f-b1b8-c3cd20eb7e79",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1080,
-40
],
"parameters": {
"width": 660,
"height": 1500,
"content": "## Archive Trending TikTok Hashtags to Airtable with Apify\nThis template uses a community node (`@apify/n8n-nodes-apify`). It will not work without the required node installed.\n\n### Who it's for\n**Social Media Managers & Content Creators**\nDiscover relevant hashtags and build content calendars based on real trends.\n**Marketing & Brand Strategists**\nTrack cultural shifts and find opportunities by understanding regional audience interests.\n**Data Analysts**\nCreate a dataset for analyzing hashtag trends, virality, and performance over time.\n\n### What it does\nThis workflow automates trend discovery and data collection from TikTok into Airtable.\n* **Schedule**: Triggers automatically once a month.\n* **Scrape**: Runs an Apify Actor to scrape TikTok\u2019s top 100 trending hashtags for a specified country (default is US).\n* **Retrieve**: Fetches the dataset with hashtag metrics after scraping completes.\n* **Process & Load**: Splits the dataset and saves each hashtag as a new record in Airtable with relevant details.\n\n### How to set it up\n**1. Install the Community Node**\nGo to `Settings > Community Nodes` on your n8n instance and install `@apify/n8n-nodes-apify`.\n\n**2. Prepare Airtable**\nCreate a base with a table named `Trending Hashtags`:\n* ID\n* Name\n* Country\n* Industry\n* Date Added\n* Publish Count\n* Video Views\n* Rank\n* Status\n\n\n**3. Add Credentials**\nAdd your Apify and Airtable credentials in n8n.\n\n**4. Configure Scraper (Optional)**\nOpen the `1. Run TikTok Hashtag Scraper` node.\nIn the **Custom Body**, you can adjust:\n * `country_code` (e.g., `\"US\"` to `\"GB\"`)\n * `top100_period` (e.g., `\"30\"` to `\"7\"`)\n\n\n**5. Configure Airtable Node**\nOpen the `4. Save Hashtag to Airtable` node.\nSelect the correct Airtable Base and the `Trending Hashtags` table.\n\n**6. Activate Workflow**\nSave and activate the workflow. It will now run automatically every month.\n\n### Requirements\n* Installed community node: `@apify/n8n-nodes-apify`\n* Apify account\n* Airtable account with a structured base\n\n### How to customize the workflow\n**Change Schedule**\nModify the `Start: Monthly Schedule` node to run weekly or on another interval.\n**Add Notifications**\nAttach a Slack or Discord node after the `4. Save Hashtag to Airtable` node to alert your team when new data is added.\n**Filter Hashtags**\nUse a `Filter` node after `3. Split Hashtags into Items` to only save hashtags that meet specific conditions (e.g., over 1M video views).\n\n"
},
"typeVersion": 1
}
],
"connections": {
"Start: Monthly Schedule": {
"main": [
[
{
"node": "1. Run TikTok Hashtag Scraper",
"type": "main",
"index": 0
}
]
]
},
"2. Get Scraped Hashtag Data": {
"main": [
[
{
"node": "3. Split Hashtags into Items",
"type": "main",
"index": 0
}
]
]
},
"4. Save Hashtag to Airtable": {
"main": [
[]
]
},
"3. Split Hashtags into Items": {
"main": [
[
{
"node": "4. Save Hashtag to Airtable",
"type": "main",
"index": 0
}
]
]
},
"1. Run TikTok Hashtag Scraper": {
"main": [
[
{
"node": "2. Get Scraped Hashtag Data",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
airtableTokenApiapifyApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This template uses a community node (). It will not work without the required node installed.
Source: https://n8n.io/workflows/6536/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Gemini - Video Analysis (NEW). Uses httpRequest, stickyNote, sort, limit. Scheduled trigger; 29 nodes.
Convert your customer satisfaction into high-converting social media content with this fully automated social proof pipeline. This workflow scans your database for top-tier reviews, generates a brande
A guide to understand, operate, and extend the workflow.
This n8n template acts as your automated social media data analyst. Instead of manually checking your analytics across different dashboards every week, this workflow scrapes your latest stats, calcula
What It Does