Quickstart
Features How It Works Get Started Requirements Pricing FAQ Docs Support Quickstart

Send Bulk SMS from Microsoft Excel

Select a range (phone numbers in the first column, message text in the second) and send. Messages go out through your own Twilio account, and every row gets its delivery status written back next to your selection.

๐Ÿช Coming soon to Microsoft AppSource ๐Ÿ“ก Your own Twilio account ๐Ÿ•’ Scheduled sends

Coming soon to Microsoft AppSource. Runs in Excel on Windows and Mac (Microsoft 365) and in Excel on the web, but not on mobile.

๐Ÿ“ก Your Twilio, your rates
=SMS.SEND(A2, B2)
Bulk SMS Sender add-in icon Bulk SMS Sender
A2:B4 Selection A2:B4: 2 message(s) ready.
A · Phone B · Message C · Status
+4520304050 Order 1042 has shipped queued · SM7f3…
+15005550006 Order 1043 has shipped queued · SM91b…
20304050 Order 1044 has shipped skipped: …missing its country code
3 Rows
2 Sent
1 Flagged

Three Things Before Your First Text

The add-in is not on Microsoft AppSource yet. The quickstart walks through the whole setup, from installing the add-in to the first message landing on a phone.

๐Ÿ‘ค

A free add-in account

Sign in inside the task pane with an email address and a password. That is the account the free tier and any subscription hang off. There is no single sign-on: pop-up OAuth is unreliable inside Office webviews.

๐Ÿ“ก

Your own Twilio account

Paste your Account SID (AC… plus 32 hex characters), your Auth Token, and a From number in E.164 (or a Messaging Service SID starting MG…). Credentials are validated for format before Twilio is ever contacted.

๐Ÿ“ฑ

A phone to test on

“Test my Twilio setup” finishes by sending a real SMS to a number you enter, so you can see the whole path work end to end. Test sends are not counted against your monthly free messages.

What the sheet needs to look like

One row is one recipient. The first column of your selection holds the phone number, the second column holds the message text, and any further columns are ignored. Select at least two columns or the add-in will tell you to.

Statuses are written into the column immediately to the right of your whole selection, on the same sheet, row by row.

Get it for Microsoft Excel

Bulk SMS Sender is coming soon to Microsoft AppSource. Until it is listed, the quickstart covers installation and setup, and you can email support@innovaapps.ai about early access.

Everything It Does, and Nothing It Doesn’t

Bulk SMS Sender is a send-only add-in. It turns a range into outbound messages on your own Twilio account and reports back what happened to each row.

๐Ÿ“ค

Bulk Send from a Selection

Highlight two columns (phone in the first, message in the second) and the task pane previews how many rows are ready and which ones have problems before anything goes out. Rows send one at a time so a failure part-way through is visible per row rather than all-or-nothing.

๐Ÿงพ

Per-Row Status in the Sheet

A running counter tracks the batch, and when it finishes the outcome for every row is written into the column right of your selection: queued · SM… for a sent row, skipped: <reason> for a row that could not be parsed, error: <message> for a Twilio refusal, and duplicate of SM… when the same recipient and body were sent moments ago.

๐Ÿ•’

Scheduled Sends

Pick a send time up to a year out and close the workbook. The batch fires from the cloud with Excel shut, up to 500 messages per schedule, and stays cancellable while it is still pending. Scheduled sends are part of the paid plan.

๐Ÿงฎ

Two Custom Functions

=SMS.SEND(to, body) returns the Twilio message SID, and =SMS.STATUS(sid) does a live Twilio lookup so you can refresh a row to delivered, failed or undelivered. Note that =SMS.SEND sends a real message every time the cell calculates.

โœ…

“Test my Twilio setup”

Four checks run in order and stop at the first failure, so you always get one thing to fix: are the credentials accepted, is the account active, does the account actually own the From number, and does a real test message arrive. Failures quote the exact Twilio error code and the fix.

๐Ÿ”

Bring Your Own Twilio

Your Account SID and Auth Token are encrypted at rest with AES-256-GCM under a key unique to your account, and are used only to call Twilio on your behalf. Message bodies are not retained after a send. We never relay, resell or mark up messages. Twilio bills you directly at Twilio's own rates.

From Twilio Credentials to a Sent Column

Three steps. The Twilio account is yours, the sender number is yours, and the per-message bill is Twilio's, not ours.

1

Connect your own Twilio account

Open the task pane from the Home ribbon, sign in with your free add-in account, then paste your Twilio Account SID, Auth Token and From number. The From field takes either an E.164 number you own in Twilio or a Messaging Service SID starting MG, in which case Twilio picks the sender number.

The format of each field is checked before Twilio is contacted, so a mistyped SID is caught immediately. Once saved, the credentials are encrypted and the token field is cleared.

2

Run “Test my Twilio setup”

Enter your own mobile number and run the four checks. They stop at the first failure and each failure names the cause: a rejected Account SID or Auth Token, a Twilio account that is not active, a From number the account does not own (with the numbers it does own listed), or the exact Twilio error code on the live test send.

The last check texts your phone for real, so you finish setup knowing the whole path works. Test sends are not metered against the free tier.

3

Select the range and send, now or later

Select at least two columns, check the preview, and send. A counter tells you how far the batch has got, and when it finishes each row's outcome is written into the column right of the selection. On the paid plan you can hand the same selection to a schedule instead and close the workbook; it fires from the cloud at the time you set.

Statuses in the sheet are Twilio's status at the moment the message was created, usually queued. Nothing polls in the background, so to see a later state recalculate =SMS.STATUS(sid) against the SID in the cell.

Want the full walkthrough? Read the quickstart, the documentation, or the support page.

What You Need

A desktop or browser copy of Excel and a Twilio account of your own. There is no mobile version: Bulk SMS Sender does not run in Excel on iOS or Android.

๐ŸชŸ
Excel on Windows

Microsoft 365

๐Ÿ’ป
Excel on Mac

Microsoft 365

๐ŸŒ
Excel on the web

In the browser

๐Ÿ“ก
A Twilio account

Your own, billed by Twilio

โ˜Ž๏ธ
A sender

An E.164 number you own, or a Messaging Service

๐Ÿ‘ค
An add-in account

Free, email and password

Free for 25 Messages a Month, $19 for the Rest

One flat subscription for the add-in. Twilio's per-message fees are separate and are billed by Twilio directly to your own Twilio account.

Free
$0

Enough to wire up your Twilio account and run a real batch before you decide anything. No card.

  • 25 messages per calendar month
  • Bulk send from a selected range
  • Per-row status written back into the sheet
  • =SMS.SEND and =SMS.STATUS
  • “Test my Twilio setup”, with test sends unmetered
Read the quickstart

Innova Apps charges for the add-in only. Twilio bills your own Twilio account its standard per-message rate for every message you send (fractions of a cent to a few cents depending on the country), and we never relay, resell or mark up that traffic. Pro is billed through Stripe, so card details never reach Innova Apps servers. Paid upgrades are still being switched on; once they are, you start an upgrade from the Upgrade button in the task pane and cancel any time from “Manage billing” there.

Frequently Asked Questions

The questions people ask before they point a spreadsheet at a phone network.

๐Ÿ“ก

Why my own Twilio account?

Because the sender number, the A2P 10DLC registration and the per-message pricing all stay yours. Messages are sent by calling Twilio's API with your credentials, so nothing is relayed, resold or marked up by us, and there is no gateway to be locked into. Twilio bills you directly at its own rates.

๐Ÿ”

Do you see or store my messages?

Message bodies are not retained after a send. A scheduled message's text is stored only until the schedule runs or is cancelled, and is deleted at that point either way. What we do keep, so the sheet can show results, is the recipient number, the Twilio message SID and the delivery status. Read the privacy policy for the full picture.

๐Ÿ’ฌ

Can people reply?

Replies go to your Twilio number and are visible in your Twilio console. Bulk SMS Sender is send-only by design: there is no inbound SMS, no reply handling and no STOP or opt-out management in the add-in. Opt-out handling stays on your Twilio number, which is where carriers require it to live.

โš ๏ธ

Does =SMS.SEND really send?

Yes. It sends a real message every time the cell calculates, and Excel recalculates cells on workbook events. A 60-second window returns the original SID instead of texting someone twice when the same recipient and body come round again, but treat that as a guard rather than a promise, and run campaigns from the task pane.

๐Ÿ”

Why does a row say “duplicate of SM…”?

The same recipient and the same message text were sent within the last 60 seconds, so the original Twilio SID was returned instead of sending again. No second message goes out and nothing is counted against your monthly quota. After the window passes, the same pair sends normally.

๐Ÿ•

Why is my status stuck on “queued”?

A bulk send writes Twilio's status at the moment each message was created, which is normally queued, and nothing polls afterwards. Recalculate =SMS.STATUS(sid) for a live lookup. If messages stay queued and then vanish, US long-code traffic without A2P 10DLC registration is often filtered. Register your brand and campaign in the Twilio console.

๐Ÿ“ž

What phone number format does it want?

E.164: a +, a country code and the number, for example +4520304050. Spaces, hyphens, parentheses and dots are stripped, and a leading 00 becomes a +. A country code is never guessed, so a bare local number is flagged with “is missing its country code” rather than being sent to the wrong country.

๐Ÿ“‡

Is there a contact list or CRM?

No. The spreadsheet is the list. There is no contact management, no segments and no campaign history beyond the per-row statuses in your sheet and the message records that let those statuses be refreshed. You keep, edit and back up the recipient list the way you already keep spreadsheets.

๐Ÿ–ฅ๏ธ

Which versions of Excel does it need?

Excel on Windows or Mac with Microsoft 365, or Excel on the web. It does not run on Excel for iOS or Android. You also need your own Twilio account and a free Innova Apps add-in account (email and password) used for sign-in and plan status.

Text a Column, Read the Results Next to It

Set up your own Twilio account in the task pane, run the four checks, and send your first batch from a range you already have. Coming soon to Microsoft AppSource.