Project Management migration
Field-level mapping, validation, and rollback between Easy Redmine and Asana. We move data and schema; workflows are rebuilt natively in Asana.
Easy Redmine
Source
Asana
Destination
Compatibility
14 of 14
objects map 1:1 between Easy Redmine and Asana.
Complexity
BStandard
Timeline
24–72 hours
Overview
Easy Redmine stores work as Issues inside Projects, with tracker types (Bug, Feature, Support), custom statuses, and built-in time entries. Asana models everything as Tasks organized into Projects, with no native tracker concept, no built-in time tracking, and a flat dependency model (finish-to-start). The migration carries over Projects, Issues, Users, Attachments, and custom fields via Asana's REST API, while Redmine-specific constructs—trackers, custom issue statuses, time-entry logs, versions, and wiki pages—require custom-field or tag reconstruction in Asana. FlitStack sequences the load so Projects exist before Issues (foreign-key resolution), runs a sample migration with field-level diff against a representative slice, then cuts over with a 24–48 hour delta-pickup window to capture in-flight changes. Workflow automations, if any exist in Easy Redmine, are not migrated—they must be rebuilt using Asana Rules or a third-party automation layer. The migration also preserves original issue create dates and update timestamps as custom fields for audit continuity. Attachments are re‑uploaded to the corresponding Asana tasks, with inline images rehosted and references updated. Custom field types are translated to Asana equivalents: text stays text, numbers become number fields, dates map to dates, and list fields become pick‑lists. The sample diff report verifies status mapping and assignee resolution before the full cutover, and a 24–48 hour delta window captures any in‑flight changes.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Easy Redmine object lands in Asana, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Easy Redmine
Project
Asana
Project
1:1Easy Redmine Projects map 1:1 to Asana Projects. Asana's Workspace sits above Projects — if Easy Redmine uses a single root project for all work, we map it to a single Asana Project or create a new top-level Project to hold migrated Issues.
Easy Redmine
Subproject
Asana
Project (nested under parent)
1:1Easy Redmine subprojects map to Asana Projects nested under the parent Project via Asana's project hierarchy. We preserve the subproject name and description; custom subproject fields migrate as custom fields on the corresponding Asana Project. Custom fields defined at the subproject level are also transferred as custom fields on the target Project.
Easy Redmine
Issue
Asana
Task
1:1Issues are the primary work unit in Easy Redmine and map directly to Tasks in Asana. The Issue subject becomes the Task name; the Issue description maps to the Task notes field. We preserve original created dates as a custom field since Asana's created_at is set at migration time.
Easy Redmine
Tracker (Bug, Feature, Support)
Asana
Custom field + Tag
1:1Easy Redmine tracker types have no native Asana equivalent. We create a Tracker_Type__c custom pick-list field on Tasks and optionally populate Asana Tags for quick filtering (e.g., Tag 'Bug' applied to all tracker='Bug' issues). Tag creation is optional and configurable.
Easy Redmine
Issue Status (custom per project)
Asana
Custom field + Completed flag
1:1Easy Redmine allows fully custom status names per project (New, In Progress, Review, Closed). We map each source status value to a corresponding Asana custom pick-list field (Issue_Status__c) and set the Asana completed flag = true when source status is terminal (e.g., Closed, Resolved). The value map is delivered before migration runs.
Easy Redmine
Issue Priority
Asana
Custom field (Priority__c)
1:1Easy Redmine priority values (Low, Normal, High, Urgent) map to a custom pick-list field Priority__c on Asana Tasks. The numeric priority value can optionally be stored as a separate Number field for sorting. If multiple priorities exist for a single issue, they are stored as a comma‑separated list in the custom field.
Easy Redmine
Version / Milestone
Asana
Milestone
1:1Easy Redmine Versions (target versions for a set of issues) map to Asana Milestones. The version name becomes the Milestone name; the due date maps to the Milestone due date. Open issues referencing that version are linked via Asana's task-milestone association.
Easy Redmine
Time Entry
Asana
Custom fields on Task (Hours__c, TimeEntryNote__c)
1:1Asana has no native time-tracking object. Each Easy Redmine time entry becomes custom fields on the associated Task: Hours__c (number), Spent_On__c (date), and TimeEntryNote__c (text). For teams needing detailed time logs, we provide an export CSV of all time entries grouped by Issue as a rebuild reference.
Easy Redmine
Attachment
Asana
Attachment (on Task)
1:1File attachments on Easy Redmine Issues are downloaded and re-uploaded to the corresponding Asana Task. File size limits apply (Asana default 100MB per file). Inline images in Issue descriptions are extracted, rehosted, and links updated in the Task notes field.
Easy Redmine
User / Member
Asana
User (matched by email)
1:1Easy Redmine users are matched to Asana workspace members by email address. Unmatched users are flagged before migration — the team either creates Asana accounts for them or assigns their Issues to a fallback assignee. No Issue lands without an owner.
Easy Redmine
Issue Relation (blocks, blocked by, duplicates)
Asana
Task Dependency
1:1Easy Redmine Issue Relations map to Asana Task Dependencies. 'Blocks' → 'blocks' in Asana; 'precedes' → 'follows' (direction-flipped); 'duplicates' → no direct equivalent, stored as a custom Duplicates_Task__c lookup field. Circular dependency chains are flagged and collapsed to prevent migration errors.
Easy Redmine
Custom Field (Issue-level)
Asana
Custom field (on Task)
1:1Easy Redmine custom fields at the Issue level map to Asana custom fields on Tasks. Field types are translated: text → text, number → number, date → date, list → pick-list, boolean → checkbox. Multi-value list fields become Asana multi-select pick-lists.
Easy Redmine
Wiki Page
Asana
No equivalent
1:1Easy Redmine Wiki pages have no native Asana equivalent. We export all wiki content as HTML files and provide a link-reference map so your team can host the wiki content externally (Confluence, Notion, Google Sites) and link to it from relevant Asana Projects or Task descriptions.
Easy Redmine
News / Forum Post
Asana
No equivalent
1:1Easy Redmine News and Forum posts are announcement and discussion artifacts with no Asana equivalent. We export them as a dated log CSV so the content is preserved for record-keeping, but they do not migrate as active records. This export ensures historical reference is preserved for compliance and audit purposes.
| Easy Redmine | Asana | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Subproject | Project (nested under parent)1:1 | Fully supported | |
| Issue | Task1:1 | Fully supported | |
| Tracker (Bug, Feature, Support) | Custom field + Tag1:1 | Fully supported | |
| Issue Status (custom per project) | Custom field + Completed flag1:1 | Fully supported | |
| Issue Priority | Custom field (Priority__c)1:1 | Fully supported | |
| Version / Milestone | Milestone1:1 | Fully supported | |
| Time Entry | Custom fields on Task (Hours__c, TimeEntryNote__c)1:1 | Fully supported | |
| Attachment | Attachment (on Task)1:1 | Fully supported | |
| User / Member | User (matched by email)1:1 | Fully supported | |
| Issue Relation (blocks, blocked by, duplicates) | Task Dependency1:1 | Fully supported | |
| Custom Field (Issue-level) | Custom field (on Task)1:1 | Fully supported | |
| Wiki Page | No equivalent1:1 | Fully supported | |
| News / Forum Post | No equivalent1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Easy Redmine gotchas
Pagination cap of 100 records on all collection endpoints
Easy Redmine custom fields lack standard API discovery
Wiki and document attachments stored as file blobs require separate storage access
No free trial requires paid commitment before evaluation
Asana gotchas
Automation rules have no export representation
API rate limits cap bulk migration throughput
Portfolios are view-only objects that do not hold data
Custom field enum options cannot be updated via API
Subtasks do not appear in project views by default
Pair-specific challenges
Migration approach
Audit Easy Redmine data model and export via REST API
FlitStack connects to the Easy Redmine REST API (JSON format) and inventories all Projects, Issues, Time Entries, Attachments, Users, Issue Relations, Versions, and custom field definitions. We detect tracker types, custom field types, custom status values, and wiki page count during this audit. The output is a data-model map delivered as a planning document so you can confirm which custom fields and statuses need Asana-side value mapping before any data moves.
Build Asana schema: Projects, custom fields, Milestones, and Tags
We create the Asana Projects, custom fields (Issue_Status__c, Tracker_Type__c, Priority__c, Hours__c, etc.), and Milestones based on the Easy Redmine audit. Tracker-type Tags are created as an optional layer for quick filtering. The value map for custom statuses is confirmed with your team during this step. Asana field creation is done via the Asana REST API before any record-level migration begins, so the schema is ready when Issues start loading.
Resolve Users by email and prepare assignee mapping
Easy Redmine users are matched to existing Asana workspace members by email address. Unmatched users (e.g., inactive Easy Redmine accounts, contractors without Asana access) are listed in a pre-migration report. Your team either creates Asana accounts for them or selects a fallback assignee. No Issue is loaded without a resolved owner — Issues from unresolvable users are held in a staging report for manual assignment after migration.
Run sample migration with field-level diff
A representative slice migrates first — typically 200–500 Issues across 3–5 Projects, including Issues with attachments, time entries, parent-child relationships, and a range of status values. We generate a field-level diff comparing source Easy Redmine values to destination Asana field values so you can verify status mapping, assignee resolution, and attachment re-upload before the full run commits. You approve the diff report before cutover proceeds.
Full migration with delta-pickup window and rollback plan
The full migration runs in dependency order: Projects → Milestones → Issues (with parent-child and dependency resolution) → Time Entries → Attachments. A delta-pickup window (24–48 hours) captures any Issues created or modified in Easy Redmine during the cutover window. The audit log records every record operation. If reconciliation detects data integrity issues, one-click rollback reverts the Asana workspace to its pre-migration state so the migration can be re-run after fixes are applied.
Platform deep dives
Easy Redmine
Source
Strengths
Weaknesses
Asana
Destination
Strengths
Weaknesses
Complexity grading
Standard Project Management migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Easy Redmine and Asana.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Easy Redmine: Not publicly documented; no official rate limit spec found in Easy Redmine's published API docs.
Data volume sensitivity
Easy Redmine doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Easy Redmine to Asana migration scoping. Not seeing yours? Book a call.
Walk through your Easy Redmine to Asana migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Easy Redmine
Other ways to arrive at Asana
Same-Project Management migrations
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.