Skip to content

The moment it happens

Text back missed callers and log them in a sheet

Anyone whose call you miss gets a text right away, is added to your Missed Calls sheet, and you get an email about it.

Runs
The moment it happens
Apps
Google Sheets, Twilio
AI
Not needed
Access
Twilio send; Sheets edit

Send this to your assistant

Create a ClickRuntime automation: when a call to my Twilio number goes unanswered or busy, text the caller that I'll call back soon, log them in my Missed Calls sheet, and email me.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A missed call is often a missed customer. People rarely leave a voicemail; they just call the next business on the list. For a one-person business that's busy with clients, missed calls are part of every day.

Texting the caller straight away tells them you'll get back to them, which keeps many from moving on, and the sheet gives you a list to work through when you're free.

What you get out of it

  • Keep callers from moving on

    An instant text tells them you'll call back.

  • A call-back list

    Every missed call is logged with the number and time.

  • An email heads-up

    You know right away who tried to reach you.

  • Works while you're busy

    Nothing to do in the moment; it handles itself.

How it works

What happens, step by step

  1. Twilio tells ClickRuntime when a call to your number ends.

  2. Only unanswered or busy calls go further.

  3. The caller gets a text saying you'll call back soon.

  4. The number and time are added to your Missed Calls sheet and you get an email.

Before it runs live

  • Connect your Google Sheets account and pick the spreadsheets it may use
  • Connect Twilio
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Text back missed callers and log them in a sheetjust nowSucceeded
SMS · CallerSorry we missed your call! We'll call you back shortly. — Northwind Plumbing

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Google Sheets and Twilio steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
text_back_missed_callers_and_log_them.pyexample
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from twilio.rest import Client
from datetime import datetime, timezone
from clickruntime import on_event, credentials, http, notify

SHEET_ID = "your-spreadsheet-id"
FROM = "+15005550006"

def sms(to, body):
    return Client(credentials.secret("TWILIO_ACCOUNT_SID"), credentials.secret("TWILIO_AUTH_TOKEN")).messages.create(to=to, from_=FROM, body=body)
sheets = lambda: build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets().values()

@on_event
def handle(event):
    f = event.json or {}
    if f.get("CallStatus") not in ("no-answer", "busy"):
        return {"skipped": f.get("CallStatus")}
    caller = f.get("From", "")
    texted = "yes"
    try:
        sms(caller, "Sorry we missed your call! We'll call you back shortly. — Northwind Plumbing")
    except Exception:
        texted = "no"
    stamp = datetime.now(timezone.utc).isoformat(timespec="minutes")
    sheets().append(spreadsheetId=SHEET_ID, range="Missed Calls!A:C", valueInputOption="RAW", body={"values": [[stamp, caller, texted]]}).execute()
    notify.email_me(f"Missed call from {caller}", f"At {stamp}. Text sent: {texted}.")
    return {"caller": caller}

FAQ

Common questions

Which calls count as missed?
Calls that go unanswered or get a busy signal. Answered calls are ignored.
Will it text mobile numbers only?
It texts the caller's number. Texts to landlines won't arrive, so those are logged without a text.
Can the text include a booking link?
Yes. Add your booking link to the message.
What permissions does it need?
Twilio send; Sheets edit. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Text back missed callers and log them in a sheet” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.