sherlock.
INTERACTION / MODULE REFERENCE

Frontdoor

Turn a conversation or customer message into a bounded action proposal. Frontdoor is the interaction layer for AI support.

Direct API: POST /api/v1/modules/frontdoorManage API keys ↗View code boilerplate ↗

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

FieldTypeRequirementDescription
transcriptstringRequiredCustomer message or audio transcript (1 to 10,000 characters).

Output Fields

FieldTypeDescription
intentstringClassified conversation intent (e.g. balance, transfer, statement, faq, unknown).
replystringNatural-language customer-facing reply proposal.
toolRequestobject | nullStructured action proposal with action name and parameter dictionary, if applicable.
delegationTranscriptstring | undefinedSanitized prompt for downstream task forwarding when transfers are requested.
executionAuthorizedboolean (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.

Related Trust Modules