Найти в Дзене

Автоматический мониторинг постов ВК по хештегу с помощью n8n

Оглавление

Решаем задачу ежедневного отслеживания всех постов с определенным хештегом в ВК. Нужно собирать статистику - лайки, просмотры, комментарии - и складывать все в таблицу.

Полезно для: SMM-щиков, маркетологов, аналитиков и всех, кто работает с упоминаниями в соцсетях.

В статье разберем: как настроить автоматический сбор данных через VK API, обработку информации и сохранение в Google Таблицы.

Что получится

  • Система по расписанию сама ищет новые посты с хештегом
  • Собирает всю статистику по каждому посту (просмотры, лайки, комментарии, репосты)
  • Записывает все в Google Таблицы без дублей

Инструменты

  • n8n - для автоматизации
  • VK API - для поиска постов и получения данных
  • Google Sheets - для хранения результатов

Весь процесс состоит из 10 узлов в n8n, которые работают как конвейер - каждый делает свою часть работы.

!!! Больше кейсов? Переходите на наш канал “AI для продакта”.

Схема workflow

Вот как выглядит наш процесс:

  1. Schedule Trigger - запускает процесс по расписанию
  2. Настройка параметров - задаем хештег, токен VK и временные рамки поиска
  3. Поиск постов - ищем посты через VK API
  4. Обработка постов - извлекаем нужные данные из ответа API
  5. Получить пользователей - запрашиваем данные о владельцах личных страниц
  6. Получить группы - запрашиваем данные о группах/пабликах
  7. Чтение таблицы - читаем существующие данные из Google Sheets
  8. Финальная обработка - объединяем все данные и готовим к записи
  9. Запись в таблицу - сохраняем результат в Google Sheets

Узлы 5, 6 и 7 работают параллельно после узла 4, а потом все данные сходятся в узле 8.

Детальная настройка

1. Schedule Trigger - запуск по расписанию

Первый узел просто запускает весь процесс по расписанию. В нашем случае настроен на каждый день в 6:00 утра.

-2

Настройки:

  • Тип узла: Schedule Trigger
  • Правило: Interval
  • Режим: Every Day
  • Час: 6 (можно поставить любое удобное время)

Никаких сложных настроек тут нет - просто выбираете когда хотите запускать мониторинг.

2. Настройка параметров поиска

-3

Здесь задаем все переменные, которые понадобятся для работы с VK API.

Тип узла: Set (Edit Fields)

Переменные:

Формулы для времени:

Ищем за последние 2 дня для надежности
start_time: {{ Math.floor((new Date().getTime() - 2*24*60*60*1000) / 1000) }}

До текущего момента
end_time: {{ Math.floor(new Date().getTime() / 1000) }}

VK API работает с временными метками в формате Unix timestamp, поэтому переводим обычное время в секунды.

3. Поиск постов через VK API

Теперь идем искать посты с нашим хештегом.

-4

Тип узла: HTTP Request

Настройки:

  • URL: https://api.vk.com/method/newsfeed.search
  • Метод: GET
  • Параметры запроса:
    q = #{{ $json.hashtag }} (хештег с решеткой)
    access_token = {{ $json.vk_token }}
    v = 5.131 (версия API)
    count = 200 (максимум постов за запрос)
    start_time = {{ $json.start_time }}
    end_time = {{ $json.end_time }}

VK API вернет JSON с массивом найденных постов в поле response.items. Каждый пост содержит кучу информации - ID, текст, дату, статистику и т.д.

4. Обработка найденных постов

Здесь превращаем сырые данные от VK в понятный формат.

-5

Тип узла: Code (JavaScript)

Что делает код:

  • Берет массив постов из ответа API
  • Преобразует timestamp в нормальную дату и время
  • Определяет тип аккаунта (группа или личная страница)
  • Формирует ссылки на профили
  • Извлекает статистику (просмотры, лайки, комментарии, репосты)
  • Разделяет ID пользователей и групп для следующих запросов

Скачать код для узла можно тут

Ключевая логика:

// Определяем тип аккаунта по ID
const isGroup = post.owner_id < 0;
const accountType = isGroup ? 'паблик' : 'личная страница';

// Формируем правильную ссылку
const link = `https://vk.com/${isGroup ? 'club' + Math.abs(post.owner_id) : 'id' + post.owner_id}`;

На выходе получаем обработанные посты плюс списки ID пользователей и групп.

5. Получение данных о пользователях

Чтобы знать не только статистику постов, но и размер аудитории автора, запрашиваем данные о пользователях.

-6
-7

Тип узла: HTTP Request

Настройки:

  • URL: https://api.vk.com/method/users.get
  • Параметры:user_ids = {{ $json.user_ids }} (список ID через запятую)
    fields = followers_count (количество подписчиков)
    access_token и v - как обычно

6. Получение данных о группах

То же самое, но для групп и пабликов.

-8

Тип узла: HTTP Request

Настройки:

  • URL: https://api.vk.com/method/groups.getById
  • Параметры:group_ids = {{ $json.group_ids }}
    fields = members_count (количество участников)

7. Чтение существующих данных из таблицы

Этот узел читает то, что уже есть в Google Sheets. Нужно чтобы не дублировать посты и правильно вести счетчик дней.

-9

Тип узла: Google Sheets
Операция: Read

Настройка подключения к Google Sheets:

  1. Создайте Service Account в Google Cloud Console
  2. Скачайте JSON-ключ и загрузите его в n8n (Settings → Credentials → Google Service Account) или вставьте при настройки подключения
    О том, как подключаться к
    Google можно посмотреть тут.
  3. Дайте этому аккаунту доступ к вашей таблице (Share → добавить email из Service Account с правами редактора)

Настройки узла:

  • Документ: выберите вашу Google Таблицу
  • Лист: "Мониторинг" (или как назвали свой лист)

Просто читаем все данные из листа. Дальше в коде будем проверять, какие посты уже есть в таблице.

8. Финальная обработка - объединяем все данные

Самый сложный узел. Здесь собираем все кусочки в единое целое.

-10

Тип узла: Code

Что происходит:

  1. Читаем данные от всех предыдущих узлов
  2. Создаем словари пользователей и групп (ID → имя + количество подписчиков)
  3. Для каждого поста создаем уникальный ID: owner_id_post_id
  4. Проверяем, есть ли пост уже в таблице
  5. Если больше 7 дней - исключаем из обработки
  6. Формируем финальную структуру данных

Зачем счетчик дней: Этот счетчик используется в других workflow для обновления статистики по уже найденным постам. Отслеживаем посты только первую неделю.

Скачать код для узла можно тут.

9. Запись в Google Sheets

Последний шаг - сохраняем все собранные данные в таблицу.

-11

Тип узла: Google Sheets
Операция: Append or Update

Настройки:

  • Документ: выбираем нужную Google Таблицу
  • Лист: "Мониторинг" (ваше название листа)
  • Режим: Append or Update (добавляет новые строки или обновляет существующие)
  • Ключ для сопоставления: "Уникальный ID поста"

Структура данных таблицы:

  • Дата публикации
  • Время
  • Тип (паблик/личная страница)
  • Ссылка на аккаунт
  • Название страницы
  • Количество подписчиков/друзей
  • Количество просмотров
  • Количество лайков
  • Комментарии
  • Репосты
  • ID пользователя/группы
  • Уникальный ID поста
  • День отслеживания

Благодаря режиму "Append or Update" новые посты добавляются, а для существующих обновляется счетчик дня.

-12

Результат

После настройки получаем полностью автоматический мониторинг. Каждый день система:

  1. Ищет новые посты с вашим хештегом
  2. Собирает детальную статистику по каждому
  3. Добавляет информацию об авторах (имена, размер аудитории)
  4. Ведет счетчик дней для дальнейшей работы с данными
  5. Сохраняет все в удобной таблице без дублей

Можно настроить любую частоту запуска и легко адаптировать под другие хештеги или даже другие соцсети.

Готовый workflow

Не хотите настраивать все с нуля? Можете скачать готовый workflow по ссылке и импортировать в свой n8n. Останется только:

  • Получить токен VK API
  • Настроить подключение к Google Sheets
  • Указать свой хештег
  • Выбрать удобное время запуска

Ссылка на скачивание workflow

!!! Больше кейсов? Переходите на наш канал “AI для продакта”.