How-to Guide

Migrating from SolarNexus to Payaca: what actually moves

What a SolarNexus export really contains, how its jobs, participants, milestones and attributes map onto Payaca, and how we sequenced a live migration so crews kept working and no homeowner got a stray email.

This guide is for a solar install business that has decided to leave SolarNexus and wants to know what the move really involves. It's written from a migration we ran ourselves, end to end, on a business with several thousand jobs, a heat pump line and a service book. Everything below is what we found in the data, not what a brochure says should be there.

The short version: a SolarNexus export is rich and well structured, and almost all of it has a home in Payaca. The work isn't moving the records. It's deciding where each job sits on day one, keeping your automations from messaging homeowners while thousands of projects arrive, and bringing documents across in the order your team needs them.

What this guide covers

  • What a SolarNexus job export contains: jobs, participants, milestones, tasks, attributes, solutions, a job log and tagged documents
  • How each of those maps onto Payaca customers, projects, stages, fieldsets, tasks, notes and files
  • What moves cleanly and what gets rebuilt
  • The tiered sequence we used: a mirror test account first, current jobs before go-live, history and documents after
  • The gotchas that cost us time, so they don't cost you any

Want us to look at your setup?

Book a walkthrough and we'll map your SolarNexus processes, milestones and attributes onto a Payaca workspace before you commit to anything.

What the SolarNexus export gives you

We worked from the customer's own data export, delivered as a shared drive folder. It had two layers.

A job index. One CSV row per job across the whole database: job id, number, status and type. This is the census. Every check you run later reconciles against it.

One folder per job. Each folder held:

  • job.json, the full job record. That covers the job process and lead source, the sales owner, the participants (people and organizations, with contacts, mailing address and roles), the site address with coordinates, milestone phases, tasks, solutions and attributes.
  • job_log.json, the job's activity log.
  • index_documents.csv, a list of every document on the job with its SolarNexus tags (Proposals, Contracts, City Permit, Commissioning, Site Visit, Roof Areas and so on).
  • A documents folder with the files themselves.

A few things about the shape are worth knowing before you plan.

Attributes are wide. Our customer's account had over 200 attribute keys per job, covering sales qualification, site and roof details, electrical runs, permitting, service diagnostics and rebate tracking. On a typical job only around 30 were filled in. Years of custom fields pile up, and plenty of them were labeled "blank" or "note".

Solutions are full sales records. Each solution carries its price, financing option, first-year and lifetime production, offset and self-consumption figures, and the services and items in it. There were close to 6,000 of them across the book.

Documents are big. Around 157,000 documents were listed across 4,700 jobs, more than 100 GB in total, most of it site photos.

Later exports were deltas. The index was always the whole database, but the job folders only held what had changed since the previous export. Your verification needs to account for that, or you'll think jobs have gone missing.

Some things weren't in the export at all. Payments weren't there. Of roughly 32,000 tasks, only a few dozen carried an appointment time, so upcoming site visits had to come from a separate list the customer sent us.

How SolarNexus maps onto Payaca

The model, side by side

In SolarNexus, a job has participants and a site. In Payaca, a Customer is the person or company, with Customer Contacts and Addresses under it, and a Project is the job, linked to that customer. The first participant on a job became the customer, further participants became extra contacts, and the site became the project's site address. A repeat customer with three jobs ends up as one customer with three projects.

The rest mapped like this:

  • Processes and milestones to pipelines and stages. SolarNexus job processes became Payaca pipelines (solar, heat pumps, service), and the milestone a job had reached decided its stage. Across the book there were over 100 distinct milestone names, and every one had to be mapped before anything loaded.
  • Open milestone tasks to tasks. Open work became open tasks on the project, so the team could pick up where they left off.
  • Attributes to fieldsets. The populated attributes went into project fieldsets, one set of fields per pipeline. The customer chose up to 10 "daily" fields per board that the office looks at every day, so the project view stays readable. People fields, like project manager or site surveyor, went onto the project as roles rather than text.
  • The job log and solutions to a note. Each project got one note holding its SolarNexus history and quote details. We didn't recreate old solutions as live Payaca proposals, because a proposal is something you send and a homeowner signs. History belongs in the record, not in the sales pipeline.
  • Documents to project files. Each file attaches to its project in Payaca.
  • Provenance on everything. Every migrated project kept its SolarNexus job number as the project reference, carried a Nexus tag, and had a migration fieldset with the original id, status, type and process. Payaca's own numbering started above the highest SolarNexus number so the two can never clash.
How SolarNexus records map to Payaca
  • SolarNexus: First participant on a job becomes Payaca: Customer
  • SolarNexus: Further participants becomes Payaca: Customer Contacts
  • SolarNexus: Site becomes Payaca: The project's site address
  • SolarNexus: Jobs becomes Payaca: ProjectsThe job number becomes the project reference
  • SolarNexus: Job processes becomes Payaca: PipelinesSolar, heat pumps and service
  • SolarNexus: Milestones becomes Payaca: Pipeline stages
  • SolarNexus: Open milestone tasks becomes Payaca: Tasks on the project
  • SolarNexus: Attributes becomes Payaca: Project fieldsetsPopulated attributes only
  • SolarNexus: Job log and solutions becomes Payaca: One history note on the projectOld solutions aren't recreated as live proposals
  • SolarNexus: Documents and photos becomes Payaca: Project files
  • SolarNexus: Upcoming site visits becomes Payaca: Calendar eventsFrom a separate list
  • SolarNexus: Part payments becomes Payaca: Unsent invoices with the payment recordedFrom a separate list

What moves cleanly and what gets rebuilt

Rebuilt or decided on the way in

  • Workflows, task templates and automations
  • Which stage each in-flight job lands in
  • Which of 200+ attributes deserve a field
  • Historical solutions (kept as a note, not live proposals)
  • Upcoming site visits (from a separate list)
  • Part payments (from a separate list)
  • Customers sharing one office email address

Moves cleanly

  • Customers, contacts and mailing addresses
  • Site addresses
  • Jobs as projects, with their original start dates
  • Job numbers as project references
  • Populated attributes into fieldsets
  • Open tasks
  • Job history as a project note
  • Documents and photos as project files

The rebuild column is mostly the workflow, and that's the point of moving. We built the customer's pipelines, stage guards, task templates and automations in Payaca before any data arrived, then placed each job into that new shape. You aren't copying SolarNexus. You're moving your book into a setup designed for how you want to run installs from now on.

How we ran it

A mirror test account first. Every load ran against a test account before it touched the live one. Before each rehearsal we copied the live account's setup across (tags, email templates, fieldsets, pipelines, stages, task templates, guards and automations) and checked the two matched exactly. On the test account every customer email and phone number was replaced or blanked, so nothing could reach a real homeowner whatever was switched on.

A small, hostile pilot. The first load was under 40 jobs, chosen to be awkward: duplicates, jobs with no email or no start date, every status and the oldest jobs in the book. Then a rehearsal of around 85 jobs from a fresh export. Each time we checked counts three ways (export, our ledger, the account) and the stage distribution, then ran the loader again and expected it to create nothing.

Three tiers. The whole book was too big to finish before go-live, so we loaded what the team needed on day one first.

  1. Current jobs, before go-live. Around 1,000 active and deferred jobs: customer and contacts, the project in its mapped stage, open tasks, key fields and the history note. They went in overnight, while the team was offline, a few days before go-live, so staff trained on real jobs.
  2. A top-up at the freeze. Once SolarNexus went read-only, we loaded jobs that had changed since the export, booked visits as events and part-paid jobs as unsent invoices with the payment recorded, with booking confirmations and invoice reminders paused. Go-live was the next morning.
  3. History and documents, after go-live. The roughly 3,700 closed jobs followed in the same overnight window, and documents came across in the order the team asked for: job sheets and plans, then photos, contracts, invoices and permits.

Every run was reversible. A ledger keyed on SolarNexus ids recorded what each run created. A re-run skipped anything already there, and a rollback removed only that run's records. Each load had a deadline: if it wasn't confirmed by the time the team started work, it rolled back and they stayed on SolarNexus that day.

From the first export to go-live took about three months, most of it spent designing and testing the new workflow with the customer. The live loads themselves fitted into a single week.

A US solar and heat pump business with around 4,700 jobs, about 1,000 of them live, and more than 150,000 documents moved over this way. Crews worked on real jobs in Payaca during training week, and the migration didn't send a single message to a homeowner.

What we learned

Automations are the real risk. Creating a project and placing it in a stage looks to Payaca like a new job arriving. Every migrated project carried a Nexus tag, customer-facing automations got a "does not have tag Nexus" condition, and the ones that couldn't be scoped that way stayed off for the load. The customer's own outside automations were paused too. Plan the tag's removal as its own step after go-live, because "days in stage" automations can wake up on it.

Stage guards still apply. A project created into a later stage effectively passes through the earlier ones, so guards are checked. We created each project in the first stage, moved it explicitly and read the stage back.

Don't merge customers on email. Hundreds of SolarNexus records shared an email address, often an office inbox used by several businesses, and around 150 jobs had none. We keyed identity on SolarNexus participant ids, agreed a survivor rule with the customer for shared emails, and kept names and phone numbers when an email was already taken.

Watch for duplicate exports. About 50 jobs came out in two folders each. We kept the folder with the larger document list and logged every decision for the customer to review.

Check the export is complete. One export listed far more documents than it actually contained. Compare what's indexed with what's there before you trust it.

One open-milestone rule. Many active jobs had no open milestone, and some had several. We placed jobs by their furthest open milestone, and never put a running job into a finished stage.

Want us to map yours?

If you're on SolarNexus and weighing the move, book a walkthrough. We'll look at your processes, milestones and attributes, and show you where each one would land in Payaca. Guided onboarding on Growth and above includes the migration. The pricing page has the details.


Moving from something else?

SolarNexus is a trademark of its owner. Payaca isn't affiliated with or endorsed by SolarNexus.

Ready to streamline your operations?

See how Payaca helps clean tech installers save time and grow their business.

Request a demo

Want more from Payaca in your Google results?

Related articles

Why in-house and bespoke CRMs don't survive growth (US installer playbook)
Blog

Why in-house and bespoke CRMs don't survive growth (US installer playbook)

Mid-sized US solar and clean-energy installers spend two engineers a year keeping a bespoke CRM alive that handles maybe 60% of the workflow. Permits, AHJ inspections, NEM interconnection and incentives end up on spreadsheets. The real cost of the build, and what the off-ramp usually looks like.