Agility Agent Onboarding:
contracts that go through
the first time.
Contracts were reaching Zoho with the wrong fields on them. Some never went through at all. Customer service had to work every broken record by hand, and agents waited weeks longer than they should have to get appointed. One defect caused both. I designed the replacement form and architected the field logic behind it, so what an agent picks is what the CRM receives.
The wrong contract problem
Agility had two complaints that sounded like different problems. Customer service said the contract data was wrong. Agents said contracting took too long. Both were describing the same defect.
The old form let agents declare carriers independently of the markets and states they had already given, and nothing translated their answers into the values Zoho was expecting. So contracts arrived with fields that did not match what the agent actually sells, and some did not go through at all.
Customer service absorbed the first half of that. The form writes directly into Zoho on submit, so no analyst sits in the middle catching anything. They were the ones opening a submission, finding values that made no sense for that agent, and going back to ask.
Agents absorbed the second half, in time. An agent cannot sell until they are appointed, so every failed or wrong submission meant another round trip and more days before they could write business. The form was not just tedious. It was the reason getting contracted took as long as it did.
The fix was mapping, not policing.
An agent picks their markets and their states. The carrier grid rewrites itself to show only the carriers that exist at that intersection, and every selection maps to the value Zoho expects at the moment of submission. What the agent picks is what customer service opens, so the contract moves the first time instead of the third. I architected that logic with engineering before a single screen was drawn.
Listened to both complaints before touching the design
Customer service said the data was wrong. Agents said contracting was slow. I sat with the service team to see what a broken submission actually looks like on their screen and what they have to do about it, then traced each bad field back to the question on the old form that produced it. That is where the two complaints collapsed into one root cause: agents were picking carriers with nothing tying them to the markets and states they had already entered, and nothing mapped their answers to the values Zoho expects.
Architected the dependency chain and the field mapping
Markets and states are inputs. Carriers are output. I worked that logic through with engineering before drawing screens: which fields are conditional, what happens when a market is removed after carriers are already selected, and what each selection resolves to on submit. That last part is what fixed the CRM. An agent’s choice now lands in Zoho as the value the service team needs to see rather than something they have to interpret.
Mapped the contracting conversation onto the page
The section order (what do you sell, where are you licensed, who do you want to write with, how do you get paid) is the order recruiters already ask on a first call. Building on that spine is why a form with this much dependency logic still moves quickly. I gave each market a color and carried it as a badge onto every carrier, so an agent scanning thirty chips can tell in one pass which half of the grid is Medicare.
QA’d the combinations, then what Zoho received
A form whose output depends on two multi-selects has a combination space, not a screenshot. I built a test matrix across markets, states, and the agent versus agency split, checking that removing a market pulled its carriers back out, that the agency path surfaced the right fields and hid the ones it should not, and that required-field validation held on mobile keyboards and date pickers. Then I checked the record on the other end, because with a direct write the submission and the CRM entry are the same artifact. Designing it and testing it fell to the same person, which kept the fixes honest.
A carrier grid that cannot be wrong
Markets by states resolves to exactly the carriers available at that intersection. Nothing irrelevant to scroll past, and no way to request an appointment the agent is not eligible for, because the mismatch is never rendered. “Clear all carriers” sits inline for anyone who wants to restart that section.
Selections mapped to Zoho values
Every choice resolves to the value the CRM expects at submission. No re-keying, no interpretation, nothing for customer service to reconcile. Recruiter and campaign ride in the URL, so the record arrives already sourced.
Two paths, one form
Contracting as an agency reveals agency name and NPN and drops the personal commission-assignment question. Contracting as an individual does the reverse. Same page, no branch an agent has to navigate themselves.
Color-coded market taxonomy
Four markets, four colors, carried from the selection chip through to a badge on every carrier. The color does the work a legend would otherwise have to.
Type-ahead over 50 states
Multi-select with search and removable chips. Agents licensed in a dozen states get through the field in seconds instead of fighting a checkbox column.
Consent written to be read
The communication opt-in states plainly what an opt-in covers, what an opt-out does not stop, and how to leave. The terms checkbox says outright that it stands as an electronic signature. Compliance copy that survives being read carefully.






The form is live and taking real contracting requests, so it is linked rather than embedded. Have a look, but please don’t submit it. It runs on the same platform as MyAdmin360, and every submission writes directly into Agility’s Zoho CRM.
Two complaints, one defect
Customer service reported a data quality problem. Agents reported a speed problem. Taken at face value those are two projects. Traced back to the field that caused them, they were one fix. Ask the second group before you scope the first.
A form has a second user, and it is not the one filling it out
The agent spends four minutes here. The customer service team lives in what the agent leaves behind. Designing for the person who opens the record and has to act on it changed more about this form than anything I learned from watching agents use it.
When the form writes straight to the CRM, validation is a design decision
With no analyst between submit and the database, there is no downstream place to enforce correctness. Data quality stops being an ops problem and becomes a question about what the interface allows, which puts it on the designer.
Designing it and QA’ing it is a real advantage
Writing the test matrix myself surfaced states I would never have drawn: the half-filled selection, the market removed after its carriers were chosen. Those are exactly the cases that produce bad records, and they only show up when someone goes looking for them on purpose.
Have a complex problem
that needs untangling?
I’m available for new roles and the right freelance projects.