FlowRunner
PricingContact
Theme
Start Free
Integration Guide August 11, 2026 8 min read

MongoDB + Slack: Daily Rollups Posted, Deletes Paused for a Human

Connect MongoDB and Slack so a scheduled rollup posts to your team automatically, and run it as an AI agent that reads the collection, reasons about risk, and pauses for a human before any bulk delete or collection drop.

MongoDB + Slack: Daily Rollups Posted, Deletes Paused for a Human
trigger A daily schedule fires the flow. MongoDB has no native event triggers, so the schedule drives the rollup.
action Agent runs Aggregate on the collection to compute the rollup, then Update Document writes the summary into a config document.
check Agent compares the new rollup against the prior period and checks whether any pending cleanup would exceed the delete threshold.
action Agent posts the rollup to #operations in Slack with Send Message to Channel.
human When a cleanup would touch more documents than the threshold, or reach Drop Collection, the agent posts the filter and a sample to Slack with Approve, Narrow Filter, and Cancel buttons and pauses.
action On approval via the On Block Action trigger, the agent runs Delete Documents and posts the confirmed count and approver back to the channel.

How do you connect MongoDB to Slack?

You connect MongoDB and Slack by scheduling a flow that runs Aggregate (and Update Document) against your collection, then calls Send Message to Channel in Slack to post the result. FlowRunner is a visual AI-agent orchestration platform where automations run autonomously and pause for human judgment on the steps that carry real consequence. The same connection that posts a scheduled rollup can run as an AI agent that reads the aggregation result, reasons about what changed, and pauses for a human before any Update Documents, Delete Documents, or Drop Collection that would touch more than a safe number of documents.

A dark pipeline diagram showing a schedule trigger flowing into a MongoDB aggregation stage, a check stage, and a Slack notification card

What’s the problem with keeping MongoDB and Slack in sync manually?

Someone on the ops or engineering team owns the daily numbers that live in MongoDB. Order totals, signup counts, usage rollups, whatever the application collection tracks. Today, getting those numbers in front of the team means opening a shell, running an aggregation pipeline by hand, and pasting the results into a Slack message or a spreadsheet. It works until that person is out sick, in back-to-back meetings, or simply forgets. The rollup either arrives late or doesn’t arrive at all, and the team makes decisions on stale numbers without realizing it.

The bigger risk sits on the write side. MongoDB will happily run an Update Documents or Delete Documents call against an entire collection if the filter is empty or wrong, and Drop Collection removes a collection and its indexes with no undo. When cleanup scripts get run manually, usually late in the day or under time pressure, a mistyped filter or a copy-pasted command from the wrong terminal tab can wipe far more than intended. There is no structured moment where someone double-checks the blast radius before it happens. The exception, the fat-fingered filter, the collection dropped a version too early, falls through the cracks precisely because there was no gate in the way.

How it works: the connection

MongoDB has no native event triggers in FlowRunner, so the connection starts on a schedule (or from a Slack trigger like On Channel Message, if a person kicks it off manually). From there, the agent has the full MongoDB action set available: Aggregate runs the pipeline with allowDiskUse: true for reporting-grade queries, Find Documents and Distinct Values pull supporting detail, and Update Document writes the computed summary back into a config document (plain field objects are auto-wrapped in $set, so {"status":"archived"} updates one field instead of replacing the record).

On the Slack side, the agent uses Send Message to Channel to post the rollup to a team channel, Update Message in Channel to edit a posted card as numbers change, and Find Member to resolve a name into a Slack user ID when a message needs to route to a specific person instead of a channel.

A simple connection looks like this: every morning, the flow runs Aggregate with a $match and $group pipeline to compute yesterday’s order totals per tenant, writes the summary into a config document with Update Document, and posts the result to #operations with Send Message to Channel. The team has current numbers before the standup instead of someone running a shell command first.

A more structured connection covers cleanup. When a flow needs to remove stale sessions or archived records, it calls Delete Documents with a filter. MongoDB requires a non-empty filter for Update Documents and Delete Documents by design, which already blocks the worst case (an empty filter touching every document). FlowRunner adds a second gate on top: any delete or update above a configured document count, or any Drop Collection, routes through Slack for a person to confirm before it runs.

Can an AI agent run it? (and why a human stays in the loop)

The scheduled connection handles the routine rollup well. The AI agent handles the judgment calls around it.

An AI Agent in FlowRunner is a workflow node that reads its instructions, evaluates the data in front of it, and picks the right tools from its toolbox. It does not run a fixed sequence of calls. For a MongoDB-to-Slack connection, the agent’s toolbox includes Aggregate, Find Documents, Update Document, Delete Documents, and Drop Collection from MongoDB, plus Send Message to Channel and Send Direct Message from Slack.

Consider a cleanup scenario. The agent runs a scheduled sweep for stale session documents older than 90 days. It calls Count Documents first to see how many match the filter before doing anything else. A sweep that matches 40 or 50 documents, in line with a normal week, runs automatically through Delete Documents and posts a one-line confirmation to #ops-log. But this week the count comes back at 12,400, more than 200 times the usual volume, because a bug in a related service stopped expiring sessions correctly.

The agent doesn’t have a hardcoded rule that says “pause above 500 documents.” It reasons about the combination: the count is wildly outside the normal range for this filter, and Delete Documents cannot be undone once it runs. That combination tells the agent this is not its call to make alone.

It invokes the human-in-loop flow as a callable tool. That flow sends a message to #eng-ops: “This Delete Documents on sessions matches 12,400 documents, about 240x last week’s cleanup. Here is the filter and a sample of five matching documents. Approve, narrow the filter, or cancel?” The message includes Approve, Narrow Filter, and Cancel buttons, powered by the On Block Action trigger.

A dark Slack message card from FlowRunner showing a delete confirmation with a document count, a filter, and three buttons

The workflow pauses. An engineer checks the sample, confirms the filter is correct, and clicks Approve. On Block Action fires, the agent runs Delete Documents, and it posts the confirmed count and the approver’s identity back to the channel. If the engineer had clicked Cancel instead, nothing would have run, and the underlying bug would surface as an incident rather than a silent mass deletion.

This is not a sync tool. The agent knows when to stop and ask.

FlowRunner vs n8n for the MongoDB and Slack connection

n8n is the tool most technical teams reach for first to wire a MongoDB node into a Slack node. It has a large library of nodes, native MongoDB and Slack support, and a visual canvas that developers are comfortable in. For a fixed pipeline where the same aggregation always runs and the same message always posts, n8n does the job.

The gap shows up around risk. A cleanup script that runs the same way every time, regardless of how many documents it’s about to touch, is exactly the kind of automation that turns a small bug into a large incident.

Featuren8nFlowRunner
AI agent that reads the aggregation result and reasons about itBolt-on (LangChain node)Native
Human-in-loop decision on risky deletes via Slack buttonsNo built-in patternNative, built-in tool
Agent decides when to escalate based on document count vs a fixed thresholdNoYes
Unlimited users on every pricing tierNo (per-node execution pricing)Yes
Bring Your Own AI provider key (BYOK)YesYes
Audit trail with approver identity and timestampManual setup requiredYes, automatic
Self-hosted deployment optionYesYes (Community Edition)

n8n handles the “run this pipeline, post this message” pattern reliably. FlowRunner adds the layer that decides whether this run looks like every other run or looks like something a person should see first.

Before and after

CategoryBeforeAfter
Daily rollupSomeone runs a pipeline in a shell and pastes results into a reportThe agent runs Aggregate and posts the rollup to Slack automatically on schedule
Empty-filter riskAn update or delete with an empty filter could touch every documentUpdate Documents and Delete Documents refuse to run without a filter
Blast-radius visibilityCleanup scripts run with no record of how many documents were affectedThe agent counts matches first and shows the filter and a sample before it runs
Approval trailNo record of who approved a bulk delete or whenEvery approval captured with approver identity and timestamp automatically
Data format frictionObjectId, Date, and Decimal128 values complicate every integration stepPlain JSON both ways; these types convert transparently for the agent

A split-panel dark UI comparison showing a manual shell command on the left and an automated Slack rollup card on the right

What you can build

Scheduled tenant rollups. A daily schedule trigger fires Aggregate with a per-tenant $match and $group pipeline, Update Document writes the summary into each tenant’s config document, and Send Message to Channel posts the totals to #operations before the team’s morning standup.

Guarded cleanup sweeps. A weekly schedule runs Count Documents against a stale-records filter. Under the configured threshold, the agent proceeds straight to Delete Documents and logs a summary to #ops-log. Above the threshold, it invokes the human-in-loop flow with the count, filter, and a sample, and waits for Approve, Narrow Filter, or Cancel via On Block Action.

Retrieval-backed support answers. On an Atlas cluster, the agent runs Vector Search against a pre-created vector index to find the nearest documents to an incoming question, and posts the grounded answer with Send Direct Message to the person who asked, instead of a generic response with no source.

Index change reviews. Before an agent runs Create Search Index or Update Search Index on a production collection, it posts the proposed index definition to #eng-ops and waits for a thumbs-up reaction, powered by On Reaction Added, since index rebuilds run asynchronously and can affect query performance while they build.

Weekly collection health digest. Every Monday, the agent runs List Collections and List Indexes across the database, compiles a Block Kit-formatted summary of collection sizes and index counts, and posts it to #database-ops via Send Message to Channel so the team has visibility without connecting to the cluster directly.

Common questions

Is it free to connect MongoDB and Slack on FlowRunner? FlowRunner offers a $100 credit on the Growth tier (no credit card required), which covers roughly 67 days of real workflow usage. After that, Growth is $45 per month with 12,000 executions included, and every tier includes unlimited users and unlimited workflows.

Do I need my own AI or OpenAI key to run the agent? Yes. FlowRunner uses a Bring Your Own Keys (BYOK) model, so you connect your own AI provider key (OpenAI, Anthropic, or others). You pay the AI provider directly and keep full control of your data and costs.

Can I self-host FlowRunner? Yes. FlowRunner offers a free Community Edition for self-hosted single-instance deployments and an Enterprise tier for multi-instance clustering with the full compliance suite.

What happens when the agent isn’t sure whether a delete is safe to run? The agent invokes a human-in-loop flow as a callable tool instead of guessing. It posts the filter, the matching document count, and a sample in Slack, and the workflow pauses until a person approves, narrows the filter, or cancels.

Does this connection need a native MongoDB trigger? No. MongoDB has no event triggers in FlowRunner, so the flow starts on a schedule (or from a Slack trigger like On Channel Message) and calls MongoDB’s actions from there. The trigger side of the connection lives in Slack or on a schedule; MongoDB supplies the data actions.

How is this different from n8n’s MongoDB and Slack nodes? n8n can chain a MongoDB node into a Slack node in a fixed sequence. FlowRunner adds an AI agent layer that reads the aggregation result, reasons about which documents are affected, and decides whether to post automatically or invoke a human-in-loop flow first. n8n does not have that reasoning layer built in.

Getting started

FlowRunner starts with a $100 credit on the Growth tier. No credit card required. That covers roughly 67 days of real usage on most MongoDB-to-Slack workflows.

Both connectors are available immediately after signup. See the MongoDB integration page for the full list of document, aggregation, collection, index, and vector search actions, and the Slack integration page for messaging, channel, and interactive button capabilities.

Start at flowrunner.ai to claim your credit, or book a 30-minute walkthrough at calendly.com/flowrunner/intro to see the human-in-loop delete gate in action before you connect production data.

Ready to automate this?

Start building your first workflow free. $100 in credits, no card required.