Project Management migration

Migrate from Function Point to Asana

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

Function Point logo

Function Point

Source

Asana

Destination

Asana logo

Compatibility

50%

7 of 14

objects map 1:1 between Function Point and Asana.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Function Point to Asana is a structural migration that flattens Function Point's multi-layer agency model into Asana's task-centric workspace. Function Point's Jobs (the work-order unit carrying budget, cost codes, and billing) do not map to a native Asana object; we decompose them into Projects for financial context and Tasks for execution, with budget and cost-code fields preserved in Asana custom fields. Timesheets with billable flags migrate to Asana's native time tracking, and Expenses export as a structured CSV for manual entry or third-party add-on integration. Function Point's native CRM objects (Companies and Contacts) have no Asana equivalent — we migrate them as member and contact records in the Asana Organization, and we flag the API-exclusion of custom fields on these objects as a manual-recovery step. Workflows, automations, QuickBooks sync rules, and rate schedules do not migrate; we deliver a written inventory of these for your admin to rebuild in Asana Rules or a compatible billing add-on.

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

Function Point logo

Function Point

What's pushing teams away

  • The user interface is consistently described as dated and slow, with reviewers reporting 30-second load times for single records and multi-step processes that require ten or more clicks to complete simple actions.
  • The mobile app functions only as a time-entry device — users cannot view comments, interact with Tasks, or manage Projects from the mobile experience, making it unsuitable for field or remote-heavy teams.
  • Onboarding new users is reported as difficult, with the tool's depth creating a steep learning curve that requires significant internal training investment before team members become productive.
  • Reporting flexibility is limited to pre-built templates; users who need custom analytics must export to CSV and build reports in external tools, which breaks the in-app workflow for power users.
  • Agencies growing past 20–30 users report that the platform's performance degrades under concurrent load, with multiple users sharing what reviewers describe as a 'slow-loading spreadsheet' experience.

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 Function Point objects map to Asana

Each row shows how a Function Point 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.

Function Point

Company

maps to

Asana

Organization Member or Project custom field

1:1
Fully supported

Function Point Companies map to Asana Organization members for internal team records and to Asana guest member profiles or Projects with a Company custom field for external client records. Address, billing contact, and account-manager fields migrate to Asana custom fields on the associated Project. If the Company has associated Contacts, those Contacts migrate as Asana members or guest profiles with the Company reference preserved in a custom field.

Function Point

Contact

maps to

Asana

Organization Member (guest) or Project custom field

1:1
Fully supported

Function Point Contacts attach to a parent Company and map to Asana Organization members (if they are team users in Function Point) or guest profiles. We preserve the Contact's name, email, phone, and notes as Asana profile fields and custom text fields. Custom fields on Contacts are API-excluded per Function Point's documented design — we flag these during scoping and provide a manual-recovery CSV that the customer's admin enters manually post-migration.

Function Point

Project

maps to

Asana

Asana Project

1:1
Fully supported

Function Point Projects are the top-level container and map directly to Asana Projects. Project status, start date, end date, and budget fields migrate to Asana's Project due date, custom date fields, and a budget custom field. The Project's linked Companies become a custom multi-select or text field linking back to the client.

Function Point

Job

maps to

Asana

Asana Project or Section within Project

1:many
Fully supported

Function Point Jobs are the primary work-order unit carrying cost codes, budget thresholds, and financial status. We decompose Jobs into Asana Projects for standalone deliverables or Asana Sections within a parent Project for sub-work packages. Budget and cost-code fields from the Job migrate to Asana custom fields on the receiving Project or Section. A Job status field (Active, On Hold, Completed) maps to an Asana custom single-select field for tracking. Jobs linked to Estimates carry financial data that requires the Estimate to be processed first.

Function Point

Task

maps to

Asana

Asana Task

1:1
Fully supported

Function Point Tasks live inside Jobs and map directly to Asana Tasks. Parent Job association is preserved by placing the Task in the appropriate Asana Project or Section. Task status labels (custom in Function Point) map to Asana's custom single-select status field. Assignee, due date, and description migrate as-is. Notes attached to Tasks in Function Point migrate as Asana Task descriptions, with long notes chunked if they exceed Asana's description character limit.

Function Point

Estimate

maps to

Asana

Asana Project custom fields or Portfolio tracking sheet

lossy
Fully supported

Function Point Estimates contain line items with service names, quantities, rates, and markup percentages that do not map to a native Asana object. We extract the full Estimate and preserve it as a structured CSV alongside a set of Asana custom numeric fields on the Project (estimated hours, estimated total, markup percentage) that reference the Estimate value. The customer's billing team reviews the CSV post-migration. If the customer uses a billing add-on (for example, a cost-tracking Power-Up), we can map the Estimate line items to that tool's data model during migration.

Function Point

Timesheet

maps to

Asana

Asana time tracking entries (per-task log)

1:1
Fully supported

Function Point Timesheet entries (user, date, hours, Job/Task association, billable/non-billable flag) map to Asana time tracking entries logged against the corresponding Task. We use the Asana API to create time entries with the original date and duration. The billable/non-billable flag from Function Point migrates to a custom single-select field on the Asana time entry. Per-user rate schedules are extracted separately and documented in a rate-table CSV for manual entry into Asana's billing configuration or a third-party add-on.

Function Point

Expense

maps to

Asana

Asana Project custom fields + Expense CSV export

lossy
Fully supported

Function Point Expenses are logged per Job or Project with vendor, amount, date, description, and posted/unposted status. We export all Expenses as a structured CSV with Project, Job, vendor, amount, and status columns. For Asana Projects that have an associated expense-tracking add-on or integration, we map the expense records to that tool's data model. Without an add-on, Expenses do not have a native Asana representation and the CSV serves as the financial reconciliation document for the billing team.

Function Point

Invoice (Posted)

maps to

Asana

Asana Project custom fields or external billing system

lossy
Fully supported

Function Point Posted Invoices map to a completed billing status preserved in a custom field on the related Project. The invoice total, client, and payment status migrate to a billing custom field set. Asana has no native Invoice object, so Posted Invoice data is preserved as a CSV export with invoice number, client, total, status, and date. The customer's finance team reconciles this against their accounting system post-migration.

Function Point

Invoice (Draft)

maps to

Asana

Asana Project custom field or pending billing CSV

lossy
Fully supported

Function Point Draft Invoices cannot export to QuickBooks via IIF and similarly have no Asana equivalent. We flag Draft invoices during scoping, separate them from Posted records, and preserve them in a Draft-billing CSV with a pending-review flag. The customer reviews this list post-migration before finalizing or voiding the drafts in Function Point before cutting over to Asana.

Function Point

Brief

maps to

Asana

Asana Project description or Document integration

1:1
Fully supported

Function Point Briefs hold project briefs and creative direction as unstructured content. We extract Brief text via CSV and map it to the Asana Project description field, with long briefs chunked into the Project description and additional Tasks created as Brief sections for sequential reading. If the Brief contains file attachments, those files migrate as Asana Project attachments (subject to the 100 MB file size limit per attachment).

Function Point

Service Groups and Services

maps to

Asana

Asana custom fields (multi-select) or Portfolio tracking

1:1
Mapping required

Function Point maintains a service catalog (Service Groups containing Services with rates) used in Estimates. We export the full service catalog as a CSV and create corresponding Asana custom multi-select fields on Projects for service categorization. The rate table from the service catalog is included in the rate-table CSV for manual entry into Asana's billing configuration or a third-party tool.

Function Point

Rates and Markups

maps to

Asana

External rate table CSV for manual configuration

lossy
Mapping required

Function Point per-user and per-role rate schedules with markup percentages do not map to any Asana native object. We extract the complete rate table (user, role, rate, markup percentage) as a structured CSV that the customer's admin reviews and enters into Asana custom fields, a billing add-on, or a spreadsheet for internal reference. This step adds one to two business days to the migration timeline and is completed before the Timesheet phase.

Function Point

Custom Fields (Companies and Contacts)

maps to

Asana

Manual recovery required — no API access

lossy
Not supported

Function Point's REST API explicitly excludes custom fields created in Admin > System Set Up for Companies and Contacts. This is a documented design exclusion, not a temporary limitation. We cannot retrieve these values through any endpoint. During scoping, we identify every custom field on these objects, export the data via CSV from Function Point's module Find page, and provide a manual-recovery plan: the customer enters the values into Asana custom fields on the relevant Projects or member profiles 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.

Function Point logo

Function Point gotchas

High

Custom fields on Companies and Contacts are API-inaccessible

Medium

No API delete operations means relational cleanup must go through CSM

Medium

Invoice migration requires separating Posted from Draft records

Low

API access requires an active CSM relationship and developer resources

Low

Rate and markup schedules require custom mapping to destination billing models

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

  • Function Point custom fields on Companies and Contacts are API-inaccessible

    Function Point's REST API documentation explicitly states that custom fields created in Admin > System Set Up for Companies and Contacts are not readable or writable via any endpoint. This is a documented design exclusion, not a rate-limit or bug. If your Function Point instance uses custom fields on these objects — which is common for agencies tracking client tier, account health score, or billing terms — we cannot retrieve their values through the API. We flag every instance during scoping, extract the data via CSV from the module Find page, and provide a manual-recovery plan for your admin to enter the values into Asana custom fields post-migration. This is the highest-severity limitation unique to the Function Point to Asana migration because it affects CRM data that agencies expect to carry forward.

  • Asana webhook sync limit of 10,000 jobs/projects blocks large instances

    Function Point released an Asana integration in May 2024 that syncs Jobs and Projects between the two platforms bidirectionally. However, Function Point's own help documentation states that Asana's webhook limitations cap the active sync at 10,000 jobs/projects. Instances with more than 10,000 Jobs cannot use the integration for full sync. During scoping, we count the total Jobs in your Function Point instance. If the count exceeds 10,000, we flag this as a migration scope constraint and recommend prioritizing active or recent Jobs for migration rather than archiving legacy records.

  • Asana custom fields require project association before task assignment

    Asana's custom fields are scoped to the project level — a custom field must be added to a project before any Task in that project can carry a value for that field. This creates a sequencing constraint during migration: we must first create each Asana Project, add all required custom fields to it, and only then assign custom field values to Tasks within that project. Skipping this step results in custom field values being silently dropped during task import. We handle this sequencing during the migration build; it is documented here because it is a common point of failure in manual migration attempts.

  • File attachments exceeding 100 MB are silently skipped during migration

    Asana's API silently skips file attachments larger than 100 MB without throwing an error in the import response. Function Point Briefs, Tasks, and Invoices frequently contain large creative assets, video files, or packaged deliverables. During scoping, we identify attachments over 100 MB, flag them in a separate file inventory, and recommend the customer host them externally (Google Drive, Dropbox, SharePoint) with links entered as custom fields or Task descriptions. This limitation applies to any migration into Asana and is documented here as a pair-specific risk for agencies carrying large creative deliverables in Function Point.

  • Function Point Draft invoices have no Asana equivalent and require manual billing reconciliation

    Function Point tracks Invoice status as Draft or Posted. Draft invoices are not included in the QuickBooks IIF export and have no structural equivalent in Asana because Asana has no native Invoice object. We separate Draft and Posted invoices during scoping, migrate Posted invoices as completed billing records with totals preserved in Project custom fields, and export Draft invoices as a separate pending-billing CSV. The customer's billing team must review the Draft CSV before finalizing, voiding, or recreating those invoices in their accounting system post-migration. Mixing Draft and Posted records without this separation causes reconciliation gaps that are difficult to resolve after cutover.

Migration approach

Six steps for a successful Function Point to Asana data migration

  1. Discovery and API access verification

    We audit the Function Point instance across all modules — Companies, Contacts, Projects, Jobs, Tasks, Estimates, Briefs, Timesheets, Expenses, and Invoices — and count active records, custom field usage, and API access status. Function Point API access requires a CSM request and is gated behind the Professional or Enterprise tier; we verify access is enabled before extraction begins. We also count the total Jobs to assess proximity to Asana's 10,000-job sync limit, identify any custom fields on Companies and Contacts (flagged for manual recovery), and document the Estimate and Invoice structure to scope the financial mapping phase. The discovery output is a written migration scope with record counts per module and a custom-field inventory.

  2. Asana workspace design and custom field schema

    We design the Asana workspace structure before any data moves. This includes creating the Organization and Teams (mapped from Function Point's organizational structure), provisioning all Projects with the appropriate Sections for Job decomposition, and adding custom fields to each Project before task import. Custom fields added include budget (numeric), job status (single-select), cost code (text), billable flag (single-select), and any client or company reference fields. The custom field schema is validated in Asana before record import begins.

  3. Sandbox migration and reconciliation

    We run a full migration into a test Asana workspace using production-like data volume. The customer's project manager and agency owner reconcile record counts, spot-check 25-50 random records against the Function Point source, and review the financial mapping from Estimates and Expenses. Any field mapping corrections, custom field additions, or Job-to-Project decomposition decisions happen at this stage. We do not run production migration until the sandbox sign-off is received.

  4. User reconciliation and member provisioning

    We extract every distinct Function Point user referenced on Timesheets, Tasks, Jobs, and Expenses and match them by email against the Asana destination Organization's member list. Any Function Point user without a matching Asana member goes to a reconciliation queue. The customer's admin provisions any missing Asana members (active or guest depending on role). Owner assignment on migrated records cannot proceed until all referenced users have an Asana account.

  5. Production migration in dependency order

    We run production migration in record-dependency order: first Companies and Contacts (with the manual-recovery CSV for custom CRM fields prepared in parallel), then Projects and the Jobs decomposed into Projects or Sections, then Tasks with custom field values resolved against the pre-built field schema, then Briefs as Project descriptions and supplemental Tasks, then Timesheets via the Asana time tracking API with billable flags preserved, then Expenses as a structured CSV export with Project references. Each phase emits a row-count reconciliation report before the next phase begins. Estimates, rate schedules, and invoice data are processed in a final financial phase with the rate-table CSV reviewed by the billing team before finalization.

  6. Cutover, validation, and handoff

    We freeze writes in Function Point during cutover, run a final delta migration of any records modified during the migration window, then enable Asana as the system of record. We deliver a written inventory of every Function Point Workflow, automation, QuickBooks sync rule, and rate schedule that requires rebuild in Asana Rules, a compatible billing add-on, or an external system. We support a one-week hypercare window for reconciliation issues raised by the team. We do not rebuild Function Point Workflows or automations as Asana Rules 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

Function Point logo

Function Point

Source

Strengths

  • Comprehensive module set covering Projects, Jobs, Tasks, Timesheets, Expenses, Invoices, and CRM without requiring third-party integrations
  • Time tracking accuracy is a consistent differentiator, with granular logging per user per Job and billable/non-billable flags that feed directly into invoicing
  • Budget tracking at the Project level with threshold alerts gives agency owners proactive visibility into profitability before projects go over budget
  • Native QuickBooks integration exports posted Invoices and Expenses directly to an IIF file for import, eliminating double-entry for shops already on QuickBooks
  • Customer service scores are consistently high (4.5/5 on Capterra), with users citing responsive support staff and useful help-center documentation

Weaknesses

  • REST API excludes custom fields entirely — any migration involving custom Company or Contact data requires manual CSV extraction and manual entry at the destination
  • No API support for record deletion means data cleanup before or after migration must be coordinated with Function Point's Customer Success team
  • Mobile experience is severely limited to time entry only; teams expecting full mobile project management functionality will be disappointed
  • UI performance degrades under concurrent user load, making the platform increasingly frustrating as agencies scale past the 20–30 user range
  • Custom reporting requires CSV export to external tools; there is no built-in query builder or custom report designer for users who need ad-hoc analysis
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. 2 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 Function Point and Asana.

  • Object compatibility

    B

    2 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

    Function Point: Not publicly documented in public-facing help articles; rate limits are not disclosed on the API documentation portal.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Function Point 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 Function Point to Asana data migrations

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

Can't find your answer?

Walk through your Function Point 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 four and six weeks for accounts under 500 Jobs, 5,000 Tasks, and 20,000 Timesheets with no custom fields on Companies or Contacts requiring manual recovery. Migrations with active Estimates and Expense records, large Timesheet histories (over 100,000 entries), multiple billing rate schedules, or extensive Brief content move to eight to fourteen weeks because of the multi-phase financial mapping, rate-table review, and the manual-recovery planning required for API-excluded custom CRM fields.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Function Point.
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