Back to Dynamics 365 in Excel
SheetXAI logo
Dynamics 365 logo
Dynamics 365 · Excel Guide

Bulk Create Dynamics 365 Contacts From a Excel

2026-05-14
5 min read

The Scenario

The platform migration just finished. Your company moved from an older CRM to Dynamics 365, and the legacy vendor handed you a CSV export: 300 contacts. First name, last name, email, phone, job title — all there, all formatted slightly wrong. Your job as customer success manager is to get these people into Dynamics 365 as contact records before the team starts working their accounts next week.

This is the third migration handoff you've received this quarter. The first two went through the Dynamics import wizard. Both required at least two import cycles to get the error rate down to zero.

The bad version:

  • Save the CSV as an Excel table, open the Data Import Wizard, upload the file, and discover the phone column has formats mixed across rows — some with dashes, some with dots, some with country codes, some without
  • Spend 45 minutes cleaning the phone column in the workbook, re-export to CSV, re-upload, and step through the mapping screen again
  • Run the import, get 28 errors for contacts where the job title field exceeded Dynamics' character limit — truncate those rows, re-import

The third import wizard cycle in three months is not a thing you want to experience again.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Excel workbook. It reads your data, understands your column layout, and creates records directly in Dynamics 365 through its built-in integration — no import wizard, no field mapping screen, no error log cycle.

Read my Excel table of customer contact data and create a new Dynamics CRM contact for every row, logging each created contact ID back into column F

What You Get

  • One Dynamics 365 contact created per row, with all five fields mapped to the correct entity fields
  • Contact ID written to column F for each row
  • Rows that fail (field length exceeded, duplicate detection) surface an error message in column F rather than disappearing quietly
  • You have a full audit trail: every source row has an outcome — either a Dynamics contact ID or a legible error

What If the Data Is Not Quite Ready

Phone numbers have inconsistent formatting across rows

For each row in my Excel table, normalize the phone column to a consistent format with no dashes or dots, just digits and a leading plus sign for international numbers, then create a Dynamics 365 contact using all five columns and write the contact ID to column F

Job titles are too long for Dynamics field limits

Create a Dynamics 365 contact for each row in my Excel table — if the job title column exceeds 100 characters, truncate it to 100 before sending — write the contact ID to column F and note any truncation in column G

Duplicate emails exist across rows

Scan the email column in my Excel table for duplicate values, mark any duplicate rows in column F as "duplicate - skipped", then create a Dynamics 365 contact only for the first occurrence of each email using all five columns, writing each contact ID to column F

Normalize, deduplicate, truncate, and import all 300 contacts in one pass

Trim all cells in the name and contact columns, normalize phone numbers to digits-only format, truncate job titles to 100 characters, deduplicate on email keeping the first occurrence, then create a Dynamics 365 contact for every remaining row and write the contact ID to column F — flag skipped rows with a reason in column G

Ask for the cleanup and the import in one prompt. SheetXAI handles the conditional logic inline.

Try It

Get the 7-day free trial of SheetXAI and open the Excel workbook with your migrated contact data, then ask it to push all 300 contacts into Dynamics 365 without touching the import wizard.

Also see: Bulk Create Dynamics 365 Accounts From Excel and Bulk Update Dynamics 365 Leads From Excel.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more