Project Management migration
Field-level mapping, validation, and rollback between IPMP and Asana. We move data and schema; workflows are rebuilt natively in Asana.
IPMP
Source
Asana
Destination
Compatibility
5 of 12
objects map 1:1 between IPMP and Asana.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from IPMP to Asana is a structural migration from a professional body's record system into a cloud-native project management workspace. IPMP does not publish a public API; migration relies on CSV exports from the admin portal or coordinated database access confirmed during discovery. We map individual member profiles to Asana team member profiles with certification and CPD data stored as custom fields, organisational membership tiers to Asana portfolios or projects, and examination results to tasks within a certification-tracking project structure. The dual AAPM (USA) and COTVET-Ghana accreditation framing is preserved in the destination through a credential mapping table so that each record retains its full issuing-body provenance. CPD submissions submitted in inconsistent formats are normalised to a standard schema before loading. Workflows, automations, and membership billing configurations do not migrate; we deliver a written inventory for the admin to rebuild in Asana or manually reconfigure post-migration.
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 IPMP 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.
IPMP
Members
Asana
User Profiles + Custom Fields
1:1Individual member records map to Asana User profiles with name, email, and membership tier stored as custom fields (e.g., membership_tier__c, registration_status__c, companies_code_reference__c). IPMP member IDs become the gid field or an external_id custom field for dedupe on re-import. Member tier (individual practitioner) is distinguished from Organisational Member during scoping by cross-referencing the membership agreement obtained during discovery.
IPMP
Certifications
Asana
Task + Custom Fields
1:1Certification records attach as tasks under a Certifications project in Asana. Each task carries issue_date__c, expiry_date__c, competency_category__c, issuing_body__c (AAPM or COTVET-Ghana), and credential_reference__c as custom fields. The issuing_body__c field preserves dual-accreditation provenance and prevents cross-contamination between AAPM and COTVET reference numbering conventions. Certification renewal deadlines are stored as due dates on the task.
IPMP
Professional Examinations
Asana
Subtask under Certification Task
1:manyExamination results attach as subtasks under the parent Certification task. Fields include attempt_date__c, score__c, pass_fail__c, and exam_reference__c. If examination records live in a separate assessment platform integrated via API, we identify the external source, extract relevant records, and re-associate each result with the corresponding member certification task via the member_id external reference.
IPMP
CPD Logs
Asana
Recurring Tasks under CPD Project
1:manyCPD hours are migrated as tasks under a CPD Tracking project, with each task representing one CPD entry. Because CPD submissions arrive in varying formats (spreadsheets, email attestations), we apply a normalisation step extracting date, hours_claimed__c, competency_area__c, and evidence_reference__c before loading. We validate hours against COTVET CPD requirements to flag under- or over-claimed entries. Recurring CPD obligations are modelled as repeating tasks in Asana with the due date set to the renewal period.
IPMP
Training Courses
Asana
Project or Section under Training Project
1:manyCourses delivered through the third-party TVET-registered centre are modelled as projects or sections within a Training project. Each course completion is a task with completion_date__c, outcome__c (passed, pending, not completed), and course_reference__c. If course records live outside the primary IPMP membership system, we identify the external source, extract records, and map them to the corresponding member profile via member_id lookup.
IPMP
Organisational Members
Asana
Portfolio or Project with Member Tasks
1:1Corporate or organisational memberships are modelled as Asana Portfolios or Projects with organisational-level metadata (company_name__c, membership_tier__c, seat_count__c, billing_cycle__c) stored as custom fields on the project. Individual practitioners belonging to the organisational member are added as project members. Tier entitlements, seat limits, and billing cycles are sourced from the membership agreement during discovery since they are not publicly documented.
IPMP
Document Storage
Asana
Attachments on Tasks
1:1Certificates, ID documents, and academic credentials stored as PDFs or scanned images in IPMP are migrated as attachments on the relevant Certification or Member tasks. We extract available file references from the CSV export and preserve URLs where accessible. Full file migration requires a separate file transfer coordination with the institute's technical team if the files are hosted in a system outside the CSV export scope.
IPMP
Member Profile (Contact Details)
Asana
User Profile + Contact Custom Fields
1:1Member contact details (name, email, phone, professional address) map to Asana User profile fields and custom fields (e.g., professional_body_registration__c). The Companies Code Act 179 registry reference is stored as a custom field for regulatory audit purposes. We preserve the full contact history by attaching any correspondence records as notes or attachments to the member task.
IPMP
Examination Attempts
Asana
Subtask within Certification Task
1:manyMultiple examination attempts for the same certification are modelled as subtasks under the parent Certification task. Each subtask captures attempt_number__c, attempt_date__c, score__c, and pass_fail__c. This structure allows the institute to see the full examination history without duplicating the certification record.
IPMP
CPD Competency Areas
Asana
Custom Field (Single-Select)
lossyCPD competency areas aligned to NABPTEX-Ghana and COTVET frameworks are configured as single-select custom fields in the CPD Tracking project. We pre-create the picklist values during schema setup based on the competency framework documentation obtained during discovery. New competency areas added post-migration are added to the picklist by the institute's admin.
IPMP
Issuing Body References
Asana
Custom Field (Single-Select: AAPM, COTVET-Ghana)
lossyThe dual accreditation framework is preserved by creating a issuing_body__c single-select custom field on Certification tasks. The two options are AAPM and COTVET-Ghana, matching the two issuing bodies IPMP aligns with. Credential reference numbers are stored separately in credential_reference__c to avoid mixing AAPM's US-format numbering with COTVET's Ghana-format numbering.
IPMP
Membership Tier
Asana
Custom Field (Single-Select)
lossyIndividual membership tiers (if applicable) and organisational membership tiers are modelled as membership_tier__c single-select custom fields on User profiles and Portfolio/Project metadata respectively. Tier options are defined during discovery based on the membership agreement. Seat limits and entitlements are stored in separate custom fields on the organisational membership project.
| IPMP | Asana | Compatibility | |
|---|---|---|---|
| Members | User Profiles + Custom Fields1:1 | Mapping required | |
| Certifications | Task + Custom Fields1:1 | Mapping required | |
| Professional Examinations | Subtask under Certification Task1:many | Mapping required | |
| CPD Logs | Recurring Tasks under CPD Project1:many | Fully supported | |
| Training Courses | Project or Section under Training Project1:many | Mapping required | |
| Organisational Members | Portfolio or Project with Member Tasks1:1 | Mapping required | |
| Document Storage | Attachments on Tasks1:1 | Mapping required | |
| Member Profile (Contact Details) | User Profile + Contact Custom Fields1:1 | Fully supported | |
| Examination Attempts | Subtask within Certification Task1:many | Fully supported | |
| CPD Competency Areas | Custom Field (Single-Select)lossy | Fully supported | |
| Issuing Body References | Custom Field (Single-Select: AAPM, COTVET-Ghana)lossy | Fully supported | |
| Membership Tier | Custom Field (Single-Select)lossy | 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.
IPMP gotchas
No public API confirmed for automated data export
Certification records span multiple issuing bodies
CPD logging is unstructured and varies by member
Organisational membership tier boundaries are not publicly documented
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
Discovery and data export confirmation
We conduct a scoping call with the IPMP administrative team to confirm available export mechanisms (CSV from admin portal, direct database access, or manual file handover), record volumes across Members, Certifications, CPD Logs, Examinations, and Training Courses, and the availability of the membership agreement for organisational tier documentation. We also confirm whether examination records live in a separate assessment platform with its own API or export path. The discovery output is a written migration scope document listing all available records, export formats, and any records flagged as inaccessible or PDF-only.
Schema design in Asana
We design the Asana destination structure based on the scoped records. This includes creating a Member Certifications portfolio (with individual certification projects), a CPD Tracking project with competency-area custom fields, a Training project with course sections, and Organisational Member portfolios with seat count and billing cycle custom fields. Custom field types are defined (date, number, single-select, text) and created via Asana's custom fields API or manually by the admin before migration. Issuing body and credential reference fields are configured to support the dual AAPM and COTVET-Ghana framework.
CPD normalisation and credential mapping
We normalise all CPD submissions to a standard schema (date, hours_claimed, competency_area, evidence_reference, source_format). Submissions that cannot be normalised are flagged in a reconciliation report. We also build the issuing body and credential reference mapping table that translates AAPM and COTVET numbering conventions into the Asana credential_reference__c format. This step produces a transformation script that runs during the migration load, not a manual re-entry process.
Sandbox migration and reconciliation
We run a full migration into a test Asana workspace using available export data. The institute's admin reconciles record counts (Members in, Certifications in, CPD entries in, Examinations in, Training completions in), spot-checks 25-50 random records against the source CSV or database export, and reviews the CPD normalisation output for accuracy. Any mapping corrections are applied to the transformation script before the production migration begins. If the IPMP export produces PDFs rather than structured data, this step confirms the manual entry scope.
Owner and user provisioning coordination
We identify every distinct IPMP staff member referenced as a record owner or certification issuer and match them by email to Asana user accounts. If any IPMP staff do not have Asana accounts, we provide a provisioning list to the institute's admin before production migration begins. Owner assignments on certification and CPD tasks are resolved via this User mapping.
Production migration in dependency order
We run production migration in record-dependency order: Asana Users (provisioned manually, validated), Organisational Member Portfolios (with tier and seat metadata), Individual Member profiles, Certification tasks (with issuing body and credential reference), Examination subtasks, CPD tasks, and Training completion records. Each phase emits a row-count reconciliation report before the next phase begins. Documents and certificates are attached to the relevant tasks as the final phase.
Cutover, validation, and automation rebuild handoff
We freeze any new IPMP data entry during cutover and run a final delta migration of any records modified during the migration window. We deliver a written automation inventory noting that Asana Rules, Forms, and any automations must be rebuilt by the institute's admin post-migration. We support a one-week hypercare window where we resolve any reconciliation issues raised by the institute's team. We do not rebuild IPMP's internal processes as Asana Rules as standard scope; that is a separate engagement.
Platform deep dives
IPMP
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 IPMP 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
IPMP: N/A.
Data volume sensitivity
IPMP 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 IPMP to Asana migration scoping. Not seeing yours? Book a call.
Walk through your IPMP 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 IPMP
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.