MIGRATION GUIDE
How to migrate from Asana to AgencyPro
Asana is a work management tool; AgencyPro adds the client side: a branded portal, requests, invoicing and payments. This guide covers what to export from Asana, what AgencyPro imports by CSV (clients and services), and how to rebuild active projects.
Why agencies switch from Asana
Clients get their own portal
Each client logs in to a branded portal to submit requests, approve work, download files and pay invoices. In Asana, clients either join as guests in your workspace or stay outside it.
Invoicing and payments built in
Invoices, Stripe and PayPal payments, and subscriptions for retainers are on every AgencyPro plan, including Basic at $39 a month.
Time tracking tied to billing
On Pro, time is tracked against requests and can feed hourly services and invoices instead of living in a separate timer.
Unlimited clients, predictable seats
No per-client fees. Seats are priced per plan: a 6-person team on Pro is $79 + 5 x $20 = $179 a month.
Example migration timeline
DAYS 1-2
Export and plan
Export from Asana, count active clients and open work, and pick a cutover date at the start of a billing period.
DAYS 3-4
Import clients and services
Fill AgencyPro's CSV templates, test with a few rows, then import the full files.
DAYS 5-9
Rebuild active work and payments
Recreate open work as requests, connect Stripe or PayPal, and set up subscriptions.
DAYS 10-14
Parallel run and cutover
Invite clients, run both tools for one billing cycle, then cancel Asana.
Step-by-step migration process
Export your data from Asana
In each active Asana project, open the project actions menu and choose Export > CSV (or JSON). The CSV includes task names, assignees, due dates, tags, notes and parent tasks. Organization-wide JSON export through the API is an Enterprise-level feature.
Prepare your client CSV
In AgencyPro, open Imports > Clients and download the template. Every row needs a contact name, an email and an organization (company) name; the import runbook below shows which Asana field goes in which column. Keep each file under 1,000 rows and test with a few rows first.
Import clients
Upload the CSV under Imports > Clients, map any columns the importer did not match automatically, and check the preview. Import stays disabled until the preview shows no errors. Rows whose email is already in AgencyPro are skipped, so a corrected file can be re-run safely.
Import services
Download the template from Imports > Services and add the services you sell. Each row needs a name, a type (one_time or recurring) and a pricing type (standard, time_based or credit_based); prices go in as plain numbers. Upload, check the preview and confirm. Credit-based and hourly services need the Pro plan, and recurring services get their billing period in the service editor after import.
Connect payments and subscriptions
Connect Stripe under Payments > Stripe Connect or add PayPal, then recreate retainers as service subscriptions. Clients enter payment details again, because saved cards do not move between platforms.
Recreate active work
Asana tasks do not import into AgencyPro. For each active Asana project, create the client's work as AgencyPro requests (or a project), using your Asana CSV as the checklist. Finished projects stay in the export.
Invite your team and clients
Invite team members (each seat after the first is billed per plan), then send clients their portal invitation with a short note on where to submit requests and find invoices.
Run in parallel, then cancel Asana
Run both tools for one billing cycle. When new requests and payments are running in AgencyPro, save a final Asana export and cancel.
What moves to AgencyPro, and how
Import runbook: Asana to AgencyPro
AgencyPro's CSV importer takes two files: clients (Imports > Clients) and services (Imports > Services). Each has a downloadable template, and each file can hold up to 1,000 rows. Projects, tasks, files, messages, invoices, payment history, saved cards and time entries are not imported; they are set up by hand or with the migration service on the Plus plan. Where a vendor does not publish its export headers, the left column describes the data, and you match the real header in the importer's mapping step.
1. Client file
Where it comes from: Asana has no client records. If you name projects after clients, export each project to CSV and use the Projects column as your company list; contacts come from your CRM or billing tool. Asana: export to CSV
| From Asana | AgencyPro column | Notes |
|---|---|---|
| Projects column (one value per client) | organization_name | Required. Remove duplicates before import. |
| Contact name (from your CRM, invoices or billing tool) | name | Required. The person who will log in to the portal. |
| Contact email | Required. One row per email; an email already in AgencyPro is skipped. |
Rows with the same organization_name become contacts of one organization, and the first of them becomes its owner. The match is exact, so "Example Co" and "Example Co." create two organizations. Address and billing details are taken from the first row of each organization. Columns you do not map are ignored.
2. Service file
Where it comes from: Asana has no price list. Build the services file from your proposals or invoices.
| From your offer | AgencyPro column | Notes |
|---|---|---|
| Service or package name | name | Required. Must be unique; a name already in AgencyPro is skipped. |
| Short description | description | |
| One-off or ongoing | type | Required: one_time or recurring. |
| How it is priced | pricing_type | Required: standard, time_based or credit_based. Time-based and credit-based services need Pro. |
| Price | price | A plain number such as 2500.00. A currency sign or thousands comma leaves the price empty. |
| Hours in a time block | hours | For time_based services. |
| Credits per purchase | credits | For credit_based services. |
| Shown to clients in the catalog | show_in_catalog | true or false. Defaults to true. |
The CSV sets the basics only. After import, open each recurring service and add its pricing tier (billing period and price per period), and set intake form fields, images, turnaround and FAQs in the service editor.
3. Sample files
Example data, in the column names AgencyPro's templates use. Download the real templates from Imports > Clients and Imports > Services; they include every optional column.
clients.csv
name,email,phone,position,organization_name,billing_city,billing_country
"Jane Example","jane@example.com","+1 555 0100","Marketing Lead","Example Co","Austin","US"
"Sam Example","sam@example.com","","Founder","Example Co","Austin","US"
"Lee Sample","lee@sample.org","","Owner","Sample Studio","Leeds","GB"services.csv
name,description,type,pricing_type,price,hours,credits,show_in_catalog
"Website audit","Technical and content audit","one_time","standard","1500.00","","","true"
"SEO retainer","Monthly SEO work","recurring","standard","2000.00","","","true"
"Development hours (10)","Prepaid block of 10 hours","one_time","time_based","1200.00","10","","true"4. Permissions
- Asana: You can export any project you can open. A full organization export in JSON goes through Asana's API and is an Enterprise-level feature.
- AgencyPro: importing clients needs the create clients permission, and importing services needs the create services permission, in your workspace role.
- Importing does not email anyone. Clients get portal access when you send their invite from the client record, so you choose when they see the portal.
5. Validate
- Import a test file of three to five rows first, then check those clients and services in AgencyPro.
- In the mapping step, check every column. Headers such as Email, Company and Phone are matched automatically; map the rest by hand.
- The preview checks the first 100 rows for missing required values, invalid emails and invalid type values, and the import stays disabled until it shows no errors. Later rows with errors are skipped and listed by row number in the results.
- Rows whose email (clients) or name (services) already exists in the workspace are skipped, not overwritten.
- Each imported client fires the Client Created event. If you run Zaps on that trigger (Zapier is on the Plus plan), pause them during the import.
- After the import, export clients and services from Exports and compare the row counts with your Asana file.
6. Roll back
- There is no undo button. Select the imported clients or services in their lists and delete them in bulk, fix the CSV, and import again.
- To correct a client that imported with wrong details, delete or edit it first: re-importing the same email skips the row.
- Keep Asana running until the parallel run ends. Your Asana data is the fallback if anything needs re-checking.
Common migration challenges
Challenge: Asana has no client list
Asana organizes work by project, not client. Fix: build the client CSV from your CRM, accounting tool or invoices, using AgencyPro's client import template, before you touch projects.
Challenge: Rules do not transfer
Asana Rules stay in Asana. Fix: list the rules your team actually relies on and rebuild only those, using AgencyPro features such as auto-assign requests and recurring auto-requests on Pro.
Challenge: Internal tasks vs client work
Not every Asana task belongs in front of a client. Fix: move client-facing work into AgencyPro requests and keep purely internal checklists out of the portal.
Post-migration checklist
Frequently asked questions
What can I import from Asana into AgencyPro?
Clients and services, by CSV. AgencyPro's importer (Imports > Clients and Imports > Services) gives you a template, validates the file and shows a preview before you confirm, up to 1,000 rows per file. Projects, tasks, files, comments and history are not imported automatically. Asana tasks do not import into AgencyPro. For each active Asana project, create the client's work as AgencyPro requests (or a project), using your Asana CSV as the checklist. Finished projects stay in the export.
Can I export my data from Asana?
Yes, per project. In a project, open the project actions menu and choose Export, then CSV or JSON. The CSV includes task ID, dates, name, assignee, due date, tags, notes, project and parent task. A full organization export in JSON is available through Asana's API on Enterprise plans.
How long does the move take?
It depends on how much active work you have. The client and service imports are quick once your CSVs match AgencyPro's templates. Rebuilding open work is the bigger job, so count your active clients and open items in Asana before you pick a cutover date, and plan one billing cycle of parallel running. The timeline on this page is an example for a small agency.
What does the AgencyPro migration service include?
The migration service is part of the Plus plan ($149 a month, or $124.17 a month billed annually). The AgencyPro migration team helps you move from Asana, including setting up the projects, tasks, files and history that the CSV importer does not bring in. On Basic and Pro you use the CSV importer and rebuild active work yourself.
When is it better to stay on Asana?
If your clients never need to log in, you invoice from a separate accounting tool you like, and Asana's task features are what your team values most, you may not need to move. You can also keep Asana for internal work and connect it to AgencyPro requests through Zapier on the Plus plan.
Continue learning
AgencyPro project management
Requests, projects and approvals for agency delivery →
Agency project management guide
How agencies run delivery without losing margin →
Best project management for agencies
How leading PM platforms compare for agency work →
AgencyPro vs Asana
Side-by-side feature and pricing comparison →
Moving client work out of Asana?
Book a call and we will look at your Asana projects and client list and tell you what imports by CSV and what to rebuild first.