CSV to SMS means importing your spreadsheet — Google Sheets, Excel, or any CRM export — and sending each contact a personalized text from your real phone number. Text Your List does this on Mac and Windows. No shortcode, no bulk SMS account required.
No API setup. No new phone number. No carrier account.
Upload any CSV that has a phone number column and a name column. Exports from Google Sheets, Excel, HubSpot, Salesforce, Follow Up Boss, or any CRM work without reformatting. Text Your List reads the column headers automatically.
Type your message and use curly braces to pull in any column value — {first_name}, {city}, {order_number}. Preview how each message will look before sending.
Text Your List runs on your computer and routes each message through your phone. Every contact receives a private text from your personal cell number — not a five-digit shortcode, not a business line, your actual number.
Two required columns. Everything else is optional personalization.
The minimum CSV for SMS sending is a phone number column and a name column. Column headers become your merge field names. Any additional column — appointment date, city, order number, policy number, property address — becomes available as a merge field in your message template.
| first_name | phone | appointment_date | city |
|---|---|---|---|
| Sarah | 8015550101 | Thursday at 2pm | Provo |
| James | 8015550102 | Friday at 10am | Orem |
| Linda | 8015550103 | Monday at 9am | Lehi |
With that CSV, your message could read: "Hey {first_name}, your appointment is set for {appointment_date} in {city}. Reply if you need to reschedule." — and every contact gets their specific details, not a generic blast.
"SMS messages have a 98% open rate. The difference between a response and no response is whether the message feels personal."Gartner Research
Column headers from your CSV are available as merge tokens immediately. No configuration, no mapping screen beyond identifying the phone number column. Reference any column as {column_header} in your message.
See exactly how your message looks for a sample of your contacts before the send goes out. Contacts with missing merge field data are flagged so you can decide how to handle them.
Sends go out one at a time with randomized timing between each message. The pattern looks like a real person texting rather than an automated script, which protects your number with carriers.
Import once and save the list under a name. Reload it for future sends without re-uploading your CSV. Update a saved list whenever your data changes.
Google Sheets, Excel, HubSpot, Salesforce, Follow Up Boss, kvCORE, any platform that exports contacts to CSV. No reformatting required as long as you have a phone column and a name column.
Because texts go from your actual phone number, replies come back as regular iMessages or SMS. No separate inbox to check, no platform notifications. Your contacts can text you back naturally.
Three approaches people try before finding a way that actually works.
Export your appointments for the week as a CSV. Each row has a name, phone, and appointment time. Write one message with {first_name} and {appointment_time} as merge fields. Every client gets a personal reminder from your number in under five minutes.
Collect names, phone numbers, and notes at an event. Drop the sign-in sheet into a spreadsheet, export as CSV, and send a personal follow-up to every attendee the next morning. Each message references something specific about their visit.
Export pending orders with customer names, phone numbers, and order details. A single message template with {first_name} and {order_number} sends each customer a personal status update from your number — not a shortcode blast.
Filter your CRM by segment — leads who visited in the last 30 days, customers due for renewal, contacts in a specific city. Export that segment as CSV and send each person a message that references their specific situation.
Free plan included. No credit card. Works on Mac and Windows.