Skip to main content

Hosted forms

Guides

A hosted form is a web form that DataLug serves at its own link. Each response starts a run of the project the form is bound to, through a Webhook Trigger node, the same way a webhook from another system does.

Create a form​

Open Manage Account > Hosted Forms and press New form.

When your plan includes Form Studio and Form Studio is turned on for your workspace, New form opens the Form Studio New form page. Press Simple form beside it to create a form with the steps below.

  1. Enter a Title. Address (Optional) is the last part of the link: 3 to 64 lowercase letters, digits or single dashes. Leave it blank to make one from the title. An address cannot be api, assets, static, health, new or preview. It cannot be datalug, admin, account, billing, login, signin, secure, security, support or verify, alone or followed by a dash, such as billing-form. A title that starts with one of these words gets an address that starts with form-.
  2. Introduction (Optional) is shown under the title.
  3. Add the fields, the consent question and what happens after submit, described below.
  4. Under Workflow, choose the webhook. An owner or admin can create a webhook for the form and picks the Project each response runs. Anyone else picks a free form webhook that an owner or admin created earlier.
  5. Press Create form. The form is saved as a draft.

In the project, add a Webhook Trigger node and bind it to the form's webhook, named Form: and the form's title.

Draft with Milo​

Describe the form in a sentence, such as "an event sign-up with name, email and dietary needs", and press Draft with Milo. Milo fills in the title and the fields. Nothing is saved or published: review the draft, change what you need and press Create form or Save.

Each draft counts toward the account's AI usage, including a draft that fails. An account can make up to 30 drafts an hour. Draft with Milo is not available when the account's plan has no AI assistance, when AI assistance is switched off for hosted forms on the account, or when the account's monthly AI budget is used up.

Fields​

A form has 1 to 50 fields. Each field has:

SettingWhat it does
LabelThe question the visitor sees.
KeyThe field's name in the response, such as email. It follows the label until you change it: a letter first, then lowercase letters, digits and _, up to 40 characters. consent, submit, slug, utm_source, utm_medium and utm_campaign are reserved.
TypeShort text, Long text, Email, Phone, Number, Choice, Checkbox, Date or Web address.
RequiredThe form cannot be sent without it.
Placeholder (Optional)Example text inside an empty box.
Help text (Optional)A line under the field.
Choices, one per lineChoice fields only. 1 to 50 choices.
Lead fieldWhich Lead output column the field fills: Email, Phone, First name, Last name, Full name or Company. Each once.

Short text holds up to 500 characters and Long text up to 5,000. Forms have no file uploads.

Do not ask for passwords

A form response is stored with the run's data. A form cannot ask for passwords, codes or payment details: see Publish.

Text you write on a form cannot contain invisible characters or characters that change the direction of text.

Select Ask for consent to add a checkbox with your own text at the end of the form, such as permission to contact the visitor. With Consent required to submit, the form cannot be sent unticked. The answer and the text reach the run, and the Lead output's consent and consentText columns.

After submit​

Button text (Optional) changes the submit button. Under Then, choose:

  • Show a message: the visitor sees Message (Optional), or a default thank-you.
  • Go to a web address: the visitor is sent to an https address.

Spam protection​

Every form has a hidden field that people do not see. A response that fills it is answered as if it were sent, and nothing runs. Human check adds a check that the visitor is a person; it is on by default, and only owners and admins can turn it off.

Publish​

An owner or admin presses Publish. The form's webhook must be on and bound to a project.

When no human check key is configured for your platform, a form with Human check on cannot be published. The editor says so under Spam protection, and Publish stays off until the human check is turned off and the form is saved.

A form that asks for a password, a pass code, a one-time or verification code, a card number, CVV or expiry date, a social security or social insurance number, a bank account or routing number, a PIN, or a private key or recovery phrase is not published. The message reads "A hosted form cannot ask for a password, a code or payment details." and names the text to change, which the editor marks and moves to. The check covers the title, introduction, labels, help text, placeholders, choices, consent text and button text. A published form cannot be changed to ask for these either.

The Public link appears with a copy button. Share it, or link to it from your site. Unpublish takes the form offline and keeps it as a draft. Archive keeps it offline and out of the way. The editor confirms each with a short note. Delete removes the form; its webhook and its deliveries stay, and a new form can use the webhook.

A published form can be changed by owners and admins only.

Changes to the fields of a published form stay off the public page until you press Publish again. Until then the editor shows Unpublished changes beside the status, and visitors see and submit the version you last published.

What a visitor sees​

The page shows the title, the introduction, each field with its label and help text, the consent checkbox and the submit button. A missing or invalid answer is shown beside its field, with a summary at the top. After a valid submit, the visitor sees your message or goes to your web address.

Under the form, every page says "Do not enter passwords in this form." and "Made with DataLug by a customer.", with a Report abuse link that opens an email to DataLug support naming the form.

What a response does​

Each response becomes a delivery on the form's webhook and starts a run of its project. The same answers sent twice within 24 hours run once. Deliveries, retries and the dead letter list work as for any webhook; see Receive a webhook from any system.

Set the Webhook Trigger's Rows from each delivery to Lead for one row per response with the fields in the lead columns, or keep Raw payload for the answers as sent.

Columns a form delivers​

Map Fields and the other column pickers after the Webhook Trigger list these columns from the form itself. There is no sample to upload, and the list follows the form when you change its fields.

Rows from each deliveryColumns
Raw payloadformId, formSlug, submissionId, submittedAt, one fields.<key> per field, fields.consent and consentText when the form asks for consent, and utm.source, utm.medium, utm.campaign
Leadsource, sourceEventId, formId, submittedAt, receivedAt, email, phone, firstName, lastName, fullName, company, consent, consentText, utmSource, utmMedium, utmCampaign, extra, raw

In Raw payload, map a field by its path, such as fields.email. A Number field is a number and a Checkbox field is true or false; every other field is text.

Who can do what​

ActionWho
See formsAuditors, builders, admins and owners
Edit draft forms, draft with MiloBuilders, admins and owners
Create a form's webhook, publish, unpublish, archive, delete, change a published form, turn off the human checkAdmins and owners