Как экспортировать задачи и не создать дубли при импорте
Что решает этот сценарий
Экспорт сохраняет ваши проекты, задачи и пункты чек-листов из планировщика в один JSON-файл. Импорт загружает такой файл обратно в текущий аккаунт. Главное свойство импорта: он не добавляет записи вслепую, а сопоставляет их по стабильным идентификаторам (ID). Запись с уже известным ID обновляется, запись с новым ID добавляется. Поэтому один и тот же файл можно загрузить повторно, и копий проектов и задач не появится.
Чтобы не ошибиться, полезно различать четыре ситуации: сохранённый файл, повторный импорт того же файла, изменённую запись и импорт в новый аккаунт.
Сохранённый файл
Это снимок данных на момент экспорта. В нём есть служебные поля: format со значением «seo-toolkit-planner», version со значением 1 и время выгрузки exported_at. Дальше идёт список проектов. У каждого проекта есть ID и название. У задач есть ID, заголовок, срок, отметка о выполнении и чек-лист. У пунктов чек-листа есть ID, текст и отметка о выполнении. Файл сам не обновляется: всё, что вы измените в планировщике после выгрузки, в него не попадёт.
Повторный импорт того же файла
Записи сопоставляются по ID, поэтому повторная загрузка того же файла не удваивает проекты, задачи и пункты чек-листов. Сколько бы раз вы ни загрузили неизменённый файл, каждая запись в аккаунте останется в единственном экземпляре.
Изменённая запись
Если запись с таким ID уже есть в аккаунте, а в файле её данные отличаются, импорт обновит её значениями из файла. Записи, которых в файле нет, остаются нетронутыми. Импорт объединяет данные, а не заменяет содержимое аккаунта целиком.
Новый аккаунт
Импорт в другой аккаунт создаёт в нём изолированную копию данных. Он не открывает доступ к исходному аккаунту и не связывает два аккаунта между собой. Это не совместная работа и не синхронизация.
Порядок действий
Шаги ниже описаны общими словами. Публичный интерфейс планировщика собирается отдельно, поэтому точные подписи кнопок здесь не приводятся.
1. Войдите в свой аккаунт. Экспорт и импорт работают только с данными того аккаунта, под которым выполнен вход.
2. Выполните экспорт и сохраните JSON-файл в месте, которому доверяете. Внутри ваши собственные тексты: названия проектов, задачи и пункты чек-листов.
3. Если правите файл вручную, меняйте только содержимое: названия, заголовки, тексты, сроки и отметки о выполнении. Не трогайте ID и служебные поля format и version. Не добавляйте новые поля, в том числе user_id или чужие идентификаторы. Именно по ID импорт понимает, какую запись обновить. Если изменить ID, существующая запись будет воспринята как новая, а старая при этом останется, и в аккаунте появится дубль.
4. Сроки записывайте в формате ГГГГ-ММ-ДД, например 2026-10-05, или указывайте null, если срока нет. Даты календарные: сервис не сдвигает их на день из-за разницы часовых поясов. Одна некорректная дата приведёт к отказу всего импорта.
5. Проверьте файл перед загрузкой. Предпросмотр импорта в интерфейсе пока только планируется, поэтому сверять содержимое нужно самостоятельно.
6. Выполните импорт в текущий аккаунт. Импорт атомарный: применяются либо все изменения из файла, либо, при любой ошибке, ни одно. Частично загруженных данных не бывает.
7. После импорта просмотрите проекты и задачи. Записи с новыми ID должны добавиться, совпавшие обновиться, а отсутствующие в файле остаться без изменений.
Практический пример
Учебный пример: названия, даты и последовательность действий условные и нужны только для иллюстрации логики объединения.
В аккаунте есть проект «Ремонт кухни» с задачей «Купить плитку» со сроком 2026-10-05. В её чек-листе два пункта: «Замерить стены» и «Выбрать цвет». Вы делаете экспорт и сохраняете файл.
Повторный импорт. На следующий день вы загружаете тот же файл, ничего не меняя в сервисе. Все ID уже известны, значения совпадают. В аккаунте по-прежнему один проект, одна задача и два пункта чек-листа.
Изменённая запись. В сохранённом файле вы отмечаете пункт «Замерить стены» выполненным (done: true) и переносите срок задачи на 2026-10-12, не трогая ID. После импорта у существующей задачи обновится срок, у пункта обновится отметка. Новых записей не появится.
Новая запись в сервисе. Затем прямо в планировщике вы добавляете задачу «Вызвать электрика», которой в файле нет, и снова импортируете файл. Задача «Вызвать электрика» останется на месте: импорт не удаляет то, чего нет в файле.
Старый снимок поверх новых правок. Допустим, после экспорта вы переименовали в сервисе «Купить плитку» в «Купить плитку и затирку», а потом загрузили старый файл. Запись с тем же ID получит значение из файла, то есть прежнее название. Поэтому перед импортом давнего файла проверьте, не перезапишет ли он более свежие изменения.
Новый аккаунт. Тот же файл, загруженный в другой аккаунт, создаст там независимую копию проекта «Ремонт кухни». Владелец второго аккаунта не получает доступа к исходному, а копия живёт отдельно от оригинала.
Ошибка в файле. Импорт будет отклонён целиком, если в файле есть две задачи с одинаковым ID, дата записана как 12.10.2026, добавлено лишнее поле или JSON повреждён. В аккаунте при этом ничего не изменится. Исправьте файл и загрузите его снова.
Ограничения и источник сведений
Лимиты. На один аккаунт допускается не более 200 проектов и 5000 задач, в одной задаче не более 100 пунктов чек-листа, размер импортируемого файла до 1 MiB. Лимиты проверяются и после объединения. Если файл сам по себе в них укладывается, но вместе с уже имеющимися данными превысит допустимое количество, импорт будет отклонён целиком.
Чего импорт не делает. Он не удаляет записи и не заменяет содержимое аккаунта целиком. Он не переносит данные между аккаунтами иначе как в виде изолированной копии. Он не принимает чужие user_id, неизвестные поля, дубли ID, некорректные даты и повреждённый JSON.
Экспорт не является автоматическим резервным копированием. Файл появляется только тогда, когда вы сами его выгрузили, и за его сохранность отвечаете вы. На сервере есть проверенный механизм резервного копирования и восстановления базы, но он предназначен для администратора. Пользовательская кнопка автоматического восстановления не подтверждена. Также не подтверждены офлайн-синхронизация, восстановление пароля, напоминания, совместные проекты и интеграции с календарями.
Хранение. Данные планировщика хранятся на сервере в отдельной базе, не в CMS, и привязаны к аккаунту. Обновление версии сервиса и перезапуск базу не заменяют. При этом нет сквозного шифрования, данные не скрыты от администратора и нет гарантии, что они никогда не потеряются. Поэтому собственная копия в виде экспорта остаётся полезной.
Учётные данные. Вход выполняется по имени пользователя и паролю. По описанной структуре файл экспорта содержит только проекты, задачи и чек-листы, учётных данных в нём нет. Добавлять их в файл не нужно.
Источник. Статья основана на документации подтверждённых возможностей планировщика SEO Toolkit: техническом контракте серверной части и её проверенных тестах по состоянию на 28 сентября 2026 года. Внешние исследования не использовались. Интерфейс описан в общих словах, потому что публичная часть сервиса строится отдельно.
