The moment it happens
Save photos and files customers send on WhatsApp
Every image or document sent to your number reaches you by email with the sender's number.
- Runs
- The moment it happens
- Apps
- WhatsApp Business
- AI
- Not needed
- Access
- whatsapp_business_messaging
Send this to your assistant
Create a ClickRuntime automation: when someone sends a photo or PDF to our WhatsApp number, download it and email it to claims@example.com with the sender's number.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Customers send photos of damaged parcels, receipts, ID documents, drawings or voice notes to a business WhatsApp number. Those files live on one phone, mixed into a chat, and are compressed by the phone's gallery. When a claim needs the photo three weeks later, nobody can find it, the phone was replaced, or the customer deleted the message. A dispute then rests on memory instead of evidence.
When a message with media arrives, the automation takes the media ID from the webhook, asks WhatsApp for the temporary download URL, downloads the file using your access token, and emails it to you or stores it. You receive a link or the file itself soon after the customer sent it.
It suits insurers, repair shops, delivery businesses and anyone who needs customer evidence on record.
What you get out of it
Evidence kept outside one phone
Photos and documents are saved off the device, so a lost phone or a deleted chat does not erase the proof of damage, a receipt or a signed form you may need later.
Files reach the person who needs them
Sending the file by email lets the claims handler or technician see the photo directly without asking whoever holds the WhatsApp phone to forward it. Faster routing also means less back-and-forth with customers who are tired of resending the same photo twice.
Original quality, not a gallery copy
Downloading through the API retrieves the file as sent, avoiding screenshots and re-compression that make fine detail like serial numbers hard to read. That detail matters when an insurer or a warranty team has to judge a claim from a single image.
Quick handling of urgent cases
A burst pipe photo or a damaged delivery can trigger an action the same hour, because the image arrives in an inbox that staff already watch. Quick action on a photo of a fault often means a cheaper repair than one found days later.
Organized by customer and time
Each saved file can carry the sender's number and the time received, so retrieving everything a customer sent is a search rather than a scroll. Later, finding a receipt for a dispute is a quick search by number instead of a long scroll through old chats.
How it works
What happens, step by step
When a customer sends a photo or document to your WhatsApp Business number, ClickRuntime picks it up straight away.
It downloads the file from WhatsApp.
You get an email with the sender's number, the file's name, size and type, and any caption they wrote, such as "Damaged parcel from Acme Logistics".
Before it runs live
- Connect WhatsApp Business
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
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 WhatsApp Business steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify
@on_event
def handle(event):
value = event.json["entry"][0]["changes"][0]["value"]
msg = (value.get("messages") or [{}])[0]
kind = msg.get("type")
if kind not in ("image", "document", "video", "audio"):
return {"skipped": True}
h = {"Authorization": f"Bearer {credentials.secret('WHATSAPP_TOKEN')}"}
media = http.get(f"https://graph.facebook.com/v21.0/{msg[kind]['id']}", headers=h).json()
data = http.get(media["url"], headers=h).content
name = msg[kind].get("filename") or f"{msg[kind]['id']}.{media['mime_type'].split('/')[-1]}"
notify.email_me(f"WhatsApp {kind} from +{msg['from']}",
f"File: {name} ({len(data) / 1024:.0f} KB, {media['mime_type']})\nCaption: {msg[kind].get('caption', '')}")
return {"file": name, "bytes": len(data)}FAQ
Common questions
How long does WhatsApp keep media available to download?
Which file types can it save?
Why does the download need my access token?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Reply to common WhatsApp questions with set answers
People who type 'hours', 'price' or 'menu' get your fixed answer at once, and everyone else gets your welcome menu.
See how it worksSend a WhatsApp confirmation when someone books
Each new booking or sign-up gets your approved template on WhatsApp with their name and details filled in.
See how it worksRun a survey one question at a time on WhatsApp
People answer your questions in the chat, and each finished response lands in your inbox.
See how it worksKeep exploring
Set up “Save photos and files customers send on WhatsApp” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.