Frontdoor
Turn a conversation or customer message into a bounded action proposal. Frontdoor is the interaction layer for AI support.
When to use it
Add bounded conversational AI assistance to your backend while keeping your own orchestration and security logic.
Supported Operations & Data Contracts
Call this module with a key scoped to 'frontdoor'. Provide the operation name and matching input dictionary.
propose · Propose Action from TranscriptPOST /api/v1/modules/frontdoor
Evaluates a raw conversation transcript and returns a structured intent classification, proposed assistant reply, and optional tool call proposal.
Input Parameters
| Field | Type | Requirement | Description |
|---|---|---|---|
transcript | string | Required | Customer message or audio transcript (1 to 10,000 characters). |
Output Fields
| Field | Type | Description |
|---|---|---|
intent | string | Classified conversation intent (e.g. balance, transfer, statement, faq, unknown). |
reply | string | Natural-language customer-facing reply proposal. |
toolRequest | object | null | Structured action proposal with action name and parameter dictionary, if applicable. |
delegationTranscript | string | undefined | Sanitized prompt for downstream task forwarding when transfers are requested. |
executionAuthorized | boolean (false) | Always false. Proposals never authorize bank execution directly. |
Example Request Payload
JSON Request BodyContent-Type: application/json
{
"operation": "propose",
"input": {
"transcript": "What are your customer service opening hours?"
}
}Example Response
JSON Response (HTTP 200)Cache-Control: no-store
{
"module": "frontdoor",
"output": {
"intent": "faq",
"reply": "Our customer support team is available Monday through Friday from 8:00 AM to 8:00 PM IST.",
"toolRequest": null,
"executionAuthorized": false
}
}Configuration in Graph Builder
When adding Frontdoor into a visual component or graph workflow, configure its node runtime settings in the builder inspector:
Place Frontdoor as a root entry node. In node runtime settings, select operation 'propose'. In downstream Policy or Gate nodes, use input bindings to map 'toolRequest.action' or 'toolRequest.parameters' directly into security checks.
Direct API Code Examples
Invoke this module directly from your backend services without passing through the visual builder:
TypeScript / Node.js (Fetch)index.ts
const response = await fetch("https://api.sherlock.dev/api/v1/modules/frontdoor", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.SHERLOCK_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
operation: "propose",
input: { transcript: "I want to transfer ₹500 to account 98765" }
}),
});
const { output } = await response.json();
console.log(output.intent, output.toolRequest);cURL / Bashterminal
curl -X POST "$SHERLOCK_BASE_URL/api/v1/modules/frontdoor" \
-H "Authorization: Bearer $SHERLOCK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"propose","input":{"transcript":"Check my balance"}}'Current Boundaries & Guarantees
Requires Gemini configuration and the operational kill switch to be off. Speech processing remains available through the voice-turn pipeline. Human support adapter is planned.