wittle labs

REFERENCE

Search, coverage & questions

Assistants pass the customer’s own words and a ZIP code. Wittle does the matching, so assistants never need to learn a taxonomy.

Matching a need to a trade

search_providers(need, zip, urgency?) scores the words in need against each trade’s and service’s keywords. The matching is deterministic (no AI model), so the same words always give the same answer. Examples: “AC not cooling” → heating & cooling; “no hot water” → plumbing; “breaker keeps tripping” → electrical.

Trades are data, not code: heating & cooling, plumbing, electrical and appliance repair today, with more added as rows. Participating businesses are limited during early access.

Service areas

Each business sets where it works: a list of ZIP codes, a radius from its base, or both. A business is returned only if the customer’s ZIP is in its area.

When nothing covers the request

outcomeMeaning
coveredOne or more businesses serve this need in this ZIP.
no_coverageWittle knows the trade, but no participating business serves this ZIP yet.
no_matchThe need doesn’t match a trade Wittle covers.

Without coverage, the result tells the assistant to keep helping the customer with its own search as it normally would. The one rule: don’t describe outside businesses as verified by, part of, or bookable through Wittle. If a participating business works just outside the customer’s area, the result names it (near_miss).

Every uncovered request is counted by trade and ZIP (no personal details), so we know where to invite businesses next.

Business questions (intake)

Many businesses ask a few questions before a visit: “When is the best time to contact you?”, “Are you an existing customer?”. Each business configures its own. get_availability returns them under intake; the assistant sends answers to prepare_booking in answers, keyed by question key.

Question typeSend
text, long_textA string in the customer’s words.
selectOne of the listed options (any capitalization).
multi_selectAn array of options; a single option as a string is accepted.
yes_notrue/false, or “yes”/“no”.
dateYYYY-MM-DD.
numberA number (a numeric string is accepted).
  • customer_must_answer questions must come from the customer; the assistant must ask and never guess. agent_may_infer questions may be filled from the conversation (e.g. heat vs cooling).
  • Some questions only apply to certain services or answers (show_if).
  • If a required answer is missing or doesn’t fit, prepare_booking replies with exactly what to ask (including the options) and prepares nothing.
  • Answers go to the business with the booking; they are never stored in usage statistics or logs.