Search-level configuration (searchConfig)
Use searchConfig when one order or one search needs behavior that differs from your tenant 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
| Use case | Field |
|---|
| Same behavior for every search in the order | defaultSearchConfig |
| Different behavior for one search | searchTypes[i].searchConfig |
defaultSearchConfig is applied to each created search that does not have its own searchConfig.
Per-search searchConfig replaces defaultSearchConfig for that search. It does not merge section-by-section. If a search has searchConfig: { "channels": { "email": true } }, then only that channels override applies for that search; other sections fall back to tenant defaults, not to defaultSearchConfig.
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.
{
"defaultSearchConfig": {
"timing": {
"searchSlaMinutes": 2880
}
},
"searchTypes": [
{
"searchType": "EMPLOYMENT",
"searchConfig": {
"channels": {
"email": true,
"voice": false,
"fax": false,
"preferredChannel": "EMAIL"
},
"outbound": {
"contactHints": [
{
"email": "hr@example.com",
"priority": "HIGH"
}
]
}
}
},
{
"searchType": "EDUCATION"
}
]
}
In this example:
- The
EDUCATION search inherits defaultSearchConfig.
- The
EMPLOYMENT search uses its own searchConfig and does not inherit the default SLA.
- To keep the default SLA on the employment search too, include
timing.searchSlaMinutes inside that search’s searchConfig.
Common Patterns
Prefer Email First
{
"channels": {
"email": true,
"voice": true,
"fax": false,
"preferredChannel": "EMAIL"
}
}
preferredChannel changes attempt order. It does not disable other enabled channels.
{
"research": {
"skipResearch": true
},
"outbound": {
"contactHints": [
{
"email": "verifications@example.com",
"priority": "HIGH"
}
]
}
}
When skipResearch=true, contactHints are required. Each hint must include at least one of email, phone, or fax.
Limit Outbound Attempts
{
"outbound": {
"maxAttemptsPerMethod": 3,
"maxTotalAttempts": 6,
"cancelOutboundOnTerminalInbound": true
}
}
maxAttemptsPerMethod limits attempts per channel type. maxTotalAttempts is a hard cap across channels for a contact.
Route a Search to Manual Review
{
"inbound": {
"requireManualReview": true
}
}
Verified inbound responses move the search to ACTION_REQUIRED for review instead of automatically completing it.
Override Webhook Routing for One Search
{
"notifications": {
"webhookOverride": {
"enabled": true,
"closeoutEndpoints": {
"EMPLOYMENT": "https://client.example.com/webhooks/employment-closeout"
}
}
}
}
Use this when one search needs different webhook delivery from the rest of the order.
Validation Rules
Create-order requests are validated before an order is created. If defaultSearchConfig or searchTypes[i].searchConfig is invalid, the request is rejected.
Key rules:
channels.preferredChannel must be EMAIL, VOICE, or FAX.
channels.blockedDestinations and channels.allowedDestinations are mutually exclusive.
channels.blockedDestinations and channels.allowedDestinations each allow up to 100 entries.
outbound.contactHints allows up to 50 entries.
- Each contact hint must include at least one of
email, phone, or fax.
research.skipResearch=true requires at least one valid contact hint.
timing.searchSlaMinutes and timing.outboundWindowMinutes must be at least 1.
timing.businessHours.timezone must be a valid IANA timezone, such as America/Chicago.
timing.businessHours.startTime must be earlier than endTime.
inbound.requireManualReview=true cannot be combined with inbound.autoCompleteOnVerification=false.
escalation.escalationWebhookUrl and webhook URL fields must be valid URLs.
Precedence
Runtime behavior is resolved in this order:
- System defaults
- Tenant policy
defaultSearchConfig, if the search does not provide its own searchConfig
searchTypes[i].searchConfig, if provided
Tenant and organization safety rules may still suppress a channel or destination even when searchConfig enables it.
Field Reference
For every supported field, type, range, and example, see SearchConfigDto.
Related references: