MIGRATION GUIDE

How to migrate from Harvest to AgencyPro

Harvest exports clients, projects and time to CSV. AgencyPro imports clients and services by CSV; time entries stay in your Harvest export. This guide covers each step, and when it makes sense to keep Harvest.

Why agencies switch from Harvest

Time next to the work

On Pro, time is tracked against requests, so hours, files and approvals for a piece of work are in one place.

Hourly and credit-based services

Set hourly or credit-based services on Pro, so retainers and hour banks are part of the service the client bought.

A client portal

Clients submit requests, approve work and pay invoices in a portal branded as your agency.

Invoices and payments

Invoice and collect through Stripe or PayPal on every plan, with subscriptions for retainers.

Example migration timeline

DAYS 1-2

Export and plan

Export from Harvest, 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 Harvest.

Step-by-step migration process

1

Export your data from Harvest

In Harvest, export clients and client contacts from Manage > Clients (Excel or CSV), projects from the Projects section (CSV or Excel), and time from Reports > Time or the Detailed time report (CSV, Excel or PDF).

2

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 Harvest field goes in which column. Keep each file under 1,000 rows and test with a few rows first.

3

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.

4

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.

5

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.

6

Recreate active work

Create active Harvest projects as AgencyPro requests or projects for each client, and set up the matching hourly services (Pro) so new time tracked in AgencyPro bills at the right rate.

7

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.

8

Run in parallel, then cancel Harvest

Run both tools for one billing cycle. When new requests and payments are running in AgencyPro, save a final Harvest export and cancel.

What moves to AgencyPro, and how

→Clients and contacts: Harvest CSV, then CSV import (Imports > Clients)
→Billable rates as services: CSV import (Imports > Services)
→Active projects: recreated as requests or projects by hand, or with the Plus migration team
→Historical time entries: kept in your Harvest time report export
→Invoices: past invoices kept in Harvest exports
→Expenses: stay in your Harvest export or accounting tool
→Budgets: re-entered on services or projects where needed
→Team members: invited to AgencyPro (seats billed per plan)

Import runbook: Harvest 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: Manage > Clients > Import/Export. Export client contacts (CSV) for people, and clients (CSV) for mailing addresses. Harvest: exporting data

From HarvestAgencyPro columnNotes
First name and last name (client contacts file)nameRequired. Combine into one column.
EmailemailRequired.
Clientorganization_nameRequired.
Titleposition
Office phone (or mobile phone)phone
Address (clients file)organization_addressCopy it onto the first contact row for each client.

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: Harvest tracks tasks and hourly rates, not packaged services. Turn each billable offer into a service; prepaid hour blocks become time_based services (Pro) with price and hours.

From your offerAgencyPro columnNotes
Hourly rate x block sizeprice, hoursFor example a 10-hour block at $120 an hour: price 1200, hours 10, pricing_type time_based.
Service or package namenameRequired. Must be unique; a name already in AgencyPro is skipped.
Short descriptiondescription
One-off or ongoingtypeRequired: one_time or recurring.
How it is pricedpricing_typeRequired: standard, time_based or credit_based. Time-based and credit-based services need Pro.
PricepriceA plain number such as 2500.00. A currency sign or thousands comma leaves the price empty.
Hours in a time blockhoursFor time_based services.
Credits per purchasecreditsFor credit_based services.
Shown to clients in the catalogshow_in_catalogtrue 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

  • Harvest: Administrators, and Managers with permission to create and edit clients, can open Manage > Clients and export.
  • 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 Harvest 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 Harvest running until the parallel run ends. Your Harvest data is the fallback if anything needs re-checking.

Common migration challenges

Challenge: Time history does not import

Old time entries stay in Harvest. Fix: export the Detailed time report for the last year and store it with your records; start tracking in AgencyPro from the cutover date.

Challenge: Mid-month cutover

Splitting a month across two tools makes invoices messy. Fix: switch at the start of a billing period.

Challenge: Time tracking is a Pro feature

Basic does not include time tracking. Fix: choose Pro if your team bills by the hour.

Post-migration checklist

Client CSV imported and spot-checked against your Harvest export
Services imported with the right prices and types
Every active client has their open work recreated in AgencyPro
Stripe or PayPal connected and a test payment completed
Retainers rebuilt as subscriptions with the first payment confirmed
Team members invited with the right roles
Harvest Detailed time report exported for the period you may need to audit
Final Harvest export saved before you cancel

Frequently asked questions

What can I import from Harvest 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. Create active Harvest projects as AgencyPro requests or projects for each client, and set up the matching hourly services (Pro) so new time tracked in AgencyPro bills at the right rate.

Can I export my data from Harvest?

Yes. Administrators and managers can export clients and contacts from Manage > Clients, projects from the Projects section, and time from Reports > Time or the Detailed time report, in CSV or Excel. Harvest's help center lists each export.

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 Harvest 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 Harvest, 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 Harvest?

If your team only needs time tracking and invoicing, with no client portal, Harvest is a focused tool and may be enough. AgencyPro is worth it when clients need to submit requests and approve work in one place.

Moving from Harvest?

Book a call and we will help you turn your Harvest clients and rates into AgencyPro clients and services.