The quick answer
Put <NLFORM> where the form starts and a tag such as <NLFIRSTNAME> or <NLEMAIL> wherever an input box belongs. Upload the HTML file to Templates > Marketing Templates in the File Cabinet, then create an Online Form template from it under Documents > Templates > Marketing Templates. Create a new online customer form with the Custom HTML Template type, pick your template, and add one field on Select Fields for every tag in the HTML. In this walkthrough, a tag with no matching field left a label with no box, and a field with no tag stopped the form from saving.
The screenshots show sample data. Person and company names are fictional. Use your own layout, fields and values when following the steps.
Before you start
In this example, Brightwater Irrigation wants its website's quote request page to look like the rest of its site, not like NetSuite's default form. Its designer wrote quote-request-layout.html. NetSuite still creates the lead, sets its status and lead source, and sends the emails behind that page.
Online customer forms need the CRM features turned on in Setup > Company > Enable Features, and Online Form templates and the auto-reply need Marketing Automation. The walkthrough uses the Administrator role in an account without OneWorld. In a OneWorld account, check the form's Default Subsidiary on Set Up Workflow; the OneWorld account we checked also started the form with a hidden Subsidiary row. Anything the page loads, such as images, style sheets and scripts, has to be reachable without a NetSuite login, because website visitors aren't logged in. For File Cabinet files that usually means Available Without Login, which makes them public, so only use it on files meant for the website.
01. Put the NetSuite tags in your HTML
The layout is an ordinary HTML file with its own <html>, <head> and <body>. Inside the body, <NLFORM> opens the NetSuite form, and a normal </form> closes it. The headings, labels and styles all belong to the designer.
Each label in the grid is followed by the tag NetSuite replaces with an input box. For example, line 25 is <div><label>Email *</label><NLEMAIL></div>. This file uses six tags: <NLFIRSTNAME>, <NLLASTNAME>, <NLCOMPANYNAME>, <NLEMAIL>, <NLPHONE> and <NLZIPCODE>. Use each tag once, and include a submit button. Here that's the Request my quote button on line 29.
02. Upload the file
Go to Documents > Files > File Cabinet. In Folders, open Templates, then Marketing Templates. It's empty in this account. Click Add File and choose quote-request-layout.html. The folder now lists the file with the Type HTML File.
03. Create an Online Form Template
Go to Documents > Templates > Marketing Templates and click New Template. On Select Type, choose Online Form. Campaign is for email newsletters.
Enter the Name Quote Request Layout, which is how the template shows up in lists, and the Description Quote request page for the website. On the Template subtab, enter the Title Request an Irrigation Quote. Under Create Template From, select File and choose quote-request-layout.html. Text Editor is the alternative if you'd rather paste the HTML in. Click Save.
The template opens with a Confirmation, and its Template subtab shows the title and the file.
04. Start a Custom HTML Template form
Go to Setup > Marketing > Online Customer Forms and click New Online Lead Form. On Select Type, click Custom HTML Template.
Enter the Title Irrigation Quote Request and choose the Template Quote Request Layout. The Custom HTML type swaps the default layout's Message and Detail Message for this required Template field. Leave Include Field Labels clear, because the HTML already has its labels. Checked, NetSuite prints its own label for each field next to the box, which won't necessarily match your wording. Enable Online stays checked.
On Select Fields, add First Name, Last Name, Company Name, Email and Phone Number, clicking Add after each. Check Mandatory on First Name, Last Name and Email to match the starred labels in the HTML. The Zip/Postal Code field is left off for now, even though the HTML has its tag. No field has Search checked in this example. Search is what NetSuite compares when it looks for an existing record, and some accounts won't save the form without it on First Name and Last Name, so check those if Save complains.
05. Set what a submission creates
Set Up Workflow works the same way it does on a default-template form. Set Set Lead Status to Lead - Unqualified and Set Lead Source to Spring Garden Show, and enter the Redirect to URL https://
Under Customer Notification, choose Send Auto-Reply Email Quote Request Received and enter the Subject We received your quote request. Under Sales Rep Notification, check Send Notification Email and enter the Cc estimates@brightwaterirrigation.example. On a Custom HTML Template form, Set Up Appearance only keeps Font. The HTML's own styles do the rest.
06. Open the public page
Click Save. The Online Customer Forms list shows Irrigation Quote Request with Enable Online Yes. Click View on it and open the External subtab: Number of Requests 0, Number of Submits 0, the Internal Form URL and the Publishable Form URL. The Publishable Form URL is the one to link from your website.
07. Fix a label with no box
Click the Publishable Form URL. The page is the designer's layout: the Request an irrigation quote heading, the intro line, the two-column grid and the green Request my quote button. First name, Last name, Company, Email and Phone each have a box.
Zip/postal code has a label and nothing to type into. The HTML has the <NLZIPCODE> tag, but the form has no Zip/Postal Code field, so in this account NetSuite draws nothing there. The label is the designer's own text, so it shows up either way. What an unmatched tag draws can vary by release, which is why you open the page and look.
Go back to the form in NetSuite, click Edit, and on Select Fields add Zip/Postal Code. Click Save.
Click View, open External, and click the Publishable Form URL again. In this account, Number of Requests now shows 1, counting the first visit. Zip/postal code has its box.
Check the result
- The public page uses the designer's heading, grid and button, not NetSuite's default layout.
- Every label in the grid, including Zip/postal code, has an input box.
- The form's Select Fields list has one field for each tag in the HTML: six fields, six tags.
- The External subtab counted the first visit: Number of Requests 1.
08. A field with no tag won't save
Now the other direction. Edit the form again and add Comments on Select Fields. The HTML has no <NLCOMMENTS> tag. Click Save.
In this account, NetSuite refuses the save with a Notice: You are missing the following required field(s): NLCOMMENTS. The missing piece is the tag in your HTML, not a field on the form.
Click Go Back. The form reopens as it was last saved, with Zip/Postal Code as the last field and no Comments. To accept comments, add a Comments label and <NLCOMMENTS> to the HTML file and upload it again. Open the Quote Request Layout template to confirm it reads the new version, then add the field.
The exact notice text and what an unmatched tag draws can vary by release. Open the public page after every change to the HTML or the field list, and submit a test entry to confirm the lead, the redirect and the emails. The recording stops before a test submission.
Common questions
Which tags do I put in the HTML for a NetSuite online form?
One tag per field on the form's Select Fields list, placed where its input box should appear. Standard fields have fixed tags, such as <NLFIRSTNAME>, <NLLASTNAME>, <NLCOMPANYNAME>, <NLEMAIL>, <NLPHONE>, <NLZIPCODE> and <NLCOMMENTS>. The file also needs <NLFORM> where the form starts, a closing </form> and a submit button.
What does Include Field Labels do?
Checked, NetSuite prints its own label next to each field's box. Clear it when your HTML already has labels, like the example does, or visitors see every label twice.
Why does a field on my custom HTML form show a label but no input box?
The label is plain text in your HTML, so it always shows. The box only appears when the matching field is on the form's Select Fields list. Add the field, such as Zip/Postal Code for <NLZIPCODE>, save, and reload the public page.
What does "You are missing the following required field(s): NLCOMMENTS" mean?
The form has a Comments field on Select Fields, but the HTML template has no <NLCOMMENTS> tag, so NetSuite won't save it. Add the tag where the comments box should go and upload the file again, or take Comments off the field list.
Can I style the form with my own CSS and images?
Yes. The page is your HTML, so its styles, fonts and images all come from the file. Anything it loads from elsewhere, including files in the File Cabinet, has to be reachable without a NetSuite login, because website visitors aren't logged in.
How do I change the HTML after the template exists?
Edit the file and upload the new version to Templates > Marketing Templates. Then open the Online Form Template to confirm it reads the new version, and reload the public page. Editing the copy on your computer changes nothing in NetSuite until you upload it.
Should I use a Custom HTML Template or the Default Form Template?
Use Custom HTML when the form has to match your website. The Default Form Template is quicker to set up, but you only control the color theme, font, columns and button position. Both types use the same Select Fields and Set Up Workflow settings behind the page.
Can I paste the HTML into the template instead of uploading a file?
Yes, the Online Form Template's Create Template From option has Text Editor as well as File. The same rules apply: <NLFORM>, one tag per field, a closing </form> and a submit button. A file is easier to keep in version control and hand back to a designer.