<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 两只喵的日常</title>
    <description>The latest articles on DEV Community by 两只喵的日常 (@_7932028809934f40e3).</description>
    <link>https://dev.to/_7932028809934f40e3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3989685%2F141f2ec0-a307-4b24-bd3f-9f0fb8c2234d.png</url>
      <title>DEV Community: 两只喵的日常</title>
      <link>https://dev.to/_7932028809934f40e3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_7932028809934f40e3"/>
    <language>en</language>
    <item>
      <title>How to use AI to check a CSV file before importing it into a CRM</title>
      <dc:creator>两只喵的日常</dc:creator>
      <pubDate>Fri, 19 Jun 2026 16:29:38 +0000</pubDate>
      <link>https://dev.to/_7932028809934f40e3/how-to-use-ai-to-check-a-csv-file-before-importing-it-into-a-crm-1j0m</link>
      <guid>https://dev.to/_7932028809934f40e3/how-to-use-ai-to-check-a-csv-file-before-importing-it-into-a-crm-1j0m</guid>
      <description>&lt;p&gt;Importing a CSV into a CRM is one of those tasks that looks simple until it quietly breaks routing, attribution, lifecycle reporting, or duplicate handling.&lt;/p&gt;

&lt;p&gt;AI can help, but the useful job is not "clean this CSV." The useful job is asking AI to create a review process before anything gets uploaded.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real question
&lt;/h2&gt;

&lt;p&gt;The question I would ask is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How do I use AI to check this CSV before importing it into a CRM?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is different from asking AI to rewrite the file. For CRM imports, the priority is preserving the fields that make the system work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fields to check first
&lt;/h2&gt;

&lt;p&gt;Before asking AI to suggest cleanup rules, identify the fields that should not be changed casually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Record ID or external ID&lt;/li&gt;
&lt;li&gt;Email address&lt;/li&gt;
&lt;li&gt;Owner&lt;/li&gt;
&lt;li&gt;Lifecycle stage&lt;/li&gt;
&lt;li&gt;Lead source&lt;/li&gt;
&lt;li&gt;Company or account name&lt;/li&gt;
&lt;li&gt;Created date or original source date&lt;/li&gt;
&lt;li&gt;Required CRM fields&lt;/li&gt;
&lt;li&gt;Any field used for routing, attribution, or reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If one of these fields is wrong, a technically successful import can still create bad business data.&lt;/p&gt;

&lt;h2&gt;
  
  
  A better AI prompt
&lt;/h2&gt;

&lt;p&gt;Use a prompt like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I am preparing a CSV for CRM import.

Review the headers and sample rows below.

Return:
1. Fields that are safe to normalize.
2. Fields that need manual review.
3. Required CRM fields that are missing or incomplete.
4. Duplicate risks.
5. Owner, lifecycle, and lead source values that do not match the approved list.
6. A pre-import QA checklist.
7. Rows that should not be imported until reviewed.

Do not rewrite record IDs, email addresses, owner fields, lifecycle stages, or attribution fields without flagging the change.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then paste the headers, a sample of rows, and your approved CRM field values.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI should return
&lt;/h2&gt;

&lt;p&gt;A useful answer should give you a review table, not just a cleaned file.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;td&gt;Missing, inactive, or misspelled owners&lt;/td&gt;
&lt;td&gt;Prevents bad routing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lifecycle stage&lt;/td&gt;
&lt;td&gt;Values outside the approved list&lt;/td&gt;
&lt;td&gt;Protects pipeline reporting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lead source&lt;/td&gt;
&lt;td&gt;Duplicated labels like PPC, paid search, Google Ads&lt;/td&gt;
&lt;td&gt;Prevents attribution drift&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Email&lt;/td&gt;
&lt;td&gt;Missing or duplicated email addresses&lt;/td&gt;
&lt;td&gt;Prevents duplicate contacts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IDs&lt;/td&gt;
&lt;td&gt;Blank or changed CRM IDs&lt;/td&gt;
&lt;td&gt;Prevents unsafe overwrites&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The small-batch test
&lt;/h2&gt;

&lt;p&gt;Before importing the full CSV, test a small batch.&lt;/p&gt;

&lt;p&gt;Check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Row count before and after import&lt;/li&gt;
&lt;li&gt;Required field errors&lt;/li&gt;
&lt;li&gt;Duplicate behavior&lt;/li&gt;
&lt;li&gt;Owner assignment&lt;/li&gt;
&lt;li&gt;Lifecycle stage mapping&lt;/li&gt;
&lt;li&gt;Lead source normalization&lt;/li&gt;
&lt;li&gt;Whether existing CRM fields were overwritten&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep the original CSV and a rollback file.&lt;/p&gt;

&lt;h2&gt;
  
  
  A checklist version
&lt;/h2&gt;

&lt;p&gt;I keep a practical version of this workflow here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trendstackai.com/resources/sales-ops-csv-import-qa-checklist?utm_source=manual&amp;amp;utm_medium=devto&amp;amp;utm_campaign=fifth_round_links&amp;amp;utm_content=crm-csv-import-ai-check" rel="noopener noreferrer"&gt;Sales ops CSV import QA checklist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The core idea is simple: use AI to make the import safer, not faster at the expense of review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final rule
&lt;/h2&gt;

&lt;p&gt;If the CSV controls routing, revenue reporting, attribution, or customer ownership, AI should help you create a QA process. It should not be treated as an automatic cleanup engine.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>A CSV import QA checklist for sales ops teams</title>
      <dc:creator>两只喵的日常</dc:creator>
      <pubDate>Thu, 18 Jun 2026 06:23:54 +0000</pubDate>
      <link>https://dev.to/_7932028809934f40e3/a-csv-import-qa-checklist-for-sales-ops-teams-4cn9</link>
      <guid>https://dev.to/_7932028809934f40e3/a-csv-import-qa-checklist-for-sales-ops-teams-4cn9</guid>
      <description>&lt;p&gt;CSV imports are easy to underestimate.&lt;/p&gt;

&lt;p&gt;The file opens in a spreadsheet, the rows look readable, and the cleanup seems small. Then the CRM import creates bad owner assignments, duplicate contacts, broken source reporting, or lifecycle values that do not match the dashboard.&lt;/p&gt;

&lt;p&gt;Here is the QA checklist I would use before uploading a cleaned sales ops CSV.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Preserve IDs and rollback fields
&lt;/h2&gt;

&lt;p&gt;Before cleanup, keep the raw file.&lt;/p&gt;

&lt;p&gt;Do not overwrite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CRM record IDs&lt;/li&gt;
&lt;li&gt;email addresses&lt;/li&gt;
&lt;li&gt;owner identifiers&lt;/li&gt;
&lt;li&gt;account IDs&lt;/li&gt;
&lt;li&gt;source record IDs&lt;/li&gt;
&lt;li&gt;created dates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the import fails, these fields are usually needed for rollback or deduplication.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Validate required fields
&lt;/h2&gt;

&lt;p&gt;Before upload, check whether each row has the fields the destination system expects.&lt;/p&gt;

&lt;p&gt;Common required fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;company&lt;/li&gt;
&lt;li&gt;owner&lt;/li&gt;
&lt;li&gt;lifecycle stage&lt;/li&gt;
&lt;li&gt;lead source&lt;/li&gt;
&lt;li&gt;record ID&lt;/li&gt;
&lt;li&gt;account ID&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Missing required fields should be flagged, not guessed.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Normalize source labels
&lt;/h2&gt;

&lt;p&gt;Source labels often drift over time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PPC
Paid Search
paid search
Google Ads
Adwords
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If these values enter the CRM as separate labels, reports become harder to trust.&lt;/p&gt;

&lt;p&gt;Create a mapping table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;raw_value | approved_value | rule | review_needed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Check owners before upload
&lt;/h2&gt;

&lt;p&gt;Owner fields affect routing and visibility.&lt;/p&gt;

&lt;p&gt;Look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inactive owners&lt;/li&gt;
&lt;li&gt;old rep names&lt;/li&gt;
&lt;li&gt;initials instead of approved user names&lt;/li&gt;
&lt;li&gt;team inboxes&lt;/li&gt;
&lt;li&gt;blank owners&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rows with uncertain owners should go into review.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Separate exact duplicates from possible duplicates
&lt;/h2&gt;

&lt;p&gt;Do not deduplicate only by name.&lt;/p&gt;

&lt;p&gt;Better signals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;CRM ID&lt;/li&gt;
&lt;li&gt;account ID&lt;/li&gt;
&lt;li&gt;company domain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Name-only matches should usually be possible duplicates, not automatic merges.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Test a small batch
&lt;/h2&gt;

&lt;p&gt;Before the full upload, test a small file with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one normal row&lt;/li&gt;
&lt;li&gt;one duplicate candidate&lt;/li&gt;
&lt;li&gt;one missing owner&lt;/li&gt;
&lt;li&gt;one unusual source label&lt;/li&gt;
&lt;li&gt;one lifecycle edge case&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This catches validation problems without damaging the full dataset.&lt;/p&gt;

&lt;p&gt;I keep a more complete checklist here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trendstackai.com/resources/sales-ops-csv-import-qa-checklist.html?utm_source=manual&amp;amp;utm_medium=devto&amp;amp;utm_campaign=third_round_links&amp;amp;utm_content=sales-ops-csv-import-qa" rel="noopener noreferrer"&gt;https://trendstackai.com/resources/sales-ops-csv-import-qa-checklist.html?utm_source=manual&amp;amp;utm_medium=devto&amp;amp;utm_campaign=third_round_links&amp;amp;utm_content=sales-ops-csv-import-qa&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal is not to make the CSV perfect. The goal is to make the import safe enough that the team can understand what changed and roll back if needed.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>Why CSV imports fail after cleanup: delimiter, encoding, and mapping checks</title>
      <dc:creator>两只喵的日常</dc:creator>
      <pubDate>Thu, 18 Jun 2026 05:35:26 +0000</pubDate>
      <link>https://dev.to/_7932028809934f40e3/why-csv-imports-fail-after-cleanup-delimiter-encoding-and-mapping-checks-176b</link>
      <guid>https://dev.to/_7932028809934f40e3/why-csv-imports-fail-after-cleanup-delimiter-encoding-and-mapping-checks-176b</guid>
      <description>&lt;p&gt;CSV import failures are often blamed on the destination tool, but many failures start earlier: the file was cleaned in a spreadsheet, saved with different settings, or mapped into fields that no longer match the target system.&lt;/p&gt;

&lt;p&gt;If a CSV opens locally, that does not mean it is import-safe. Spreadsheet apps are forgiving. Importers are usually stricter.&lt;/p&gt;

&lt;p&gt;Here is the checklist I use before rerunning a failed CSV upload.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Confirm the delimiter
&lt;/h2&gt;

&lt;p&gt;The most basic CSV failure is also the easiest to miss.&lt;/p&gt;

&lt;p&gt;A file may be separated by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;commas&lt;/li&gt;
&lt;li&gt;semicolons&lt;/li&gt;
&lt;li&gt;tabs&lt;/li&gt;
&lt;li&gt;pipes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the importer expects commas but the file uses semicolons, the upload may collapse every row into one field. If text fields contain commas without proper quoting, the importer may shift values into the wrong columns.&lt;/p&gt;

&lt;p&gt;Before changing field mappings, check whether the row structure is being parsed correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Check encoding before editing more rows
&lt;/h2&gt;

&lt;p&gt;Encoding issues usually show up as broken names, symbols, or special characters.&lt;/p&gt;

&lt;p&gt;Common signs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;accented characters look corrupted&lt;/li&gt;
&lt;li&gt;currency symbols change&lt;/li&gt;
&lt;li&gt;names from non-English markets break&lt;/li&gt;
&lt;li&gt;smart quotes become unreadable&lt;/li&gt;
&lt;li&gt;imported text does not match the source export&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the data includes names, addresses, product titles, or international text, confirm the export is UTF-8 before rerunning the import.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Preserve IDs as text
&lt;/h2&gt;

&lt;p&gt;IDs are not normal numbers.&lt;/p&gt;

&lt;p&gt;These values should often stay as text:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Risk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;000123&lt;/td&gt;
&lt;td&gt;leading zeros disappear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-001&lt;/td&gt;
&lt;td&gt;parsed as a date&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C-1042&lt;/td&gt;
&lt;td&gt;treated as a category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1E10&lt;/td&gt;
&lt;td&gt;interpreted as scientific notation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Once IDs change, it becomes harder to reconcile imported records with the original source.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Recheck column mapping after cleanup
&lt;/h2&gt;

&lt;p&gt;Cleanup can change the meaning of a column.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a combined contact field may become separate name and email fields&lt;/li&gt;
&lt;li&gt;a status column may be normalized into a smaller approved list&lt;/li&gt;
&lt;li&gt;a company name may need to match a linked record table&lt;/li&gt;
&lt;li&gt;a date field may be converted into a new format&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After cleanup, do not reuse the old mapping blindly. Build a small mapping table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Source column&lt;/th&gt;
&lt;th&gt;Target field&lt;/th&gt;
&lt;th&gt;Field type&lt;/th&gt;
&lt;th&gt;Cleanup rule&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Contact ID&lt;/td&gt;
&lt;td&gt;Source ID&lt;/td&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;Preserve exactly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company&lt;/td&gt;
&lt;td&gt;Company&lt;/td&gt;
&lt;td&gt;Linked record&lt;/td&gt;
&lt;td&gt;Match primary field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Single select&lt;/td&gt;
&lt;td&gt;Normalize values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Created At&lt;/td&gt;
&lt;td&gt;Created date&lt;/td&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;Convert to ISO format&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  5. Test representative rows, not random rows
&lt;/h2&gt;

&lt;p&gt;The first five rows are not always a good test.&lt;/p&gt;

&lt;p&gt;Pick rows that include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one normal record&lt;/li&gt;
&lt;li&gt;one record with a blank optional field&lt;/li&gt;
&lt;li&gt;one record with a linked record value&lt;/li&gt;
&lt;li&gt;one row with date or currency values&lt;/li&gt;
&lt;li&gt;one row with commas, quotes, or line breaks in text&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This catches parsing and mapping issues before they affect the full upload.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Keep a post-import review view
&lt;/h2&gt;

&lt;p&gt;After the test import, review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;blank required fields&lt;/li&gt;
&lt;li&gt;duplicate source IDs&lt;/li&gt;
&lt;li&gt;unexpected select values&lt;/li&gt;
&lt;li&gt;invalid dates&lt;/li&gt;
&lt;li&gt;unmatched linked records&lt;/li&gt;
&lt;li&gt;row counts before and after import&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This step matters because some failures are not visible in the upload preview.&lt;/p&gt;

&lt;p&gt;I keep a more detailed guide here: &lt;a href="https://trendstackai.com/resources/csv-encoding-and-delimiter-fix.html?utm_source=manual&amp;amp;utm_medium=devto&amp;amp;utm_campaign=second_round_links&amp;amp;utm_content=csv-encoding-and-delimiter-fix" rel="noopener noreferrer"&gt;CSV encoding and delimiter fix guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The safest CSV cleanup process is not just about making the file look clean. It is about preserving the values that the destination system depends on.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>How to map CSV columns before importing into Airtable linked records</title>
      <dc:creator>两只喵的日常</dc:creator>
      <pubDate>Wed, 17 Jun 2026 19:15:39 +0000</pubDate>
      <link>https://dev.to/_7932028809934f40e3/how-to-map-csv-columns-before-importing-into-airtable-linked-records-42ao</link>
      <guid>https://dev.to/_7932028809934f40e3/how-to-map-csv-columns-before-importing-into-airtable-linked-records-42ao</guid>
      <description>&lt;p&gt;CSV imports into Airtable often fail for reasons that are not obvious from the import screen. The file may look clean, the headers may be readable, and the preview may even show the right rows. The real problem is usually the mapping between source columns, Airtable field types, and linked record behavior.&lt;/p&gt;

&lt;p&gt;This is the workflow I use before importing operational data into Airtable, especially when the base has linked records, select fields, IDs, or messy exports from another system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with a mapping table
&lt;/h2&gt;

&lt;p&gt;Before touching the importer, map the CSV in a small table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CSV column&lt;/th&gt;
&lt;th&gt;Airtable field&lt;/th&gt;
&lt;th&gt;Field type&lt;/th&gt;
&lt;th&gt;Required?&lt;/th&gt;
&lt;th&gt;Cleanup rule&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Contact ID&lt;/td&gt;
&lt;td&gt;Source ID&lt;/td&gt;
&lt;td&gt;Single line text&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Preserve exactly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company&lt;/td&gt;
&lt;td&gt;Company&lt;/td&gt;
&lt;td&gt;Linked record&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Match primary field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Single select&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Normalize labels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notes&lt;/td&gt;
&lt;td&gt;Notes&lt;/td&gt;
&lt;td&gt;Long text&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Keep raw text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Created At&lt;/td&gt;
&lt;td&gt;Created date&lt;/td&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Convert to one date format&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This table makes the import decision explicit. It also helps you avoid changing the Airtable schema while you are already inside the upload flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate identifiers from names
&lt;/h2&gt;

&lt;p&gt;A common mistake is treating every readable value as a display label. In practice, imports usually contain two different kinds of columns:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;stable identifiers, such as customer IDs, ticket IDs, order IDs, or source system IDs&lt;/li&gt;
&lt;li&gt;human-readable labels, such as company names, contact names, status labels, or category names&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Preserve stable IDs exactly. Do not trim leading zeros, convert them to numbers, or merge them into display fields. If something goes wrong later, those IDs are what let you compare the imported Airtable records against the original export.&lt;/p&gt;

&lt;h2&gt;
  
  
  Be careful with linked records
&lt;/h2&gt;

&lt;p&gt;Linked records deserve special attention. If the CSV value does not match the linked table's primary field, the import can look correct but still fail to create the relationship you expected.&lt;/p&gt;

&lt;p&gt;For example, if your CSV has a Company column with values like "Acme Inc" but the linked Companies table uses "Acme" as the primary field, Airtable may not match the existing company record. You can end up with blank links, duplicate linked records, or records that look valid but are not connected correctly.&lt;/p&gt;

&lt;p&gt;Before importing linked records, check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;whether the linked table already contains the target records&lt;/li&gt;
&lt;li&gt;whether the CSV value exactly matches the linked table primary field&lt;/li&gt;
&lt;li&gt;whether you want Airtable to create new linked records automatically&lt;/li&gt;
&lt;li&gt;whether duplicate names exist in the linked table&lt;/li&gt;
&lt;li&gt;whether the import should use a text staging field first&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For risky imports, I usually import into a temporary text field first, review the values, then convert or map them into linked records after the mismatch cases are visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Normalize select fields before import
&lt;/h2&gt;

&lt;p&gt;Single select and multi-select fields can create messy option lists if the CSV contains small variations.&lt;/p&gt;

&lt;p&gt;These values may all represent the same status:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Active&lt;/li&gt;
&lt;li&gt;active&lt;/li&gt;
&lt;li&gt;ACTIVE&lt;/li&gt;
&lt;li&gt;Active customer&lt;/li&gt;
&lt;li&gt;Current&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Decide the final Airtable labels before import. Otherwise, you may create duplicate select options and have to clean the base after the data is already live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test with five representative rows
&lt;/h2&gt;

&lt;p&gt;Do not test with the first five rows unless they represent the full data shape. Pick rows that include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one normal record&lt;/li&gt;
&lt;li&gt;one record with a linked record value&lt;/li&gt;
&lt;li&gt;one record with missing optional fields&lt;/li&gt;
&lt;li&gt;one record with date or number fields&lt;/li&gt;
&lt;li&gt;one record with edge-case text, such as commas, line breaks, or unusual characters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This small test catches most mapping errors before the full import creates hundreds or thousands of records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a post-import review view
&lt;/h2&gt;

&lt;p&gt;After import, create a review view that filters for likely problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;blank required fields&lt;/li&gt;
&lt;li&gt;unmatched linked records&lt;/li&gt;
&lt;li&gt;duplicate source IDs&lt;/li&gt;
&lt;li&gt;unexpected select values&lt;/li&gt;
&lt;li&gt;invalid dates&lt;/li&gt;
&lt;li&gt;records created during the test import&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This view is useful because import errors are not always visible in the upload screen. Some issues only become obvious after the records exist in the base.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical checklist
&lt;/h2&gt;

&lt;p&gt;A safe CSV to Airtable import usually looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Preserve the raw CSV.&lt;/li&gt;
&lt;li&gt;Identify IDs, names, dates, categories, notes, and linked-record candidates.&lt;/li&gt;
&lt;li&gt;Build a mapping table before import.&lt;/li&gt;
&lt;li&gt;Decide which fields should be linked records.&lt;/li&gt;
&lt;li&gt;Normalize select values before upload.&lt;/li&gt;
&lt;li&gt;Test five representative rows.&lt;/li&gt;
&lt;li&gt;Review blanks, invalid values, duplicates, and unmatched linked records.&lt;/li&gt;
&lt;li&gt;Keep the source ID field for rollback and reconciliation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I keep a more detailed CSV to Airtable field mapping checklist here: &lt;a href="https://trendstackai.com/resources/csv-to-airtable-field-mapping-checklist.html?utm_source=manual&amp;amp;utm_medium=devto&amp;amp;utm_campaign=link_retaining_distribution&amp;amp;utm_content=csv-to-airtable-field-mapping-checklist" rel="noopener noreferrer"&gt;CSV to Airtable field mapping checklist&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
