In this article:

Send Messages From Your Spreadsheet for Free in 2025

April 18, 2025

In this article we will show you how to send a message from your spreadsheet in just a few clicks. Simply follow the steps below.

How to Send Messages from a Sheet

There is no built-in integration between messaging apps and most spreadsheet tools, but there is an available API that you can connect to in order to send messages directly from a spreadsheet for free.

1. Download Your Messaging App

Follow the download instructions for your operating system or use the web version of your messaging app in your browser (for older systems). Connect your account using the mobile app by scanning the QR code shown on your screen.

2. Create Your Workbook

In our example spreadsheet we will add the following details: 

  • Recipient Name
  • Phone Number
  • The Message

You can add more columns if necessary.



We will leave our message column blank as we will be adding dynamic messages in the next steps. You can add static text in this column if you wish to do so.

send message from sheets

Tip: Input your phone number with their area code in the beginning of the 10 digit mobile number.


When encoding the phone number, to ensure that the addition sign does not become a function, follow the format:

=“+(Area Code)(10 digit number)”

Remember that the quotation marks are important to display the correct number format.

3. Create your Dynamic Message

We can create dynamic messages that can change content based on other cells.

For our example, we will make messages that change based on our “Name” Column.

To use this formula for other combinations of text, simply enclose your non-changing (static) text in quotation marks (“”) and add your cell references for the dynamic text by using the ampersand sign (&). Use the & sign before/after text you want to join together.

send message from a spreadsheet free

4. Create a Hyperlink to the API

The hyperlink to the messaging API will follow this format:

=hyperlink("https://example.com/send?phone=" & phone number & "&text=" & message, "display text")

Formula Breakdown:

Hyperlink: Creates a clickable link.

Phone number: Refers to the cell containing the contact number (e.g., B2).

Message: Refers to the cell with the message content (e.g., C2).

Display Text: This is the text shown for the link (e.g., "Send Message").

Following the breakdown, the final formula for cell D2 will be:


=hyperlink("https://example.com/send?phone=" & B2 & "&text=" & C2, "Send Message")

Simply copy this formula or drag it down to the other cells to be able to create hyperlinks for all of the contacts in your sheet.

sending message using hyperlink in spreadsheet

Hyperlinked cells will be blue and underlined.

5. Click the Hyperlink Beside the Message you want to Send to Open the API

The link will redirect you to the application you’ve installed.

6. Allow your Browser to Open the Messaging Application

Give permission and this will now launch the app. You can also use the web version for operating systems other than Mac.

7. Send your Message

You can see that your dynamic message is automatically populated in the message portion and the number is set to your intended recipient.

Simply click the send icon beside your message to successfully send it.

How to Add a Timestamp After Sending a Message

If you are interested in creating a spreadsheet with timestamp tracking when you’ve sent your messages, here’s a quick and easy guide to do so.


We will be using a script editor to achieve this. This usually requires some programming knowledge but we have added all the sample code below so that anyone can follow the steps.

You can view the worksheet for the example above and it’s Apps Script code by going to: Send Messages Example

1. Select the column beside your dataset

In our example sheet, we will select column E which is beside our hyperlinks.

2. In the File Menu, go to Insert and select Checkbox

These are checkboxes that we press when we have successfully sent a message.

Our sheet will now look like this:

3. Label the next column as Timestamp.

This is the column where our automation will populate the current timestamp when the checkbox has been ticked.

4. In the File Menu, go to Extensions > Apps Script

This will open a new tab for App Script. This is where we will create our program to automate the adding of a timestamp.

5. In the code editor, input the following function:

const TABSIN = ['Sheet1']; // Put your included sheet names in here

const COLUMNSIN = [insert column number here]; // column where checkboxes are located

function onEdit(e) {

if (!e) throw "Do NOT run this script from the editor !";

checkedDate(e);

}

function checkedDate(e) {

const src = e.source.getActiveSheet();

const r = e.range;

const date = new Date();

if (r.rowStart > 1 && COLUMNSIN.includes(r.columnStart) != false && TABSIN.indexOf(src.getName()) !== -1)

if (e.value === "TRUE"){

e.range.setValue('FALSE');

r.offset(0,1).setValue(date).setNumberFormat("yyyy-MM-dd hh:mm");

}

}

To use this code, you only have to change the two bolded and italicized variables: 

‘Sheet 1’ - is the sheet name of your active worksheet

insert column number here - is where you put the column number of the column where your checkboxes are located. In our case, the column number for column E is 5.

For our example the final code will be:

const TABSIN = ['Sheet1']; // Put your included sheet names in here

const COLUMNSIN = [5]; // column where checkboxes are located

function onEdit(e) {

if (!e) throw "Do NOT run this script from the editor !";

checkedDate(e);

}

function checkedDate(e) {

const src = e.source.getActiveSheet();

const r = e.range;

const date = new Date();

if (r.rowStart > 1 && COLUMNSIN.includes(r.columnStart) != false && TABSIN.indexOf(src.getName()) !== -1)

if (e.value === "TRUE"){

e.range.setValue('FALSE');

r.offset(0,1).setValue(date).setNumberFormat("yyyy-MM-dd hh:mm");

}

}

6. Save your project by pressing the Save icon 

This will save the code that you have made. You can also rename your untitled project.

7. In the left side menu of Apps Script, click the Alarm icon to open Triggers

We will create a trigger that will run our program when the appropriate checkboxes have been ticked.

8. Click Add Trigger

This will be at the bottom right side of your triggers tab.

9. Configure your trigger and click Save

Use the following configurations:

Choose which function to run: onEdit

Select Event Source: From Spreadsheet

Event Type: OnEdit

Creating a trigger and saving it will open a pop-up that will ask you to log-in and authorize your program since this is custom code.

When asked to verify, click advanced options and proceed to “Go to Untitled Project”. Grant access to your account to be able to edit your spreadsheet.

10. You can now test the timestamp in your Spreadsheet by ticking a checkbox.

Once clicked, you should see a timestamp of the current date and time appear in the timestamp column beside your checkbox.

11. After sending a message through a hyperlink, you can simply check the checkbox beside it to Display the Date and Time.

You can also press the checkbox again if you need to change the timestamp that was placed. Now you can easily track sent messages through your workbook.

In case you need it, we recommend trying our software to help you set up reminders for contract renewal.

Related Articles

How to Make All Cells the Same Size in Google Sheets
Google Sheets Time Zone Conversion (How to Use It in 2025)

Turn PDFs into spreadsheet tables with AI

Use Lido to extract data from contracts, invoices, financials, and more in seconds. Save time, reduce errors.
  • No credit card required
  • 20 free pages