CRM migration
Field-level mapping, validation, and rollback between BookingKoala and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
BookingKoala
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
13 of 13
objects map 1:1 between BookingKoala and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
72–96 hours
Overview
BookingKoala stores operational records for service businesses: customers, providers, bookings with time slots and statuses, booking forms tied to industries, campaign data, referral credits, and payment history. Dynamics 365 Sales uses Accounts, Contacts, Leads, and Opportunities with Dataverse as its underlying store — a fundamentally different entity model that requires careful translation. We extract customers as Contacts (or Accounts for business entities), providers as System Users or Contacts with a custom provider flag, and historical bookings as Opportunities with custom service-detail fields capturing the original booking date, time slot, status, and provider assignment. Booking forms and industries have no direct Dynamics equivalent — we preserve them as custom fields on the booking Opportunity for reference. Campaigns map to Dynamics 365 Campaigns, and referral data becomes a custom Referral_Source__c field on the Contact. Our approach uses BookingKoala's CSV export capability combined with API access for live record validation, mapping field-by-field with a pre-migration diff before committing any data to your Dynamics 365 Sales environment.
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.
Source platform
BookingKoala platform overview
Scorecard, SWOT, gotchas, and pricing for BookingKoala.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a BookingKoala object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
BookingKoala
Customer
Microsoft Dynamics 365 Sales
Contact
1:1BookingKoala customers map directly to Dynamics 365 Contact records. Business-type customers (companies booking services) route to Account with the Contact linked via AccountId lookup. Original customer create date is preserved as Original_Create_Date__c since Dynamics CreatedDate reflects migration time. This ensures the accurate customer onboarding timeline is maintained for historical reporting and compliance requirements.
BookingKoala
Customer (business type)
Microsoft Dynamics 365 Sales
Account
1:1When BookingKoala customer records contain a company name field or industry classification, they map to Dynamics 365 Account. Account.Name, Website, and Industry are populated from BookingKoala's customer fields where present. Additional business details such as employee count or annual revenue populate corresponding Account fields when available. For records with only a company name but sparse other details, we create a minimal Account record with the name and flag it for follow-up data enrichment after migration.
BookingKoala
Provider
Microsoft Dynamics 365 Sales
System User / Contact
1:1BookingKoala providers are internal staff who deliver services. They map to Dynamics 365 System User records when they need CRM activity assignment, or to Contact records with a custom Provider_Flag__c = true field when they are external contractors. Email match resolves OwnerId on migrated Opportunity records.
BookingKoala
Booking
Microsoft Dynamics 365 Sales
Opportunity
1:1Historical and active bookings from BookingKoala migrate as Opportunities in Dynamics 365 Sales. Booking date becomes CloseDate or a custom Booking_Date__c field. Booking status (confirmed, completed, cancelled) maps to Opportunity Stage via value mapping. Provider assignment becomes OwnerId via email resolution.
BookingKoala
Booking Status
Microsoft Dynamics 365 Sales
Opportunity StageName
1:1BookingKoala booking statuses (Confirmed, In Progress, Completed, Cancelled, No Show) map to Dynamics 365 Opportunity Stage values. Each status requires explicit value-map entry. The stage probability and forecast category are applied per Dynamics Sales Process configuration after migration. This ensures accurate sales forecasting and pipeline visibility from day one of the migrated data.
BookingKoala
Booking Form / Industry
Microsoft Dynamics 365 Sales
Custom Field on Opportunity
1:1BookingKoala Industries and Booking Forms define service categories and pricing logic. Since Dynamics 365 has no native equivalent, we preserve the Industry and Booking Form name as custom text fields on the Opportunity (Industry_Source__c, Booking_Form__c) for reporting and reconciliation. These fields enable segmentation and reporting by original BookingKoala service type.
BookingKoala
Booking Time Slot
Microsoft Dynamics 365 Sales
Custom Field on Opportunity
1:1BookingKoala stores specific time slots (e.g., '10:00 AM - 11:00 AM') for service appointments. Dynamics 365 Opportunity has no native time-slot field. We create custom datetime fields Scheduled_Start__c and Scheduled_End__c on the Opportunity to preserve the original booking window. This maintains appointment scheduling context within the CRM for service coordination.
BookingKoala
Checklist / Job Completion
Microsoft Dynamics 365 Sales
Note / Custom Field on Opportunity
1:1BookingKoala checklist completion data migrates as Salesforce Notes attached to the corresponding Opportunity, preserving subtask completion status and job media references. For high-volume reporting, a custom Checklist_Completed__c boolean field is added to the Opportunity. The boolean flag enables quick filtering of opportunities based on job completion status for operational reporting.
BookingKoala
Campaign
Microsoft Dynamics 365 Sales
Campaign
1:1BookingKoala campaigns (email automation and marketing) map to Dynamics 365 Campaign records. Campaign name, type, and status carry over. BookingKoala campaign member associations on customers migrate as Campaign Member records linking the Contact to the Campaign. This preserves marketing attribution and campaign performance history across the migration.
BookingKoala
Referral / Customer Referral
Microsoft Dynamics 365 Sales
Custom Field on Contact
1:1BookingKoala referral credits and referral source tracking have no Dynamics 365 equivalent. We create Referral_Credit__c (decimal/currency) and Referral_Source__c (text) fields on Contact to preserve referral attribution for future marketing analysis. These fields enable tracking of referral-driven customer acquisition and calculation of referral program ROI after migration.
BookingKoala
Payment / Transaction
Microsoft Dynamics 365 Sales
Opportunity Product / Custom Field
1:1BookingKoala payment status (Paid, Pending, Refunded) migrates as a custom Payment_Status__c pick-list on the Opportunity. For bookings with line-item pricing, Opportunity Product records are created with the service description and amount, mirroring BookingKoala's per-booking revenue tracking. This enables accurate revenue reporting and financial reconciliation within Dynamics.
BookingKoala
Custom Property (Customer)
Microsoft Dynamics 365 Sales
Custom Field on Contact
1:1BookingKoala custom properties on customer records map to Dynamics 365 custom fields on Contact. Field type is inferred from BookingKoala's property type (text, number, date, pick-list). Custom fields are suffixed with __c per Dataverse naming convention and added to the appropriate Contact form.
BookingKoala
Custom Property (Booking)
Microsoft Dynamics 365 Sales
Custom Field on Opportunity
1:1BookingKoala custom properties stored on bookings migrate as custom fields on the corresponding Opportunity record. Booking-specific metadata (e.g., special instructions, parking notes, pet information) is preserved as text fields on the Opportunity for field-service context during customer interactions. This ensures field technicians have access to important booking details during service delivery.
| BookingKoala | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Customer | Contact1:1 | Fully supported | |
| Customer (business type) | Account1:1 | Fully supported | |
| Provider | System User / Contact1:1 | Fully supported | |
| Booking | Opportunity1:1 | Fully supported | |
| Booking Status | Opportunity StageName1:1 | Fully supported | |
| Booking Form / Industry | Custom Field on Opportunity1:1 | Fully supported | |
| Booking Time Slot | Custom Field on Opportunity1:1 | Fully supported | |
| Checklist / Job Completion | Note / Custom Field on Opportunity1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Referral / Customer Referral | Custom Field on Contact1:1 | Fully supported | |
| Payment / Transaction | Opportunity Product / Custom Field1:1 | Fully supported | |
| Custom Property (Customer) | Custom Field on Contact1:1 | Fully supported | |
| Custom Property (Booking) | Custom Field on Opportunity1: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.
BookingKoala gotchas
No public API — all migration relies on CSV exports
Provider count is capped at 50 on Premium plans
Multi-industry setup has no export path
CSV exports are date-range filtered and flat
Booking time logs export separately from booking records
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Extract BookingKoala data via CSV export and API
FlitStack AI initiates the migration by connecting to BookingKoala via scoped read access. We export customer records, provider records, booking history, campaign data, referral credits, and custom property columns via BookingKoala's built-in CSV export tool, supplemented by API calls for real-time validation of record counts and field completeness. The export covers all time ranges — historical bookings, active customers, and provider profiles — and we verify the exported row counts against BookingKoala's internal record counts before proceeding to mapping.
Map BookingKoala entities to Dynamics 365 Sales schema
We apply the object mapping plan — Customer to Contact/Account, Provider to System User or Contact, Booking to Opportunity with custom service fields, Campaign to Campaign — and build the field-level value maps for booking status, payment status, and provider active flags. BookingKoala custom properties on customers and bookings are parsed and assigned to corresponding custom fields on Contact and Opportunity. The mapping plan is delivered as a field-level diff document for your Dynamics admin to review and approve before any data is written to the destination environment.
Resolve owner and user references by email
BookingKoala provider email addresses are matched against Microsoft 365 user accounts in your Dynamics 365 environment to resolve OwnerId on Opportunity records. Unmatched provider emails are flagged in a pre-migration report — your admin either creates placeholder Microsoft 365 accounts for those providers or assigns their bookings to a fallback System User. Customer email addresses are matched against existing Contact records to prevent duplicate Contact creation during migration. This step runs before any upsert operations to ensure data integrity on the CustomerId and OwnerId lookups.
Run sample migration with field-level diff
A representative slice of 100–500 records migrates first — spanning a cross-section of customers, providers, bookings across different industries and statuses, plus a sample campaign and referral record. We generate a field-level diff comparing source BookingKoala values against destination Dynamics 365 field values, verifying that booking status maps correctly to Opportunity Stage, provider assignments resolve to OwnerId, and custom property fields populate as expected. You review the diff and approve before the full migration commits.
Execute full migration with delta-pickup window
The full migration runs against your Dynamics 365 Sales environment, writing to Dataverse tables with batched API calls that respect Dataverse rate limits. A delta-pickup window of 24–48 hours captures any bookings or customer records modified in BookingKoala during the cutover period — your team keeps working in BookingKoala throughout. FlitStack AI generates an audit log of every upsert operation. One-click rollback reverts all migrated records to their pre-migration state if reconciliation against BookingKoala's final state reveals discrepancies.
Platform deep dives
BookingKoala
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between BookingKoala and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across BookingKoala and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between BookingKoala and Microsoft Dynamics 365 Sales .
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
BookingKoala: Not publicly documented.
Data volume sensitivity
BookingKoala 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 BookingKoala to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your BookingKoala to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave BookingKoala
Other ways to arrive at Microsoft Dynamics 365 Sales
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.