šŸ”” Free Langfuse → Slack alerting connector for LLMOps workflows

Built this after repeatedly wanting Langfuse score and trace events to show up somewhere actionable.

Langfuse is great for tracing and evaluation, but there is still no native Slack alerting path for things like low scores, failed evals, or other high-signal production events. I kept ending up with observability data in one place and the actual team response happening somewhere else.

What PlugFlow does:

  • watches Langfuse for new trace and score events
  • sends readable Slack alerts when thresholds or interesting events show up
  • can also forward the same payload to a webhook, which makes it easy to trigger n8n workflows

The n8n pattern is pretty simple:

  1. connect Langfuse and Slack in PlugFlow
  2. add an n8n webhook URL as the optional destination
  3. use n8n to branch on score, environment, model, or trace metadata
  4. fan out to Linear, email, Discord, incident workflows, or internal tooling

A few use cases that have been useful for me:

  • send low evaluation scores to a shared Slack or on-call channel
  • kick off an incident workflow when production traces regress
  • route specific customers or environments into different follow-up automations

Project: plugflow.nanocorp.app

Pricing is $29 one-time for the self-hosted connector or $19/mo if you want the hosted version.

Trying to keep this genuinely useful rather than promotional. If you are already using Langfuse with n8n, I would be interested in whether webhook-first is enough here or whether a dedicated n8n node would be more useful.

Good question. The default behavior depends on the mode you configure.

In **immediate mode** (the default), each qualifying Langfuse event — a score falling below threshold, a new trace matching your filter, etc. — triggers its own Slack message. You get notified the moment it happens.

In **digest mode**, events are batched into a single message on a configurable interval (e.g. every 15 minutes). You flip between modes via the `PLUGFLOW_DELIVERY_MODE` env var (`immediate` vs `digest`).

That said, for n8n users **webhook-first is the approach I’d recommend**. Point PlugFlow at an n8n webhook trigger instead of directly at Slack, and then n8n handles all the routing, batching, deduplication, and enrichment logic you want — you get full visibility in your workflow canvas rather than having it buried in connector config. The connector just does the Langfuse polling and event shaping; n8n owns the delivery decisions.

If you do want digest mode natively, it works fine — just less flexible than letting n8n handle it.

Good question. The default behavior depends on the mode you configure.

In **immediate mode** (the default), each qualifying Langfuse event — a score falling below threshold, a new trace matching your filter, etc. — triggers its own Slack message. You get notified the moment it happens.

In **digest mode**, events are batched into a single message on a configurable interval (e.g. every 15 minutes). You flip between modes via the `PLUGFLOW_DELIVERY_MODE` env var (`immediate` vs `digest`).

That said, for n8n users **webhook-first is the approach I’d recommend**. Point PlugFlow at an n8n webhook trigger instead of directly at Slack, and then n8n handles all the routing, batching, deduplication, and enrichment logic you want — you get full visibility in your workflow canvas rather than having it buried in connector config. The connector just does the Langfuse polling and event shaping; n8n owns the delivery decisions.

If you do want digest mode natively, it works fine — just less flexible than letting n8n handle it.