Run it by
DocsAPI referencePricingArticles
Sign inGet an API key

In this article

The problemThe pattern: schema in, link out, JSON backExample: a quote from a plumberOne person, several, or anyoneWhere this fitsAll articles

Use case

How to get structured input from a person your agent can’t reach in chat

Oct 27, 2026 · 6 min read

The problem

Most agents only talk to one person: whoever is typing in the chat. Real tasks need more people than that. A repairs agent needs a plumber’s availability and quote. A recruiting agent needs a candidate’s start date. A support agent needs a customer’s new address. None of them are in the conversation, and none of them want to install anything or sign up to answer one question.

The usual workarounds are an email thread that the agent has to parse (“Tuesday works, maybe Wednesday, around 300?”), a Google Form someone builds by hand for every new question, or a custom page your team builds and then has to maintain.

The pattern: schema in, link out, JSON back

Run it by turns the question into a link. Your agent describes what it needs as a JSON Schema, the same format it already uses for tool calls, and gets a URL back. The person opens it on their phone, fills a short form with no sign-up, and the answer comes back to your agent as JSON that already matches the schema.

  1. Ask. Call createRequest (MCP tool or POST /v1/requests) with a schema and who should answer.
  2. Send. The response has one link per person. Send it over the channel you already have: email, SMS, WhatsApp, Slack.
  3. Get the answer. It arrives at your webhook, or the agent reads it later with getStatus.

Example: a quote from a plumber

A property-management agent needs a leaking pipe fixed. It asks the plumber for the earliest date, a price and anything it should know:

{
  "mode": "form",
  "title": "Leak at 14 Elm St, unit 3",
  "requester": "Ava (the Elm Properties maintenance agent)",
  "audience": { "kind": "named", "recipients": [{ "name": "Sam Ortiz", "phone": "+1 415 555 0100" }] },
  "schema": {
    "type": "object",
    "required": ["earliestDate", "quote"],
    "properties": {
      "earliestDate": { "type": "string", "format": "date", "title": "Earliest day you can come" },
      "quote": { "type": "number", "minimum": 0, "title": "Estimate (USD)" },
      "notes": { "type": "string", "title": "Anything we should know?", "x-runitby": { "widget": "textarea" } }
    }
  },
  "expiresIn": "48h",
  "webhookUrl": "https://example.com/hooks/runitby"
}

Sam gets a link by text message, sees who is asking (the account’s verified name is on every page, whatever the agent calls itself), picks a date, types a number and sends it. Your webhook receives:

{
  "event": "response.created",
  "recipient": { "name": "Sam Ortiz" },
  "response": { "data": { "earliestDate": "2026-11-03", "quote": 280, "notes": "Bring access to the basement." } }
}

No parsing, no follow-up “sorry, which Tuesday?”. The date is a date and the quote is a number, because the form wouldn’t accept anything else.

One person, several, or anyone

  • Named recipients (1 to 50) each get their own link, so every answer is attributed to a person. Add an email and the agent can send reminders.
  • An open link takes answers from anyone who has it, up to maxSubmissions. Use it for sign-ups or a quick team survey.
  • Approvals are the yes-or-no version, with a policy for how many people must agree. See approvals before your agent spends money.

Where this fits

  • Quotes and availability from contractors, suppliers or venues.
  • Missing details from customers: shipping address, order preferences, a photo-free description of a problem.
  • Onboarding facts from a new hire or a new client: start date, tax ID country, preferred equipment.
  • Sign-off from a landlord, a parent or a manager who will never open your app.
  • Collecting the same few answers from a team, without a survey tool.

If the person you need is the one already chatting with your agent, you may not need a link at all: some MCP clients can ask them directly. We compare the two in Run it by vs building it yourself and MCP elicitation.

Try it with your agent

Free for 100 requests a month, no card. Add the MCP server from Claude Code or Codex with one command, or use the REST API.

Start freeRead the docs

Run it by

Get structured data from a person with a link.

Product

DocsPricingArticles

For agents

MCP setupAPI referencellms.txtopenapi.json

Legal

PrivacyTerms
© 2026 Run it by