Example · names and addresses

Split full names and addresses for a CRM import

A contact list with the whole name in one cell and the whole address in another. Your CRM wants a first name, a last name, a street, a city, a state and a postcode. Here is what that takes, and the rows no rule gets right.

The files

Names with titles, "Last, First" in capitals, names in lower case, a family name written first, two people in one cell. Addresses with and without commas, one across two lines.

03-contacts-full-names-and-whole-addresses.csv
ABCD
1NameCompanyAddressPhone
2Dr. Priya K. RamanathanBrightwater JoineryUnit 4, 12 Example Street, Fitzroy VIC 3065(03) 7010 1234
3WALSH, ConnorKestrel Ridge HirePO Box 118, Toowoomba QLD 4350(07) 5550 2201
4mary-jane o'neillCopperleaf StudioLevel 3/88 Sample Rd Surry Hills NSW 2010(02) 5550 3302
5Nguyen Van MinhHarbourline Freight7 Wharf Lane, North Fremantle, WA, 6159(08) 5550 4403
6Ms Siobhan McAllister-HartWillowmere Dental Group22 Placeholder Ave Hobart TAS 70000491 571 491
7Ben & Kate DuarteBluegum PhysioShop 2, 150 Demo Hwy, Glenelg South Australia 50450491 571 804
Titles, "Last, First", lower case and two people in one name; whole addresses in one cell, one across two lines.Download the sample CSV

The same problems from five countries, with UK postcodes, a US ZIP code and a German postcode before the city:

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

What a standard import does with them

A CRM's own import maps each column to a field. Zoho CRM's help, for example, describes mapping columns to fields and setting a default value, and no way to split one column into two fields. So the split happens first, in the spreadsheet.

That usually means Text to Columns or a helper column per field, copied down, checked by eye, and pasted back as values. Each helper column is one more place for a row to slip. Source:Zoho's help on importing data, checked on 3 October 2026.

Split full name into first and last name

In Sloose each field can take a formula. Here is one for the first name and one for the last name, written for the two shapes that are commonest in this file: "Last, First", and "First Last".

First name

helpers.proper(row.Name.includes(',')
  ? helpers.split(row.Name, ',', 1)
  : helpers.split(row.Name, ' ', 0))

Last name

helpers.proper(row.Name.includes(',')
  ? helpers.split(row.Name, ',', 0)
  : row.Name.split(' ').pop())

And what they make of every row of example 03:

Name in the fileFirst nameLast nameRight?
Dr. Priya K. RamanathanDr.RamanathanNo. The title is taken for a first name.
WALSH, ConnorConnorWalshYes
mary-jane o'neillMary-JaneO'NeillYes
Nguyen Van MinhNguyenMinhNo. The family name is written first.
Ms Siobhan McAllister-HartMsMcallister-HartNo. A title again, and proper case lowers the A of McAllister.
Ben & Kate DuarteBenDuarteNo. Two people in one cell.

Two rows of six are right. That is normal for real names, and it is why a spreadsheet split goes wrong quietly: every output looks like a name. In Sloose the formula editor runs the formula on the rows of your file as you type, so the four wrong rows are in front of you before anything is written.

Fixing the rows no rule should guess

A cell you edit belongs to the import, not to your file, which stays as it was. The formula stays with the import, and with its template.

Let the AI write the formula

You do not have to write formulas yourself. Draft everything asks the AI about every column, and the formula editor has its own Ask AI. Where values need a different case, a split or a join to fit a field, the answer can be a formula.

Every field it proposes is checked against your CRM's real fields before you see it. A formula the AI wrote is not run on your rows until you choose to, unless Sloose can see that it reads nothing but the row, because it was written from a file that could have come from anyone. Asking the AI uses credits; writing and running formulas yourself does not.

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.

Address in one cell to separate fields

Sloose has no address parser. Each address field gets its own formula, and the output for every row shows you where it fails. A postcode rule shows why that matters.

This formula takes the last four digits of the address, which is right for Australia:

row.Address.match(/\d{4}$/)?.[0] ?? ''

Run on example 03i, from five countries:

AddressCountryPostcode
PO Box 118, Toowoomba QLD 4350AU4350
Level 3/88 Sample Rd Surry Hills NSW 2010Australia2010
Unit 7, 14 Example Road, Leeds LS1 4APUK(empty)
22 Placeholder Lane / Bristol / BS1 5TRUnited Kingdom(empty)
1200 Sample Ave Ste 300, Austin, TX 78701USA8701
Musterstraße 12, 80331 MünchenDE(empty)
PO Box 4021, Paihia 0247NZ0247

The Bristol address is on three lines in the file; the slashes stand for its line breaks.

Three rows come out empty, which is easy to see. The US row comes out as 8701: four digits that look exactly like a postcode, cut from the ZIP code 78701. A rule for addresses from several countries has to read the Country column first. Whatever the rule, the row-by-row output is where you find the 8701 before your CRM does.

Phone numbers with and without country codes

Example 03i has "+61 491 570 313", "(512) 555-0142" and "0113 496 0123" in one column. helpers.digitskeeps only the digits, which removes the spaces and brackets and also the + of a country code: "+61 491 570 313" becomes 61491570313. Decide for each phone column whether you want that, or the number as written.

Used here

Questions people ask

How do I split a full name into first and last name for a CRM import?

With a formula for each field. In Sloose the first-name field can read helpers.split(row.Name, ',', 1) for names written "Last, First", and the formula editor shows what it makes of every row before anything is written. No single rule is right for every name, so look for the rows it gets wrong and fix those cells.

Can Sloose split an address in one cell into street, city, state and postcode?

Not by itself: there is no built-in address parser. Each address field gets its own formula, which you write or ask the AI to write, and you see the result for every row. Addresses from several countries need the rule to read the country first.

Does editing a cell change my original file?

No. A cell you edit in Sloose belongs to the import. Your file is not changed. See choosing your data in the docs.

What does proper case do to names like McAllister?

helpers.proper capitalises the first letter of each word, including after a hyphen or an apostrophe, and lowers the rest. "mary-jane o'neill" becomes "Mary-Jane O'Neill", but "McAllister" becomes "Mcallister". Use it on names that arrive all in capitals or all in lower case, not on names already written correctly.

Try it on your own contact list

Start on the free plan. Writing formulas and checking them on your rows uses no AI credits.

Start freeSee the examples