Project Management migration
Field-level mapping, validation, and rollback between Redmine 3.3 and Trello. We move data and schema; workflows are rebuilt natively in Trello.
Redmine 3.3
Source
Trello
Destination
Compatibility
7 of 12
objects map 1:1 between Redmine 3.3 and Trello.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Redmine 3.3 to Trello is a structural migration that flattens a deeply hierarchical issue tracker into a visual Kanban board system. Redmine 3.3 organizes work as Projects containing Issues with Trackers, Versions, custom fields, time entries, and typed relations; Trello organizes work as Workspaces containing Boards with Lists of Cards and optional Power-Up extensions. We read Redmine at the database level to bypass the read-only REST API surface, reconstruct the project-subproject tree as nested board structures, and map each issue's status, priority, tracker, assignee, due date, and time entries into the corresponding Trello card fields and checklists. Custom fields that use list-format values with internal numeric IDs are resolved to their human-readable labels before writing to Trello. We do not migrate Redmine Workflow rules, Wiki pages, or Forums as functional equivalents do not exist in Trello; we deliver a written inventory of these objects for the customer's admin to assess for manual rebuild or replacement via Trello Power-Ups.
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 Redmine 3.3 object lands in Trello, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Redmine 3.3
Project
Trello
Board
1:1Redmine Projects map to Trello Boards with the project name as the board name. Public and private flags from Redmine map to Trello's board visibility (public vs private). We export the full project-subproject tree and create each subproject as a separate Board, then document the parent-child relationship in the board description for manual workspace organization. If the Redmine project has modules enabled (wiki, issue tracking, repository), we add a board description note flagging the modules for manual activation in Trello.
Redmine 3.3
Subproject
Trello
Board (nested within parent board workspace)
1:1Redmine subprojects map to Trello Boards under the same Workspace. There is no native subproject concept in Trello, so we create each subproject as a standalone Board and record the parent project identifier in the board description. The customer manually organizes boards within the Workspace sidebar after migration.
Redmine 3.3
Issue
Trello
Card
1:1Redmine Issues map to Trello Cards. The issue subject becomes the card title, the description maps to the card description with markdown formatting preserved. Issue status New, In Progress, Resolved, Feedback, Closed maps to Trello list positions (e.g., To Do, In Review, Done). The assignee from Redmine is added as a card member in Trello. Due dates, start dates, estimated hours, and done ratio migrate as card metadata. We resolve assignee email addresses against the target Trello workspace members and add matching users as card members.
Redmine 3.3
Tracker
Trello
Label
lossyRedmine Trackers (Bug, Feature, Support, custom) map to Trello Labels with the tracker name as the label name and a consistent color assignment per tracker type. If the destination workspace already has labels defined, we map the Redmine tracker names to existing label names or create new labels. The label mapping configuration is documented in the mapping spec before migration begins.
Redmine 3.3
Issue Status
Trello
List
lossyRedmine issue statuses (New, In Progress, Resolved, Feedback, Closed, plus any custom statuses defined in the workflow) map to Trello List names. We export the full workflow status set from the Redmine database, deduplicate, and create one Trello List per distinct status value in each board. Custom status labels are preserved in the list name for admin review and renaming post-migration.
Redmine 3.3
Custom Field
Trello
Card Description (section) or Custom Fields Power-Up
lossyRedmine custom fields (string, integer, list, date, boolean, user references) present a mapping challenge because Trello has no native custom field objects on the Free tier. On Standard and Premium tiers, the Custom Fields Power-Up provides typed custom fields. We read the custom_field_definitions table, resolve list-format internal IDs to display labels using the possible_values lookup, and write field values into a structured section of the card description for all tiers. On Business Class Standard+ we use the Custom Fields Power-Up API to create typed fields before card import.
Redmine 3.3
Time Entry
Trello
Checklist item or Card Description (time log section)
1:manyRedmine time entries linked to an issue merge into a time log section on the corresponding Trello Card. Each time entry contributes a checklist item in the format '[hours]h - [activity] - [comments]' or a structured description block. Activity categories from Redmine (e.g., Design, Development, Testing) are written as text labels in the time log entry. We export the full time entry set per issue and consolidate into the card during migration. Trello's native time-tracking Power-Up can be activated post-migration to surface these as formal time records.
Redmine 3.3
Version
Trello
Due Date or Card Label
1:1Redmine Versions (milestones or targets) within a project are documented as Trello Labels named after the version with a milestone color code, or as card due dates where the version has an effective date. Versions without a due date are preserved as labels only. We export the version name, effective date, description, and status (open, locked, closed) and map accordingly.
Redmine 3.3
Issue Relation
Trello
Label or Checklist item (dependency note)
lossyRedmine typed relations (blocks, blocked by, relates to, duplicates, follows, copied from) have no native Trello equivalent. We export the full relation graph and for each relation type we create a label on the related card (e.g., a 'blocks:#123' label) or a checklist item noting the dependency. The customer reviews these post-migration and uses Trello's Card Aging Power-Up or manual checklist grouping to manage dependencies.
Redmine 3.3
User
Trello
Workspace Member
1:1Redmine user accounts (login, firstname, lastname, email, admin flag) map to Trello Workspace members. We match by email address during migration and add matched users as board members with the same role scope as their Redmine membership roles. Any Redmine user without a matching Trello account goes to a reconciliation queue for the admin to provision before the final migration run.
Redmine 3.3
Attachment
Trello
Card Attachment
1:1Redmine attachments are files stored on the server filesystem with metadata in the attachments table (filename, content_type, disk_filename, created_on). We extract the file path from disk_filename, verify file accessibility, download each file, and re-upload as a Trello card attachment using the Trello Attachment API. We preserve the original filename and content-type. File links from migrated issues remain valid post-migration.
Redmine 3.3
Wiki Page
Trello
Card Description (partial) or external document link
1:1Redmine wiki pages are project-scoped with hierarchical page structures and HTML or textile formatting. Trello has no native wiki feature. We export wiki page content as markdown text and append it to the project board description or a designated 'Project Documentation' card. If wiki pages are critical, we recommend the customer migrate them to Confluence as a parallel step. Page-level permissions do not transfer.
| Redmine 3.3 | Trello | Compatibility | |
|---|---|---|---|
| Project | Board1:1 | Fully supported | |
| Subproject | Board (nested within parent board workspace)1:1 | Fully supported | |
| Issue | Card1:1 | Fully supported | |
| Tracker | Labellossy | Fully supported | |
| Issue Status | Listlossy | Fully supported | |
| Custom Field | Card Description (section) or Custom Fields Power-Uplossy | Fully supported | |
| Time Entry | Checklist item or Card Description (time log section)1:many | Fully supported | |
| Version | Due Date or Card Label1:1 | Fully supported | |
| Issue Relation | Label or Checklist item (dependency note)lossy | Fully supported | |
| User | Workspace Member1:1 | Fully supported | |
| Attachment | Card Attachment1:1 | Fully supported | |
| Wiki Page | Card Description (partial) or external document link1: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.
Redmine 3.3 gotchas
Database migrations are required between major Redmine versions
CSV export has no native import counterpart
Custom field list values store internal IDs, not display labels
Plugin-specific data is not accessible via the REST API
Attachment files live on the server filesystem, not the database
Trello gotchas
Billing model uses maximum seat quantity at term midpoint
Custom Field data historically stored in pluginData
API rate limits are token-gated and can block bulk migration
Guest-to-paid seat conversion triggers on multi-board membership
Automation command runs are capped per plan and overage triggers upgrade pressure
Pair-specific challenges
Migration approach
Database audit and schema extraction
We connect to the Redmine 3.3 database directly (MySQL, PostgreSQL, or SQLite depending on the installation) to extract the full schema including plugin tables. We export projects and subprojects, issues with full field sets, trackers, workflow statuses, custom field definitions with possible_values, time entries, versions, attachments, users, and memberships. This bypasses Redmine 3.3's read-only REST API surface and captures all data including plugin-specific records. We generate a data volume report (record counts per object) to scope the migration timeline and flag any plugin-isolated data that cannot safely migrate without manual intervention.
Custom field resolution and ID-to-label lookup
Before any issue export, we query the custom_field definitions table to build an ID-to-label lookup for every list-format custom field. We cross-reference this lookup against every issue record to resolve internal IDs to display values. This prevents raw numeric integers from appearing in migrated Trello cards. We generate a custom field mapping spec that documents which Redmine fields map to card description sections (Free tier) or Custom Fields Power-Up fields (Standard and Premium tiers), and the customer approves the spec before card creation begins.
Trello workspace and board structure setup
We create Trello Workspaces and Boards matching the Redmine project hierarchy. Each top-level Redmine project becomes a Trello Board; each subproject becomes a separate Board under the same Workspace. We create Trello Lists on each board matching the distinct Redmine issue status values (e.g., New, In Progress, Resolved, Closed). We create Labels matching the Redmine tracker names with consistent color assignments. Board visibility (public or private) matches the Redmine project public flag. This structure is validated by the customer admin before any card migration begins.
Member reconciliation and user provisioning
We extract every distinct Redmine user referenced on issues, time entries, and memberships and match by email against the target Trello Workspace members. Users without a matching Trello account enter a reconciliation queue for the customer admin to provision. Board member roles are assigned based on Redmine project membership roles (Member, Reporter, Non-member). Migration cannot proceed past card creation until member reconciliation is complete because Trello requires member email addresses for card assignment.
Card migration with attachment handling
We create Trello Cards in dependency order: boards first, then lists, then cards. Each card receives the issue subject as the title, description with resolved custom field values, due date from the issue due_date field, assignee as a card member, and labels from the tracker mapping. Time entries merge into a card checklist or description section. We extract file paths from the Redmine attachments table, download each file from the server filesystem, and upload to Trello as a card attachment using the Trello Attachment API with original filename and content-type preserved. We batch card creation with rate-limit handling and exponential backoff on the Trello API.
Cutover, delta validation, and workflow handoff
We freeze Redmine 3.3 write access during the cutover window, run a final delta migration of any records modified since the initial extraction, then enable Trello as the system of record. We deliver a migration summary report with record counts per object, a custom field mapping log, an issue-relation label inventory, and a workflow transition map documenting the Redmine workflow rules for the admin to assess for Butler rebuild. We do not rebuild Redmine workflows or automations in Trello Butler; that is documented separately for the customer's admin to configure post-migration.
Platform deep dives
Redmine 3.3
Source
Strengths
Weaknesses
Trello
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 Redmine 3.3 and Trello.
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
Redmine 3.3: Not publicly documented — no published rate limit for self-hosted instances.
Data volume sensitivity
Redmine 3.3 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 Redmine 3.3 to Trello migration scoping. Not seeing yours? Book a call.
Walk through your Redmine 3.3 to Trello migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Redmine 3.3
Other ways to arrive at Trello
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.