CRM migration

Migrate from Powered Now to Twenty CRM

Field-level mapping, validation, and rollback between Powered Now and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.

Powered Now logo

Powered Now

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

14 of 14

objects map 1:1 between Powered Now and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Powered Now organizes trade businesses around jobs, quotes, and invoices — each job links to a client, a diary slot, purchase orders, and certificates. Twenty CRM uses a People-Companies-Opportunities model with Tasks and Notes for activity tracking, and supports unlimited custom objects for anything that doesn't fit standard fields. The migration carries all Powered Now records (clients, jobs, quotes, invoices, supplier invoices, team members, and custom fields) into Twenty's equivalent objects. The harder problems are translating Powered Now's job-status lifecycle into Twenty's opportunity-stage model, preserving invoice line-item detail in custom fields or related records, and handling Powered Now's multi-address per client (site address vs billing address) which requires field splitting in Twenty. We export Powered Now data via CSV or API, transform field names and pick-list values, and load into Twenty using the REST API with relation resolution (companyId for People, opportunityId for Tasks). Workflows, automations, and digital forms do not migrate — these require manual rebuild in Twenty's workflow builder or via third-party automation tools. FlitStack sequences the migration so companies load before people, opportunities link after both exist, and attachments re-upload to Twenty's file storage.

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

Powered Now logo

Powered Now

What's pushing teams away

  • Lack of a public API blocks integration with third-party tools and makes data portability difficult, forcing businesses to manually export records when switching platforms.
  • Pricing is per-user and can become expensive as a team grows, pushing smaller operators toward lower-cost alternatives with flat-rate pricing.
  • Advanced features such as Xero integration, time tracking, and custom reporting are gated behind higher tiers, creating upgrade pressure on businesses that only need one or two premium features.
  • The platform is UK-only in its compliance features, making it unsuitable for trade businesses operating in Ireland, the Isle of Man, or other UK-aligned jurisdictions with different MTD rules.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Powered Now objects map to Twenty CRM

Each row shows how a Powered Now object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Powered Now

Client

maps to

Twenty CRM

Person

1:1
Fully supported

Powered Now clients map to Twenty People records. The client name splits into firstName and lastName where available; single-field names land as a single lastName with firstName blank. Email, phone, and address fields map directly. Site address and billing address require field splitting — see field_mapping for detail.

Powered Now

Client

maps to

Twenty CRM

Company

1:1
Fully supported

If the Powered Now client is a business entity (rather than an individual homeowner), it also maps to a Twenty Company record. The client's trading name or company name becomes the Company name. FlitStack creates both Person and Company records and links them via companyId on the Person side.

Powered Now

Job

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Powered Now jobs map to Twenty Opportunities. The job name becomes Opportunity name. Job status (Unscheduled, Scheduled, In Progress, Completed, Invoiced, Paid) migrates as a custom pick-list field (Job_Status__c) since Twenty has no native job object. Close date maps to the opportunity closeDate; the close date is set to the scheduled completion date or remains open-ended for unscheduled jobs.

Powered Now

Quote

maps to

Twenty CRM

Opportunity (or custom Quote object)

1:1
Fully supported

Powered Now quotes map to Twenty Opportunities with a Quote_Number__c custom field and line-item details stored in custom fields (Quote_Line_Items__c as long-text or via a custom Quote_Line_Item__c custom object). If quotes need to remain standalone records, FlitStack creates a custom Quote object in Twenty before migration.

Powered Now

Invoice

maps to

Twenty CRM

Opportunity (or custom Invoice object)

1:1
Fully supported

Powered Now invoices map to Opportunities with invoice number, total amount, balance due, and payment status stored in custom fields. Teams that need full invoice history as records create a custom Invoice object in Twenty before migration — FlitStack maps invoice line items to that object.

Powered Now

Purchase Order

maps to

Twenty CRM

Custom Purchase_Order__c object

1:1
Fully supported

Powered Now purchase orders have no Twenty native equivalent, so FlitStack creates a custom Purchase_Order__c object before migration with fields for PO number, supplier, total cost, status, and a lookup to the related Opportunity via opportunityId. Supplier invoices map to a linked custom Supplier_Invoice__c object that records invoice number, supplier reference, amount, and payment status, enabling cost tracking against each job.

Powered Now

Diary Entry

maps to

Twenty CRM

Task or Event

1:1
Fully supported

Powered Now diary entries (scheduled time slots for jobs) map to Twenty Tasks linked to the corresponding Opportunity. The task dueDate is the diary slot start time. All-day diary entries with no specific time become Tasks; entries with explicit start and end times become Events.

Powered Now

Certificate

maps to

Twenty CRM

Note

1:1
Fully supported

Powered Now certificates (gas safety certificates, electrical certificates) attach to jobs. These migrate as Twenty Notes linked to the Opportunity (job) record, with the certificate type and expiry date stored in custom fields on the Note or as a custom Certificate__c object.

Powered Now

Custom Field (on Client)

maps to

Twenty CRM

Custom Field on Person

1:1
Fully supported

Powered Now custom fields on clients (e.g., trade licence number, insurance policy reference) map to custom fields on the Twenty Person object. All custom fields must be created in Twenty Settings → Data Model before the CSV import step runs.

Powered Now

Custom Field (on Job)

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

Powered Now custom fields on jobs map to custom fields on the Twenty Opportunity object. Examples include site access instructions, required materials, or engineer notes. Each custom field is created in Twenty before migration; transformation logic handles pick-list value mapping for select-type fields.

Powered Now

Team Member

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Powered Now team members (engineers, office staff) map to Twenty Workspace Members. Owner assignment on jobs and quotes resolves by matching the Powered Now email address to a Twenty user account; FlitStack generates a pre‑migration mapping report showing matched and unmatched emails. For any unmatched owners, the admin must either invite the user to Twenty or reassign the record to a fallback owner before the import runs.

Powered Now

Attachment / File

maps to

Twenty CRM

Twenty Files

1:1
Fully supported

Powered Now file attachments on jobs, quotes, and invoices are downloaded and re‑uploaded to Twenty's file storage, where each file is linked to its parent record (Opportunity, Person, or custom object) using the recordId. FlitStack uses Twenty's REST API to upload files, preserving the original filename. If a file exceeds Twenty's size limit, it is flagged for manual handling; otherwise the attachment appears in the record's Files section.

Powered Now

Automated Reminder

maps to

Twenty CRM

Twenty Workflow

1:1
Fully supported

Powered Now automated certificate reminders, job routing triggers, and form-based automations do not have a native equivalent in Twenty. These must be rebuilt manually in Twenty's workflow builder (Settings → Workflows) or via an external automation platform. FlitStack exports the Powered Now workflow definitions as a reference document for the rebuild.

Powered Now

Supplier Invoice

maps to

Twenty CRM

Custom Supplier_Invoice__c object

1:1
Fully supported

Powered Now supplier invoices link to purchase orders and track costs against jobs. These map to a custom Supplier_Invoice__c object created in Twenty, with fields for invoice number, supplier reference, amount, and linked opportunityId for cost tracking against the job.

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.

Powered Now logo

Powered Now gotchas

High

No public REST API means migration requires reverse-engineered data access

Medium

Certificate expiry dates require manual re-validation post-migration

Medium

Making Tax Digital data is tied to the Powered Now MTD-compliant invoice format

Low

Attachment blobs export as raw files without a relational manifest

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Powered Now multi-address per client requires field splitting

    Powered Now stores both a site address (where the job takes place) and a billing address per client. Twenty CRM's Company and Person objects each store a single address. FlitStack maps the site address to the Company address field and the billing address to a custom field on the Person record. If both addresses are the same, the duplicate is eliminated. Teams that use Powered Now's dual-address model for different site locations per client need to decide whether each location becomes a separate Company record — this affects report accuracy and requires pre-migration schema review.

  • Job-status lifecycle has no native Twenty equivalent

    Powered Now tracks jobs through stages: Unscheduled → Scheduled → In Progress → Completed → Invoiced → Paid. Twenty CRM has no native job object, so job status migrates as a custom pick-list field (Job_Status__c) on the Opportunity. Stage-transition timestamps from Powered Now's history preserve as custom datetime fields (Job_Status_Updated__c) on each Opportunity. If the team relies on status-based automation triggers in Powered Now, those must be rebuilt in Twenty's workflow builder — FlitStack exports the Powered Now automation definitions for reference.

  • Invoice line items require custom object or long-text consolidation

    Powered Now invoices carry line-item detail (description, quantity, unit price, line total) for each service performed. Twenty CRM has no native invoice object. FlitStack creates a custom Invoice object with line-item fields, but if the team needs per-line granularity in reporting, a custom Invoice_Line_Item__c object linked to Invoice is required — this adds to the Twenty schema setup time before migration. Invoice PDF attachments are downloaded and re-uploaded as Notes on the Invoice record.

  • Powered Now's automated reminders and job routing do not migrate

    Powered Now's automated certificate expiry reminders, job routing rules, and form-triggered notifications are platform-specific automations that do not export to Twenty CRM. The Twenty workflow builder (Settings → Workflows) can recreate similar logic using triggers, conditions, and actions, but each rule must be rebuilt manually. FlitStack exports the Powered Now automation definitions as a structured reference document, including trigger events, conditions, and action sequences, to guide the rebuild. Teams that depend heavily on reminders should plan 1–2 weeks for manual recreation and testing in Twenty before the go-live date.

  • Custom fields must exist in Twenty before CSV import

    Twenty's CSV import creates records but does not create fields. If Powered Now has custom fields on clients or jobs, those field definitions must be created in Twenty Settings → Data Model before the import step runs. FlitStack generates a Twenty field creation checklist based on the Powered Now custom field inventory. Importing a CSV that references a field that doesn't exist will cause the import to fail for those records — FlitStack validates field existence before migration begins.

Migration approach

Six steps for a successful Powered Now to Twenty CRM data migration

  1. Audit Powered Now data and design Twenty schema

    FlitStack extracts a full data export from Powered Now covering clients, jobs, quotes, invoices, purchase orders, team members, diary entries, certificates, and all custom fields. We generate a data quality report flagging duplicate clients, missing email addresses, and records with no linked job. Simultaneously, your Twenty admin (or our team) creates the custom fields, custom objects (Invoice, Purchase Order, Supplier Invoice), and pick-list values identified in the Powered Now custom field inventory. We deliver a Twenty schema setup checklist so the destination workspace is ready before any import runs.

  2. Resolve team member ownership by email

    Powered Now team members map to Twenty Workspace Members. Owner assignment on jobs and quotes resolves by email match — each Powered Now engineer or staff member's email is matched against the email of a Twenty user account. Unmatched owners are flagged before migration for admin resolution: either invite the person to Twenty first, or assign their records to a fallback owner. No opportunity lands without a valid Twenty assignee.

  3. Load Companies, then People, then Opportunities

    Twenty requires the 'one' side of relationships to exist before the 'many' side can reference them. FlitStack sequences the migration in this order: (1) Companies from Powered Now client businesses, (2) People from Powered Now clients linked to their Company records via companyId, (3) Opportunities from Powered Now jobs, quotes, and invoices linked to their respective People and Companies. Purchase orders and supplier invoices load last after their related Opportunities exist. This sequencing ensures foreign keys resolve correctly and Twenty's data integrity checks pass.

  4. Run a sample migration with field-level diff

    A representative slice of records migrates first — typically 200–500 records spanning clients, jobs, quotes, invoices, and team members. We generate a field-level diff comparing source values against destination field contents so you can verify job-status mapping, address splitting, invoice field consolidation, and owner resolution before the full run commits. You approve the sample results, and any mapping corrections apply to the full dataset before re-migration.

  5. Full migration with delta-pickup and rollback

    The full export from Powered Now loads into Twenty via the REST API with batch processing. A delta-pickup window (24–48 hours) captures any new clients, modified jobs, or updated quotes created in Powered Now during the cutover. All operations are logged in an audit trail. If reconciliation reveals a field mapping error or missing relationship, FlitStack rolls back the destination and re-runs with corrected logic. Attachment files are re-uploaded to Twenty's file storage and linked to their parent records.

Platform deep dives

Context on both ends of the pair

Powered Now logo

Powered Now

Source

Strengths

  • UK MTD compliance is native to the platform, eliminating the need for separate accounting software for straightforward sole-trader and small-business tax filing.
  • On-site invoicing with mobile card reader integration accelerates payment collection and improves cash flow for field-service businesses.
  • Unlimited contacts and quotes are included even on lower tiers, making cost predictable as the client base grows.
  • Digital forms and certificates are attached directly to jobs, keeping compliance documentation organised and retrievable without paper filing.
  • Cross-platform availability on iOS, Android, PC, and Mac ensures field engineers can use the app on whatever hardware they already carry.

Weaknesses

  • No published public REST API means third-party integrations must go through unofficial channels or Zapier/Make workflows, limiting automation options.
  • Data export appears to rely on CSV or in-app backup rather than a structured programmatic export, making bulk migration a manual process.
  • Pricing is per-seat, which becomes costly for larger field-service teams compared to flat-rate alternatives.
  • Advanced workflow automation (job routing, time tracking, Xero integration) requires higher-cost tiers, raising the effective price for growing businesses.
  • The platform is UK-primary; businesses with operations outside the UK or with non-UK accounting requirements may find compliance features incomplete.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Standard CRM 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 Powered Now and Twenty CRM.

  • 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

    Powered Now: Not applicable..

  • Data volume sensitivity

    B

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

Estimator

Estimate your Powered Now to Twenty CRM 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 Powered Now to Twenty CRM data migrations

Answers to the questions buyers ask most during Powered Now to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Powered Now to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Powered Now to Twenty CRM migrations complete in 48–72 hours of clock time for under 10,000 total records (clients, jobs, quotes, invoices combined). Larger setups with 50,000+ records or custom Invoice and Purchase Order objects extend to 7–14 days. The longest step is Twenty schema setup — creating custom fields, pick-list values, and custom objects before import runs. FlitStack delivers a schema checklist upfront so that work runs in parallel with migration planning.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Powered Now.
Land in Twenty CRM, 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