Supplier RFQ agent: ask many suppliers for a quote and act on each reply as it lands
ThreadCamp gives the agent a real email address so it can ask many suppliers for a quote and act on each reply as it lands - with programmatic inboxes, wait_for_message for time-sensitive replies, and human approval when a send matters.
Give the agent an inbox
Call POST /v1/inboxes (or create_inbox over MCP) to get a working address in milliseconds - on the shared relay.threadcamp.com domain or your own custom domain. The agent reads inbound mail, replies on the thread and forwards, all with the same key.
Replies start the work, without a poll
Set an inbox's triggers_on to "new-and-replies" and each answer sets off its own run, carrying the thread it belongs to. The default is "new-only", which means replies to mail you sent start nothing - the one setting worth checking before you wonder why an agent has gone quiet.
Quotes arrive as files, and that is fine
A supplier answering with a spreadsheet is the normal case. The agent lists the attachments on the thread, downloads what it needs, and compares like with like rather than reading a price out of prose.
One-click unsubscribe, because this is outbound
Mail that opens a conversation carries the List-Unsubscribe headers Gmail and Yahoo require of bulk senders, and an opt-out is permanent. If a working unsubscribe cannot be minted, the send is refused rather than delivered without one.
Wait for the message that unblocks the task
Many agent jobs stall on an email arriving - an OTP, a verification link, a reply. wait_for_message polls the inbox for the specific message the agent needs mid-task, so it can continue without a brittle sleep-and-retry loop.
// Poll a ThreadCamp inbox for an incoming OTP or verification email
const msg = await fetch("https://www.threadcamp.com/v1/inboxes/inbox_.../wait", {
method: "POST",
headers: { Authorization: "Bearer sk_live_...", "Content-Type": "application/json" },
body: JSON.stringify({ from: "no-reply@service.com", timeout_s: 120 }),
}).then((r) => r.json());
// -> { "id": "msg_...", "text": "Your code is 481920", ... }Keep a human in the loop
For anything that sends outward, set the inbox to approve-first. Every agent send is held as a pending draft in a human approval queue; a one-click approval is what actually executes the send. That is how a supplier rfq agent runs unattended without becoming a spam risk.
Related jobs
OTP retrieval agent
retrieve one-time passcodes and 2FA codes mid-task
Support agent
hold email conversations with customers, with human approval on replies
Signup automation
sign up for services that require email verification
Powered by the email platform for AI agents and human-in-the-loop approvals.
Questions
How does ThreadCamp support a supplier rfq agent?
Create a real inbox with POST /v1/inboxes, then let the agent ask many suppliers for a quote and act on each reply as it lands. It reads inbound mail over signed webhooks or polling, uses wait_for_message for time-sensitive replies like OTPs, and can be set to approve-first so a human signs off before anything sends.
Is a supplier rfq agent safe to run unattended?
Each inbox has an autonomy policy - auto, approve-first or notify. Under approve-first every send lands as a pending draft in a human approval queue. Scoped API keys, sandbox mode, rate limits and bounce auto-pause bound the blast radius.
Build your supplier rfq agent today.
No credit card. Full API, MCP and webhooks on the free tier.