Project Management migration

Migrate from Fruux to Jira

Field-level mapping, validation, and rollback between Fruux and Jira. We move data and schema; workflows are rebuilt natively in Jira.

Fruux logo

Fruux

Source

Jira

Destination

Jira logo

Compatibility

58%

7 of 12

objects map 1:1 between Fruux and Jira.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

The Fruux-to-Jira migration is a structural data remapping rather than a direct record transfer. Fruux stores Tasks as CalDAV VTODO components in a flat task-list hierarchy, while Jira uses a typed Issue object model (Epic, Story, Task, Bug) organized under Projects with Sprint and Assignee semantics. We decompose each Fruux task list into a Jira Project, map VTODO summary, due date, completion status, and description fields to their Jira Issue equivalents, and import through the Jira Bulk API with rate-limit handling. Fruux Contacts do not map to Jira native objects in a standard way; we treat them as Jira User lookup candidates and flag them for manual provisioning. Notes, Bookmarks, and proprietary Fruux objects do not migrate as structured records. Workflows, calendar sharing rules, and Fruux sync rules do not migrate because they have no Jira equivalent.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Fruux logo

Fruux

What's pushing teams away

  • Sync reliability is inconsistent, particularly with Apple's DAV servers, leading to calendar entries silently failing to propagate
  • No CSV import support — Fruux founder confirmed the service will only ever accept VCF and native CalDAV/CardDAV feeds, blocking spreadsheet-to-contact workflows
  • Internal server errors on calendar upload have been reported in third-party clients, suggesting backend instability
  • The service has a very small review footprint and limited community support compared to Google or iCloud alternatives
  • Users in privacy communities report difficulty exporting full datasets when they decide to leave, particularly for bookmarks and notes

Choosing

Jira logo

Jira

What's pulling them in

  • Industry-standard tool with deep Git integration and sprint reporting that engineering teams already know, reducing onboarding friction for new hires.
  • Highly customizable workflows and status schemes let business teams model complex approval chains without writing code.
  • Strong ecosystem of Atlassian Marketplace apps means specialized capabilities like time tracking or portfolio management are one install away.
  • Free tier with up to 10 users and unlimited issues gives small teams a no-cost entry point to validate the platform before committing budget.
  • Visibility features — boards, backlog grooming, sprint reports, and dashboards — give leadership a shared view of what is planned, in progress, blocked, and done.

Object mapping

How Fruux objects map to Jira

Each row shows how a Fruux object lands in Jira, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Fruux

Task (VTODO)

maps to

Jira

Issue

1:1
Fully supported

Fruux tasks stored as CalDAV VTODO components map to Jira Issues. We extract UID, SUMMARY (maps to Summary), DUE (maps to Due Date), COMPLETED (maps to Status — completed VTODO becomes Done in Jira), DESCRIPTION (maps to Description), PRIORITY (maps to Priority), CATEGORIES (maps to Labels), and X-FRUXX-* extended properties. Each VTODO maps to a Jira Issue type chosen during scoping: Epic, Story, Task, or Bug. The parent VTODO UID becomes the Jira parent Issue link if the Fruux task had sub-tasks.

Fruux

Task List

maps to

Jira

Project

1:1
Fully supported

Fruux task lists are CalDAV collections containing VTODO components. Each distinct task list maps to a Jira Project with a dedicated Issue type scheme. We pre-create the Jira Project via the Jira API before importing Issues, set the default Issue type (Task, Story, or Bug per the customer's preference), and configure the initial workflow. If Fruux has multiple task lists, each becomes a separate Jira Project with its own default assignee pool.

Fruux

Calendar Event (VEVENT)

maps to

Jira

Issue

1:many
Fully supported

Fruux calendar events stored as iCalendar VEVENT components do not have a direct Jira equivalent because Jira has no native calendar object. We decompose each VEVENT into a Jira Issue: SUMMARY maps to Issue Summary, DTSTART/DTEND map to Due Date and a custom time-range field, DESCRIPTION maps to Issue Description, LOCATION maps to a custom Location field, and ATTENDEE emails become Issue watchers. Recurring VEVENT RRULE values are decomposed into a Jira Issue per occurrence, with a Recurrence ID custom field to preserve the original rule reference.

Fruux

Calendar Subscription

maps to

Jira

Filter + Board

lossy
Fully supported

Fruux iCalendar subscriptions (webcal/ICS URLs) have no direct Jira equivalent. We export the subscription URL and, if the customer requests, create a Jira Filter using a JQL query that matches the imported VEVENT-derived Issues by labels (e.g., label = 'calendar-import'). A Scrum or Kanban Board can be configured to display that Filter as its default query, giving the customer a calendar-view-equivalent board in Jira.

Fruux

Contact

maps to

Jira

User

1:1
Fully supported

Fruux contacts stored as vCard (RFC 6350) records do not map directly to Jira native objects because Jira does not have a Contact object. We extract the FN, EMAIL, and TEL properties and match them against Jira User accounts by email during migration. Any Fruux contact without a matching Jira User is flagged in the reconciliation report for the customer's admin to provision manually. Fruux contacts are not migrated as Jira Accounts (which are CRM-style company records) unless the customer specifically requests Account creation from contact data.

Fruux

Address Book

maps to

Jira

Group

lossy
Fully supported

Fruux supports multiple CardDAV address books per user. Each addressbook-home-set maps to a Jira Group that we pre-create via the Jira API. vCard FN and EMAIL properties from that address book are matched to Jira Users in the corresponding group. This preserves Fruux group semantics as Jira group memberships, enabling the customer to configure project-level permissions by group after migration.

Fruux

Task Sub-task

maps to

Jira

Sub-Task Issue

1:1
Fully supported

Fruux supports hierarchical VTODO components where a parent VTODO has child VTODO entries. We map these to Jira Sub-Task Issues (Issue type = Sub-Task) with a Parent link to the Jira parent Issue. The Jira Sub-Task feature must be enabled in the target Project's Issue type scheme before migration; we handle this as a pre-migration configuration step.

Fruux

Note

maps to

Jira

Issue Description or Attachment

lossy
Fully supported

Fruux Notes are proprietary objects with no CardDAV binding. We export accessible notes via web API scraping where technically feasible, but cannot guarantee full content or formatting fidelity. Long notes (exceeding Jira Description character limits) are split across multiple Jira Comments. Short notes become Issue Descriptions. Customers with heavy Notes usage should plan for manual recreation or a Confluence page as a Notes replacement.

Fruux

Tag / Label

maps to

Jira

Label

1:1
Fully supported

Fruux task tags stored in VTODO CATEGORIES or X-FRUXX-tag properties migrate to Jira Labels as a flat list. Labels are created at migration time if they do not already exist in the destination Jira project. Jira Labels are project-scoped by default, so tags from multiple Fruux task lists may share label names across projects — we do not deduplicate cross-project label namespaces.

Fruux

Conflict Resolution Artifact

maps to

Jira

Issue (duplicate flagged)

lossy
Fully supported

Fruux creates server-side copies when the same record is edited on multiple devices simultaneously. These appear as duplicate VTODO entries with identical UIDs but different content. We detect duplicates by comparing UID + SUMMARY + DUE fields, flag suspected duplicates in a reconciliation report before import, and suppress duplicates from the Jira import unless the customer explicitly chooses to import all copies. This prevents duplicate Jira Issues from Fruux sync artifacts.

Fruux

Bookmark

maps to

Jira

Confluence Page

1:1
Fully supported

Fruux Bookmarks are stored in a proprietary internal format with no CardDAV or CalDAV export path. We do not migrate Bookmarks as structured records because there is no interoperable protocol and no Jira equivalent native object. We deliver a plain-text list of extracted bookmark URLs with titles for the customer to recreate manually or import into Confluence as a links page.

Fruux

Fruux Sync Rules

maps to

Jira

Jira Automation Rules

1:1
Fully supported

Fruux does not expose an automation engine — sync rules are client-side configuration (sharing permissions, push settings) rather than server-side triggers. We do not migrate Fruux sync rules because they have no Jira equivalent. We deliver a written inventory of Fruux sharing configurations (task lists shared with which users, calendar access permissions) as a reference for the customer to recreate in Jira as project role memberships and Automation for Jira rules post-migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Fruux logo

Fruux gotchas

High

No CSV import blocks bulk contact migrations

High

Sync failures with Apple DAV clients cause data loss

Medium

Bookmarks and Notes have no exportable standard format

Low

No public rate-limit or quota documentation

Medium

Conflict-resolution artifacts require deduplication

Jira logo

Jira gotchas

High

Unsupported workflow validators silently skipped during migration

High

Custom fields converted to flat text labels when migrating to non-Jira platforms

Medium

Historical status-change timestamps lost when exporting without a Marketplace plugin

Medium

Attachment import failures from oversized files and JQL reference corruption

Medium

Points-based API rate limits enforced on Jira Cloud apps from March 2026

Pair-specific challenges

  • No native calendar object in Jira requires VEVENT decomposition

    Jira does not have a native calendar or scheduling object. Fruux calendar events stored as iCalendar VEVENT components cannot import as calendar records; they must be decomposed into Jira Issues. We convert each VEVENT (DTSTART, DTEND, SUMMARY, LOCATION, DESCRIPTION) into an Issue with custom fields for time-range data, and recurring events into separate Issues with recurrence metadata. This loses the native calendar view; the customer must use Jira's Filter-based board or a third-party calendar integration (e.g., Tempo Calendar for Jira) to replicate calendar functionality.

  • Fruux Contacts do not map to Jira native objects

    Fruux stores vCard contacts as RFC 6350 objects with names, emails, phones, and addresses. Jira does not have a Contact or Address Book object. We treat Fruux contacts as Jira User lookup candidates (matched by email) and flag unmatched contacts for manual provisioning. Fruux contacts do not become Jira Accounts (which are company-level CRM records) unless the customer explicitly requests Account creation from contact data. This means contact information may not survive migration in any structured form unless the customer provisions Jira Users for every Fruux contact.

  • No public API forces CalDAV REPORT queries for data extraction

    Fruux has not published a public REST API with documented endpoints, rate limits, or quota specifications. All data extraction relies on CalDAV REPORT queries and CardDAV addressbook-home-set requests against dav.fruux.com. We implement conservative request pacing and retry-on-error logic because Fruux has not documented 429 or 503 response behavior. Export throughput is bounded by CalDAV REPORT response sizes and Fruux server-side query performance, which we cannot influence. We cannot guarantee a specific records-per-hour migration rate.

  • Bookmarks and Notes have no exportable standard format

    Fruux stores Bookmarks and Notes in proprietary internal formats not accessible via CardDAV or CalDAV. We attempt to extract these via web application scraping where technically feasible, but cannot guarantee structural fidelity, content completeness, or formatting preservation. Heavy Notes users should plan for manual recreation or a Confluence-based documentation workflow post-migration. Bookmarks cannot be migrated at all; we provide a plain-text URL list only.

  • Fruux conflict-resolution artifacts require pre-import deduplication

    Fruux preserves server-side copies when the same record is edited on multiple devices simultaneously. These conflict copies appear as duplicate VTODO entries after export. We detect duplicates by comparing UID + SUMMARY + DUE and flag them before Jira import. Without deduplication, Jira imports would create duplicate Issues from identical Fruux tasks, inflating the target project Issue count and confusing teams that rely on Jira Issue keys as work identifiers.

Migration approach

Six steps for a successful Fruux to Jira data migration

  1. Discovery and data inventory

    We perform a full export from Fruux using CalDAV REPORT queries against dav.fruux.com to inventory all VTODO collections, VEVENT calendars, CardDAV addressbooks, and accessible proprietary objects (Notes, Bookmarks where technically feasible). We count unique UIDs, identify conflict-resolution duplicates, and produce a Fruux data inventory report that itemizes record counts per task list, calendar, and address book. This report drives the Jira Project and Issue type mapping design.

  2. Jira Project and Issue type design

    We design the destination Jira structure based on the Fruux data inventory. Each Fruux task list becomes a Jira Project with its default Issue type scheme configured. We decide on Epic-Story-Task-Bug hierarchy or a flat Task-only scheme per project. Sub-task enablement, custom fields for Fruux-extended properties (recurrence, location, time range), and Label prefix conventions are all configured via Jira metadata API before any data import begins. Jira projects are deployed into a Sandbox or test environment first.

  3. Fruux conflict artifact deduplication

    We process the Fruux CalDAV export to detect and resolve conflict-resolution duplicates. We compare UID + SUMMARY + DUE across all VTODO records, group suspected duplicates, and present the deduplication report to the customer for review before suppression. The customer chooses whether to suppress duplicates or import all copies. We do not make assumptions about which conflict copy represents the authoritative record.

  4. Contact-to-User matching and Jira User provisioning

    We extract vCard records from Fruux CardDAV addressbooks and match FN + EMAIL against the destination Jira site's existing User accounts. Users with no match are listed in a provisioning report for the customer's Jira admin. We do not create Jira User accounts during migration; that requires admin credentials and org-specific user provisioning decisions (email domain matching, SSO configuration, group assignment). Migration cannot proceed past contact reconciliation until Jira Users exist for assigned Contacts.

  5. Jira Bulk API import in dependency order

    We import data into Jira in dependency order: Jira Users (manual, validated), Projects and Issue type schemes (via API), Issues from Fruux VTODO (via Bulk API 2.0), Sub-Tasks (after parent Issues exist), VEVENT-derived Issues (after calendar decomposition), Labels (created inline with Issue import), and Comments/Attachments last. We use Jira Bulk API 2.0 with batch chunking, parent-Issue lookup resolution for Sub-Tasks, and exponential backoff on 429 responses. Each phase emits a row-count reconciliation report.

  6. Cutover, delta sync, and automation handoff

    We freeze Fruux writes during cutover, run a final delta export of any VTODO or VEVENT records modified during the migration window, import the delta into Jira, and then enable Jira as the system of record. We deliver a written inventory of Fruux sync rules, sharing configurations, and calendar subscriptions with recommended Jira equivalents (project role memberships, Automation for Jira rules, Filter-based boards). We do not rebuild Fruux configurations as Jira automations inside the migration scope; that work is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Fruux logo

Fruux

Source

Strengths

  • Built on SabreDAV, one of the most widely deployed open-source CalDAV/CardDAV implementations in production
  • No vendor lock-in — data is stored in open RFC formats readable by any standards-compliant client
  • Free tier includes unlimited contacts, calendars, and tasks with no per-record billing
  • Supports conflict resolution when the same record is edited on multiple devices simultaneously
  • Runs on AWS with SSL encryption, automatic backups, and constant infrastructure updates

Weaknesses

  • No CSV import capability — Fruux accepts only VCF and native CardDAV feeds, blocking bulk contact migrations from spreadsheets
  • Sync reliability issues have been reported when connecting to Apple DAV servers, causing intermittent calendar upload failures
  • Very small user base and limited community support compared to Google Calendar or iCloud
  • Bookmark and note storage is proprietary with no public export specification
  • The service has not published a public API rate-limit or quota document, making migration throughput estimation difficult
Jira logo

Jira

Destination

Strengths

  • Deeply customizable workflows and status schemes with no hard limits on workflow complexity or number of custom statuses.
  • Strong agile ceremony support: sprint planning, backlog grooming, velocity tracking, and burndown charts for Scrum teams.
  • Industry-standard developer tool with native Git integration linking commits, pull requests, and deployments to issues.
  • Large Atlassian Marketplace with thousands of plugins extending time tracking, portfolio management, and reporting capabilities.
  • Free tier available for up to 10 users with unlimited issues, enabling evaluation before committing to a paid plan.

Weaknesses

  • Excessive configurability creates a steep learning curve; cross-team consistency is hard to maintain without strict governance.
  • Performance degrades with large backlogs, complex custom fields, and heavily nested issue hierarchies.
  • Reporting requires additional configuration or paid plugins; out-of-the-box analytics are limited for business users.
  • Jira lacks native sprint management, requiring Jira Software for true agile team features.
  • Teams outside engineering resist adoption due to UI complexity, leaving the all-in-one promise unfulfilled for cross-functional organizations.

Complexity grading

How hard is this migration?

Moderate Project Management migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Fruux and Jira.

  • Object compatibility

    C

    4 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Fruux: Not publicly documented — Fruux has not published rate-limit headers or quota thresholds.

  • Data volume sensitivity

    B

    Fruux doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Fruux to Jira migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Fruux to Jira data migrations

Answers to the questions buyers ask most during Fruux to Jira migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Fruux to Jira migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Small migrations under 500 tasks, one task list, and a clean Fruux instance with no conflict-resolution artifacts complete in two to four weeks. Migrations with multiple Fruux task lists (each requiring a separate Jira Project), calendar event decomposition (VEVENT to Issue conversion), large address book exports requiring User provisioning, or Fruux sync-conflict deduplication extend to six to ten weeks. Jira Sandbox validation and customer sign-off on deduplication decisions add buffer time.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Fruux.
Land in Jira, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day