Search-level configuration (searchConfig)
Use searchConfig when one order or one search needs behavior that differs from your organization defaults: different outbound channels, stricter attempt caps, a custom SLA, pre-known contacts, manual-review routing, or search-specific webhook handling.
Where to put it
defaultSearchConfig is applied to each created search that does not have its own searchConfig.
Supported fields at a glance
For the detailed schema, including nested webhook target fields, see Search config.
Quick example
This order sets a 48-hour default SLA for searches that do not provide their own config, then makes the employment search email-only and gives it a high-priority HR contact.- The
EDUCATIONsearch inheritsdefaultSearchConfig. - The
EMPLOYMENTsearch uses its ownsearchConfigand does not inherit the default SLA. - To keep the default SLA on the employment search too, include
timing.searchSlaMinutesinside that search’ssearchConfig.
Common Patterns
Prefer Email First
preferredChannel changes attempt order. It does not disable other enabled channels.
Use Only Provided Contacts
skipResearch=true, contactHints are required. Each hint must include at least one of email, phone, or fax, or a thirdPartyVendor.
Seed a Known Third-Party Vendor
When you already know the employer or institution verifies through a third-party service, seed it directly as a contact hint instead of relying on research to discover it.thirdPartyVendormust be a canonical vendor code (orUNKNOWNwhen the contact is known to be a third party but the vendor cannot be named). The seeded contact is flaggedusesThirdParty=trueand routed via the third-party path rather than the normal channel pipeline.thirdPartyCodeis the optional employer/account code at the vendor. It maps to the contact method’sthirdPartyId. It requiresthirdPartyVendor. When omitted, the canonical vendor code is used as the routing identifier.- The
emailis kept as a direct fallback. By default the third-party route takes precedence and cancels remaining direct outbound; setescalation.disableThirdPartyEvent: trueto attempt the direct channels instead. - Third-party hints are deduplicated against researched contacts (and one another) by canonical vendor code and
thirdPartyCode.UNKNOWNvendors without a code are never deduplicated. - A hint may declare
thirdPartyVendorwith no direct destination. Such a hint still counts as a reachable seed forresearch.skipResearch=true.
Limit Outbound Attempts
maxAttemptsPerMethod limits attempts per channel type. maxTotalAttempts is a hard cap across channels for a contact.
Route a Search to Manual Review
ACTION_REQUIRED for review instead of automatically completing it.
Ban a Third-Party Vendor
thirdPartyBan takes precedence over third-party deferral. A banned vendor does not receive a delayed third-party webhook.
See Third-party ban for the client-facing guide, supported vendor-code list, and troubleshooting examples.
Ban Multiple Third-Party Vendors
" talx_work_number ", "TALX_WORK_NUMBER", and duplicate entries resolve to one canonical TALX_WORK_NUMBER value. Unknown codes and UNKNOWN are rejected.
Ban Third Parties While Deferral Is Enabled
TALX_WORK_NUMBER is detected, the ban applies immediately. No pending third-party timer is created, and the deferred third-party webhook is not emitted later.
Redirect Outbound to a QA Destination (Non-Production Only)
qaDestinations overrides the organization-level QA destination for this search only, so a single test search can be redirected without touching other searches on the organization. It has no effect in production — outbound always uses the real, researched contact destination there regardless of what is submitted. Omitted channels (here, fax) fall back to the organization-level QA destination, then the service default.
Override Webhook Routing for One Search
Validation Rules
Create-order requests are validated before an order is created. IfdefaultSearchConfig or searchTypes[i].searchConfig is invalid, the request is rejected.
Key rules:
channels.preferredChannelmust beEMAIL,VOICE, orFAX.channels.blockedDestinationsandchannels.allowedDestinationsare mutually exclusive.channels.blockedDestinationsandchannels.allowedDestinationseach allow up to 100 entries.outbound.contactHintsallows up to 50 entries.- Each contact hint must include at least one of
email,phone, orfax, or athirdPartyVendor. contactHints[].thirdPartyVendormust be a canonical vendor code orUNKNOWN; unknown codes are rejected.contactHints[].thirdPartyCoderequiresthirdPartyVendoron the same hint.- A
contactHints[].thirdPartyVendorcannot also appear inthirdPartyBanfor the same search. research.skipResearch=truerequires at least one valid contact hint.timing.searchSlaMinutesandtiming.outboundWindowMinutesmust be at least1.timing.businessHours.timezonemust be a valid IANA timezone, such asAmerica/Chicago.timing.businessHours.startTimemust be earlier thanendTime.inbound.requireManualReview=truecannot be combined withinbound.autoCompleteOnVerification=false.escalation.escalationWebhookUrland webhook URL fields must be valid URLs.thirdPartyBanmust be an array of canonical third-party vendor codes with at most 50 entries. Values are trimmed, uppercased, and deduplicated;UNKNOWN, unknown codes, and non-array values are rejected.qaDestinationsis accepted and validated in every environment, but is only applied in non-production. In production it is dropped during policy resolution (a warning is logged) and never reaches outbound.
Precedence
Runtime behavior is resolved in this order:- System defaults
- Tenant policy
defaultSearchConfig, if the search does not provide its ownsearchConfigsearchTypes[i].searchConfig, if provided
searchConfig enables it.

