CRM migration
Field-level mapping, validation, and rollback between PHP CRM and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
PHP CRM
Source
Nutshell
Destination
Compatibility
8 of 12
objects map 1:1 between PHP CRM and Nutshell.
Complexity
BStandard
Timeline
2-4 weeks
Overview
PHP CRM to Nutshell is a migration from a self-hosted, documentation-thin platform to a cloud-native CRM with solid support and an active import ecosystem. PHP CRM does not publish API rate limits, endpoint schemas, or a public developer reference; we work around this with direct credential-based extraction or admin-panel CSV exports. PHP CRM has no native Nutshell integration listed in either platform's migration tooling, so the path runs through FlitStack AI's staging layer: we enumerate every custom field in the source deployment, map to Nutshell's typed fields and custom field limits by tier, and sequence parent records (Companies, People) before child records (Deals, Tasks, Notes). File attachments stored on the PHP CRM filesystem cannot be extracted via documented API and are exported to local storage for manual re-upload post-migration. Automated workflows and business logic in PHP CRM are application-layer code not exposed via API and do not migrate; we deliver a written inventory of every active rule for the customer to rebuild in Nutshell.
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 PHP CRM object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
PHP CRM
Contact
Nutshell
Person
1:1PHP CRM Contact records map to Nutshell People. Standard fields (name, email, phone, address) map directly. We extract every custom field present on Contact in the source deployment and map to Nutshell People custom fields or the Notes field for unstructured data. Contacts are imported after Companies to satisfy Nutshell's company association on People.
PHP CRM
Company
Nutshell
Company
1:1PHP CRM Company records map 1:1 to Nutshell Company. Company name, domain, address, and industry fields migrate directly. Nutshell's People-Company association is resolved by matching the domain or company name from the source Contact record. We import Companies first as the parent entity before any associated People records.
PHP CRM
Deal
Nutshell
Lead
1:1PHP CRM Deals map to Nutshell Leads. Deal value, stage, expected close date, and owner assignment transfer to the Lead's monetary value, status, expected close, and owner fields. We enumerate the actual pipeline and stage values present in the source PHP CRM deployment and map them to Nutshell's Lead status values, flagging any stages with no direct Nutshell equivalent for customer review.
PHP CRM
Pipeline
Nutshell
Lead Status
lossyPHP CRM's custom pipeline definitions map to Nutshell's Lead status values and a single lead pipeline. Since Nutshell organizes around People, Companies, and Leads rather than multiple deal pipelines, we flatten the source pipeline structure into a single Nutshell Lead stream and preserve the original pipeline name in a custom field for reporting.
PHP CRM
Pipeline Stage
Nutshell
Lead Status Value
lossyPHP CRM stage names and order vary by deployment configuration. We extract the full stage list from the source instance, map each stage to a Nutshell Lead status value, and flag any stages with no direct equivalent. The customer reviews stage mapping during discovery before any data moves.
PHP CRM
Task
Nutshell
Task
1:1PHP CRM Tasks map to Nutshell Tasks. Due date, assignee, status, and linked entity (Person, Company, Deal/Lead) transfer directly. Entity linkage in Nutshell uses the Nutshell-assigned ID for the target record, which we resolve after parent record migration completes. Task status values are mapped from PHP CRM's internal status codes to Nutshell's open/closed states.
PHP CRM
Note
Nutshell
Note
1:1PHP CRM Notes attach free-text content to any entity (Contact, Company, Deal). Notes migrate as Nutshell Note records linked via the target entity's ID after parent resolution. Rich text formatting is preserved where PHP CRM stores it as HTML.
PHP CRM
Activity
Nutshell
Activity (calls, emails, meetings)
1:1PHP CRM Activity records (calls, emails, meetings) vary in schema by deployment. We enumerate the actual activity fields present in the source instance and map call logs, email records, and meeting entries to Nutshell's activity timeline. Nutshell's activity tracking uses a linked log structure per Person or Company. The customer chooses whether to import the full activity history or the most recent 12-24 months based on data volume.
PHP CRM
Custom Field (all objects)
Nutshell
Custom Field
lossyPHP CRM allows user-defined custom fields on all standard objects with no standardized taxonomy. We run a mandatory discovery phase that enumerates every custom field present across all objects in the source deployment. Each custom field is typed (text, number, date, dropdown, checkbox) and mapped to the equivalent Nutshell custom field type. Nutshell's custom field limit varies by plan (Foundation has a lower ceiling; Pro and above support more). We flag any fields that would exceed Nutshell's tier ceiling for customer review.
PHP CRM
User/Owner
Nutshell
User
1:1PHP CRM User records (owners assigned to Deals and Tasks) map to Nutshell Users by email matching. We extract every distinct owner referenced on records and attempt email-based lookup in the Nutshell destination. Users without a match enter a reconciliation queue for the customer to provision in Nutshell before record import resumes.
PHP CRM
Tag/Label
Nutshell
Tag
lossyPHP CRM tags label records for segmentation and vary per instance. We extract the full tag vocabulary and map to Nutshell Tags on People, Companies, and Leads. The customer reviews the tag taxonomy during discovery to confirm coverage.
PHP CRM
Attachment
Nutshell
Attachment (manual re-upload)
1:1PHP CRM stores file attachments on the local filesystem or cloud storage path, not through a documented API endpoint. We export attachments to a local directory for customer review and advise re-uploading via Nutshell's bulk file tools or manual attachment flow post-migration. This is a manual step outside the automated migration scope.
| PHP CRM | Nutshell | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Lead1:1 | Fully supported | |
| Pipeline | Lead Statuslossy | Fully supported | |
| Pipeline Stage | Lead Status Valuelossy | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Activity | Activity (calls, emails, meetings)1:1 | Fully supported | |
| Custom Field (all objects) | Custom Fieldlossy | Fully supported | |
| User/Owner | User1:1 | Fully supported | |
| Tag/Label | Taglossy | Fully supported | |
| Attachment | Attachment (manual re-upload)1:1 | 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.
PHP CRM gotchas
No publicly documented API rate limits or endpoints
Attachment and file storage not accessible via API
Custom field taxonomy varies per deployment
Workflows and automations are not portable
Limited review corpus for accurate benchmarking
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Discovery and data audit
We audit the source PHP CRM deployment for record counts (People, Companies, Leads, Tasks, Notes, Activities), custom field inventory across all object types, pipeline and stage configuration, owner/user list, and attachment directory paths. Since PHP CRM has no public API documentation, we request admin-panel access or credentials to test extraction endpoints and observe throttling behavior. The discovery output is a written migration scope with record counts, a full custom field enumeration list, and a recommended CSV-first or API-first extraction strategy.
Custom field enumeration and schema design
We enumerate every custom field present in the source PHP CRM instance across People, Companies, Leads, Tasks, and Notes. Each field is typed (text, number, date, dropdown, checkbox) and mapped to the equivalent Nutshell custom field type. We check the customer's Nutshell plan for custom field limits and flag any fields that exceed the tier ceiling. Nutshell's schema (People custom fields, Company custom fields, Lead status values) is configured before any data moves.
CSV extraction and data cleansing
For PHP CRM instances without reliable API access, we extract via CSV from the admin panel. We normalize the CSV output (encoding, date formats, phone number formatting, address standardization) before writing to the FlitStack AI staging layer. We deduplicate records by email on People and by domain on Companies, flag duplicates for customer resolution, and remove records with critical missing fields (blank name and no email on People) before import.
Sandbox validation and mapping sign-off
We run a validation migration into a Nutshell trial or staging environment using a representative data sample (at least 50 records per object type). The customer reviews the mapped records and confirms field alignment. Any custom field corrections, stage mapping changes, or entity relationship adjustments happen in this phase. We do not run a full production migration until the customer signs off the mapping configuration.
Production migration in dependency order
We run production migration in record-dependency order: Companies first, then People (with Company ID resolved), then Leads (with Owner resolved), then Tasks and Notes (with target entity ID resolved), then Activity history. Each phase emits a row-count reconciliation report before the next phase begins. We use Nutshell's documented API for record creation with batch chunking and exponential backoff to respect any rate limits we observe during extraction.
Cutover, validation, and attachment handoff
We freeze PHP CRM writes during cutover and run a final delta migration of any records modified during the migration window. We validate record counts and run a spot-check of 25-50 records against the source. Attachment paths are delivered as a structured directory for manual re-upload. The Workflow and automation inventory document is handed off to the customer. We support a three-day post-cutover window for reconciliation issues before closing the migration engagement.
Platform deep dives
PHP CRM
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 PHP CRM and Nutshell.
Object compatibility
3 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
PHP CRM: Not publicly documented.
Data volume sensitivity
PHP CRM 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 PHP CRM to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your PHP CRM to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave PHP CRM
Other ways to arrive at Nutshell
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.