Travel authorization form for business trips

Updated 2026-10-30

A trip gets booked, and then someone asks who approved it. This travel authorization form moves that question to the front. I want purpose, dates, transport and estimated cost agreed before anything is paid for.

Use this when

  • Staff travel often enough that approvals clog the chat.
  • You want costs checked against a budget before booking.
  • Managers want the purpose of each trip written down.

Skip it when

You run a one-person business and travel on your own say. A note to yourself is enough. Skip it too if trips are approved automatically.

What is asked, and why

  • Who, where and why: the traveller, the destination and the purpose.
  • Dates and transport: leave and return dates, plus how they will travel.
  • Hotel and nights: whether a stay is needed.
  • Estimated cost and budget: so finance sees it early.
  • Billable or not: whether a client pays.
  • Agreed in principle: a tick that the manager already knows.

What a traveller's AI would ask

"Where are you going?" Then "What dates do you leave and return?" Then "What is the estimated cost?" It lists everything and waits for a yes before it sends. See agent-fillable forms.

Next steps

Log driving afterwards with a mileage reimbursement form. Sending a new starter to head office? Add the trip to their new hire checklist. More in forms for HR and recruiting and forms for IT and operations. It also works as a business travel request form.

Questions

Does the form book the travel?

No. It records the request and the details you need to approve it. Book flights and hotels through your usual route after you say yes.

How do I compare trip costs with a budget?

Download the CSV and sum the estimated_cost column by budget_code. Any trip above the budget stands out before you approve it.

Can I ask for visa or travel document details?

Better not. Keep identity details out of forms. Ask only whether the traveller has what they need, and handle documents in person or in your travel provider's system.

Try the form

Live demo ยท nothing is saved

Ask to travel for work

Tell us about the trip before anything is booked. We will confirm once it is approved.

How will you travel?
I need a hotel

A rough number is fine. Say the currency in the notes.

Can this cost be billed to a client?
My manager has agreed in principle

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": "Ask to travel for work",
  "description": "Tell us about the trip before anything is booked. We will confirm once it is approved.",
  "fields": [
    {
      "id": "traveller_name",
      "label": "Who is travelling?",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "trip_purpose",
      "label": "Purpose of the trip",
      "type": "long_text",
      "required": true,
      "max_length": 1500
    },
    {
      "id": "destination",
      "label": "Where are you going?",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "depart_date",
      "label": "Date you leave",
      "type": "date",
      "required": true
    },
    {
      "id": "return_date",
      "label": "Date you return",
      "type": "date",
      "required": true
    },
    {
      "id": "transport_modes",
      "label": "How will you travel?",
      "type": "multi_choice",
      "options": [
        "Flight",
        "Train",
        "Car",
        "Bus",
        "Other"
      ]
    },
    {
      "id": "hotel_needed",
      "label": "I need a hotel",
      "type": "checkbox"
    },
    {
      "id": "hotel_nights",
      "label": "Number of nights",
      "type": "number",
      "min": 0,
      "max": 60
    },
    {
      "id": "estimated_cost",
      "label": "Estimated total cost",
      "type": "number",
      "help": "A rough number is fine. Say the currency in the notes.",
      "min": 0
    },
    {
      "id": "budget_code",
      "label": "Project or budget it belongs to",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "billable_to_client",
      "label": "Can this cost be billed to a client?",
      "type": "single_choice",
      "options": [
        "Yes",
        "No",
        "Not sure"
      ]
    },
    {
      "id": "approver_name",
      "label": "Who should approve this?",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "manager_agreed",
      "label": "My manager has agreed in principle",
      "type": "checkbox"
    },
    {
      "id": "travel_notes",
      "label": "Anything else the approver should know?",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}

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":"Ask to travel for work","description":"Tell us about the trip before anything is booked. We will confirm once it is approved.","fields":[{"id":"traveller_name","label":"Who is travelling?","type":"short_text","required":true,"max_length":150},{"id":"trip_purpose","label":"Purpose of the trip","type":"long_text","required":true,"max_length":1500},{"id":"destination","label":"Where are you going?","type":"short_text","required":true,"max_length":200},{"id":"depart_date","label":"Date you leave","type":"date","required":true},{"id":"return_date","label":"Date you return","type":"date","required":true},{"id":"transport_modes","label":"How will you travel?","type":"multi_choice","options":["Flight","Train","Car","Bus","Other"]},{"id":"hotel_needed","label":"I need a hotel","type":"checkbox"},{"id":"hotel_nights","label":"Number of nights","type":"number","min":0,"max":60},{"id":"estimated_cost","label":"Estimated total cost","type":"number","help":"A rough number is fine. Say the currency in the notes.","min":0},{"id":"budget_code","label":"Project or budget it belongs to","type":"short_text","max_length":100},{"id":"billable_to_client","label":"Can this cost be billed to a client?","type":"single_choice","options":["Yes","No","Not sure"]},{"id":"approver_name","label":"Who should approve this?","type":"short_text","max_length":150},{"id":"manager_agreed","label":"My manager has agreed in principle","type":"checkbox"},{"id":"travel_notes","label":"Anything else the approver should know?","type":"long_text","max_length":1000}]}'

JSON definition

json
{
  "title": "Ask to travel for work",
  "description": "Tell us about the trip before anything is booked. We will confirm once it is approved.",
  "fields": [
    {
      "id": "traveller_name",
      "label": "Who is travelling?",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "trip_purpose",
      "label": "Purpose of the trip",
      "type": "long_text",
      "required": true,
      "max_length": 1500
    },
    {
      "id": "destination",
      "label": "Where are you going?",
      "type": "short_text",
      "required": true,
      "max_length": 200
    },
    {
      "id": "depart_date",
      "label": "Date you leave",
      "type": "date",
      "required": true
    },
    {
      "id": "return_date",
      "label": "Date you return",
      "type": "date",
      "required": true
    },
    {
      "id": "transport_modes",
      "label": "How will you travel?",
      "type": "multi_choice",
      "options": [
        "Flight",
        "Train",
        "Car",
        "Bus",
        "Other"
      ]
    },
    {
      "id": "hotel_needed",
      "label": "I need a hotel",
      "type": "checkbox"
    },
    {
      "id": "hotel_nights",
      "label": "Number of nights",
      "type": "number",
      "min": 0,
      "max": 60
    },
    {
      "id": "estimated_cost",
      "label": "Estimated total cost",
      "type": "number",
      "help": "A rough number is fine. Say the currency in the notes.",
      "min": 0
    },
    {
      "id": "budget_code",
      "label": "Project or budget it belongs to",
      "type": "short_text",
      "max_length": 100
    },
    {
      "id": "billable_to_client",
      "label": "Can this cost be billed to a client?",
      "type": "single_choice",
      "options": [
        "Yes",
        "No",
        "Not sure"
      ]
    },
    {
      "id": "approver_name",
      "label": "Who should approve this?",
      "type": "short_text",
      "max_length": 150
    },
    {
      "id": "manager_agreed",
      "label": "My manager has agreed in principle",
      "type": "checkbox"
    },
    {
      "id": "travel_notes",
      "label": "Anything else the approver should know?",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}