# Automate Expense Reimbursement Requests with AI

> Expense reimbursement automation for small teams: a Lovable form and an n8n AI agent that checks the policy, logs it in Sheets and emails the status.

Source: https://learn.ynteractive.com/content/blog/expense-reimbursement-form-ai · Updated 2026-10-01 · Free from Stepthrough (https://learn.ynteractive.com)

By [Robert Breen](https://learn.ynteractive.com/content/about) · Published October 1, 2026 · Updated October 1, 2026 · 6 min read

Finance · Lovable · n8n

You can automate [expense reimbursement](https://learn.ynteractive.com/content/glossary/expense-reimbursement) requests with a Lovable form and an n8n [AI agent](https://learn.ynteractive.com/content/glossary/ai-agent) that checks each request against your written policy, logs it in Google Sheets and emails the employee the status. This guide is for office managers, bookkeepers and owners who handle reimbursements by hand, and you can build it free in the [AI Expense Reimbursement Form](https://learn.ynteractive.com/content/expense-reimbursement-form-ai-approval-lovable-n8n) lesson.

Reimbursement requests rarely arrive the same way twice: a text with a blurry photo, a hallway "I bought toner," an email weeks later asking about the money. The lesson's example is Maple Street Bookkeeping, a made-up small bookkeeping firm, and you build it without code.

## What does an AI expense reimbursement form do?

An AI expense reimbursement form collects every request in the same shape and gives it an automatic first check. The employee sees "Request received! Check your email for the status." and then gets a status email.

- **The form (Lovable):** a page titled **Expense Reimbursement Request** with four required fields: Name, Email, Expense details and Amount.
- **The workflow (n8n):** a **Webhook** receives each request, an **AI Agent** with an OpenAI model checks the policy, a **Google Sheets** tool logs it in a sheet called **Expense Requests**, a **Gmail** tool emails the employee, and **Respond to Webhook** tells the form it worked.

## How does the AI agent check a reimbursement policy?

The n8n agent reads the reimbursement policy from its [system message](https://learn.ynteractive.com/content/glossary/system-prompt) and picks one of three statuses. The whole policy fits in a few plain-English lines:

```text
You check expense reimbursement requests for Maple Street Bookkeeping, a small bookkeeping firm.

Check each request against this policy and pick one status:
- Needs receipt: the employee says there is no receipt, or does not mention one.
- Needs manager OK: the amount is $100 or more.
- Approved: under $100, with a receipt and a clear business purpose.

Use the google sheets tool to add the request to the google sheet.

Use the gmail tool to email the employee the status and what to do next. Be friendly and brief. Do not give tax advice.
```

The three rules and the $100 limit are examples for the lesson. Replace them with your own, like a per-diem limit or a mileage rule, and the agent follows the new wording. The agent can only check what you give it, so have your written policy ready.

## How do I build the reimbursement form in Lovable and n8n?

Build the form in Lovable, build the workflow in n8n, publish it, and save the webhook's Production URL as a Lovable secret. The wiring matches the general contact-form build in [Connect a Lovable Form to n8n with a Webhook](https://learn.ynteractive.com/content/blog/lovable-form-n8n-webhook).

1. **Build the form.** In Lovable, click **Start with a prompt**, paste the form description and click **Build**. The prompt sends JSON with keys name, email, expense, amount.
2. **Webhook trigger.** In n8n, click **Create workflow**, add **On webhook call**, and set **Respond** to **Using 'Respond to Webhook' Node**.
3. **AI Agent.** Set **Source** to **Define below**, paste the prompt template below, then **+ Add Option**, **System Message**, and paste the policy.
4. **Model.** Add an **OpenAI Chat Model** with your API key and pick **gpt-5-mini**.
5. **Sheets tool.** Create a spreadsheet named **Expense Requests** with headers **Name**, **Email**, **Expense** and **Amount**, pick **Sheet1**, and click the ✦ button next to each column.
6. **Gmail tool.** Add it and sign in with Google.
7. **Respond and Publish.** Add **Respond to Webhook** after the agent, then click **Publish**.
8. **The secret.** Copy the URL from the Webhook node's **Production URL** tab and save it in Lovable (under **More**) as **N8N_WEBHOOK_URL**.

```text
Name: {{ $json.body.name }}
Email: {{ $json.body.email }}
Expense: {{ $json.body.expense }}
Amount: {{ $json.body.amount }}
```

If the form works in testing and then goes quiet, check the URL and the Publish step: [n8n Webhook Test URL vs Production URL](https://learn.ynteractive.com/content/blog/n8n-webhook-test-vs-production-url) covers the fixes.

## Try it free, step by step

**Build an Expense Reimbursement Form With AI Policy Checks**. Build an expense reimbursement form in Lovable for Maple Street Bookkeeping and connect it to n8n — the AI agent checks each request against the policy, saves it to Google Sheets and emails the… You do every step yourself in a practice copy of Lovable and n8n, it checks your work as you go, and “Do it for me” finishes any step you get stuck on. Free, and nothing touches your real accounts.

[Start the free lesson](https://learn.ynteractive.com/modules/lovable-n8n-finance)

[Or read the full step-by-step guide](https://learn.ynteractive.com/content/expense-reimbursement-form-ai-approval-lovable-n8n)

## What happens when an employee submits a request with no receipt?

The agent marks a no-receipt request **Needs receipt**, logs it, and emails the employee what to do next. In the lesson's test, an employee asks for $64.18 for printer toner and says the receipt is lost.

You click **Preview**, **Fill with test data** and **Submit Request**. $64.18 is under the $100 limit, so the request doesn't need a manager, but the missing receipt matches the first rule. The agent saves a row to Expense Requests, emails the status, and the form shows its confirmation.

Nobody had to write back "can you send the receipt?" The employee knows what's missing the moment they submit.

## Can AI approve expense reimbursements on its own?

No. The AI status is a first check, not the final approval: you or a manager still approve and pay the reimbursement, and **Needs manager OK** makes sure larger amounts reach a person.

Before you roll it out, put your real policy in the system message, send test requests of each kind (clean, no receipt, over the limit), and read every email the agent writes. Keep receipts where your accountant expects them and let them decide how reimbursements are treated in your books. This post gives no tax advice. The form has four text fields, so receipt uploads are a possible next step.

## How is this different from the AI expense categorizer?

The [AI Expense Categorizer](https://learn.ynteractive.com/content/n8n-ai-agent-categorize-business-expenses-google-sheets) is a chat with an n8n agent for the bookkeeper, not a form for employees. You paste a batch of expenses, and the agent sorts each into Office Supplies, Software & Subscriptions, Meals, Travel, Utilities or Needs Review, writes a one-sentence note, and saves them to an **Expense Log** sheet for review.

That build is covered in [Get Receipts into Google Sheets with AI](https://learn.ynteractive.com/content/blog/receipts-to-google-sheets-ai). More lessons are on the [finance page](https://learn.ynteractive.com/content/industry/finance).

## What does it cost to build an AI reimbursement form?

The Stepthrough lesson is free and runs on practice copies, so nothing is created, sent or billed. Building it for real needs a Lovable account (free and paid plans), n8n (n8n Cloud is paid after a free trial, or self-host), an OpenAI API key with credit (pay-as-you-go, billed separately from ChatGPT) and a Google account. Requests include names and emails, so follow your company's policy on sending employee data to AI services.

## Key takeaways

- A Lovable form plus an n8n AI agent can check each expense reimbursement request against a written policy, log it in Google Sheets and email the employee the status.
- The lesson's policy has three statuses: Needs receipt, Needs manager OK at $100 or more, and Approved under $100 with a receipt and a clear business purpose.
- In the lesson's test, a $64.18 printer toner request with a lost receipt is marked Needs receipt.
- The AI status is a first check; a person still approves and pays every reimbursement.

## Frequently asked questions

**Can AI approve expense reimbursements?**

AI can do a first check against a written policy and tell the employee what is missing. In this lesson a person still makes the final decision and pays the reimbursement.

**What does the AI reimbursement agent check?**

The agent checks three rules: Needs receipt if there is no receipt or none is mentioned, Needs manager OK if the amount is $100 or more, and Approved if it is under $100 with a receipt and a clear business purpose.

**Can I use my own reimbursement policy?**

Yes. The rules and the $100 limit are examples, so replace them in the system message and test a few requests of each kind.

**Can employees upload a receipt photo to the form?**

Not in this version. The form has four text fields, and the employee says in Expense details whether they have a receipt.

## Free lessons in this post

- [Build an Expense Reimbursement Form With AI Policy Checks](https://learn.ynteractive.com/content/expense-reimbursement-form-ai-approval-lovable-n8n): Build an expense reimbursement form in Lovable for Maple Street Bookkeeping and connect it to n8n — the AI agent checks each request against the policy, saves it to…
- [Build an AI Agent That Categorizes Business Expenses](https://learn.ynteractive.com/content/n8n-ai-agent-categorize-business-expenses-google-sheets): Build an AI agent for Maple Street Bookkeeping that sorts business expenses into categories, writes a short note for each and saves them to Google Sheets — chat…

## Related terms

Plain-English definitions, each with an example from a free lesson.

[Expense reimbursement](https://learn.ynteractive.com/content/glossary/expense-reimbursement) · [AI agent](https://learn.ynteractive.com/content/glossary/ai-agent) · [System prompt (system message)](https://learn.ynteractive.com/content/glossary/system-prompt) · [API](https://learn.ynteractive.com/content/glossary/api) · [API key](https://learn.ynteractive.com/content/glossary/api-key) · [Append row](https://learn.ynteractive.com/content/glossary/append-row) · [Approval workflow](https://learn.ynteractive.com/content/glossary/approval-workflow) · [Brand voice](https://learn.ynteractive.com/content/glossary/brand-voice)

[The full AI glossary](https://learn.ynteractive.com/content/glossary)

## Related prompts

- [Email subject lines prompt](https://learn.ynteractive.com/content/prompts/email-subject-lines-prompt): Get ten honest subject lines for a finished email, each with preview text and a character count, grouped by approach so you can…
- [Expense categorization prompt](https://learn.ynteractive.com/content/prompts/expense-categorization-prompt): Sort a batch of expenses into your own categories, with a short note each and a Needs Review bucket for anything unclear…
- [Expense report summary prompt](https://learn.ynteractive.com/content/prompts/expense-report-summary-prompt): Summarize a month of expense or reimbursement rows for the owner: totals by category and status, what's waiting, and flags to…
- [Policy summary for staff prompt](https://learn.ynteractive.com/content/prompts/policy-summary-for-staff-prompt): Turn a long internal policy into a plain staff summary: who it applies to, what to do, limits and deadlines, with unclear lines…

[All free prompt templates](https://learn.ynteractive.com/content/prompts)

## Visual guides

The same ideas as quick visual guides: swipe through the slides, or read each one as text.

- [5 Steps to an AI Agent That Categorizes Business Expenses](https://learn.ynteractive.com/content/visual/5-steps-ai-expense-categorizer): A visual guide: an n8n agent sorts expenses into a fixed list of categories, flags unclear ones as Needs Review and saves them to Google Sheets.
- [Mistake to Avoid: Letting AI Invent Expense Categories](https://learn.ynteractive.com/content/visual/mistake-letting-ai-invent-categories): A visual tip for bookkeepers: give an AI agent a fixed list of categories plus Needs Review, so it never makes up a category name.

[All visual guides](https://learn.ynteractive.com/content/visual)

## Keep reading

- [How to Stop ChatGPT from Making Things Up: 5 Guardrails](https://learn.ynteractive.com/content/blog/stop-chatgpt-making-things-up): Stop ChatGPT from making things up with five guardrails: a facts list, a Not stated rule, never-invent rules, a closed category list and a final check.
- [Get Receipts into Google Sheets with AI and n8n](https://learn.ynteractive.com/content/blog/receipts-to-google-sheets-ai): Receipts to Google Sheets without typing: build an n8n agent that reads a receipt photo, picks a category and adds a row. Plus an expense categorizer.
- [How to Sort Requests with AI: Writing Triage Rules](https://learn.ynteractive.com/content/blog/ai-triage-rules): How to sort requests with AI: write triage rules an agent can follow, with few labels, real examples, a default bucket and a person who checks.

[All blog posts](https://learn.ynteractive.com/content/blog) · [All free tutorials](https://learn.ynteractive.com/content)
