Weekly
Get a weekly list of missing receipts
Each Friday you see which transactions still need a receipt, grouped by employee, so you know who to chase.
- Runs
- Weekly
- Apps
- Ramp
- AI
- Not needed
- Access
- transactions:read, users:read
Send this to your assistant
Create a ClickRuntime automation: every Friday at 10am, email me the Ramp card transactions from the last 30 days that have no receipt, grouped by employee with merchant, date and amount.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Receipts are the bookkeeping chore that never stays done. Employees swipe a card for a client lunch or a software purchase and forget to attach the receipt in Ramp, and the finance team spends the end of every month sending individual messages asking for them. Missing receipts delay the close and, for larger amounts, cause trouble in audits and tax filings.
Every week, ClickRuntime lists the transactions in Ramp, keeps those without a receipt attached and emails you a list. Each line shows the cardholder, merchant, amount and date, so you can see who owes what at a glance, and forward it or follow up with the people involved before the month ends.
It suits finance and operations leads who handle expense compliance for a team, and who would rather send one weekly nudge than forty.
What you get out of it
Month-end closes faster
When missing receipts are chased weekly, there are few left at close. The usual three-day scramble of emailing people and waiting for replies shrinks to a final check. Accountants appreciate that.
Audit readiness improves
Every transaction supported by a receipt is a transaction you can defend. Weekly follow-up keeps the documentation current, so a tax or auditor request does not turn into a search through old emails.
People are asked while they remember
A receipt for lunch last Tuesday is easy to find. The same receipt requested six weeks later is often gone, so prompt reminders recover many that would otherwise be lost. Reminders sent early get answered.
The list shows patterns
If the same cardholder appears every week, that is a conversation to have. The list makes habitual late submitters visible without anyone having to keep their own tally. Repeated cases can be dealt with properly.
One email replaces many messages
Instead of writing to each person separately, you work from a single list. That reduces the time finance spends on this chore, and lets the same person cover it when someone is away.
How it works
What happens, step by step
Every Friday, ClickRuntime goes through the last 30 days of Ramp card transactions.
It picks out the ones that still have no receipt attached and groups them by employee.
You get an email listing each person with the date, merchant and amount of every transaction missing a receipt.
Before it runs live
- Connect Ramp
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
- Run it at a different time, more or less often, or only on weekdays
- 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 Ramp steps into one automation
Under the hood
The code that runs this automation
from collections import defaultdict
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, notify
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('ramp', 'work')}"}
since = (datetime.now(timezone.utc) - timedelta(days=30)).isoformat()
url, params, missing = "https://api.ramp.com/developer/v1/transactions", {"from_date": since, "page_size": 100}, defaultdict(list)
while url:
page = http.get(url, headers=h, params=params).json()
for t in page["data"]:
if not t.get("receipts"):
who = f"{t['card_holder']['first_name']} {t['card_holder']['last_name']}"
missing[who].append(f" {t['user_transaction_time'][:10]} {t['merchant_name']} ${t['amount']:,.2f}")
url, params = page["page"].get("next"), None
body = "\n\n".join(f"{who}\n" + "\n".join(rows) for who, rows in sorted(missing.items()))
notify.email_me(f"Missing receipts: {sum(map(len, missing.values()))} transactions", body or "All receipts are in.")
return {"people": len(missing)}FAQ
Common questions
Which transactions need a receipt?
Can it remind the cardholders directly?
Does Ramp already send receipt reminders?
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
Get a Slack alert for card spend over $1,000
Any Ramp card purchase above your limit is posted the moment it clears, with the cardholder and merchant.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksPost a morning briefing to Slack
Your team starts the day with the weather, a reminder or anything else you'd like in #general.
See how it worksKeep exploring
Set up “Get a weekly list of missing receipts” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
