AI mapping

AI mapping that fixes the values, not just the columns

A basic importer matches column names to field names and stops there. Sloose's AI also reads your values. Where a column needs a different case, a split or a join to fit its field, it proposes a formula. Where a picklist is spelled five ways, it translates each spelling to an option your CRM really has. You see what every row becomes before anything is written.

Start freeHow it works

How AI data mapping works

One button, Draft everything, proposes the whole import. Every proposal waits for you.

  1. Names first, for free

    Sloose matches columns to fields by name, spelling and values. This part uses no AI and no credits.

  2. Then the AI reads your data

    It reads your column names and sample values, and proposes a field for each column it can place.

  3. A formula where the values need work

    Where a column needs a different case, a split or a join to fit its field, the proposal comes with a formula. It also translates the values of each picklist it maps.

  4. Checked against your CRM

    Every field it proposes is checked against your CRM's real fields before you see it, so it cannot invent one. Every picklist option it names is checked against the field's real options.

  5. You decide

    Each proposal shows the values it would produce from your rows. Use it, change it or turn it down. Nothing is used until you press a button.

The finished draft of an import in Sloose, listing what was mapped and what is left to review.
Draft everything: one ask proposes the whole import, and you review each part. Shown with Zoho CRM.

Split full name into first and last name

Contact lists rarely agree on how to write a name. This file has surnames in capitals, a name all in lower case, titles, and a Spanish double surname.

03i-contacts-international-names-and-addresses.csv
ABCDE
1NameCompanyAddressPhoneCountry
2WALSH, ConnorKestrel Ridge HirePO Box 118, Toowoomba QLD 4350+61 491 570 313AU
3mary-jane o'neillCopperleaf StudioLevel 3/88 Sample Rd Surry Hills NSW 2010(02) 5550 3302Australia
4OKAFOR, ChidiNorthgate Signs LtdUnit 7, 14 Example Road, Leeds LS1 4AP0113 496 0123UK
5Ms. Hannah PriceFernhill Bakery Ltd22 Placeholder Lane Bristol BS1 5TR07700 900456United Kingdom
6maria garcía lópezSolera Tapas LLC1200 Sample Ave Ste 300, Austin, TX 78701(512) 555-0142USA
7Dr. Anna-Lena SchröderBergmann Werkzeuge GmbHMusterstraße 12, 80331 MünchenDE
8Aroha NgataKauri Bay ToursPO Box 4021, Paihia 0247NZ
UK postcodes, a US ZIP, a German postcode before the city, a New Zealand PO box; phones with and without country codes.Download the sample CSV

A formula is one rule per field, written in JavaScript like a spreadsheet formula. This pair handles names written Last, First:

First name

helpers.proper(helpers.split(row.Name, ',', 1))

Last name

helpers.proper(helpers.split(row.Name, ',', 0))

The outputs show it is right for two rows of seven. The other five have no comma, so their first name comes out empty. You see that before the run, beside each row, not after the import in your CRM.

A column card in Sloose: a formula that splits a full name into first and last names, with its output for each row.
The AI writes one formula per column. You see what it makes of every row before anything is written. Shown with Zoho CRM.
What each formula makes of every row of the file above
NameFirst (first try)Last (first try)First (second try)Last (second try)
WALSH, ConnorConnorWalshConnorWalsh
mary-jane o'neill(empty)Mary-Jane O'NeillMary-JaneO'Neill
OKAFOR, ChidiChidiOkaforChidiOkafor
Ms. Hannah Price(empty)Ms. Hannah PriceHannahPrice
maria garcía lópez(empty)Maria García LópezMariaGarcía López
Dr. Anna-Lena Schröder(empty)Dr. Anna-Lena SchröderAnna-LenaSchröder
Aroha Ngata(empty)Aroha NgataArohaNgata
The second try: also handles "First Last" and a title

First name

row.Name.includes(',')
  ? helpers.proper(helpers.split(row.Name, ',', 1))
  : helpers.proper(row.Name.replace(/^(Mr|Mrs|Ms|Dr)\.?\s+/i, '').split(' ')[0])

Last name

row.Name.includes(',')
  ? helpers.proper(helpers.split(row.Name, ',', 0))
  : helpers.proper(row.Name.replace(/^(Mr|Mrs|Ms|Dr)\.?\s+/i, '').split(' ').slice(1).join(' '))

Excel address in one cell to multiple columns

Sloose has no built-in address parser, and it does not pretend to. Addresses go the same way as names: a formula for each address field, built from helpers such as split and join. The outputs show each row's result, so an address written another way is visible before the run. In the file above, the German address puts the postcode before the city, and the Bristol address runs across three lines in one cell.

Ask the AI in the formula editor to write or change a rule in words, or write it yourself.The expressions reference lists every helper.

Import date format: dd/mm or mm/dd?

Nothing can tell from 03/04/2026 alone whether it means 3 April or 4 March. Sloose does not guess. It reads each date the way you say, and shows you the result for every row.

04i-registrations-international-mixed-date-formats.csv
ABCDEF
1Registration IDCountryAttendee emailRegisteredSession dateFee paid
2R-2001Australialena@kestrelridge.example04/03/202612/05/2026A$250.00
3R-2002United Statesmaria@solera.example03/04/202605/12/2026$165.00
4R-2003Germanya.schroeder@bergmann.example04.03.202612.05.2026150,00 €
5R-2004United Kingdomchidi@northgate.example4 Mar 202612 May 2026£130.00
6R-2005New Zealandaroha@kauribay.example2026-03-042026-05-12NZ$275
7R-2006United Statesdana@lakeside.example460855/12/26USD 165
8R-2007Japank.mori@hoshino.example2026/03/042026/05/12¥26,000
9R-2008Irelandniamh@cliffside.example04/03/2612/05/26€150
The same two dates written the Australian, US, German, UK, ISO and Japanese way, an Excel serial, fees in six currencies.Download the sample CSV

Registered

helpers.date(row.Registered,
  row.Country === 'United States' ? 'MM/DD/YYYY'
  : row.Country === 'Japan' ? 'YYYY/MM/DD'
  : 'DD/MM/YYYY')
What the formula makes of each row
CountryWrittenBecomes
Australia04/03/20262026-03-04
United States03/04/20262026-03-04
Germany04.03.20262026-03-04
United Kingdom4 Mar 20264 Mar 2026 (not read)
New Zealand2026-03-042026-03-04
United States4608546085 (not read)
Japan2026/03/042026-03-04
Ireland04/03/262026-03-04

Six rows become 4 March 2026. Two cannot be read as a date: 4 Mar 2026 and the Excel serial number 46085 stay as written. Validate lists every row where a date field would get a value that is not a real date, so you fix those two cells before the run.

A date column card in Sloose, showing dates written in several countries’ formats and the date each becomes.
Dates written six ways. Each row shows what it becomes, and the rows a formula cannot read stay as written for you to fix. Shown with Zoho CRM.

Validate passes a date that is real in either order, such as 03/04/2026, because it cannot know which order a file used. That is why the order is your decision.

Picklist values that don't match your CRM

"N.S.W.", "new south wales" and "Tassie". "Calif." and "CA". "google", "Adwords" and "Google Ads". A value that is not one of the picklist's options can fail the row, or be kept as typed where reports and filters built on the field's options miss it. Sloose translates the values before the import runs.

05i-leads-international-states-and-sources.csv
ABCDEF
1First nameLast nameCompanyCountryState / regionLead source
2MarcusBellSaltbush Solar Co.AustraliaN.S.W.google
3GraceLiuOrchard Lane CateringAUnew south walesAdwords
4RaviPatelWillowmere Dental GroupAustraliaTassieLinkedIn
5MariaGarcíaSolera Tapas LLCUSCalif.Google Ads
6DanaWhitfieldLakeside Rowing ClubUSACAlinkedin.com
7PriyaShahMaple Row ClinicsCanadaONTrade show
8Anna-LenaSchröderBergmann Werkzeuge GmbHDeutschlandBayernMesse München
9HannahPriceFernhill Bakery LtdUKGtr Manchesterword of mouth
NSW, Calif., CA, ON, Bayern and Gtr Manchester in one column; countries as codes and names; lead sources spelled many ways.Download the sample CSV

Free matching first

Translate values lists every distinct value for each picklist field, with how many rows hold it. The free matcher offers the option for a value that differs from it only in case, spacing, punctuation or accents, so "new south wales" is offered as "New South Wales" without the AI. Words such as "N/A" and "TBA" are offered as blank.

Then the AI, for what spelling cannot reach

No amount of spelling gets from "Tassie" to "Tasmania" or from "Calif." to "California". The AI reads what the values mean. Every option it names is checked against the field's real options before you see it, so it cannot propose a value your CRM would refuse. Answers it is sure of can be used in one click; the rest are offered as choices, best first.

Your decision, kept

You can also leave a value blank on purpose. A value nobody has mapped stops the run at Validate, rather than failing rows in your CRM. Value maps are saved with a template, so "Calif. is California" is a decision you make once.

Sloose translating spreadsheet values such as N.S.W. and Calif. into the CRM picklist options New South Wales and California.
Values that don’t match a picklist are translated to the options the field really has. Shown with Zoho CRM.

Phone numbers with and without a country code

The same contact list has numbers written with +61, without it, with brackets and with spaces.

Sloose has no built-in phone formatter. helpers.digits keeps only the digits, and a formula can read the Country column too, so one rule adds +61 or +44 where a number has none:

Phone

row.Phone.trim().startsWith('+')
  ? '+' + helpers.digits(row.Phone)
  : ['AU', 'Australia'].includes(row.Country)
    ? '+61' + helpers.digits(row.Phone).replace(/^0/, '')
    : ['UK', 'United Kingdom'].includes(row.Country)
      ? '+44' + helpers.digits(row.Phone).replace(/^0/, '')
      : row.Phone
What the formula makes of each row of the contacts file
CountryWrittenBecomes
AU+61 491 570 313+61491570313
Australia(02) 5550 3302+61255503302
UK0113 496 0123+441134960123
United Kingdom07700 900456+447700900456
USA(512) 555-0142(512) 555-0142

The US number is left as written because the rule covers two countries. Add a line for each country your files hold, or keep the rule in a helper library your team shares.

Mapping without the AI

Without the AI

Matches columns to fields by name, spelling and values. It is free, instant, and nothing leaves your browser. It is careful on purpose, so expect it to leave some work for you.

Names your organisation taught

After a run where nothing failed, Sloose offers to remember the column names you used, such as "ACCT #" for Account Number. An administrator confirms, and every later import into that connection finds them by name.

Free value matching

Translate values matches spellings that differ only in case, spacing, punctuation or accents, without the AI and without credits.

What the AI sees, and what it costs

Samples, not the file

The AI features send samples, not your file. One setting for the organisation decides how much: all values, masked values, or none. Your data and the model has the detail.

It proposes; you accept

Nothing is written to your CRM on the AI's say-so. Every proposal waits until a person uses it, and the import writes only when you run it.

Credits only when you ask

Draft everything and each Ask AI use credits from your plan. The free matching, the formula outputs, Validate and the import itself do not. Running a saved import again uses no AI credits. See pricing.

Questions people ask

Does the AI write anything to my CRM?

No. Every AI feature proposes, and a person accepts. A proposal waits as a guess until you use it, and nothing is written to your CRM until you run the import. You can dry-run it first.

Does the AI see my whole file?

No. The AI features send samples, not the file. An administrator chooses how much the AI may see with one setting for the organisation: all values, masked values, or none. Your data and the model says exactly what is sent.

Can it split a full name into first and last name?

Yes, with a formula for each field. Sloose has no built-in name or address parser, so the formula is a rule you can read, and you see what it makes of every row before the import runs. A row it gets wrong is visible there, not in your CRM.

How does it handle dd/mm and mm/dd dates?

An administrator sets the organisation's date order once: day/month/year, month/day/year or year/month/day. A file that mixes countries can use a formula that reads each row's country. Nothing can tell from 03/04/2026 alone whether it means 3 April or 4 March, so the setting or the formula decides, and Validate lists every value in a date field that is not a real date.

Does AI mapping cost credits?

Asking the AI uses credits from your plan, and you are charged when it answers, whether or not you use what it proposes. Without the AI, the free value matching, the formula outputs, Validate and the import itself use no credits. Running a saved import again uses no AI credits. See Pricing.

Do I have to do the mapping again next month?

No. Save the import as a template and its mappings, formulas and value maps come back with next month's file. See Templates.

Bring a file that doesn't match your CRM

Start on the free plan and draft your first import. Nothing is written until you run it.

Start freeSee the examples