CRM migration

Migrate from Daylite to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between Daylite and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

Daylite logo

Daylite

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

54%

7 of 13

objects map 1:1 between Daylite and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Daylite and Salesforce have structurally different data models that require deliberate mapping decisions before migration begins. Daylite's unified People object does not map directly to either Salesforce Lead or Contact; the split rule must be defined during discovery based on whether each Person has an associated Opportunity. Companies map 1:1 to Salesforce Account, and Opportunities map to Opportunity with stage names normalized from Daylite's plain-text values to Salesforce's picklist. Daylite Projects have no direct Salesforce equivalent; we preserve them as a custom object with custom fields. Appointments and Tasks migrate as Event and Task respectively, with UTC timestamps and attendee relations reconstructed. Groups, Tags, and plugin-stored data require configuration-level decisions during scoping. We do not migrate Billings Pro records, Daylite Workflows, or automations as code; we deliver written inventories for the customer's admin to rebuild post-migration.

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

Daylite logo

Daylite

What's pushing teams away

  • Apple-only platform becomes a constraint — teams that need web access, cross-platform mobile support, or Windows/Linux compatibility hit a hard wall and must migrate away entirely.
  • Limited third-party integrations — compared to cloud-first CRMs with deep Zapier, API, or native connector ecosystems, Daylite's integration surface is narrow, frustrating teams needing to connect billing, marketing, or analytics tools.
  • Steep learning curve for non-power users — the rich object model and deep Apple integration come with complexity that new team members find intimidating without dedicated onboarding.
  • Plugin ecosystem fragility — iOSXpert plugins are third-party and must be maintained alongside Daylite updates; plugin breakage or abandonment leaves data stranded in non-standard tables.
  • Data export limitations — while CSV export is possible, the 14-day download window and manual column-selection process make large or automated migrations difficult to execute reliably.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Daylite objects map to Salesforce Sales Cloud

Each row shows how a Daylite 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.

Daylite

People

maps to

Salesforce Sales Cloud

Lead or Contact (split required)

1:many
Fully supported

Daylite People with at least one linked Opportunity map to Salesforce Contact attached to the corresponding Account. Daylite People with no linked Opportunity map to Salesforce Lead. The split is evaluated at migration time by querying the Opportunity foreign key in the People table. We preserve the original Daylite Person ID in a custom field daylite_person_id__c on both Lead and Contact for audit and cross-referencing. Any Person marked as a Company contact (is_company_primary_contact flag) is treated as a Contact regardless of Opportunity status.

Daylite

Company

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Daylite Company records map directly to Salesforce Account. The Company name becomes Account Name; the address fields map to BillingAddress. The Daylite Company ID is preserved in a custom field daylite_company_id__c. Accounts are imported before any People migration so that AccountId lookup references are satisfied at Contact insert time. Multiple Daylite People linked to the same Company all resolve to the same AccountId.

Daylite

Opportunity

maps to

Salesforce Sales Cloud

Opportunity

1:1
Fully supported

Daylite Opportunities map to Salesforce Opportunity with the linked Person resolved to Contact (via the AccountId chain) and the linked Company resolved to AccountId. The Opportunity monetary value maps to Amount, probability maps to a probability percentage we derive from the Daylite stage mapping table, and close date maps to CloseDate. Stage names are normalized from Daylite plain-text strings to the Salesforce Sales Process stage picklist via the stage mapping table produced during scoping.

Daylite

Pipeline Stage

maps to

Salesforce Sales Cloud

Opportunity Stage

lossy
Fully supported

Daylite Opportunity stages are freeform text strings with no managed taxonomy. We extract every distinct stage value from the export, deduplicate variants (handling typos and case differences), and present a stage mapping table during scoping. Each unique Daylite stage maps to a Salesforce stage name and probability percentage that the customer approves before migration. The mapping becomes a Salesforce Sales Process deployed to the Sandbox before production import.

Daylite

Project

maps to

Salesforce Sales Cloud

Custom Object (Project__c)

lossy
Fully supported

Daylite Projects have no native Salesforce equivalent. We pre-create a Project__c custom object in the destination org during schema design, with custom fields for project status, start and end dates, budget amount, linked Company (Account lookup), and linked Person (Contact lookup). Project tasks migrate as Task records linked to the Project__c parent via WhatId. If the iOSXpert Time&Budget plugin tables are present in the export, budget and cost data migrate to custom numeric fields on Project__c.

Daylite

Task

maps to

Salesforce Sales Cloud

Task

1:1
Fully supported

Daylite Tasks map to Salesforce Task with Status, Priority, ActivityDate, and Description preserved. Standalone Tasks carry no WhatId reference. Tasks linked to a Project carry the Project__c custom object ID as WhatId. Task assignment maps by resolving the Daylite owner ID to Salesforce UserId via the owner mapping produced during scoping. Sub-tasks inherit the parent Task ID as a custom parent_task__c field.

Daylite

Appointment

maps to

Salesforce Sales Cloud

Event

1:1
Fully supported

Daylite Appointments map to Salesforce Event with StartDateTime and EndDateTime preserved in UTC. The all-day flag maps to IsAllDayEvent. Location maps to Location. Category (Daylite's categorical tag) maps to a custom Event Category picklist that we create during schema design. Attendee links migrate as EventRelation records pointing to the resolved Contact or Lead.

Daylite

Note

maps to

Salesforce Sales Cloud

Note

1:1
Fully supported

Daylite Notes migrate to Salesforce Note records linked via ContentDocumentLink to the parent object (Lead, Contact, Account, Opportunity, or Project__c). The note body migrates as rich text. Notes with a linked Person attach to the corresponding Contact; notes with a linked Company attach to the Account. We preserve the Daylite note creation timestamp in a custom field daylite_note_created__c.

Daylite

Group

maps to

Salesforce Sales Cloud

Custom Field or Campaign Membership

lossy
Fully supported

Daylite Groups are static groupings of People or Companies with no direct Salesforce equivalent. During scoping, the customer chooses between recreating Groups as a custom multi-select picklist on Contact (groups__c), as Salesforce Campaign records with CampaignMember membership, or as Salesforce Topics. We implement the chosen strategy during schema design and populate group membership during import.

Daylite

Tag

maps to

Salesforce Sales Cloud

Label or Custom Multi-Select Picklist

lossy
Fully supported

Daylite Tags are cross-object string labels exported as a separate lookup table. We map tags to either a custom Label__c multi-select picklist on each applicable object or to Salesforce Labels, depending on the destination's tagging strategy. The customer confirms the strategy during scoping.

Daylite

Attachment

maps to

Salesforce Sales Cloud

ContentDocument

1:1
Fully supported

Daylite attachments are bundled into the compressed export as a flat folder with filenames referencing the parent object type and ID. We parse the filename structure, reattach each file to the correct Salesforce record via ContentVersion and ContentDocumentLink, and preserve the original filename and Daylite creation date in custom ContentVersion fields.

Daylite

Custom Field

maps to

Salesforce Sales Cloud

Custom Field

1:1
Fully supported

Daylite custom field definitions (name, type, options) live in a separate metadata table in the export. We extract both the definition table and the value columns, map each Daylite field type to the nearest Salesforce field type (text to Text, date to Date, number to Number, checkbox to Checkbox, picklist to Picklist), pre-create the custom fields on the appropriate Salesforce object during schema design, and migrate values during the standard object import phase.

Daylite

iOSXpert Plugin Data

maps to

Salesforce Sales Cloud

Custom Fields on Existing Objects

lossy
Mapping required

iOSXpert plugins (Time&Budget, FinanceConnector) write to additional tables within Daylite's database. If those tables are present in the exported CSVs, we migrate their data to custom fields on the corresponding Daylite object (e.g., Time&Budget hours to a custom numeric field on Project__c). If a plugin was not installed when the export was generated, its tables will be absent and we flag the gap for the customer to confirm whether the data exists elsewhere.

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.

Daylite logo

Daylite gotchas

High

Database export download expires after 14 days

High

Billings Pro self-serve is discontinued, cloud migration required

Medium

Plugin-stored data is only exportable if the plugin is installed

Medium

Custom field definitions must be manually mapped

Low

Pipeline stage names are plain text, not a managed taxonomy

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Daylite export download link expires after 14 days

    When Daylite generates a full database export from Account Settings > My Info > Create Data Export, it produces a compressed archive of CSVs and an attachments folder. The download link for that archive is valid for only 14 days. If the link expires before scoping is complete, a new export must be triggered. We confirm link validity at the start of every engagement and request a fresh export if needed before any import work begins.

  • Daylite People must split into Lead and Contact

    Daylite has a single People object for all contacts regardless of whether they are unqualified prospects or active customers. Salesforce separates unqualified leads from qualified contacts attached to accounts. We resolve this by splitting on the Opportunity relationship: Daylite People with at least one linked Opportunity become Salesforce Contacts under the corresponding Account; Daylite People with no Opportunity become Salesforce Leads. The split rule is defined during discovery and applied as a transform step before any Salesforce insert. We preserve the original Daylite Person ID in a custom field for audit.

  • Opportunity stage names require explicit normalization

    Daylite Opportunity stages are freeform plain-text strings stored per record, not a managed picklist. Typo variants and inconsistent capitalization in historical records are preserved verbatim in the export. We deduplicate all unique stage values and present them as a mapping table during scoping so the customer explicitly maps each Daylite stage to a Salesforce stage name and probability percentage. This mapping becomes a Salesforce Sales Process deployed before production import. Without this step, imported Opportunities may have invalid stage values that fail Salesforce validation rules.

  • Plugin tables are absent if the plugin was not installed at export time

    iOSXpert extensions write to additional tables within Daylite's database. If a customer exported their database before installing Time&Budget or FinanceConnector, those plugin tables will not appear in the export and the data cannot be recovered from Daylite alone. We audit the exported table list for plugin signatures during scoping and flag any absent plugin tables for the customer to confirm whether that data should be included and whether it exists elsewhere. We do not infer plugin data from historical records if the plugin tables are missing.

  • Billings Pro records live in a separate application and do not export

    Billings Pro is a separate Marketcircle application (now Cloud-only, self-serve discontinued). Its invoices and billing records do not appear in Daylite's database export. Customers with billing records to preserve must export them from Billings Pro independently before their Marketcircle account transitions. We do not migrate Billings Pro data as it requires a separate Billings Pro export process that is outside Daylite's data export scope.

Migration approach

Six steps for a successful Daylite to Salesforce Sales Cloud data migration

  1. Export validation and scoping

    We begin by confirming that the Daylite database export download link is still active. If it has expired, we request a fresh export before proceeding. We ingest the CSV tables and audit the schema: we identify all present tables, check for iOSXpert plugin table signatures (Time&Budget, FinanceConnector), flag absent plugin tables for customer confirmation, and extract the custom field definition table alongside the value tables. We produce a scoping document listing all migratable objects, record counts per table, and a preliminary object mapping summary before any schema design begins.

  2. Schema design in Salesforce Sandbox

    We design the destination schema in a Salesforce Full Copy or Partial Copy Sandbox. This includes provisioning the Project__c custom object with custom fields, creating any custom fields from Daylite's custom field metadata table on People, Company, Opportunity, Task, and Event, defining Salesforce Sales Process and stage picklist values from the deduplicated stage mapping table, configuring the Group recreation strategy (campaigns, multi-select picklist, or topics), and creating any required record types. Schema is deployed via Salesforce metadata API into the Sandbox for validation before production.

  3. Sandbox migration and record reconciliation

    We run a full migration into the Sandbox using production-like data volume. The customer's admin reviews record counts across all objects, spot-checks 25-50 records per object against the Daylite source, validates the Lead-Contact split logic, confirms stage name normalization, and reviews the Project__c custom object structure. We resolve any mapping corrections in the Sandbox before proceeding to production. This step prevents mapping errors from reaching production data.

  4. Owner reconciliation and User provisioning

    We extract every distinct Daylite owner referenced on People, Company, Opportunity, Task, Appointment, and Note records and match by email address against the Salesforce destination org's User table. Any Daylite owner without a matching Salesforce User is placed in a reconciliation queue. The customer's Salesforce admin provisions the missing Users (active for current team members, inactive for departed users whose records must be reassigned) before record import proceeds. OwnerId references must be valid at insert time for most standard Salesforce objects.

  5. Production migration in dependency order

    We execute production migration in strict dependency order: Accounts (from Companies) first, then Leads and Contacts with the split rule applied and AccountId lookups resolved, then Opportunities with AccountId, OwnerId, and stage values resolved, then Project__c records with custom field data, then Tasks and Events with parent WhatId references, then Notes as ContentDocumentLink records, then attachments as ContentVersion. Each phase emits a row-count reconciliation report before the next phase begins. Activity history volumes exceeding CSV loader capacity are migrated via the Salesforce Bulk API 2.0 with batch chunking and exponential backoff on rate limit responses.

  6. Cutover, validation, and rebuild handoff

    We freeze Daylite writes during the cutover window, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We validate record counts, spot-check a second sample against Daylite source data, and deliver a migration summary report to the customer's admin. We deliver a written inventory of every Daylite automation or workflow with a recommended Salesforce Flow equivalent for the admin or a Salesforce partner to rebuild. We support a one-week post-cutover window for reconciliation issues. We do not rebuild Daylite automations as Salesforce Flow inside the migration scope.

Platform deep dives

Context on both ends of the pair

Daylite logo

Daylite

Source

Strengths

  • Deep Apple platform integration with Contacts, Calendar, Mail, and Siri.
  • Built-in project management with Tasks, Appointments, and budget tracking.
  • Full database CSV export available to all customers without restrictions.
  • Single pricing tier with no feature gating between plans.
  • Rich ORM-based data model with well-structured foreign key relationships.

Weaknesses

  • Apple-only deployment excludes all other desktop and mobile platforms.
  • Limited third-party integration ecosystem beyond native Apple apps.
  • Self-serve data export window expires after 14 days.
  • API documentation is sparse and not publicly indexed.
  • Plugin data from iOSXpert add-ons may not be consistently exportable.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

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 Daylite and Salesforce Sales Cloud.

  • 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

    Daylite: Not publicly documented as specific numeric quotas; standard SaaS limits assumed and confirmed during scoping.

  • Data volume sensitivity

    A

    Daylite exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Daylite to Salesforce Sales Cloud 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 Daylite to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Daylite to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Daylite to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Daylite migrations land between four and six weeks for accounts with under 10,000 People, 2,000 Companies, and no iOSXpert plugin tables to audit. Migrations with project history requiring a Project__c custom object, large appointment and task histories (over 100,000 records), multiple Daylite Groups, or plugin data move to ten to fourteen weeks because of custom field schema design, sandbox validation cycles, and the owner reconciliation phase before production import begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Daylite.
Land in Salesforce Sales Cloud, 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