Use the Create Expense action for a reviewed cash or card expense that has no receipt file — a form submission, a Slack message, a spreadsheet row. If there is a file, use Upload Receipt instead and let extraction do the work.
Required fields
- Source Event ID — the trigger's stable unique identifier
- Merchant — the reviewed merchant or vendor name
- Total — the final charged amount as a positive number, including tax and tip
- Date — sent to the sheet as unambiguous
YYYY-MM-DD - Expense Category — selected from your configured categories, or an exact configured category name
Attribution to a client, project, or trip
The Client, Project, or Trip Group field is a dropdown loaded from groups that already exist in ExpenseBot. The action never creates a group. Create it in ExpenseBot first, then map to it.
That is deliberate. A misfiring trigger that auto-creates groups produces a tag list nobody can unpick later, and per-client reporting stops meaning anything.
Optional fields worth mapping
Currency (a three-letter ISO code such as USD, CAD, GBP, EUR — blank uses the account currency), Subtotal, Tax, Tip, City, and Notes. Leave a number blank rather than estimating it. Keep Notes to concise business context — purpose, attendees, a source reference — and never paste raw messages or secrets into it.
What comes back
A Record ID, a Row Number, the Spreadsheet URL, a Review Expenses URL that highlights the new row, and Safe Retry Replayed.
Route it for review
An expense created this way carries whatever your form or message said. If the upstream data is user-typed and unverified, send the Review Expenses URL onward so a person confirms the category and amount rather than trusting the mapping.
