AI generates tailored proposals from prospect requirements. Your team verifies every detail before delivery — fast turnaround without errors.
Creating custom proposals takes hours per prospect, delaying your sales cycle and giving competitors time to close the deal first. When reps rush proposals to save time, errors in pricing, terms, or scope can lose deals or create contractual problems. The tradeoff between speed and accuracy shouldn't exist.
MultiMail's AI agent gathers prospect requirements from conversation history, generates customized proposals with relevant pricing and case studies, and drafts a professional cover email. With gated_all oversight, every element of the proposal is reviewed by your team before delivery — catching pricing errors, wrong attachments, or mismatched terms before they reach the prospect.
Your AI agent analyzes the conversation thread using get_thread to extract prospect requirements, use case details, team size, and specific feature needs discussed during the sales process.
Using the extracted requirements, the agent selects the appropriate pricing tier, relevant case studies, and feature highlights. It generates a complete proposal document tailored to the prospect.
The agent composes a professional cover email that summarizes the proposal highlights, references specific conversation points, and includes clear next steps for the prospect.
Under gated_all oversight, the entire package — cover email, proposal document, and attachments — enters the approval queue. Your sales or deal desk team verifies pricing, terms, and accuracy before approving delivery.
import requests
API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}
def extract_requirements(thread_id: str) -> dict:
thread = requests.get(
f"{API}/threads/{thread_id}", headers=HEADERS
).json()
"cm"># Extract requirements from conversation
requirements = analyze_conversation(thread["messages"])
"cm"># Returns: {team_size, features_needed, use_case, budget_signals}
"cm"># Look up contact for company context
contacts = requests.get(
f"{API}/contacts/search",
headers=HEADERS,
params={"email": thread["participants"][0]["email"]}
).json()
requirements["company"] = contacts["contacts"][0]
return requirementsAnalyze conversation history to gather prospect requirements for proposal generation.
import requests
API = "https://api.multimail.dev/v1"
HEADERS = {"Authorization": "Bearer mm_live_xxx"}
def send_proposal(requirements: dict, thread_id: str):
"cm"># Generate proposal document
proposal = generate_proposal_doc(requirements)
cover_email = draft_cover_email(requirements, proposal)
"cm"># Send with attachment (queued for full review)
response = requests.post(
f"{API}/send",
headers=HEADERS,
json={
"from": "[email protected]",
"to": requirements["company"]["email"],
"subject": f"Your customized proposal - {proposal[&"cm">#039;plan']} plan",
"text_body": cover_email,
"html_body": format_proposal_html(cover_email, proposal),
"thread_id": thread_id
}
)
print(f"Proposal queued for review: {response.json()[&"cm">#039;id']}")Create a custom proposal and send it with a professional cover email for review.
"cm">// Using MultiMail MCP tools for proposal delivery
"cm">// 1. Get the full sales conversation
const thread = await mcp.get_thread({
thread_id: "sales-thread-id"
});
"cm">// 2. Look up contact details
const contact = await mcp.search_contacts({
query: thread.participants[0].email
});
"cm">// 3. Extract requirements and generate proposal
const requirements = extractRequirements(thread.messages);
const proposal = generateProposal(requirements, contact);
"cm">// 4. Send proposal (goes to full review under gated_all)
await mcp.send_email({
to: contact.email,
subject: `Your customized proposal - ${proposal.plan} plan`,
text_body: draftCoverEmail(requirements, proposal)
});
"cm">// 5. Tag the thread
await mcp.tag_email({
email_id: thread.messages[0].id,
tags: ["proposal-sent", proposal.plan]
});Use MCP tools to extract context and deliver proposals from an AI agent.
AI generates customized proposals from conversation context in minutes. Your team only needs to verify the output, not build from scratch.
Gated_all oversight means every proposal is reviewed for pricing accuracy, correct terms, and appropriate scope before it reaches the prospect. No embarrassing corrections needed.
Proposals reference specific needs and questions from the sales conversation, showing the prospect you understand their requirements rather than sending a generic template.
Reducing proposal turnaround from days to hours keeps momentum in the deal. Prospects get your proposal while interest is still high.
Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.