Public Forms
Public Forms are forms that anyone can access without logging in -- perfect for contact forms or event inquiry forms on your website. Customers don't need an Eventyflow account to fill them out.
When you share a form with customers, they open it through a link you provide. What they see depends on the access method you configured.
How customers access your form
There are three access methods:
- Public -- the customer clicks the link and the form opens immediately.
- Magic link -- the customer receives a personal link via email. Only that link works for them.
- Password -- the customer must enter a password before the form appears.
Requesting and opening a magic link
When you use the magic-link method, the customer first sees an Authentication Required screen:
- They enter their email address and click Send Magic Link.
- A Check Your Email confirmation tells them to open their inbox and click the link. If nothing arrives, they can use Try Again to request another one.
- After clicking the link, a short "Processing your access link..." screen appears, followed by "Authentication Successful!" -- then the form opens automatically.
If the link is wrong or has expired, the customer sees a Link Error with the message that the link is invalid or expired and that they should request a new one. If processing takes unusually long, the page suggests clicking the link in the email again.
Unlocking a password-protected form
When you use the password method, the customer sees a Password Protection screen before the form:
- They enter the password you sent them and click Continue.
- A wrong password shows the error "Incorrect password. Please try again."
- After several failed attempts, the form pauses access for a short while. A countdown tells the customer how many seconds until they can try again.
What happens after submission
After a customer submits the form, one of two things happens:
- A success message appears directly in the form.
- The customer is redirected to a page you specified (for example, your website or a thank-you page).
In your workspace, the submission appears in the Inbox. From there you can review the data and create an event from the submission.
Live availability from a connected system
Some forms check live data from a connected external system while the customer fills them out. This applies to date and room fields that are linked to an external availability source:
- Date fields -- the customer's date picker only allows dates the external system reports as available. Dates that are not available stay greyed out and cannot be picked. While the form is checking, a short loading state appears.
- Room fields -- the room list shows which rooms are available for the chosen date and time. While availability is loading, the customer sees a loading message; if a room is not available, it cannot be selected. If you enabled date alternatives, a banner suggests nearby dates the customer can switch to with one click.
The customer never sees the connection itself -- they only see up-to-date dates and rooms. If the external system cannot be reached, the field shows a short error message instead of stale data.
Uploading files while filling out a form
If your form has a file upload field, the customer can attach a file before submitting -- either by dragging it onto the upload area or by browsing for it. Once a file is attached, the customer can view or download it again right from the form to check they picked the right one. They can also remove it and pick a different file before sending.
Files are checked while they are uploaded:
- Size -- files above the limit are rejected with a message (the default limit is 25 MB).
- Type -- only allowed file types go through (by default PDF, Word, Excel, CSV, and common image formats such as JPG, PNG, and WebP). Other types are rejected with a message.
- Safety -- every uploaded file is scanned before it becomes available in your workspace. A file that fails the check is flagged and does not become usable.
Editing a submitted response
Some forms can be reopened so the customer can correct or update what they sent -- for example a customer hub they return to during planning. When they open the form again:
- The form loads with all their previous answers and files already filled in.
- They change what they need and submit again.
- A thank-you confirmation appears, just like the first time.
Each update is saved as a new version, so you always see the latest answers while older versions stay on record.
Embedded forms
You can embed forms on external websites. There are two methods:
- JavaScript widget (recommended) -- loads the form as a lightweight widget on your page. This is the preferred method because it adjusts automatically to the form height and communicates with the parent page.
- iframe -- embeds the form in a fixed-size iframe. Use this as a fallback if the widget method is not an option.
Copy the embed code from the form instance sharing settings and paste it on your website. Embedded forms only work on domains you've explicitly allowed in your workspace settings.
Send parent page values into hidden fields
When you embed a form with the JavaScript widget, the page that contains the widget can send text values into hidden Eventyflow fields. Use this when your website already knows a value that should be stored with the submission.
Before you start:
- Use the JavaScript widget embed method.
- Add the website domain under Settings > Forms > Allowed Embed Domains.
- In the form builder, add a text field or multiline text field.
- Set Field Visibility to Always Hidden.
- Turn on Allow host page to set this field.
- Copy the Host Field ID shown on the field.
- Decide on your website which value may be sent. Eventyflow only receives the value you send through the widget.
Keep the Eventyflow embed code unchanged. Add a separate script on your website or in your website tag manager:
<script>
(function() {
var eventyflowElementId = 'eventyflow-fi_your_form_instance_token';
var eventyflowFieldId = 'your_host_field_id';
function getValueFromYourWebsite() {
return window.yourValue || null;
}
function sendValueToEventyflow() {
if (!window.Eventyflow || !window.Eventyflow.setFieldValues) {
setTimeout(sendValueToEventyflow, 100);
return;
}
var value = getValueFromYourWebsite();
if (!value) return;
window.Eventyflow.setFieldValues(eventyflowElementId, {
[eventyflowFieldId]: String(value)
});
}
sendValueToEventyflow();
})();
</script>
Replace these values:
- Widget container -- the value from the Eventyflow embed code container.
- Host Field ID -- the copied identifier from the hidden field.
- Website value lookup -- your own website logic that returns the value to store.
What happens next:
- The field stays hidden for the person filling out the form.
- When the form is submitted, the value is stored as the answer for that hidden field.
- Values for fields that are not enabled with Allow host page to set this field are ignored by the embedded form.
- The widget does not send submitted field answers back to the parent page.