Справочник
Данные
Датасет — это таблица, которая принадлежит рабочему пространству: колонки, которым вы дали имя и тип, и строки под ними. Он живёт в рабочем пространстве, а не на одной машине, поэтому коллега открывает ту же таблицу, что и вы, а автоматизация, отработавшая ночью, пишет в ту, которую вы читали утром.
Содержание
Таблица, которая принадлежит рабочему пространству
Датасет — это не файл на этой машине. Он принадлежит рабочему пространству, и именно поэтому в него имеет смысл складывать результаты: коллега открывает ту же таблицу, что открыта у вас, а запуск, который закончится в три часа ночи, пишет в ту, которую вы читали вчера. Ничего никуда для этого пересылать не нужно.

У колонок есть тип, и именно его соблюдает сетка: текст и длинный текст, число, флажок, дата и дата со временем, URL, адрес почты, телефон, выбор из цветных вариантов и теги. Номер строки и дата создания вычисляются, а не хранятся, — поддерживать их вручную не приходится.
Ещё три хранят не значение, а объект рабочего пространства — профиль, автоматизацию или прокси, — и хранят его идентификатор, поэтому ячейка указывает на то же самое и после того, как кто-то это переименовал. Колонка может держать и параметр автоматизации: именно так таблица кормит процесс, который её читает.
Папки раскладывают датасеты, когда список растёт, а удалённый ждёт в корзине, а не исчезает сразу.
Удалённый датасет ждёт в корзине тридцать дней, после чего вычищается. Восстановите его оттуда или очистите корзину сами, если ждать не хочется.
Колонки и их типы
У каждой колонки есть тип, и именно его соблюдает сетка: от типа зависит редактор в ячейке, порядок сортировки и то, как должно выглядеть значение, чтобы его приняли. Типов на выбор: 17.
- Текст
text - Длинный текст
longText - Число
number - Хранится как настоящее число, поэтому сортировка и диапазоны числовые.
- Флажок
checkbox - Дата
date - Хранится как YYYY-MM-DD.
- Дата и время
datetime - Хранится как полная метка времени в UTC.
- URL
url - Почта
email - Телефон
phone - Статус (один вариант)
select - Одна цветная плашка в строке — из списка, который вы задаёте.
- Теги (несколько вариантов)
tags - Сколько угодно плашек в строке — из списка, который вы задаёте.
- Дата создания
createdAt - Читается из самой строки. Не редактируется.
- Номер строки
rowNumber - Позиция строки на странице. Не редактируется.
- Параметр автоматизации
parameter - Хранит ссылку вида {{vars.email}}, которую разрешают автоматизации.
- Профиль
profile - Хранит один из профилей рабочего пространства; ячейка выбирает его из списка.
- Автоматизация
automation - Хранит одну из автоматизаций рабочего пространства, выбранную из списка.
- Прокси
proxy - Хранит один из прокси рабочего пространства, выбранный из списка.
Дата создания и номер строки вычисляются, а не хранятся, — они читаются из самой строки, поэтому их нечего поддерживать вручную и нечего редактировать.

На параметре автоматизации стоит задержаться. Ячейка такой колонки хранит не значение, а ссылку — {{vars.email}}, ровно в том виде, в каком её пишет автоматизация, — и редактор предлагает каждый параметр, объявленный любой автоматизацией рабочего пространства, так что вы выбираете из настоящего списка, а не вводите имя наугад. В этом и разница между датасетом, который отчитывается о случившемся, и датасетом, который является списком работ: шаг loadRows читает колонку обратно, и каждая строка становится входом для одного прохода завтрашнего запуска.
Как в него попадают строки
Большинство строк приходит само. Самый короткий путь — вкладка «Скраперы»: выберите готовый сборщик, заполните его форму, и строки лягут в новую собственную таблицу — окно браузера не открывается, слот автоматизации не тратится. Второй путь, он же общий, — автоматизация, работающая на профиле: она пишет извлечённое прямо в датасет, а шаги сохранения и загрузки строк позволяют одной автоматизации передать таблицу следующей: собрали сегодня, действуем завтра. Шаг запуска скрапера соединяет оба — он запускает сборщик изнутри процесса, и это единственный путь, который может складывать результат в названную вами таблицу, а не в новую каждый раз, так что сбор по расписанию наращивает одну таблицу вместо того, чтобы каждую ночь оставлять после себя ещё одну.
Какую таблицу заполнит скрапер, решает только шаг runScraper. Запущенный со вкладки «Скраперы», из ассистента или через API, сбор всегда заводит собственную таблицу, названную по запросу и минуте. Шаг вместо этого может назвать одну таблицу и складывать каждый запуск в неё — создав её с колонками этого сборщика, если её ещё нет, дописывая после этого или обновляя на месте по колонке, с которой вы сопоставляете. Ночной сбор тогда растит одну таблицу, которую вы откроете в понедельник, а не семь.
Импорт файла принимает CSV, JSON, TXT или XLSX и либо строит датасет по собственным заголовкам файла, либо дописывает в уже существующий, добавляя к нему колонки, которые файл принёс с собой.

Импорт задаёт один вопрос, и он полезный. «Новый датасет» стартует пустым и принимает каждую строку файла, беря колонки из его же строки заголовков. «Существующий датасет» дописывает в таблицу, которая у вас уже есть, а любая принесённая файлом колонка, которой в таблице нет, вливается, а не отбрасывается.
Ассистент — четвёртый способ, и часто самый быстрый. Попросите у него таблицу по имени, и он прочитает строки, отфильтрует и посчитает их, добавит или исправит, вычистит дубликаты. Всё пакетное или разрушительное поднимает карточку подтверждения до запуска, поэтому просьба, которая обернулась четырьмя тысячами строк, сначала спросит вас.
Работа со строками
Нажмите на ячейку, чтобы отредактировать её на месте; у каждого типа колонки свой редактор. Строки и колонки добавляются прямо из сетки, есть фильтр и сортировка, галочками отмечают строки для пакетного удаления, а первую колонку можно закрепить, когда таблица шире окна. Экспорт отдаёт всё целиком в CSV или JSON.
Строки подгружаются страницами прямо из базы данных в порядке добавления, поэтому вы видите сам датасет, а не одну его страницу, притворяющуюся отсортированной. Таблица на пятьдесят тысяч строк открывается так же быстро, как таблица на пятьдесят.
Фильтрация и сортировка по той же причине происходят на сервере и по всей таблице, а не по странице перед вами. Третье нажатие на заголовок колонки снимает сортировку и возвращает таблицу к её хранимому порядку — ради этого порядок и нужен: это единственная раскладка, которая всегда является правдой о датасете.
Потолки — это как раз те числа, которые стоит знать, прежде чем на них строить: сто тысяч строк в датасете, двести датасетов в рабочем пространстве, шестьдесят колонок в таблице и 64 КиБ в любой отдельной строке.
Встроенное назначение
Ваши датасеты — одно из назначений, в которые могут писать шаги баз данных. saveRows и loadRows указывают на вашу собственную таблицу ровно так же, как на Supabase, Google Sheet или CSV на диске: вы выбираете Argus Datasets и называете таблицу. Учётных данных хранить не нужно, подключать нечего — это и так ваше рабочее пространство.
Две вещи, которых большинство соседей не умеет. Оно делает upsert по фильтру: дайте saveRows колонку для сопоставления — и каждая строка с совпавшим значением будет слита поверх, без всякого требуемого или подразумеваемого уникального индекса. И сопоставленный ключ, которому не нашлось колонки, — это добавление, а не ошибка, поэтому запуск, начавший возвращать на одно поле больше, не падает. Supabase в этом месте отказывает: добавить туда колонку — это изменение схемы базы, в которой Argus всего лишь гость.
Назначением по умолчанию оно не бывает никогда, и это намеренно. Шаг saveRows обязан назвать его явно, поэтому ничто из написанного вами против собственной базы не начнёт тихо заполнять датасет. Полный каталог остальных — на странице «Базы данных и файлы».
Датасеты есть в локальном API, и вся вкладка из него доступна: создать датасет, заменить объявленные колонки, дописать строки, переписать или удалить их по идентификатору, запросить с фильтрами и агрегатами, провести через корзину. У каждой из этих операций есть и инструмент для агента, поэтому встроенный ассистент и ваш собственный код управляют одной и той же таблицей одинаково. Чтение идёт страницами, а не выгрузкой целиком: запрос просматривает ограниченный срез и сообщает, если датасет оказался больше, — так частичный ответ никогда не выдаётся за всю правду.
Чтение страницы без браузера
Шаг reach забирает страницу, не открывая её. Канал он выбирает по URL — или вы называете его сами:
YouTube, Reddit и RSS отвечают структурированными строками — по одной на видео, пост или элемент, — а web отдаёт страницу как markdown. Ответ ложится в переменную, которую вы назвали, а превращает его в таблицу шаг saveRows, настроенный писать по строке на элемент. Два шага, без браузера и без профиля.
Всё, что забирает reach, уходит через собственное соединение лаунчера — не через прокси профиля и не с его cookie. Именно поэтому он быстрый и дешёвый, и в этом же его предел: страница за логином требует настоящего шага браузера, работающего от той личности, которая туда вошла.
Reach стоит рядом с остальными шагами данных на странице «Чтение и хранение данных», бок о бок с двумя, которые двигают строки туда и обратно.
Дайте результатам куда приземлиться
Вкладка «Данные» — в лаунчере. Датасет стоит больше всего тогда, когда его что-то наполняет, поэтому обычно сначала автоматизация — а календарь после неё.