CHATBOTS

Self-Serve Snowflake Access Bot with Approver Routing

A Slack bot that lets employees request scoped Snowflake grants in chat, routes each request to the right data owner for approval, applies the grant on approval.

CategoryChatbots
Enginesim
Difficultyintermediate
Triggerchat
Steps7
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerEmployee runs /data-access slash command in SlackSlack
  • ActionLook up data owner for requested objectPostgreSQLPostgres
  • ActionPost approve/deny request to owner in SlackSlack
  • LogicBranch on owner decision (approve vs deny)
  • ActionExecute scoped GRANT with expiry tag in SnowflakeSnowflakeSnowflake
  • ActionAppend grant to Postgres audit ledgerPostgreSQLPostgres
  • OutputDM requester with confirmation and expiry dateSlack

What it does

Turns ad-hoc "can I get read access to the revenue schema?" Slack pings into a governed, self-serve flow. An employee runs a slash command, picks a database/schema/role and a duration, and the bot routes the request to that object's data owner. On approval it executes the exact `GRANT` in Snowflake and writes an immutable record to a Postgres audit ledger.

When to use it

Use it when data access is requested constantly over DM and granted by hand, with no record of who has what or why. It gives least-privilege, time-boxed grants without a ticketing system, and keeps a defensible audit trail for SOC 2 / access reviews.

How it works

  1. 1An employee invokes the `/data-access` slash command in Slack and fills the modal (object, role, reason, duration).
  2. 2The bot looks up the data owner for the requested object from a Postgres ownership map.
  3. 3It posts an approve/deny message to the owner with the full request context.
  4. 4On approval, it runs the scoped `GRANT ... TO ROLE` against Snowflake with an expiry tag.
  5. 5It appends the granted request to a Postgres audit ledger.
  6. 6It DMs the requester confirming access and the auto-expiry date.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SlackChannels, DMs, threads, mentions.
  2. 2
    Connect SnowflakeWarehouses, queries, shares.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.