ExpenseBot

How do I let my team post receipts in a Slack channel and have them become ExpenseBot expenses?

Teams already live in Slack, so a `#receipts` channel is the lowest-friction intake you can offer. This recipe watches that channel and replies with what actually happened to each file.

Teams already live in Slack, so a #receipts channel is the lowest-friction intake you can offer. This recipe watches that channel and replies with what actually happened to each file.

The workflow shape

  1. Trigger — your platform's "new file in channel" trigger on one dedicated channel. A general channel will pick up screenshots and memes; a dedicated one will not.
  2. Fetch the file content — Slack file links are authenticated URLs, not public ones. Use your platform's Slack "download file" step so ExpenseBot receives the actual bytes, keeping the filename with extension and the true MIME type.
  3. Upload Receipt — the signed receipt pipeline returns a submission ID.
  4. Delay, then Get Receipt Processing Result with that exact submission ID. The outcome is terminal: added, duplicate, skipped, errored, or unknown.
  5. Reply in thread — post a short status back on the original message so the person who dropped the receipt sees the result where they posted it. Threading the reply keeps the channel readable.

Write the reply for a human, not a log

added means the expense is in the sheet. duplicate means it was already captured — reassuring, not a failure. Anything else means a person needs to look, so link Review expenses rather than pasting a raw status string. Full branch: Action Needed routing.

The division of labour

ExpenseBot supplies structured expense data and Gmail receipt capture to Make workflows — extraction, duplicate detection, review, and the spreadsheet record. Make handles external triggers, routing, reminders, and notifications.

The boundary

The Slack connection belongs to your automation platform, not to ExpenseBot — ExpenseBot never reads your Slack. Authentication to ExpenseBot uses a revocable AI Assistant Token held in your platform's credential vault; revoke it to end access. Submitting a receipt can add a row after processing; there is no universal runtime confirmation prompt for this action. Use a dedicated channel, map Slack's stable file or message ID into the Source Event ID when available, test one file, and route every unclear result to Review Expenses before enabling the workflow.

Where to build it

Share:

Try ExpenseBot Free

AI extracts every receipt into a Google Sheet you own. Gmail scan, mileage, tax reports, profit-by-client. No credit card needed.

No credit card required · Setup in 30 seconds