Project Management migration

Migrate from Runrun.it to Asana

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

Runrun.it logo

Runrun.it

Source

Asana

Destination

Asana logo

Compatibility

75%

9 of 12

objects map 1:1 between Runrun.it and Asana.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Runrun.it and Asana organize work differently at the object level, which makes this migration structural rather than a simple record copy. Runrun.it uses a Project-centric model with embedded Kanban stages and a two-step document upload to Amazon S3; Asana uses a Section-based task organization with a single-step attachment API and a 100MB per-file import ceiling. We handle the document upload sequencing so attachments arrive intact, map Runrun.it Kanban stage names to Asana Sections, and push time entries to Asana custom fields (Standard tier) or native time tracking (Premium). We do not migrate Runrun.it automations or custom templates as code; we deliver a written inventory of every automation and template requiring rebuild in Asana Workflow Builder or the Rules engine so your admin can rebuild them post-migration.

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

Runrun.it logo

Runrun.it

What's pushing teams away

  • Users report glitches including unresponsive features and visual bugs that disrupt daily efficiency, appearing across multiple review platforms.
  • The lack of a native mobile application makes it difficult for remote workers to access and update tasks outside of desktop browsers.
  • Creating tasks and marking them complete requires excessive clicking, with users noting the overhead consumes time better spent on actual work.
  • Structural flexibility is limited once the platform is configured, with users unable to keep part of a team on a free plan while others upgrade.
  • Time tracking features have known issues including accuracy problems that frustrate teams relying on Runrun.it for billable hour reporting.

Choosing

Asana logo

Asana

What's pulling them in

  • Organizations with distributed teams cite Asana's multiple project views (List, Board, Calendar, Timeline) as the primary reason for adoption, allowing each team member to work in their preferred interface without changing the underlying data.
  • The platform's 100+ native integrations with tools like Slack, Google Drive, Salesforce, and Microsoft Teams reduce context-switching and keep work synchronized across the stack.
  • Small teams and non-profits value the free plan's generous limits: unlimited projects and tasks for up to 15 team members with basic views, enabling teams to validate fit before committing to a paid tier.
  • Marketing and creative teams specifically praise Asana's visual project organization, reporting dashboards, and timeline views for managing cross-functional campaign workflows.
  • Project managers report that Asana's dependency management and workload views help surface bottlenecks before they derail deadlines.

Object mapping

How Runrun.it objects map to Asana

Each row shows how a Runrun.it 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.

Runrun.it

Project

maps to

Asana

Project

1:1
Fully supported

Runrun.it Projects map to Asana Projects with name, description, start date, and end date preserved. We create each Project in Asana before any Tasks are imported so that the Project membership and section structure are in place. If Runrun.it Projects have shared budgets or custom cost fields, these become Asana custom fields (number or currency type). Multi-workspace Runrun.it instances map to multiple Asana Teams or a single Asana Organization with Projects distributed by department.

Runrun.it

Task

maps to

Asana

Task

1:1
Fully supported

Runrun.it Tasks map to Asana Tasks with title, description, assignee, due date, start date (requires Asana Premium), priority, and estimated hours preserved. Subtasks in Runrun.it map to Asana Subtasks nested under the parent Task. We map task priority (low, medium, high, urgent) to Asana custom field dropdown or Notes prefix so the priority context is visible without opening the task detail.

Runrun.it

Time Entry

maps to

Asana

Time Tracking (Premium) or Custom Field (Standard)

lossy
Fully supported

If the destination Asana workspace is on Premium or above, we push Runrun.it time entries to Asana's native time tracking fields (start time, end time, duration). On Standard tier, time entries migrate as Asana custom fields (text or number) holding the duration value in decimal hours. Runrun.it's billable hour flag becomes an Asana checkbox custom field. We round durations explicitly to avoid silent conversion drift between minute-based and decimal-based tracking.

Runrun.it

Kanban Stage

maps to

Asana

Section

lossy
Fully supported

Runrun.it Kanban stages (To Do, In Progress, Review, Done, or custom names) map to Asana Sections within each Project. We extract the stage names from Runrun.it's per-Project stage configuration, create matching Sections in Asana, and assign Tasks to their corresponding Section during import. If multiple Runrun.it Projects share stage names, we preserve the per-Project stage configuration in an Asana custom field for audit.

Runrun.it

Document

maps to

Asana

Attachment

1:1
Fully supported

Runrun.it documents require a two-step migration: first creating the task attachment record via POST /api/v1.0/tasks/:task_id/documents, then pushing the file to the Amazon S3 presigned URL before associating it with the Task. We handle both steps and verify the S3 bucket is accessible during scoping. Asana enforces a 100MB per-file ceiling during API import; any file exceeding this threshold is flagged and excluded from the import with a record in the reconciliation report.

Runrun.it

User / Member

maps to

Asana

User

1:1
Fully supported

Runrun.it team members (email, name, role, hourly rate) map to Asana Users by email address match. We create a user mapping table during discovery. Any Runrun.it Member without a matching Asana User goes to a reconciliation queue for the customer's admin to provision the account before record import resumes. Hourly rate becomes an Asana number custom field on the User profile.

Runrun.it

Tag

maps to

Asana

Label

1:1
Fully supported

Runrun.it tags_data arrays migrate to Asana Labels. We preserve the tag name and note that Asana Labels are scoped per Project by default but can be made organization-wide. The customer chooses label scope during scoping. If Runrun.it has more tags per Task than Asana supports in a single field (16 labels per Task), we prioritize the most-used tags and flag the remainder.

Runrun.it

Custom Field

maps to

Asana

Custom Field

lossy
Fully supported

Runrun.it custom fields on Tasks (field_label and field_value) map to Asana custom fields of the closest matching type: text to text, number to number, date to date, dropdown to enum. Some Runrun.it custom field types (e.g., formula fields, relational fields) have no direct Asana equivalent and are skipped with a note in the migration inventory. We pre-create the Asana custom field definitions before any Task data is imported.

Runrun.it

Comment

maps to

Asana

Comment

1:1
Fully supported

Runrun.it comments attached to Tasks migrate as Asana Task comments. The comment body, author (resolved to Asana User by email), and timestamp preserve. If Runrun.it comments include @mentions, we convert the mention format to Asana's @mention syntax. Threaded comments in Runrun.it become flat comments in Asana with a visual indicator noting the original thread depth.

Runrun.it

Attachment (URL)

maps to

Asana

Attachment (URL)

1:1
Fully supported

External URL attachments in Runrun.it (attachable_type = external link) migrate to Asana URL attachments on the corresponding Task. We preserve the attachment title and URL. If the URL points to a resource that requires authentication or is a Runrun.it-internal link, we flag it for the customer to update post-migration.

Runrun.it

Custom Template

maps to

Asana

Template (manual rebuild)

1:1
Fully supported

Runrun.it custom templates define pre-populated Task structures and Kanban stage configurations per Project type. We document every custom template with its Task structure, stage names, default custom field values, and assignee rules in a written inventory. Asana does not have a direct template migration path; the customer uses the inventory to rebuild templates in Asana via the Project-from-Template feature.

Runrun.it

Workflow / Automation

maps to

Asana

Rules / Workflow Builder (manual rebuild)

1:1
Fully supported

Runrun.it workflow rules (auto-assignment, status changes, notification triggers) do not migrate as code. We deliver a written inventory of every active Runrun.it workflow with its trigger conditions, actions, and the recommended Asana Rules or Workflow Builder equivalent. The customer's admin rebuilds automations post-migration using the inventory as a checklist.

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.

Runrun.it logo

Runrun.it gotchas

High

Two-step document upload requires S3 coordination

Medium

No documented API rate limits

Medium

No mobile app means no mobile-only data

Low

Time tracking data requires currency and rounding alignment

Asana logo

Asana gotchas

High

Automation rules have no export representation

High

API rate limits cap bulk migration throughput

Medium

Portfolios are view-only objects that do not hold data

Medium

Custom field enum options cannot be updated via API

Low

Subtasks do not appear in project views by default

Pair-specific challenges

  • Asana 100MB per-file ceiling truncates large attachments

    Asana's API and import tools enforce a 100MB maximum per file attachment. Runrun.it documents uploaded via the two-step S3 flow can exceed this, especially for design files, video exports, or compressed archives. We flag any Runrun.it document exceeding 100MB during discovery and exclude it from the import with a record in the reconciliation report. The customer decides whether to manually upload these files post-migration or use a shared drive integration.

  • Runrun.it two-step document upload requires S3 coordination

    Runrun.it documents use a two-step flow: first creating a record via /api/v1.0/tasks/:task_id/documents, then pushing the file to an Amazon S3 presigned URL before the attachment becomes valid. If we only create the document record without pushing the file, attachments arrive as broken links in Asana. We handle both steps, verify the S3 bucket is accessible during scoping, and confirm the presigned URL generation is not blocked by Runrun.it API credentials or IP restrictions.

  • Start Date on Asana Tasks requires Premium

    Runrun.it Tasks include a start_date field at all plan tiers. Asana exposes the Start Date field only on Premium and above; on Standard tier, Tasks have a Due Date but no Start Date. We map Runrun.it start_date to an Asana custom date field named Start Date on Standard workspaces, preserving the value but outside the native date picker. On Premium, we map to the native Start Date field.

  • Some Runrun.it custom field types have no Asana equivalent

    Runrun.it supports custom field types including formula fields, relational fields, and multi-value selects that do not map directly to any Asana custom field type. We document every unmapped custom field during discovery, skip it during migration, and include it in the migration inventory with the original value so the customer can decide whether to recreate it manually in Asana or drop it.

  • Asana does not support per-Project permission levels without Enterprise

    Asana's permission model is Organization-wide on Standard and Premium tiers: any Team member can see all Projects within their Team. Runrun.it supports per-Project access controls including guest users and granular read/write permissions. If the customer relies on Runrun.it per-Project access restrictions, we flag this gap and recommend Asana Enterprise or a guest-external workflow post-migration. Guest users on Asana require Premium.

Migration approach

Six steps for a successful Runrun.it to Asana data migration

  1. Discovery and source audit

    We audit the source Runrun.it instance across projects, tasks, time entries, document count and size distribution, Kanban stage names per Project, custom fields and their types, tags, and active workflow rules. We verify the Runrun.it API credentials and confirm S3 presigned URL access for document migration. We extract a complete user roster with email addresses and roles and cross-reference against the target Asana workspace user list. The discovery output is a written scope document with record counts per object, document size histogram, and a Kanban stage name map.

  2. Schema design and custom field provisioning

    We design the destination Asana schema before any data moves. This includes creating Asana Projects with List, Board, and Timeline views, provisioning custom fields (Standard tier: start_date, billable flag, duration, hourly rate; Premium: native time tracking), creating Labels scoped per Project or organization-wide, and mapping Runrun.it Kanban stage names to Asana Sections. We verify that every Runrun.it custom field type has a valid Asana equivalent or is flagged for exclusion.

  3. Sandbox validation

    We run a representative migration into the customer's Asana sandbox (or a trial workspace) with a sample of 50-100 records per object type. The customer's project manager or admin spot-checks task assignments, section placements, time entry values, and attachment integrity. We resolve any mapping corrections before production migration begins. This step also validates that the S3 presigned URL flow for documents completes without authentication errors.

  4. User provisioning and owner reconciliation

    We extract every distinct Runrun.it Member referenced on Tasks, Projects, and time entries and match by email against the destination Asana workspace user table. Members without a matching Asana User are held in a reconciliation queue. The customer's admin provisions any missing Asana Users and confirms active/inactive status before record import resumes.

  5. Production migration in dependency order

    We run production migration in this order: Users (validated), Projects (with Section structure), Tasks (with Section assignment, assignee, due date, start date, priority, and estimated hours), time entries (native on Premium, custom fields on Standard), Labels (created before Task import), Tags (applied to Tasks after Label creation), Comments (after Task creation), Attachments (after Task creation, two-step S3 push included), and custom fields. Each phase emits a row-count reconciliation report before the next phase begins. We use Asana API rate limit handling with exponential backoff.

  6. Cutover, validation, and automation handoff

    We freeze Runrun.it write access during cutover, run a final delta migration of any Tasks or time entries modified during the migration window, then set Asana as the system of record. We deliver the Workflow and Template inventory document to the customer's admin team. We support a three-day hypercare window where we resolve any record-level issues raised by the project team. We do not rebuild Runrun.it automations or templates as code inside the migration scope.

Platform deep dives

Context on both ends of the pair

Runrun.it logo

Runrun.it

Source

Strengths

  • Integrated time tracking embedded directly into Tasks with billable hour reporting for service teams.
  • Kanban-based workflow visualization with configurable stages per Project.
  • AI-enabled productivity reports and dashboards for manager-level visibility into team performance.
  • Built by Managers for Managers, with a focus on project cost control and hour-based billing.

Weaknesses

  • No native mobile application, limiting remote access for teams without consistent desktop availability.
  • Users report visual glitches and UI bugs that disrupt daily productivity workflows.
  • Task creation and completion require excessive clicking, adding friction for high-volume users.
  • Limited structural flexibility once the platform is configured, with constraints on mixing free and paid users.
Asana logo

Asana

Destination

Strengths

  • Unlimited projects and tasks on the free plan for teams up to 15 members.
  • 100+ native integrations including Salesforce, Slack, Google Drive, and Microsoft Teams.
  • Four distinct project views (List, Board, Calendar, Timeline) in a single interface.
  • Dependency management with start/end dates and predecessor links for critical path tracking.
  • Portfolio dashboards for executives to track cross-project status and workload.

Weaknesses

  • Per-seat pricing scales expensively: Advanced tier costs nearly double Starter for a 50-seat team.
  • API does not expose all UI-accessible data; some fields require screen-scraping for full fidelity.
  • Automation rule limits on lower tiers are restrictive, causing power users to upgrade or leave.
  • No native document/wiki capability forces teams to use external tools for knowledge management.
  • Rate limits (150 req/min on free, 1,500 req/min on paid) constrain bulk migration throughput.

Complexity grading

How hard is this migration?

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

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Runrun.it and Asana.

  • Object compatibility

    B

    3 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

    Runrun.it: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Runrun.it to Asana 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 Runrun.it to Asana data migrations

Answers to the questions buyers ask most during Runrun.it to Asana migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between two and four weeks for instances under 5,000 Tasks, 2,000 documents, and a single Runrun.it workspace. Migrations with high document volume (over 10,000 files), many custom fields, large time-entry histories, or multi-workspace Runrun.it instances requiring per-department section mapping move to six to ten weeks. The timeline includes discovery (one to two days), sandbox validation (three to five days), and production migration with per-phase reconciliation.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Runrun.it.
Land in Asana, 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