TR Start free
HomeBlog › Guide

Web-to-Lead and Web-to-Case explained: from a website form to a CRM record

O Ohana360 Team • September 22, 2026 • 12 min read
Cover image showing the Web-to-Lead endpoint, the form fields and the lead record it creates in Ohana360

Automatic record creation from a web form takes three things in Ohana360: the secret endpoint issued for your org, a plain HTML form embedded on your site, and an assignment rule that hands the arriving record to somebody. The form POSTs to /api/w2l/ for a lead and to /api/w2c/ for a case, and the record is in the list within seconds.

Ohana360 is a business cloud that keeps sales, service, finance and HR records in one database. The web form connection is not a separate add-on; it is a section inside the settings card of the Sales360 and Service360 apps.

The checklist below lists what you need in hand before you wire anything up. Once you clear it, we look at field names, assignment rules and the limits in turn.

Which checklist should you clear before wiring up the form?

There are seven preparation items and six of them take under five minutes. Teams that skip the list and paste the code straight away usually stall on items three and five.

#CheckWhere it happens
1Are you signed in with the admin roleThe key is shown to admins only
2Have you copied the endpoint addressSales360 home, App Settings, Web-to-Lead
3Are the form field names exactname, company, email, phone, message, consent
4Is the hidden website field in the formThe bot trap, kept as an invisible input
5Have you written an assignment ruleApp Settings, Queues and Assignment
6Are the admin email addresses currentNotices only reach active admin accounts
7Have you sent a test submissionThe Send Test Lead button in the Web-to-Lead section

Item seven needs no extra page: the button in the Web-to-Lead section posts a sample record straight to the endpoint and it shows up in the list. The support form side has no such button, so you test that one with the real form on your site.

What happens on the server when the form is submitted?

A submission travels through five stops, and those stops are identical for both endpoints. Behind every submission that reaches the fifth stop there is a record, a notification and an email.

From a website form to a record: five stops What the server does, in order, once a visitor presses Send. POST /api/w2l/KEY 1 The visitor submits The browser POSTs the form fields to the endpoint issued for your org. form 2 The endpoint checks the key A key matching no org is rejected and no record is ever created. key 3 The record is created A lead gets source Web, status New; a case gets origin Web, priority Medium. New 4 A rule picks the owner The first matching active rule writes the record to a user or a queue. owner 5 Notifications go out Email to admins, a bell notice, a phone push and a webhook event. 4 channels Call the very same key on /api/w2c/ and a Case is opened instead of a Lead; nothing but the address changes.

Fields are trimmed before the record is written: name at 120, company at 160, email at 190, phone at 40 and message at 500 characters. On a case, subject is capped at 200 and message at 1000. If you send a JSON body, the ceiling is 16 KB.

Validation ends with three rules. On a lead the name must be at least two characters, at least one of email or phone must be filled, and an email that is present must be well formed. On a case the only required field is subject, and it wants at least three characters.

Where does the endpoint come from and why keep the key secret?

The endpoint address sits in the Web-to-Lead tab of the App Settings card on the Sales360 home page, and it is generated once per org. The address starts with https://ohana360.com/api/w2l/ and ends with a 48 character random string.

You can check whether the setup exists from the System Overview page under Setup: the Web-to-Lead / Web-to-Case row in the External Systems and Connections card reads Active once a key has been generated, and Not set up before that.

How do you connect the HTML form on your site?

It is an ordinary HTML form; the only requirement is that the field names are spelled exactly right. The Ohana360 settings screen hands you the code below and copies it with a Copy Code button.

<form id="ohana-lead-form">
  <input name="name" placeholder="Full name" required>
  <input name="company" placeholder="Company">
  <input name="email" type="email" placeholder="Email">
  <input name="phone" placeholder="Phone">
  <textarea name="message" placeholder="Your message"></textarea>
  <label><input type="checkbox" name="consent" value="1"> I agree to receive commercial messages.</label>
  <input name="website" style="display:none" tabindex="-1" autocomplete="off">
  <button type="submit">Send</button>
</form>

On submit the form data is posted to the endpoint as URLSearchParams and the message field of the returned JSON is shown to the visitor. The server accepts a form encoded body and a JSON body alike, so you can pick either when you write your own script.

Diagram mapping website form fields to a new Ohana360 lead record with owner and status

The hidden website field is invisible to a visitor, but bots that fill forms automatically fill it too. When that field arrives non-empty, the server answers as if everything went well and creates nothing at all. Do not delete it from the form: the trap stops working the moment you do.

The support form follows the same shape with a shorter field list: subject, name, email, message and, again, website. Mark subject as required, since it is the only field the server insists on.

What is the difference between Web-to-Lead and Web-to-Case?

The difference is the address you POST to, which decides the type of record. The same key works on both; /w2l/ opens a Lead and /w2c/ opens a Case.

Web-to-Lead and Web-to-Case share one key, create different records Web-to-Lead (/api/w2l/) Web-to-Case (/api/w2c/) Creates a Lead record Required: name plus email or phone Source Web, status New The consent box writes an IYS approval The visitor gets a short thank you Creates a Case record Required: subject, at least three characters Origin Web, priority Medium, status New Case number is eight digits, from 1001 The visitor is shown the case number Fields: name, company, email, phone, message Fields: subject, name, email, message Both endpoints use the same hidden honeypot field and the same twenty posts per fifteen minutes per IP ceiling.
TopicWeb-to-LeadWeb-to-Case
Record createdLeadCase
Required fieldsName, plus email or phoneSubject, at least three characters
Fixed valuesSource: Web, Status: NewOrigin: Web, Priority: Medium, Status: New
Reply to the visitorA short thank you messageThank you message plus the case number
Admin emailWeb-to-Lead Admin Notification templateWeb-to-Case Admin Notification template

The case number is padded to eight digits and comes from the counter of the org, so the first case reads 00001001. It shows both in the reply the visitor sees and in the Case Number field of the record, which means a customer calling in can read it out.

Source and status values come from picklists. Lead statuses are New, Working - Contacted, Qualified, Converted and Lost; case statuses are New, Working, Waiting on Customer, Escalated, Resolved and Closed. A record arriving from a form always starts at the first value. If you already run complaint tracking, these cases land right inside that routine.

Who gets the record that arrives from the form?

The owner is decided by assignment rules, and with no rule the record is created without an owner. Lead rules live in the Queues and Assignment section of the App Settings card on the Sales360 home page; case rules sit in the same card in Service360.

A practical setup looks like this: one rule sending leads with a company name to the corporate sales user, another sending leads without one to a queue. Those two guarantee that nothing from the form stays ownerless. With pipeline stages defined, converted leads drop into a ready path that runs Prospecting, Qualification, Proposal, Negotiation, Closed Won and Closed Lost.

How are you told about a new record?

One submission announces itself through four separate channels, all fired after the record is written. The channels are independent, so the record exists even if an email fails.

ChannelWho receives itContents
EmailActive admin accounts of the orgName, company, email, phone and message lines
Bell noticeThe notification centre in the appA one line alert linked to the record
PushMobile app and desktop browserName and company, tapping opens the lead list
WebhookThe external address you registeredA record.created event with the full record

The email text is not fixed: the Email Templates page under Setup holds the Web-to-Lead Admin Notification and Web-to-Case Admin Notification templates. The lead template uses name, company, email, phone and message variables, the case template uses number, subject, name and email.

The notification centre keeps the newest fifty entries and drops older ones. If you run record triggered flows, a record from the form triggers them too, and the flow log shows Web form in its source column. That is how automated follow-up reminders also cover records that arrive from your website.

What guards against spam and repeat submissions?

Two guards run on the server and a third one is in your hands. The server side ones cannot be switched off; they run on every submission.

Repeat submissions, meaning the same person filling the form twice, are not blocked. Two records are created and both land in the list. For now the right move is to filter the lead list by email or phone and merge the records.

What does the consent box do?

When the consent box on the form is ticked, a commercial messaging permission is written to the record together with its evidence. The evidence has three parts: a timestamp, the IP address of the visitor and the source.

Remove the box from the form and nothing breaks, the incoming leads simply carry no evidence of consent. Adding it while you build your sales tracking routine is far easier than collecting permissions afterwards.

Not included: what the web form does not do

Knowing the limits up front beats hitting an unexpected wall in week three. The items below are known boundaries and none of them can be switched on in settings.

These limits share one reason: the endpoint was built as a narrow door that does one job safely, not as an integration tool. If you need a richer flow, catching the submission on your own server and writing to the Ohana360 API is still open to you.

Which page should carry your first form?

The right candidate for a first form is the page that already brings you the most calls and emails. On most sites that is the contact block at the bottom of a service page or the quote box on a pricing page.

Do this: copy the endpoint from the App Settings card on the Sales360 home page, take the ready form with Copy Code, place it on one page, verify the endpoint with the Send Test Lead button, and write a single assignment rule that routes leads with a company name to corporate sales.

A week later ask one question: how many of the incoming records got a reply on the same day? A low answer points at ownership rather than at the form. Teams running a customer portal can apply the same measure on the case side.

Read next