How to automate form data routing: everything before the routing
Most form routing problems are validation and spam problems. Getting the submission clean, deciding what "the right team" means, and why the acknowledgement matters more than the destination.
On this page
- What we'll cover
- Spam is the majority problem
- Validating what you will need later
- What "the right team" actually means
- Building it with CodeWords
- Routing on content, not on a dropdown
- The acknowledgement
- Designing the form to reduce the work
- Measuring the routing rather than trusting it
- Making it survive
- Limits worth knowing about
- What to build first
- Frequently asked questions
- Related reading
Routing a form submission to the right team sounds like a classification problem. In practice most of the difficulty is upstream: a third of submissions are spam, a proportion of the rest have an email address with a typo in it, and the free-text field contains everything from a sales enquiry to a support request to someone applying for a job.
Get the submission clean and the routing is nearly trivial. Skip that and you have automated the delivery of unusable data to four teams simultaneously, which is worse than the inbox it replaced.
What we'll cover
- Spam is the majority problem
- Validating what you will need later
- What "the right team" actually means
- Building it with CodeWords
- Routing on content, not on a dropdown
- The acknowledgement
- Designing the form to reduce the work
- Measuring the routing rather than trusting it
- Making it survive
- Limits worth knowing about
- What to build first
- Frequently asked questions
Spam is the majority problem
Any public form attracts automated submission, in volume, and the volume is not proportional to your traffic.
A honeypot field removes a lot of it — a hidden input that a human never fills and a bot usually does — at effectively no cost.
Timing is a strong signal. A form completed in under a second was not completed by a person.
Content patterns catch more: links in a name field, unrelated languages, the same message from many addresses.
Do not silently discard. Route suspected spam to a low-priority queue that somebody glances at, since a false positive is a lost customer.
Measure the rate. A sudden change usually means your form has been discovered by something new, and that is worth knowing before the team notices the noise.
Validating what you will need later
Verify the email address exists, not just that it looks valid, since a typo means your reply never arrives and the submission is wasted.
Normalise phone numbers to a standard format with a country, or the sales team cannot dial them.
Check the company domain against the email, which both enriches and identifies the personal-address submissions.
Detect the empty submission: a name, an address, and nothing meaningful in the message, which needs a different response from a real enquiry.
Preserve the raw submission exactly as received, alongside anything you derived, permanently.
Tell the person immediately if something is wrong, while they are still on the page, rather than discovering it after they have left.
What "the right team" actually means
Worth defining before building, because it is usually four different questions collapsed into one.
Which team owns the response — sales, support, partnerships, recruitment.
Which individual within it, since a team queue is slower than a named person for anything with a response expectation.
What priority, which for inbound enquiries is often more consequential than the destination.
What the system of record is — the CRM, the helpdesk, the applicant tracker — because these have different lifecycles and duplicating across them causes trouble.
Whether it is a duplicate of an existing conversation, which is common and is routinely missed.
Whether anybody owns the account already, which overrides every other rule and is the mistake that most annoys both the customer and the account owner.
Building it with CodeWords
CodeWords connects to more than 3,000 integrations, so the form provider, the CRM, the helpdesk and your channels can meet in one automation.
- Open CodeWords and start a new automation.
- Describe what should happen in plain language to Cody, the automation builder: the validation, the classification, the destinations, and the acknowledgement.
- Authorize the connections — the form or webhook source, the CRM, and the helpdesk.
- Describe the exceptions: suspected spam, an existing account, an ambiguous submission, a submission in another language.
- Run it against last month's submissions and check the classification against where they actually ended up.
You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.
Routing on content, not on a dropdown
People choose the wrong dropdown option, consistently, usually the first one or whichever sounds most likely to get a fast response.
The message text is more reliable than the field they selected, and the two disagreeing is itself a signal worth acting on.
Extract the intent, not just the topic: an evaluation, a problem with something they already have, a question about pricing, a partnership approach.
Detect urgency from the content — an outage, a deadline, a contract date — rather than from a priority field they chose.
Handle the multi-intent submission, which is common, by routing on the primary intent and noting the rest rather than splitting it.
Return a confidence score and send low-confidence submissions to a human triage queue rather than guessing.
The acknowledgement
The part that determines how this feels to the person who filled in the form, and the part most often left as a default.
Immediately, not on the next run of a scheduled job, since a delay reads as nothing having happened.
Say what happens next and when, specifically — who will reply and in what timeframe.
Confirm what they told you, briefly, which catches the case where they filled in the wrong thing.
Give an alternative for urgent cases, since somebody with a real emergency should not be waiting on a queue.
Do not promise a timeframe you will not meet. An unmet acknowledgement is worse than a vaguer one.
Make it from a monitored address. The classic failure is a no-reply acknowledgement to which the customer replies with the actual details.
Designing the form to reduce the work
Fewer fields produce more submissions and better data, since every extra field is both a drop-off and a field somebody fills in badly.
Ask for the free text rather than trying to structure everything, because the message is where the routable information actually is.
Drop the fields you do not use. Most forms collect two or three things nobody has ever looked at.
Validate in the browser for format, and on the server for everything that matters.
Do not require a phone number unless you will call, since it is the field people most often falsify.
Keep the form accessible, with real labels and sensible error messages, which is both an obligation and a measurable conversion difference.
Measuring the routing rather than trusting it
A routing automation is confident by construction, and nothing in it notices when it is wrong. The feedback loop has to be built deliberately.
Track reroutes. Every submission a human moves to a different destination is a labelled example of a mistake, and it is free.
Watch first response time by destination, since a queue that is slow is a routing problem too — the submission arrived somewhere nobody is watching.
Sample the spam queue weekly, because the cost of a false positive there is a lost customer and nothing else will surface it.
Compare intent against outcome. Submissions classified as sales enquiries that never become opportunities may be misclassified or may be a different audience than you think.
Report the triage queue size, which is the honest measure of how much the classification is actually doing.
Review the rules quarterly against the reroute data, since the mix of submissions changes as marketing changes and a rule set tuned a year ago is describing an older audience.
Making it survive
Make it idempotent on a submission id, since form webhooks retry.
Never lose a submission. Persist first, process second, so a downstream failure delays rather than discards.
Alert on zero submissions for a period, since a broken form looks exactly like a quiet week.
Handle the destination being down by queuing rather than failing the submission.
Report the outcome: submissions received, classified, routed by destination, and held for triage.
Limits worth knowing about
Classification is imperfect, particularly on short or vague messages, which is why a triage queue is necessary rather than optional.
Email verification is probabilistic, and some valid addresses will fail a strict check.
Personal data obligations apply from the moment of submission, including retention and the right to access.
Consent language matters if submissions feed marketing, and that is a different consent from the enquiry itself.
Form builders vary in what their webhooks include, and some omit the field metadata you need to interpret the values.
What to build first
The acknowledgement, with validation in front of it. Confirm receipt immediately, say who will respond and when, and catch the invalid email address while the person is still on the page. It is the highest-impact part of the whole flow for the person who filled in the form, and it is the part most likely to be a default nobody has read.
Two habits make the difference. Persist the raw submission before doing anything else, since every other failure becomes recoverable once that is true. And route on the message text rather than the dropdown, because people pick the wrong option consistently and the disagreement between what they chose and what they wrote is itself useful information.
Frequently asked questions
What is the biggest problem with public form routing?
Spam, usually a large share of submissions. A honeypot field and a submission-timing check remove most of it at effectively no cost, but route suspected spam to a reviewed queue rather than discarding it.
Should I route on the dropdown the user selected?
No. People pick the wrong option consistently, usually the first one or whichever seems likely to get a fast response. The message text is more reliable, and a disagreement between the two is itself a signal.
What should be validated at submission time?
That the email address actually exists, phone numbers normalised with a country, the company domain against the email, and whether the submission is effectively empty. Tell the person while they are still on the page.
What does "the right team" actually mean?
Four questions: which team owns the response, which individual, what priority, and which system of record. Plus two overrides — whether it duplicates an existing conversation and whether somebody already owns the account.
How important is the acknowledgement?
More important than the destination for how this feels to the sender. Send it immediately, say who will respond and when, confirm what they told you, and send it from a monitored address rather than a no-reply one.
What should happen to ambiguous submissions?
A human triage queue, with the confidence score attached. Guessing on a low-confidence classification produces submissions that arrive at the wrong team and then sit.
How many fields should a form have?
Fewer than it has. Every extra field is both a drop-off and a field somebody fills in badly, and most forms collect two or three things nobody has ever looked at.
How do I avoid losing submissions?
Persist the raw submission before processing anything. Once that is true, every downstream failure delays a submission rather than discarding it.
How do I know the routing is correct?
Track reroutes — every submission a human moves is a free labelled example of a mistake. Also watch first response time by destination, since a submission that arrived where nobody is watching is a routing failure too.
Why sample the spam queue?
Because a false positive there is a lost customer and nothing else will ever surface it. A weekly glance is enough.