Webhooks¶
Send import summaries to any HTTP endpoint — Slack, Discord, or a generic JSON consumer.
"notifications": {
"enabled": true,
"webhook": {
"url": "https://hooks.slack.com/services/T.../B.../...",
"format": "slack"
}
}
| Format | Target | Payload shape |
|---|---|---|
slack | Slack Incoming Webhook | { "text": "✅ *Import Summary*..." } |
discord | Discord Webhook | { "content": "✅ **Import Summary**..." } |
plain | Any HTTP endpoint | { "event": "import_complete", "totalTransactions": 5, ... } |
Webhooks can run alongside the Telegram bot — both channels fire independently.
Slack¶
Create an Incoming Webhook in your Slack workspace:
- Slack → Apps → Incoming WebHooks → Add to Slack.
- Pick a channel → copy the webhook URL.
- Drop it into
config.json:
Discord¶
Create a webhook in your Discord channel:
- Channel → Edit Channel → Integrations → Webhooks → New Webhook.
- Copy the URL.
- Drop it into
config.json:
Generic (plain)¶
For ingestion by Loki, Grafana On-Call, n8n, Zapier, Make, your own service…
Payload schema:
{
"event": "import_complete",
"timestamp": "2026-05-27T14:23:14.000Z",
"totalTransactions": 47,
"totalDuplicates": 12,
"totalDurationMs": 38200,
"banks": [
{
"key": "discount",
"status": "ok",
"transactions": 18,
"durationMs": 12300,
"reconciled": true
}
],
"failures": []
}
Disable¶
Remove the webhook block or set notifications.enabled: false.