Travel approvals

Travel requests with cost estimates and budget approval

A travel request form that estimates the trip's cost, asks the budget holder to approve anything over £1,000 and hands the trip to the travel desk.

What your team sees

This walkthrough sets up a travel request form in FormWork for Acme Studio, a fictional company: staff describe the trip and its costs, the form works out an estimated total, anything over £1,000 waits for the budget holder’s approval, and the travel desk books what has been approved. It is a configuration pattern, not a case study, and the amounts are examples.

What goes wrong with travel requests by email

Requests arrive by email with dates but no costs, or costs but no budget code. Approval is a “fine by me” in a thread nobody can find later. The travel desk can’t tell which requests wait on a manager and which wait on them, and neither can the traveller. The setup below gives each request one record, one stage and one owner at a time.

Build the travel request form

The form, titled “Travel request”, has three pages.

  • Trip: Traveller, Department, Destination, a Travel dates group holding Depart and Return date fields, Purpose of trip (Client meeting, Conference, Team offsite or Training), Travel class (Economy or Premium economy) and a long text “Anything else we should know?”.
  • Costs: Flights, Hotel nights, Nightly rate and Estimated total, all Number fields.
  • Approval: Work email, Budget code and Budget holder’s email.

The Travel request form on its Trip page The Travel request form on its Trip page

Make every cost field required, so the total is never left empty. If the Work email must be a company address, add a validation rule with Must match a pattern (regular expression), such as (?i)@acmestudio\.example$. FormWork can’t yet compare two dates in a rule, so a Return date before the Depart date isn’t caught; the travel desk checks dates when it books.

Anyone with the link can submit. FormWork doesn’t sign requesters in, so share the link internally and treat Traveller and Work email as what the requester typed.

Calculate the estimated total

Estimated total uses a Default value of Calculation:

= Flights + Hotel nights * Nightly rate

Turn on Read only so requesters can’t type over it. The value is worked out on the server, and stays empty until every answer it uses has one. See calculated values and defaults and server-side logic.

Estimated total in the builder, read only and calculated Estimated total in the builder, read only and calculated

The fields hold numbers, not currencies. Ask requesters to give costs in pounds; FormWork won’t convert them.

In this example the requester types the Budget holder’s email, which means they choose their own approver. To avoid that, keep budget codes in a data table with a column for the holder’s address, make Budget code a Dropdown with options from it, and set Budget holder’s email to Look up from a dropdown with Read only on.

Set up the stages and owners

On the form’s Process page, set up these stages. Entries start in New when they are submitted.

StageKindOwner and due timeMoves on with
NewOpenThe Travel desk group, due within 1 daySend for approval, Ready to book (account admins only), or Reject with a required comment
Waiting for approvalWaiting, needs approvalKeep the current owner, due within 2 daysThe budget holder’s decision, or Back to travel desk with a required comment
ApprovedOpenThe Travel desk group, due within 2 daysMark as booked, or Cancel with a required comment
BookedClosedNone
RejectedClosedNone

The automation below moves requests out of New as soon as they arrive. Anything still there was submitted while the automation was off or its run failed, and the travel desk routes it by hand.

The travel desk works from My work and the stage filters on the entries page. Requests unassigned in the group show as “Unassigned in Travel desk” until someone takes one. Due times count calendar hours, not working days, so a request that arrives on Friday afternoon is overdue on Saturday. See owners and due dates.

Travel requests by stage, owner and due time Travel requests by stage, owner and due time

Add team fields for what the desk records: Booking reference, Actual cost and Desk notes. Requesters never see them.

Ask the budget holder to approve requests over £1,000

On Waiting for approval, turn on Needs approval and set:

  • Approvals needed: Any one.
  • Approvers: An email answer on the form, Budget holder’s email. Budget holders decide by link and don’t need a FormWork account.
  • When approved, move to Approved; When rejected, move to Rejected.
  • Links expire after: 5 days.
  • Choose what approvers can see: the trip details, travel dates, Estimated total and Budget code.

Then add an automation called “Route travel requests”:

  1. When: Form is submitted.
  2. Send email to the Work email: “We have your travel request”.
  3. If Estimated total is more than 1,000: Move to stage Waiting for approval, then Send email to the travel desk’s shared address: “A trip is waiting for approval”.
  4. Otherwise: Move to stage Approved.

The Route travel requests automation The Route travel requests automation

Entering a stage that needs approval sends the request to the budget holder by itself, so the automation doesn’t need a Request approval step. The extra email gives the travel desk a heads-up about trips they will book soon. To chase slow approvals, add an automation with In a stage too long on Waiting for approval for 2 days and a Remind approvers step, or start from the Remind and escalate approvals template. See approvals and steps.

Keep the traveller informed

  • Approval is decided, Rejected: Send email to the Work email with the budget holder’s Comment.
  • Stage changes to Booked: Send email with the Booking reference team field.
  • Respondent status can show neutral labels such as “Received”, “Waiting for budget approval”, “Approved, being booked”, “Booked” and “Not going ahead”.

The See progress button comes with the notification Email the person who filled it in. That notification also stops a requester approving their own trip: an approver with the same address as the Work email is skipped. If you turn it on, remove the automation’s Send email step, or travellers get two acknowledgements.

FormWork doesn’t email the travel desk when a request is assigned or overdue unless you add an automation, such as the Remind the owner when a stage is overdue template.

Who can see travel requests

Everyone in the account can open every request, whichever group owns it. Groups decide who owns and approves work, not who can see it. Travellers and budget holders don’t need accounts, so keep the account to the travel desk and the admins who run it. See team members and roles.

Test these cases before you publish

  • A request of exactly £1,000. “More than 1,000” sends it to Approved without approval; use Is at least if that’s wrong for your policy.
  • A day trip with 0 hotel nights.
  • A Budget holder’s email that matches the Work email, with and without the confirmation notification on.
  • A budget holder who rejects, and one who never answers until the link expires.
  • A Return date before the Depart date.
  • A request moved back to the travel desk, corrected and sent for approval again.
  • The automation turned off, so the request stays in New.

Check each run in automation runs.

Change it safely

Publish changes to questions, stages and the threshold as a new form version. Requests keep the questions they were answered with, while the process and automations follow the latest published version. The publish review asks where requests in a removed stage should go, and whether new owners and due times apply to requests already in a stage. The Form is submitted trigger runs once per request, so a new threshold doesn’t re-route requests already submitted.

What success looks like

Every request has a stage and an owner. Requests over £1,000 have an approval or rejection in their history. The travel desk books only from Approved and records the booking reference, and travellers can see progress without asking. Set your own turnaround targets; this page doesn’t claim any.

For spend requests with line items, see purchase approvals. Compare pricing, or talk through your travel policy.

More use cases

All use cases
Quotes and pricing

Accountancy quotes

A quote form that adapts its questions, prices bookkeeping, accounts, VAT and payroll as people answer, and hands each enquiry to an adviser.

Read the use case
Applications and approvals

Application review

Collect applications with conditional questions, move each one through review and approval stages, and keep the questions behind every response.

Read the use case
Onboarding

Client onboarding

Collect companies, contacts and documents, move each onboarding through your team's stages, and hand structured answers to another system.

Read the use case
Spend approvals

Purchase approvals

A purchase approval form with line items and a calculated total that routes each request by spend limit to budget holders, finance and directors.

Read the use case
New starters

Employee onboarding

An employee onboarding form for hiring managers, with HR, IT and facilities stages, an equipment list and reminders timed from the start date.

Read the use case
Supplier due diligence

Supplier onboarding

A supplier onboarding form for due diligence that collects company, insurance and bank details, scores risk, routes approval and hands off to finance.

Read the use case
Returns and claims

Returns and claims

A returns and warranty claim form that collects order details and photos, routes each claim through triage and lets customers check progress by link.

Read the use case
Scored assessments

Risk assessments

Build a scored risk assessment form that weights each answer, shows the project lead their risk level, routes high scores to review and emails a PDF.

Read the use case
Event bookings

Event registration

An event registration form that books several attendees at once, prices each place from a data table and takes payment through Stripe Checkout.

Read the use case
Sales leads

Lead qualification

A lead qualification form that scores each enquiry, shares sales-ready leads between reps in turn, chases first contact and hands leads to your CRM.

Read the use case