CRM migration
Field-level mapping, validation, and rollback between BookingKoala and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
BookingKoala
Source
Salesforce Sales Cloud
Destination
Compatibility
12 of 12
objects map 1:1 between BookingKoala and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
BookingKoala organizes data around bookings: customers who schedule, providers who deliver, and the appointment itself — with supporting objects for invoices, payments, reviews, referral credits, and campaigns. Salesforce Sales Cloud uses the Account-Contact-Opportunity model, where the booking becomes an Opportunity with custom fields, and every BookingKoala entity without a native Salesforce equivalent becomes a custom object with a __c suffix. We extract BookingKoala data via API export or CSV download, then restructure it into Salesforce's relational schema. Provider records map to Contacts with a Provider_Role__c custom pick-list, bookings map to Opportunities with BookingKoala_ID__c for traceability, and industry classifications persist as a custom Industry_BK__c pick-list. Invoices and payments migrate as custom objects or as Opportunity custom fields depending on record count and your reporting needs. Reviews, referral credits, and campaign data require Salesforce custom objects since no native equivalent exists. Everything that lives outside the data layer — automations, Zapier integrations, referral logic, email campaigns — does not migrate. Those must be rebuilt in Salesforce Flow or your chosen automation stack. Our migration sequence loads Accounts and Contacts first (foreign keys must exist before bookings), then Opportunities with booking details, then custom objects in dependency order. A 24–48 hour delta-pickup window captures in-flight records created or modified during cutover.
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 BookingKoala object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
BookingKoala
Customer
Salesforce Sales Cloud
Contact
1:1Direct map. Every BookingKoala customer becomes a Salesforce Contact. Email uniqueness enforced by Salesforce — duplicates flagged before insert. Multi-location customers with several service addresses store the primary location in BillingAddress; additional addresses migrate as custom address fields on the Contact record.
BookingKoala
Provider
Salesforce Sales Cloud
Contact
1:1Direct map with Provider_Role__c custom pick-list to distinguish providers from customers in the shared Contact object. BookingKoala's provider fields (service type, status, rating) migrate as custom fields. Provider email matched to Salesforce User by email for owner assignment on related bookings/opportunities.
BookingKoala
Booking
Salesforce Sales Cloud
Opportunity
1:1BookingKoala bookings become Salesforce Opportunities. Service type maps to Opportunity Name for readability; the original BK booking ID persists in BookingKoala_ID__c for delta-run de-duplication and traceability. Booking status (confirmed, completed, cancelled) maps to a custom Opportunity_Status_BK__c pick-list.
BookingKoala
Industry
Salesforce Sales Cloud
Custom pick-list on Opportunity
1:1BookingKoala industries (Home Cleaning, Pet Groomer, Moving Service, etc.) migrate as a custom Industry_BK__c pick-list on Opportunity. Multi-industry accounts create separate Opportunity records per industry — your admin decides whether to consolidate or split based on reporting needs.
BookingKoala
Invoice
Salesforce Sales Cloud
Custom Object: Invoice__c
1:1Invoice__c is a custom object linked to Opportunity via BookingKoala_ID__c lookup. Invoice status (paid, pending, overdue) maps to a custom pick-list. If your BookingKoala setup uses fewer than 500 invoices, we can alternatively store invoice totals and status as Opportunity custom fields to reduce custom object count.
BookingKoala
Payment
Salesforce Sales Cloud
Custom Object: Payment__c
1:1Payment__c is a custom object linked to Invoice__c or Opportunity. Payment method, transaction ID, and payment date migrate as custom fields. Stripe or payment processor references stored in Source_Payment_ID__c for reconciliation if you reconnect a payment integration post-migration.
BookingKoala
Review
Salesforce Sales Cloud
Custom Object: Review__c
1:1Review__c is a custom object with a 1–5 star Rating__c (Number), reviewer name, Comment__c (long text), Provider_Response__c, and a lookup to the Opportunity representing the original booking. Salesforce has no native review/rating construct — this custom object preserves your review history for reporting after migration.
BookingKoala
Referral
Salesforce Sales Cloud
Custom Object: Referral__c
1:1Referral__c captures the referring customer and the referred customer's Contact record, credit amount, and referral status. BookingKoala's referral credit logic has no Salesforce equivalent — the custom object preserves the credit history; your admin rebuilds the credit application logic in Salesforce Flow.
BookingKoala
Campaign
Salesforce Sales Cloud
Campaign
1:1BookingKoala email campaigns migrate to Salesforce Campaign records with campaign type, status, scheduled date, and audience count. Campaign member associations (which customers received which campaign) migrate as Campaign Member records. Email templates and automation logic do not migrate — exported as a PDF rebuild reference for your Salesforce admin.
BookingKoala
Checklist
Salesforce Sales Cloud
Custom Object: Checklist__c
1:1Checklist__c captures job subtasks, completion status, notes, and job media references linked to the Opportunity representing the original booking. BookingKoala's admin and staff checklist subtasks persist as Checklist_Item__c records or as a serialized custom text field depending on the volume of subtask data per booking.
BookingKoala
Coupon
Salesforce Sales Cloud
Custom Object: Coupon__c
1:1Coupon__c stores coupon code, discount type (percentage vs. fixed), discount value, usage limits, and validity dates. Applied coupons on bookings stored as a lookup on Opportunity. The discount application logic must be rebuilt in Salesforce Flow or CPQ post-migration.
BookingKoala
Attachment / File
Salesforce Sales Cloud
Salesforce Files / ContentDocument
1:1BookingKoala file attachments (job photos, signed forms, receipts) re-upload to Salesforce Files via the ContentDocumentLink model. Files linked to the Opportunity (booking) and Contact (customer/provider) records. Salesforce's 25MB per-file limit applies — files exceeding this are flagged before migration for manual handling.
| BookingKoala | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Customer | Contact1:1 | Fully supported | |
| Provider | Contact1:1 | Fully supported | |
| Booking | Opportunity1:1 | Fully supported | |
| Industry | Custom pick-list on Opportunity1:1 | Fully supported | |
| Invoice | Custom Object: Invoice__c1:1 | Fully supported | |
| Payment | Custom Object: Payment__c1:1 | Fully supported | |
| Review | Custom Object: Review__c1:1 | Fully supported | |
| Referral | Custom Object: Referral__c1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Checklist | Custom Object: Checklist__c1:1 | Fully supported | |
| Coupon | Custom Object: Coupon__c1:1 | Fully supported | |
| Attachment / File | Salesforce Files / ContentDocument1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Extract and profile BookingKoala data
We connect to BookingKoala via API or CSV export using your provider credentials and pull all standard objects: customers, providers, bookings, invoices, payments, reviews, referrals, campaigns, and checklists. A data audit flags duplicates, missing required fields for Salesforce Contact/Account insertion, and any BookingKoala-specific fields that require custom object or custom field creation. The audit output is a migration scope document with record counts per object and a custom field manifest for your Salesforce admin to create before data loads begin.
Create Salesforce schema: custom objects and fields
Your Salesforce admin (or our team) creates the custom objects and __c fields identified in the scope document: Industry_BK__c, Opportunity_Status_BK__c, Provider_Role__c, BookingKoala_ID__c, Duration_Minutes_BK__c, Invoice__c, Payment__c, Review__c, Referral__c, Checklist__c, Coupon__c, and all lookup fields. We deliver a setup plan with exact field types, pick-list values, and object relationships so the schema is ready before any data is loaded. Salesforce validation rules and required-field constraints are suspended during migration to allow all records to insert.
Resolve foreign keys and owner mapping
BookingKoala exports contain customer names and provider names as plain text, not Salesforce IDs. We resolve these against the migrated Contact records by email match — BookingKoala customer email must match the migrated Contact.Email, and provider email must match the migrated provider Contact.Email. Any unmatched owner or provider is flagged before migration with a fallback owner assignment (a designated Salesforce User you specify). No Opportunity inserts without a resolved AccountId and OwnerId to avoid Salesforce sharing-rule violations.
Run sample migration with field-level diff
A representative slice migrates first — typically 100–500 records spanning customers, providers, bookings across multiple industries, a handful of invoices and reviews, and one campaign. We generate a field-level diff report comparing source values against the Salesforce record values so you can verify that customer status maps correctly, industry pick-list values are set, provider roles are assigned, and booking-to-Opportunity relationships are intact. You approve the sample before the full migration commits.
Execute full migration with delta-pickup cutover
Full data load runs in Salesforce using Bulk API 2.0 for high-volume objects (Contacts, Opportunities) and REST API for custom objects with complex relationships. A delta-pickup window of 24–48 hours after the initial load captures any bookings, payments, or customer records created or modified in BookingKoala during the cutover window. An audit log records every insert, update, and skip. One-click rollback reverts all Salesforce changes to the pre-migration state if reconciliation identifies critical data discrepancies. You validate the final record counts against BookingKoala exports before go-live.
Platform deep dives
BookingKoala
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 BookingKoala and Salesforce Sales Cloud.
Object compatibility
1 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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your BookingKoala to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.