Build agents that find the right person, call, email, fax, and pull in a human when one is needed, until the job is done. One request, every channel, every retry.
SOC 2 Type II · HIPAA-ready · Built for FCRA workflows
See a task run start to finish →Whoever holds your answer, an HR desk, a records department, a claims office, a court clerk, rarely just gives it to you. They send you to email. They demand a fax with a signed release. They take three days. A voice API covers the conversation. The job is everything after it.
Four tasks a customer’s agent might run, one from each of four industries, replayed a step at a time. Each is a single POST to /v1/tasks. The agent is theirs. The parts it calls are ours. Names, numbers, and companies are made up, the mechanics are not.
Carriers will not read a policy out to a stranger. The requirement shows up mid-call, and the task changes shape.
Grant a task the channels it can use and let the agent sequence them. No pipeline to define, no state machine to maintain, and no branch to write for every way an institution can say no.
Agents do a lot, not everything.
Some steps need a person. A date that doesn’t match. A signature that isn’t there. A clerk who will only speak to a human.
Groundrail ships the tooling your team works in when that happens: every escalation from every channel lands in one queue, typed, with the whole task attached. That is what lets a handful of people supervise work that used to take a floor of them.
“We built this stack to run our own verification business. Six people complete more than 300,000 verifications a year on it.”
import { Groundrail } from "@groundrail/sdk";
const gr = new Groundrail(process.env.GROUNDRAIL_KEY!);
const task = await gr.tasks.create({
type: "records_request",
target: { provider: "Meridian Health Partners", phone: "+15902092000" },
channels: ["voice", "fax", "documents"],
documents: [{ role: "hipaa_release", url: releaseUrl }],
documentPolicy: {
validateBeforeSend: ["signature_block", "expiry"],
onReceive: { ocr: true, flag: "non_responsive_phi" }
},
// Redaction is a decision, so it goes to one of your reviewers.
humanReview: { blockOn: ["document_review"] },
webhook: "https://api.client.example/webhooks/groundrail"
});
console.log(task.id, task.status); // TASK-90388 runningEvery task carries someone’s personal data. Groundrail treats it that way by default: PII redacted where it doesn’t belong, access scoped per request, every step logged.
Built for teams whose product depends on an answer from someone else’s office.
Three questions, then pick a time. We will come back with which building blocks cover it and what it costs to run.
Usage-based. You pay for what the agents consume, metered per call, message, page, and token. Talk to us for volume pricing.