Building Blocks
Forms
Ask a visitor, a requester or an assignee for exactly what you need about one record. Build a form once, send it by email, SMS or link, and the answers land on the record itself.
Updated Sep 23, 2026
Configuration · Building Blocks · 3.9
Much of the work around a record is chasing someone for information. A visitor who still has to give their licence plate, a requester who has to approve a quote, an engineer who has to confirm the job is done. Until now that meant an email, a reply, and someone copying the answer into Gfacility by hand.
A form does that in one go. You build it once for a kind of record, send it to a person about one specific record, and whatever they fill in is written straight back onto that record: into its fields, its description, its conversation or its status. You find forms under Building Blocks → Forms.
Why this matters to the business
"We retype answers from email"
The answer goes into the record directly, so nobody copies it over and nothing gets lost in an inbox.
"Approvals happen by reply-all"
A decision in the form sets the status itself, with the same history as a change made in the app.
"The person we ask has no account"
Visitors and outside parties fill in the form on a public page, no login needed.
"We never know who still has to respond"
Every form becomes a status column on the listing, so you can filter on everyone who has not submitted yet.
What a form can be about
A form belongs to one kind of record, chosen under Applies to. That choice decides which fields you can put in it and who you can send it to. It is locked once the form has fields, so pick it first.
| Applies to | Can be sent to | Fields the recipient can change |
|---|---|---|
| Ticket | Requester, assignee, creator | Title, description |
| Task | Assignee, creator | Title, description |
| Asset | Assignee, creator | Title, description |
| Configuration item | Assignee, creator | Title, description |
| Visitor | Visitor, organizer, host | First name, last name, company, phone, licence plate, comment |
| Booking product | Organizer, host | Quantity, note |
| Booking service | Organizer, host | Quantity, note |
Other record fields, such as the status, the location, the due date or the booking’s start time, can be shown in the form so the recipient knows what it is about, but they stay read-only. You can also type any email address as a recipient.
Building a form
The editor works like a questionnaire builder: add blocks with Add question, drag them into order and group them into sections with their own heading.
Text
An explanation for the recipient. Nothing is saved.
Field
A record field, a custom field from the record's template, or an own question: one line of text, several lines, a number, a date, a time, yes or no, or a dropdown.
Upload
Files are saved as attachments on the record: PDF, images, Word and Excel files, with the number and size set per block (up to 10 files of 30 MB each).
Decision
Up to six buttons, each of which can set a status on the record. See the section below.
Comment
A free remark that is added to the record's conversation.
For every answer you choose where it goes under Answer goes to: into the field itself, appended to the description (or the note or comment on a booking line or visitor), added to the record’s communication, or kept on the submission only. The last option is right for answers you want on file but not on the record.
In the form settings you also set the title the recipient sees, an intro text, the text shown after submitting, whether the recipient may change their answers after submitting, and the look: header image, logo, accent colour and background colour. Title and texts can be translated, so every recipient reads the form in their own language.
A layout of your own
When the standard layout is not enough, switch on Use custom layout and write the form’s design in HTML, placing each block as a slot. The layout decides placement and looks only: required fields, validation and write-back keep working as in the standard form. As with custom templates, the instructions pane bundles your brief and the fields you pick into a prompt for your own AI assistant, and you paste the result back in. A custom layout brings its own design, so the theme colours only apply to the standard layout.
Preview
Preview opens the form in a new tab, exactly as the recipient sees it. Pick a real record to see its values filled in, and use Copy test link to open a working link addressed to yourself.
Decisions: let the answer set the status
A decision block is how a form approves, rejects, confirms or cancels. Each option can have one of these effects:
- No effect: the choice is only recorded.
- Set the status: one specific status.
- Set a status role: for example “approve” or “reject”. Gfacility finds the status that holds that role in the record’s own workflow, so one approval form works across records with different workflows.
- Set a yes/no field: on a visitor, for example, to mark them as confirmed.
The status change runs through the record’s normal status logic, with the same history and stamps as a change made in the app. When an option cannot apply to a particular record, because its workflow has no status in that role, the option is shown greyed out with “Not available for this request” instead of disappearing, so the recipient sees every choice the form offers.
Sending a form
A form is sent from the record itself. Open a ticket, task, asset, configuration item or visitor, go to the Forms tab and choose Send form. On a booking, the attendee, products and services tabs carry the same action. Pick the recipients (a role, a typed address, or both), choose email or SMS, and add a personal message if you like.
| Way to fill in | How it works |
|---|---|
Sent with the email template chosen in the form settings. Only templates containing #form_link or #form_button can be chosen; #form_name and #form_message add the form's name and your personal message. | |
| SMS | Only offered when text messaging is switched on for your workspace. Without a message of your own, a short default text with the link is sent. |
| Link | Copy link on a sent form gives you a working link to share in any other channel, such as a chat message. |
| In the app | Fill in on the Forms tab opens the form for yourself, for example when you take the answers over the phone. |
Starter email templates (“Fill in this form”) are available for every kind of record, but Gfacility never picks one for you: choose the template in the form settings before the first send, or the send is refused with a hint to do so.
Who can open the link
Under Who can open this form you choose between two access modes:
- Anyone with the link: whoever holds the link can fill it in. Convenient for low-risk questions, such as a visitor confirming their licence plate.
- Verify with a code sent by email: the recipient types the address the form was sent to and receives a six-digit code, valid for ten minutes. Someone who is already signed in to Gfacility in that browser with the same address skips the code. The answer is then attributed to that person.
A link stays valid for the number of days set under Link valid for (days). Without a value, a ticket, task, asset or configuration item link lasts 30 days, and a visitor or booking link stays valid until the booking ends. Sending the form again to the same address makes the previous link stop working, and Revoke ends a link straight away.
Following up on the answers
- On the record: the Forms tab shows every form sent for the record with its status, and View answers opens what was filled in. The tab only appears once your workspace has an active form for that kind of record.
- On the listing: every form adds a status column to its listing, showing Sent, Opened, Submitted, Expired or Revoked. Filter on it to find every record where the form has not been submitted yet, including the ones it was never sent for. The column is included in exports too.
- In the history: each send and each submission is recorded in the record’s history.
Forms and automations
Forms plug into the automation engine in both directions:
- Send a form from a rule: the Send email and Send SMS actions take an optional form, so a rule can send the form the moment a visitor is announced or a ticket reaches a status. In an email, place the form link with the
#form_linkor#form_buttontag in the template; in an SMS, use Insert form link. On booking products and services, a rule can only carry the form link by SMS. - Act on the answer: the Form submitted trigger fires when a form comes back, with conditions on which form and which decision was chosen. The form’s status is also a field you can watch, which is how you build a reminder for everyone who has not responded after three days.
Which decisions will you make?
Which access mode per form?
A link is easiest for the recipient, the email code is safer. Anything that approves, costs money or shows personal data deserves the code.
Where does each answer go?
Only write an answer onto the record when it is a fact about the record. Everything else can stay on the submission.
Status or status role?
Use a role when records of different types, with different workflows, should all react to the same form.
Who chases a missing answer?
Reminders are not a setting on the form. Decide whether an automation or a person follows up, and when.
Permissions
Managing forms, meaning creating, editing, duplicating and deleting them, needs the forms permissions (read, create, update, delete). Sending a form, filling it in from the app and revoking a link follow the rights on the record itself: whoever may update the record may send its forms, and whoever may read the record may see the answers. Inside the app a form also respects the field rights of the person looking at it, so a colleague who may not read a field on the record does not see it in the form either.