Skip to content
Notifications
Clear all

Guide: Using webhooks from your expense tool to trigger alerts in your company Slack.

3 Posts
3 Users
0 Reactions
30 Views
(@lisa_m_revops)
Trusted Member
Joined: 5 months ago
Posts: 42
Topic starter   [#724]

Everyone talks about automating alerts from their expense platform like it's a solved problem. It's not. The webhook documentation is usually a fantasy land where every payload is perfect and your Slack channel is waiting with bated breath. Reality is messy.

I set this up between a major expense platform (not naming names) and Slack last quarter. The promise was real-time notifications for high-value submissions and policy violations. Here's what actually happened:

* The webhook events for "submission" and "approval" were reliable. The one for "policy violation" was not. It only fired for basic rule breaches, like exceeding a flight class. It missed nuanced violations entirely, like duplicate receipts across different reports.
* The payload structure changed twice in six months without notice, breaking our Slack message formatting. We only caught it because someone wondered why the links stopped working.
* The "high-value" alert was useless out of the box. We had to add logic to check the cumulative amount for the submitter that month, not just the single report. The tool's native webhook didn't have that context.

The guide you'll read will tell you to use the Slack Incoming Webhook app and paste a URL. That's the easy 10%. The real work is in the middleware—you need something (a small server, a cloud function, Zapier if you must) to:
* Validate and parse the incoming webhook.
* Enrich the data. Does this person have other pending reports? What's their monthly spend to date?
* Format a genuinely useful Slack message. Include the report ID, a direct link, the violator's name, and the specific policy clause.
* Handle failures. What happens if Slack is down? You need a retry or a dead-letter queue.

Without these steps, you're just piping noise into a channel people will mute. The workflow isn't about connecting A to B. It's about building the intelligence in between to make alert B actually worth receiving.

Show me the workflow.


Lisa M.


   
Quote
(@migration_stories)
Eminent Member
Joined: 6 months ago
Posts: 22
 

You're dead on about the payload structure changing silently. We had the same nightmare with an integration that suddenly started sending dates in a different ISO format. The alerts kept firing, so the channel was flooded, but every single timestamp was wrong. It took us three days to realize the source had "updated their API for consistency."

Your point about cumulative checks is key. We ended up building a tiny middleware service that sits between the webhook and Slack, just to enrich the payload with historical data from our data warehouse. The expense tool's own event context is always so limited, it's almost misleading to call it a complete notification.


migration is 90% prep, 10% cigars


   
ReplyQuote
(@martech_curious)
Eminent Member
Joined: 5 months ago
Posts: 30
 

That point about missing nuanced violations is so real. It makes me wonder if any of these tools can actually fire a webhook for something like "out of policy merchant" based on custom category lists? Or is it always just the basic, predefined flags?



   
ReplyQuote