Usar TikTok, Airtable y Apify para archivar hashtags populares de TikTok

Intermedio

Este es unMarket Researchflujo de automatización del dominio deautomatización que contiene 6 nodos.Utiliza principalmente nodos como Apify, Airtable, SplitOut, ScheduleTrigger. Usar TikTok, Airtable y Apify para archivar hashtags populares de TikTok

Requisitos previos
  • Clave de API de Airtable
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "6493d417e13567dbe50b02d0e6eea87fdb5934d9207730b096adeb482873eda1",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "eae8bb8d-38e3-4215-bcaa-0cbf37ad689d",
      "name": "Inicio: Programación Mensual",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        360
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "months"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "166350e8-b294-4426-8be0-162c58030b81",
      "name": "1. Ejecutar 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": {
          "id": "P2sbylUrTu44kyCw",
          "name": "Apify account sigma"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "40f9c3b6-7bc8-4ddd-9944-12c02a71945b",
      "name": "2. Obtener datos de etiquetas raspados",
      "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": {
          "id": "P2sbylUrTu44kyCw",
          "name": "Apify account sigma"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "29c2b157-cb90-42a5-9bf4-8fc3540fe0a4",
      "name": "3. Dividir etiquetas en elementos",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        660,
        360
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "386898b1-0ea3-41dc-ac70-a5189e5e7fd2",
      "name": "4. Guardar etiqueta en 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": {
          "id": "zCSIQRPMWSjY2aVg",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "6dd6e4f6-6d32-4e7f-b1b8-c3cd20eb7e79",
      "name": "Nota adhesiva",
      "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’s 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
    }
  ],
  "pinData": {},
  "connections": {
    "eae8bb8d-38e3-4215-bcaa-0cbf37ad689d": {
      "main": [
        [
          {
            "node": "166350e8-b294-4426-8be0-162c58030b81",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "40f9c3b6-7bc8-4ddd-9944-12c02a71945b": {
      "main": [
        [
          {
            "node": "29c2b157-cb90-42a5-9bf4-8fc3540fe0a4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "386898b1-0ea3-41dc-ac70-a5189e5e7fd2": {
      "main": [
        []
      ]
    },
    "29c2b157-cb90-42a5-9bf4-8fc3540fe0a4": {
      "main": [
        [
          {
            "node": "386898b1-0ea3-41dc-ac70-a5189e5e7fd2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "166350e8-b294-4426-8be0-162c58030b81": {
      "main": [
        [
          {
            "node": "40f9c3b6-7bc8-4ddd-9944-12c02a71945b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Investigación de mercado

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos6
Categoría1
Tipos de nodos5
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Fahmi Fahreza

Fahmi Fahreza

@fahmiiireza

Backend Developer turns to AI Automation Developer

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34