Back to Templates

Access Control for AI Agents (RBAC) using Airtable and Telegram

Created by

Created by: Mario || octionic

Mario

Last update

Last update a month ago

Share


Purpose

This workflow allows granular control over the access to tools connected to AI Agents (including Multi-Agent setups) using Role Based Access Control.

Demo & Explanation

demo video

How it works

  • User permissions are managed in Airtable where every restricted AI tool is listed by name and connected via roles to users
  • Requests to the Main Agent can be sent through a Telegram message (can be replaced by Whatsapp, IMAP or similar)
  • On every request the Telegram username is used to query a list of all allowed tools which are linked in Airtable
  • A LangChain Code node is used to compare that list against the connected tools
  • Every tool which is not permitted to be used is being replaced by a tool, which has a status response, telling the Agent to return a message to the user, that he is not authorized to use the tool
  • Otherwise allowed tools are passed through to the Agent, as if they were connected directly to the Agent
  • The parameters can also be passed to a sub-agent called as a sub-workflow where permissions can be checked the same way
  • Every response is sent back to the same Telegram conversation

Setup

  • Clone the workflow and select the belonging credentials. You'll need an OpenAI and Airtable Account as well as a Telegram Bot (refer to the docs for the Telegram credentials).
  • Copy this Airtable Template into your workspace
  • Follow the instructions given in the yellow sticky notes
  • Activate the workflow

How to use

Try this example:

  • Create a new line in Airtable under “Users” containing your Telegram username and your full name
  • Set the roles “basic” and “info”
  • Consider temporarily disconnecting or resetting the chat memories so they do not remember previous confirmations
  • Start a new chat, asking about your permitted roles - you should get a list of those
  • Ask about the current weather in your city - you should be informed, that you do not have permission to access that information
  • Back in Airtable add the role “weather” to your user
  • Now ask the Agent the same question again - It should give you a proper answer this time

From here on you can add tools and create roles to your likings.

Disclaimer

Please note, that this workflow can only run on self-hosted n8n instances, since it requires the LangChain Code Node.