An access request form that keeps a record

Updated 2026-10-30

Access gets handed out in chat. "Can you add me to the finance tool?" Then months later nobody knows who has what, or why. I want every ask to carry a reason, a level and a manager's name, so the answer is simple and the record stays.

Who approves it?

The form collects the facts, and the manager approves outside it. A manager field and a tick box let IT check the approval. The form grants nothing and connects to no tool. It never asks for a login. IT creates the account and shares it in a safe way.

Why ask what data the tool touches?

Customer, finance and employee records need more care than a design tool. One multiple choice question shows IT which requests need a second look. The level question makes people choose the lowest access that does the job. Many people call this a system access form, and the idea is the same.

Can the person's AI fill it in?

Yes. It might ask: "Which tool do you need?" Then "View only, edit or admin?" Then "Why do you need it?" It shows the answers and sends them only after a yes. See agent-fillable forms.

Not the same job

A customer who asks to see their own personal data needs a data access request instead. Broken equipment is a work order request. More tools are in IT and operations forms.

Questions

How do I review who asked for admin?

Filter the CSV on `access_level` for Admin. Those rows deserve a second look, and the data question helps you decide how much care each one needs.

Can temporary access end by itself?

No. The form records an end date but grants and removes nothing. Sort the CSV by `needed_until` each month and remove expired access in the tool yourself.

How often should I review old requests?

Download the CSV every quarter and compare it with the real list of accounts in each tool. The gap shows access that nobody asked for or nobody removed.

Try the form

Live demo ยท nothing is saved

Request access to a tool

Tell us which tool you need and why. IT reads every request and replies to you directly.

What level of access? (required)

Leave it blank if the access is permanent.

What data will you work with?
This is for a shared team account
My manager has approved this request

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Request access to a tool",
  "description": "Tell us which tool you need and why. IT reads every request and replies to you directly.",
  "fields": [
    {
      "id": "employee_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "work_email",
      "label": "Your work email",
      "type": "email",
      "required": true
    },
    {
      "id": "job_title",
      "label": "Your job title",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "manager_name",
      "label": "Your manager",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "tool_name",
      "label": "Which tool or system do you need?",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "access_level",
      "label": "What level of access?",
      "type": "single_choice",
      "required": true,
      "options": [
        "View only",
        "Edit",
        "Admin",
        "Not sure"
      ]
    },
    {
      "id": "access_reason",
      "label": "Why do you need it?",
      "type": "long_text",
      "required": true,
      "max_length": 800
    },
    {
      "id": "needed_from",
      "label": "Needed from",
      "type": "date"
    },
    {
      "id": "needed_until",
      "label": "Needed until",
      "type": "date",
      "help": "Leave it blank if the access is permanent."
    },
    {
      "id": "data_touched",
      "label": "What data will you work with?",
      "type": "multi_choice",
      "options": [
        "Customer records",
        "Finance data",
        "Employee records",
        "Source code",
        "Marketing accounts",
        "None of these"
      ]
    },
    {
      "id": "shared_account",
      "label": "This is for a shared team account",
      "type": "checkbox"
    },
    {
      "id": "manager_approved",
      "label": "My manager has approved this request",
      "type": "checkbox"
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Request access to a tool","description":"Tell us which tool you need and why. IT reads every request and replies to you directly.","fields":[{"id":"employee_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"work_email","label":"Your work email","type":"email","required":true},{"id":"job_title","label":"Your job title","type":"short_text","max_length":100},{"id":"manager_name","label":"Your manager","type":"short_text","required":true,"max_length":150},{"id":"tool_name","label":"Which tool or system do you need?","type":"short_text","required":true,"max_length":150},{"id":"access_level","label":"What level of access?","type":"single_choice","required":true,"options":["View only","Edit","Admin","Not sure"]},{"id":"access_reason","label":"Why do you need it?","type":"long_text","required":true,"max_length":800},{"id":"needed_from","label":"Needed from","type":"date"},{"id":"needed_until","label":"Needed until","type":"date","help":"Leave it blank if the access is permanent."},{"id":"data_touched","label":"What data will you work with?","type":"multi_choice","options":["Customer records","Finance data","Employee records","Source code","Marketing accounts","None of these"]},{"id":"shared_account","label":"This is for a shared team account","type":"checkbox"},{"id":"manager_approved","label":"My manager has approved this request","type":"checkbox"}]}'

JSON definition

json
{
  "title": "Request access to a tool",
  "description": "Tell us which tool you need and why. IT reads every request and replies to you directly.",
  "fields": [
    {
      "id": "employee_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "work_email",
      "label": "Your work email",
      "type": "email",
      "required": true
    },
    {
      "id": "job_title",
      "label": "Your job title",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "manager_name",
      "label": "Your manager",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "tool_name",
      "label": "Which tool or system do you need?",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "access_level",
      "label": "What level of access?",
      "type": "single_choice",
      "required": true,
      "options": [
        "View only",
        "Edit",
        "Admin",
        "Not sure"
      ]
    },
    {
      "id": "access_reason",
      "label": "Why do you need it?",
      "type": "long_text",
      "required": true,
      "max_length": 800
    },
    {
      "id": "needed_from",
      "label": "Needed from",
      "type": "date"
    },
    {
      "id": "needed_until",
      "label": "Needed until",
      "type": "date",
      "help": "Leave it blank if the access is permanent."
    },
    {
      "id": "data_touched",
      "label": "What data will you work with?",
      "type": "multi_choice",
      "options": [
        "Customer records",
        "Finance data",
        "Employee records",
        "Source code",
        "Marketing accounts",
        "None of these"
      ]
    },
    {
      "id": "shared_account",
      "label": "This is for a shared team account",
      "type": "checkbox"
    },
    {
      "id": "manager_approved",
      "label": "My manager has approved this request",
      "type": "checkbox"
    }
  ]
}