CRM migration
Field-level mapping, validation, and rollback between Blackbaud and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Blackbaud
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
11 of 12
objects map 1:1 between Blackbaud and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
72–96 hours
Overview
Blackbaud models constituent relationships across individuals, households, and organizations with gift tracking, fund accounting, and campaign attribution baked into the core schema. Dynamics 365 Sales uses the Microsoft Dataverse foundation — Account and Contact as the primary entities, Lead for early-stage prospects, and Opportunity for pipeline management tied to sales processes. The structural gap is significant: Blackbaud's constituent-centric gift model has no direct Opportunity equivalent in Dynamics 365 without field mapping and custom opportunity fields for fund codes, appeal designations, and gift soft credits. We extract Blackbaud data via the SKY API (10 calls/second cap, 25,000 calls/24-hour quota on Standard tier) and load into Dynamics 365 via Dataverse Web API. Constituents split into Dynamics 365 Contact records — organizations become Account records with a primary Contact link. Gifts translate into custom Opportunity records using gift amount, gift date, and fund as mapped fields. Campaign membership from Blackbaud maps to Dynamics 365 Campaign and Campaign Response records. Custom fields on constituents and gifts require manual creation in Dynamics 365 before migration — we deliver a custom-field creation plan with exact schema definitions so your admin pre-builds the destination before data arrives. Workflows, appeal letters, and fund accounting rules do not migrate — they require Dynamics 365-side rebuild using Power Automate flows and Dynamics 365 marketing capabilities. We export workflow definitions as a reference document for your implementation team. The migration sequence is: Constituents → Accounts and Contacts, then Gifts → Opportunities with fund-code fields, then Actions and Notes → Tasks and Annotations, then Campaign membership.
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
Blackbaud platform overview
Scorecard, SWOT, gotchas, and pricing for Blackbaud.
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 Blackbaud 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.
Blackbaud
Constituent (Individual)
Microsoft Dynamics 365 Sales
Contact
1:1Blackbaud individual constituents map 1:1 to Dynamics 365 Contact records. The primary email address maps to Email, phone numbers to Telephone1/2/3, and mailing address to the composite address fields. Original constituent ID stored as Blackbaud_ID__c for traceability and delta-run de-duplication. Constituents without a primary address default to a placeholder address flagged in the migration report.
Blackbaud
Constituent (Organization)
Microsoft Dynamics 365 Sales
Account
1:1Blackbaud organization constituents map to Dynamics 365 Account records. Organization name maps to Account.Name, website to Website, industry to Industry (value-mapping from Blackbaud's industry codes to Dynamics 365 pick-list). Parent-child organizational hierarchies in Blackbaud map to Account.ParentAccountId. Multi-contact organizations generate one Account record plus a primary Contact record for the primary gift officer or organizational contact.
Blackbaud
Constituent (Household)
Microsoft Dynamics 365 Sales
Contact + Account Contact Relationship
1:1Blackbaud households (family giving units) have no direct Dynamics 365 equivalent. The primary member becomes the primary Contact record; secondary household members are created as related Contacts with an Account Contact Relationship record linking them to a shared household Account. Giving totals from the Blackbaud household record are preserved as a custom currency field on the primary Contact. Your team decides whether to collapse household structure or maintain it via the relationship model.
Blackbaud
Gift
Microsoft Dynamics 365 Sales
Opportunity
1:1Blackbaud Gift records become Dynamics 365 Opportunity records — gift amount maps to Amount, gift date maps to CloseDate (set to actual gift date), and gift description maps to Name. Fund code and appeal designation from the gift are stored as custom Opportunity fields (Fund_Code__c, Appeal__c). Soft-credit gifts require secondary Opportunity records or a custom junction object depending on whether the soft-credit constituent should appear as a separate Opportunity or a participant on the primary gift record.
Blackbaud
Campaign
Microsoft Dynamics 365 Sales
Campaign
1:1Blackbaud Campaigns map directly to Dynamics 365 Campaign records — campaign name to Name, start/end dates to StartDate/EndDate, budget to BudgetedCost. Campaign type codes (Annual Fund, Capital Campaign, Event) map to the Dynamics 365 Campaign Type pick-list via value-mapping. Campaign goals from Blackbaud are stored as custom numeric fields on the Dynamics Campaign record since Dynamics 365 Campaign does not have a native goal amount field.
Blackbaud
Gift Appeal
Microsoft Dynamics 365 Sales
Campaign (child) or custom Opportunity field
1:1Blackbaud Appeals are sub-objects of Campaigns with their own budget, goal, and designation. In Dynamics 365, each Appeal maps to a child Campaign record under the parent Blackbaud Campaign, preserving the hierarchy. If the Dynamics 365 environment uses only one Campaign model, Appeal designation is stored as Appeal__c on the related Opportunity/Gift record instead. We surface the chosen approach in the migration plan before execution.
Blackbaud
Action
Microsoft Dynamics 365 Sales
Task
1:1Blackbaud Action records (reminders, to-dos, call logs) map to Dynamics 365 Task records. Subject maps to Subject, action date to ScheduledEnd, description to Description. Action status maps to StatusCode (Open/Completed). Owner resolution happens by email match against Dynamics 365 users — unmatched Action owners are flagged and assigned to a migration owner for resolution before the full run.
Blackbaud
Note / Attachment
Microsoft Dynamics 365 Sales
Note (Annotation)
1:1Blackbaud constituent notes and document attachments map to Dynamics 365 Annotation records. Note text maps to Notetext, attachment files are downloaded from Blackbaud's file storage and re-uploaded to Dataverse file storage (max 128MB per file). Inline images in notes are extracted and re-hosted as separate file annotations. Rich-text formatting is preserved where Dynamics 365 Notetext supports it — complex formatting is flattened to plain text fallback.
Blackbaud
Custom Field (Constituent, Gift, Action)
Microsoft Dynamics 365 Sales
Custom Column (Contact, Opportunity, Task)
1:1Blackbaud custom field categories (Boolean, CodeTableEntry, Currency, Date, Number, Text) require corresponding custom columns in Dynamics 365. We deliver a custom-column creation plan with exact schema definitions (column name, data type, pick-list values) so your Dynamics 365 admin creates all custom fields before the migration run. Custom fields on constituents with CodeTableEntry type require value-by-value pick-list mapping against Dynamics 365 option set definitions. Fields must exist in Dynamics 365 before data can land in them.
Blackbaud
Recurring Gift / Pledge
Microsoft Dynamics 365 Sales
Opportunity (multiple records) or custom Pledge__c table
1:manyBlackbaud recurring gifts and pledges are split into individual installment Opportunity records in Dynamics 365 — one Opportunity per installment payment with pledge installment dates as CloseDate values. Pledge总额 is stored as a custom field (Pledge_Total__c) on the first installment Opportunity for reporting continuity. Alternatively, your team can choose a custom Pledge entity if Dynamics 365 Sales Enterprise is licensed, which allows unlimited custom tables — we present both options in the migration plan.
Blackbaud
Membership
Microsoft Dynamics 365 Sales
Contact or Account (custom fields) or custom Membership table
1:1Blackbaud membership records (included in some Blackbaud CRM tiers) have no direct Dynamics 365 equivalent. Membership level, expiration date, and member ID are stored as custom fields on the Contact record (Member_Level__c, Membership_Expiration__c, Member_ID__c). If your organization runs membership events and benefits tracking, a custom Membership table in Dataverse may be warranted — we assess this during the migration planning call.
Blackbaud
User / Owner
Microsoft Dynamics 365 Sales
SystemUser
1:1Blackbaud user and gift officer records are resolved against Dynamics 365 SystemUser records by email address match. The Blackbaud user ID is stored as Blackbaud_Owner_ID__c on migrated records for audit traceability. Users present in Blackbaud but not in Dynamics 365 are flagged before migration — your team either provisions them in Dynamics 365 first or reassigns their records to an existing user.
| Blackbaud | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Constituent (Individual) | Contact1:1 | Fully supported | |
| Constituent (Organization) | Account1:1 | Fully supported | |
| Constituent (Household) | Contact + Account Contact Relationship1:1 | Fully supported | |
| Gift | Opportunity1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Gift Appeal | Campaign (child) or custom Opportunity field1:1 | Fully supported | |
| Action | Task1:1 | Fully supported | |
| Note / Attachment | Note (Annotation)1:1 | Fully supported | |
| Custom Field (Constituent, Gift, Action) | Custom Column (Contact, Opportunity, Task)1:1 | Fully supported | |
| Recurring Gift / Pledge | Opportunity (multiple records) or custom Pledge__c table1:many | Fully supported | |
| Membership | Contact or Account (custom fields) or custom Membership table1:1 | Fully supported | |
| User / Owner | SystemUser1: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.
Blackbaud gotchas
SKY API rate limits constrain bulk migration throughput
NXT web view enforces different data entry workflows than legacy Database view
Custom field code tables must be pre-created in the destination
File relocation takes 2-6 hours and is not resumable
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
Assess Blackbaud API access tier and export the constituent-gift schema
Before any data moves, we verify your Blackbaud SKY API subscription tier and request a quota increase if your record counts suggest the Standard 25,000-call daily quota will be exhausted. We run a schema discovery pass against your Blackbaud environment: constituent fields, custom field categories, gift fields, campaign structure, and action records. This produces the field-level mapping inventory we use to build the custom-column creation plan for Dynamics 365 and confirms which Blackbaud API endpoints we will call and at what estimated volume.
Build the Dynamics 365 custom-column schema and user provisioning plan
We deliver a Dynamics 365 schema setup plan listing every custom column required on Contact, Account, Opportunity, Campaign, and Task — with exact column names, data types, and option-set values pulled from Blackbaud's CodeTableEntry custom fields. Your Dynamics 365 admin (or our team) creates these columns before migration day. We also produce an owner-resolution report matching Blackbaud user email addresses to Dynamics 365 SystemUser records, flagging any Blackbaud users who do not yet exist in your Dynamics 365 tenant.
Migrate accounts and contacts before opportunities, sequencing foreign-key dependencies
Dynamics 365 requires Account records to exist before Contacts can reference them via AccountId lookup, and Contact records before Opportunity records can link via OpportunityContactRoles. We sequence the migration so Organizations → Accounts and Individuals → Contacts run first, resolving the constituent-to-account relationship from Blackbaud. Then Campaigns and Appeals are created as Dynamics 365 Campaign records. Gift records are held in a staging queue until their constituent link is resolved — each gift becomes an Opportunity with the constituent's Dynamics 365 ContactId or AccountId populated correctly.
Run a sample migration slice with field-level diff against Dynamics 365
A representative sample — typically 200–500 records spanning constituents, organizations, gifts, and a campaign — migrates first. We generate a field-level diff report comparing source Blackbaud values against destination Dynamics 365 field values for every mapped column. Your team reviews the diff to verify fund-code mapping, appeal attribution, owner resolution, and household relationship recreation. No records commit permanently until you sign off on the sample diff. This step catches custom field type mismatches and value-mapping gaps before the full run.
Execute full migration with delta-pickup window and audit log
The full migration runs against your Dynamics 365 environment using the Dataverse Web API. A delta-pickup window — typically 24–48 hours after the full run completes — captures any new or modified records created in Blackbaud during the cutover window. Every operation is logged to an audit table including source record ID, destination record ID, operation type, and timestamp. One-click rollback reverts all migrated records to their pre-migration state if reconciliation fails. After rollback verification, your team can re-run from the delta snapshot.
Platform deep dives
Blackbaud
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Blackbaud and Microsoft Dynamics 365 Sales .
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
Blackbaud: 10 calls/second (fixed, cannot be increased) and 25,000 calls per 24 hours on Standard Edition. Daily quota can be increased via Account Executive..
Data volume sensitivity
Blackbaud exposes a bulk API — large-volume migrations stream efficiently.
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 Blackbaud to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Blackbaud 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 Blackbaud
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.