Skip to content

The moment it happens

Text a receipt photo to log it in a sheet

Text a photo of a receipt to your number and the date, supplier and total are added to your expenses sheet, with a text back to confirm.

Runs
The moment it happens
Apps
Google Sheets, Twilio
AI
Yes, uses the built-in AI allowance
Access
Twilio account SID/token; Sheets edit

Send this to your assistant

Create a ClickRuntime automation: when I text a receipt photo to my Twilio number, read the date, supplier and total, add a row to my Expenses sheet, and text me back what was logged.

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

People who spend on the road, such as contractors, consultants and sales reps, collect paper receipts that fade, get lost and turn into a stressful pile at tax time.

Texting a photo the moment you pay gets each receipt recorded in your sheet on the spot, with no app to install, and the confirmation text shows exactly what was logged.

What you get out of it

  • Logged on the spot

    Receipts are recorded the moment you pay, before they can get lost.

  • No app to install

    It works from any phone's messaging app.

  • No typing

    Date, supplier and total are read from the photo.

  • Ready for your accountant

    All expenses sit in one sheet you can filter and share.

How it works

What happens, step by step

  1. You text a photo of a receipt to your Twilio number.

  2. The photo is downloaded from the message.

  3. AI reads the date, supplier and total.

  4. A row is added to your Expenses sheet and you get a text back with what was logged.

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 a receipt photo to log it in a sheetjust nowSucceeded
SMS · MeLogged Acme Fuel 58.40 on 2026-10-18

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
  • Change what the AI looks for, or how it writes the result
  • 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.
log_receipts_texted_to_my_number_into_a_sheet.pyexample
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from twilio.rest import Client
import base64
from clickruntime import on_event, credentials, http, ai

SHEET_ID = "your-spreadsheet-id"
SCHEMA = {"type": "object", "properties": {"date": {"type": "string"}, "supplier": {"type": "string"}, "total": {"type": "number"}}, "required": ["date", "supplier", "total"]}
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)

@on_event
def handle(event):
    f = event.json or {}
    if not f.get("MediaUrl0"):
        sms(f.get("From"), "Please send a photo of the receipt.")
        return {"skipped": "no media"}
    img = http.get(f["MediaUrl0"], auth=(credentials.secret("TWILIO_ACCOUNT_SID"), credentials.secret("TWILIO_AUTH_TOKEN"))).content
    r = ai.generate(["Read this receipt: date (YYYY-MM-DD), supplier, total.", base64.b64encode(img).decode()[:30000]],
                    json_schema=SCHEMA, max_output_tokens=80).json
    build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets().values() \
        .append(spreadsheetId=SHEET_ID, range="Expenses!A:D", valueInputOption="USER_ENTERED",
                body={"values": [[r["date"], r["supplier"], r["total"], f["From"]]]}).execute()
    sms(f["From"], f"Logged {r['supplier']} {r['total']:.2f} on {r['date']}")
    return {"logged": r["supplier"]}

FAQ

Common questions

Does it work on any phone?
Yes. Any phone that can send a picture message (MMS) to your Twilio number works. MMS is supported in the US and Canada; elsewhere, check Twilio's coverage.
What if it reads something wrong?
The confirmation text shows what was recorded, so you can fix the row in the sheet.
Can several people use it?
Yes. The sender's number is recorded in each row.
What permissions does it need?
Twilio account SID/token; Sheets edit. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly 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 a receipt photo to log it in a sheet” from your assistant

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