Reimburses small expenses straight away, asks a manager to approve anything over $500, and updates the sheet and the employee.

UsesGmailGoogle Sheets

Approve expenses from a Google Sheet

Expenses either pile up waiting for a manager or get waved through without a look. When a row is added to your Expenses sheet, anything $500 or less is marked Reimbursed at once. Larger ones go to your manager to approve or reject, and the person who submitted the expense cannot approve their own.

Either way the row's Status becomes Reimbursed or Rejected and the employee is emailed. This marks the sheet only; it does not pay anyone. Your sheet needs columns named Employee email, Description, Amount and Status.

Google SheetsGoogle SheetsWhen a row is added to the spreadsheet. Save it as expense.When a row is added to the spreadsheet. Save it as expense.
ValuesManager's emailSet managerEmail to blank.
ValuesReimbursed unless a manager says noSet approved to true.
Decisions & LoopsIf expense.fields.Amount is greater than 500If expense.fields.Amount is greater than 500
Yes
ApprovalsAsk the manager to approveRequest approval: Approve expense.fields.Amount expense from expense.fields["Employee email"] Save it as decision. Who to ask: managerEmail Prepared by: expense.fields["Employee email"]expense.fields["Employee email"] is asking to be reimbursed expense.fields.Amount for expense.fields.Description.
ValuesChange approved to decision.approved.Change approved to decision.approved.
No
No steps
Decisions & LoopsReimbursed or RejectedUse Reimbursed if approved is yes, otherwise Rejected and save it as status.
Google SheetsSet the row's StatusSet Status: status on row expense.row_number of expense.sheet_name in expense.spreadsheet_url. Save it as marked.Google Sheets
GmailEmail the employeeSend an email to expense.fields["Employee email"]. Save it as emailed. Subject: Your expense: statusHi, Your expense for expense.fields.Description (expense.fields.Amount) has been marked status.Gmail