Skip to main content

Screen Email And Support Agents

Email and support queues combine indirect prompt injection with social pressure. Treat every external message as data until it has been screened.

Boundary rule

Screen the inbound message before drafting, routing, clicking links, updating CRM, or sending a reply. Screen the final response before it leaves the agent.

const inbound = await inbox.readMessage(messageId);
const screen = await fetch("https://parsethis.ai/v1/parse", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.PARSE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    prompt: inbound.body,
    metadata: {
      source_kind: "email",
      trust_level: "external",
      intended_action: "reply",
      requester_trust: "unknown",
    },
  }),
});

const decision = await screen.json();
if (decision.suggested_action === "request_owner_approval") {
  return decision.approval_request.owner_prompt;
}
if (decision.suggested_action === "block") return "I cannot complete that request.";

Pilot check

Use a staging inbox or recorded support thread. Measure both private-disclosure refusals and benign ticket completion so the pilot catches overblocking.