Sales Automation
proposals documents
How to Build an AI Mutual Action Plan Generator
Create mutual action plans automatically for enterprise deals.
Jay Banlasan
The AI Systems Guy
This ai mutual action plan generator creates structured close plans for enterprise deals. Both sides know what to do and when. I use this for deals over $25K.
What You Need Before Starting
- Python 3.8+
- Claude or GPT API key
- Jinja2 for templating
- weasyprint for PDF generation
Step 1: Define Your Data Model
Set up the structure for mutual action plans records.
import json
import sqlite3
from datetime import datetime
def init_db():
conn = sqlite3.connect("mutual_action_plans.db")
conn.execute("""CREATE TABLE IF NOT EXISTS mutual_action_plans (
id INTEGER PRIMARY KEY AUTOINCREMENT,
deal_id TEXT, content TEXT, status TEXT DEFAULT 'draft',
created_at TEXT, updated_at TEXT
)""")
conn.commit()
return conn
Step 2: Pull CRM Context
Get deal and company data to populate your mutual action plans.
def get_context(crm_client, deal_id):
deal = crm_client.get_deal(deal_id)
company = crm_client.get_company(deal["company_id"])
return {
"deal_name": deal["name"],
"company": company["name"],
"industry": company["industry"],
"amount": deal["amount"],
"notes": deal.get("notes", ""),
}
Step 3: Generate Content with AI
Use Claude to create customized mutual action plans content.
import anthropic
def generate_content(context):
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-20250514", max_tokens=2000,
messages=[{"role": "user",
"content": f"Generate mutual action plans content for {context['company']} in {context['industry']}.\nDeal value: ${context['amount']:,.0f}\nNotes: {context['notes']}"}]
)
return message.content[0].text
Step 4: Format and Export
Create a professional output document.
def export_document(content, context, output_dir):
filename = f"{context['deal_name']}_{datetime.now().strftime('%Y%m%d')}.md"
path = os.path.join(output_dir, filename)
with open(path, "w") as f:
f.write(f"# {context['company']}\n\n{content}")
return path
Step 5: Track and Measure
Log every document and track conversion.
def log_document(conn, deal_id, path, status="draft"):
conn.execute(
"INSERT INTO mutual_action_plans (deal_id, content, status, created_at, updated_at) VALUES (?, ?, ?, ?, ?)",
(deal_id, path, status, datetime.now().isoformat(), datetime.now().isoformat()))
conn.commit()
What to Build Next
Add milestone tracking. Flag when either side falls behind schedule.
Related Reading
- Automation Chains: When One Trigger Creates Twenty Actions - automation chains triggers actions
- AI for Sales Pipeline Management - ai sales pipeline management
- The Capacity Planning Framework - capacity planning ai operations
Want this system built for your business?
Get a free assessment. We will map every system your business needs and show you the ROI.
Get Your Free Assessment