Use cases
Move work with CSV and JSON
Plan a bounded, verified migration of task and Table records from spreadsheets or another tool without claiming one-click compatibility.
v0.3.0 referenceReviewed
On this page
Exports from another tool are a starting point, not a promise of a lossless one-click migration. Hopya accepts its documented CSV/JSON task and Table inputs; it does not automatically translate Notion blocks, Trello board JSON, Asana workflows, permissions, comments, or attachments.
Inventory what must survive
Before switching, list the data that matters: task titles/bodies, status meaning, dates, assignees, custom fields, notes, attachments, and historical discussion. Keep the original export private and unchanged. Export permissions and formats vary by source product and plan.
Do not delete or cancel the source system until the intended destination records and file recovery have been verified. Consider professional-services help when transformation or reconciliation is substantial.
Prepare the destination
Create a workspace and destination lists, add the necessary Hopya accounts/memberships, and configure effective statuses and custom fields before import. Task imports target one list; a status must be valid for that destination, and an assignee must already be an active workspace member.
For structured records rather than tasks, choose a Table instead. Create/select the correct column types and options; do not use task import to recreate a generic database.
Map a small task batch
- Import & export → Tasks; download template.
- Select destination list and map columns/keys; exactly one title mapping.
- Use Ignore for source-only metadata, then import a small reviewed batch.
| Mapping / limit | Contract |
|---|---|
| Fields | Title, description, status, priority, dates, tags, assignee, existing custom fields |
| CSV dates / tags | YYYY-MM-DD / semicolon-separated |
| Typed fields | Valid destination-field values required |
| Batch | At most 500 records, bounded payload |
| Validation failure | Entire batch rejected, not partial success |
Imports create tasks; they are not an automatic deduplicating/upsert synchronization service. If a request’s outcome is uncertain, inspect the destination before resubmitting to avoid duplicates.
Transfer Tables with the right format
| Table format | Choose it when / behavior |
|---|---|
| CSV | Convenient manual mapping; exact column names; new columns text; empty/null distinctions flatten |
| Typed JSON | Exact types/options/null/false needed; imported keys remapped |
| Either | Create local Table or atomic append; at most 500 records / 1 MB |
Keep a source copy, split bounded batches, and verify each completed transfer.
Verify before cutting over
- Confirm the destination workspace/list/Table and imported count.
- Check representative long text, empty values, false/zero, dates, status meaning, and assignee mapping.
- Confirm the roles and permission boundaries with the intended users.
- Move files separately where needed; exported attachment links are not file backups.
- Take a full recovery backup after validation.
Use the REST import/export reference for exact payload contracts. An interrupted export stream is a failed download, not a complete file.