Jump to: Use Case Live Demo Build It + Calendar + Email + Web Widget + Teams Adapt It
The Problem This Solves

Without Agent

  • Customer calls or emails asking about annuities
  • Rep manually asks 4–6 follow-up questions
  • Rep looks up matching products
  • Rep does rough income estimate
  • Rep schedules advisor call
  • 20–30 min per inquiry

With Agent

  • Customer types question in chat
  • Agent asks 4 clarifying questions
  • Agent recommends the right product
  • Agent books advisor call automatically
  • Agent emails a summary to customer
  • 3–5 min, no rep needed

Products referenced: Fixed Annuity (guaranteed returns, 3–10 yr horizon, $5K min), Deferred Income Annuity (guaranteed lifetime income, $10K min), Variable Annuity (market-linked, $10K min). Change these to match your actual products.

What It Looks Like
Meridian Life Annuity Assistant
Hi! I can help you find the right annuity. What's on your mind?
I have some savings and want guaranteed income when I retire
Great goal! To point you in the right direction — how old are you currently?
I'm 58
Perfect, you're in a great window to plan this. When are you hoping to retire — roughly how many years from now?
About 7 years
Got it. And roughly how much are you looking to invest in an annuity?
Around $75,000
Thanks! Last question — do you prefer completely guaranteed, fixed monthly income, or are you open to some market involvement for potentially higher returns?
I want something safe and predictable
Based on what you've shared, a Deferred Income Annuity looks like a strong fit. With $75,000 invested now and a 7-year wait before payments begin, you'd receive guaranteed lifetime income starting around retirement — no market risk, no surprises.

Would you like me to schedule a call with an advisor to get exact numbers?
Yes please
Done! I've booked a 30-minute call and sent you a calendar invite. I also emailed you a summary of our conversation — check your inbox!
Build It

Fastest path. Use Claude Projects — no API key, no installation, no code. Working agent in 5 minutes.

  1. 1

    Open claude.ai → Projects → New Project

    Name it "Annuity Advisor". Free account works fine.

  2. 2

    Paste these instructions into "Project Instructions"

Agent Instructions — paste into Claude Project
You are an annuity advisor assistant for [Your Company Name].
Help customers find the right annuity product.

Ask these questions ONE AT A TIME (never all at once):
1. How old are they?
2. When do they plan to retire (years from now)?
3. How much do they have to invest?
4. Do they want guaranteed fixed income, or are they open to market risk?

Based on their answers, recommend one of:
- Fixed Annuity: guaranteed returns, low risk, 3-10 year horizon, min $5,000
- Deferred Income Annuity: guaranteed lifetime income starting in 2+ years, min $10,000
- Variable Annuity: market-linked growth, higher potential returns, min $10,000

Always end by asking: "Would you like me to connect you with an advisor?"
Keep responses short (2-4 sentences). Avoid financial jargon.
Never give specific income projections — say "an advisor can calculate your exact figures."
  1. 3

    Test → Share

    Open a new chat in the project. Test with "I have $50,000 and I'm retiring in 5 years". Share the project link with your team when ready.

For developers. ~50 lines of Python. Extends into calendar, email, and web widget in the sections below.

bash — Install
pip install anthropic
python — annuity_agent.py
import anthropic

client = anthropic.Anthropic(api_key="your-api-key-here")

SYSTEM_PROMPT = """
You are an annuity advisor assistant for Meridian Life Insurance.
Ask customers about their age, retirement timeline, investment amount,
and risk tolerance — one question at a time.

Recommend one of:
- Fixed Annuity: guaranteed returns, low risk, 3-10 year horizon
- Deferred Income Annuity: guaranteed lifetime income starting in 2+ years
- Variable Annuity: market-linked growth for risk-tolerant customers

End every recommendation with: "Would you like to schedule a call with an advisor?"
Be warm, concise, avoid jargon.
"""

def run_agent():
    print("Meridian Life Annuity Assistant\n" + "-"*40)
    print("Agent: Hi! I can help you find the right annuity. What's on your mind?\n")

    history = []

    while True:
        user_input = input("You: ").strip()
        if user_input.lower() in ["exit", "quit"]:
            break

        history.append({"role": "user", "content": user_input})

        response = client.messages.create(
            model="claude-opus-4-5",
            max_tokens=500,
            system=SYSTEM_PROMPT,
            messages=history
        )

        reply = response.content[0].text
        history.append({"role": "assistant", "content": reply})
        print(f"\nAgent: {reply}\n")

run_agent()
bash — Run
python annuity_agent.py
Extension 1
Book Outlook Calendar Meetings
When a customer says yes, the agent books a 30-minute call in Outlook and sends a calendar invite automatically.

No Azure setup yet? Use Calendly free — create a 30-min "Advisor Call" event type, copy the link, and have the agent include it in its reply when the customer says yes. Zero code, works in 10 minutes.

bash
pip install O365
python — add to annuity_agent.py
from O365 import Account
from datetime import datetime, timedelta

# Your IT admin creates these in Azure Active Directory (10 min setup)
OUTLOOK_CLIENT_ID     = "your-azure-app-client-id"
OUTLOOK_CLIENT_SECRET = "your-azure-app-client-secret"
OUTLOOK_TENANT_ID     = "your-tenant-id"

def book_advisor_call(customer_name: str, customer_email: str, preferred_date: str):
    account = Account(
        (OUTLOOK_CLIENT_ID, OUTLOOK_CLIENT_SECRET),
        auth_flow_type="credentials",
        tenant_id=OUTLOOK_TENANT_ID
    )
    account.authenticate()

    calendar   = account.schedule().get_default_calendar()
    start_time = datetime.strptime(preferred_date, "%Y-%m-%d %H:%M")

    event         = calendar.new_event()
    event.subject = f"Annuity Consultation — {customer_name}"
    event.start   = start_time
    event.end     = start_time + timedelta(minutes=30)
    event.attendees.add(customer_email)
    event.save()

    return f"Booked! 30-min call on {preferred_date}. Invite sent to {customer_email}."
Extension 2
Send Summary Emails
At the end of every conversation, Claude writes a 3-sentence summary and the agent emails it to the customer via Outlook.
python — add to annuity_agent.py
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

SMTP_SERVER   = "smtp.office365.com"
SMTP_PORT     = 587
SENDER_EMAIL  = "advisor@yourcompany.com"
SENDER_APP_PW = "your-app-password"  # generate at account.microsoft.com → Security → App passwords

def send_summary_email(customer_email: str, customer_name: str, summary: str):
    msg            = MIMEMultipart()
    msg["Subject"] = "Your Annuity Consultation Summary"
    msg["From"]    = SENDER_EMAIL
    msg["To"]      = customer_email

    body = f"""Hi {customer_name},

Thank you for chatting with our Annuity Assistant today.

{summary}

An advisor will be in touch within 1 business day.

Warm regards,
Meridian Life Insurance Team"""

    msg.attach(MIMEText(body, "plain"))

    with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as s:
        s.starttls()
        s.login(SENDER_EMAIL, SENDER_APP_PW)
        s.sendmail(SENDER_EMAIL, customer_email, msg.as_string())

# At end of conversation: ask Claude to summarize, then send
def email_conversation_summary(client, system_prompt, history, customer_email, customer_name):
    res = client.messages.create(
        model="claude-opus-4-5", max_tokens=150,
        system=system_prompt,
        messages=history + [{"role": "user", "content": "Summarize our conversation in 3 sentences for the customer."}]
    )
    send_summary_email(customer_email, customer_name, res.content[0].text)
Extension 3
Web Chat Widget
A chat bubble on your website. Customers talk to the agent from their browser — no app, no login. A developer deploys this in about 2–3 hours.
bash
pip install flask flask-cors anthropic
python — web_agent.py
from flask import Flask, request, jsonify
from flask_cors import CORS
import anthropic

app    = Flask(__name__)
CORS(app)
client = anthropic.Anthropic(api_key="your-api-key")

SYSTEM_PROMPT = "You are an annuity advisor... [paste your full prompt here]"
sessions = {}

@app.route("/chat", methods=["POST"])
def chat():
    data = request.json
    sid  = data.get("session_id", "default")
    msg  = data.get("message", "")

    sessions.setdefault(sid, []).append({"role": "user", "content": msg})
    res   = client.messages.create(model="claude-opus-4-5", max_tokens=500, system=SYSTEM_PROMPT, messages=sessions[sid])
    reply = res.content[0].text
    sessions[sid].append({"role": "assistant", "content": reply})
    return jsonify({"reply": reply})

if __name__ == "__main__":
    app.run(port=5000)
html — paste into your website
<button onclick="toggleChat()" style="position:fixed;bottom:20px;right:20px;background:#0a1628;color:white;border:none;border-radius:50px;padding:14px 20px;font-size:16px;cursor:pointer;z-index:1000;">Talk to an Advisor</button>

<div id="cw" style="display:none;position:fixed;bottom:80px;right:20px;width:360px;height:480px;border:1px solid #ccc;border-radius:12px;background:white;box-shadow:0 4px 20px rgba(0,0,0,.15);flex-direction:column;z-index:1000;">
  <div style="background:#0a1628;color:white;padding:14px;border-radius:12px 12px 0 0;font-weight:bold;">Annuity Assistant</div>
  <div id="msgs" style="flex:1;overflow-y:auto;padding:12px;font-size:14px;"></div>
  <div style="display:flex;padding:10px;border-top:1px solid #eee;">
    <input id="inp" type="text" placeholder="Type a message..." style="flex:1;padding:8px;border:1px solid #ccc;border-radius:6px;" onkeypress="if(event.key==='Enter')send()"/>
    <button onclick="send()" style="margin-left:8px;background:#0a1628;color:white;border:none;border-radius:6px;padding:8px 14px;cursor:pointer;">Send</button>
  </div>
</div>

<script>
const sid=Math.random().toString(36).slice(2); let on=false;
function toggleChat(){on=!on; const w=document.getElementById('cw'); w.style.display=on?'flex':'none'; if(on&&!document.getElementById('msgs').innerHTML) addMsg('agent','Hi! I can help you find the right annuity. What\'s on your mind?');}
function addMsg(r,t){const d=document.createElement('div'); d.style=`margin:6px 0;padding:8px 12px;border-radius:10px;max-width:85%;${r==='user'?'background:#0a1628;color:white;margin-left:auto;':'background:#f0f0f0;'}`; d.innerText=t; document.getElementById('msgs').appendChild(d); document.getElementById('msgs').scrollTop=9999;}
async function send(){const i=document.getElementById('inp'),m=i.value.trim(); if(!m)return; i.value=''; addMsg('user',m); const r=await fetch('http://localhost:5000/chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({session_id:sid,message:m})}); addMsg('agent',(await r.json()).reply);}
</script>

To go live: Deploy web_agent.py to Azure App Service or any cloud host. Change localhost:5000 in the HTML to your server URL. A developer needs about 2–3 hours total.

Extension 4
Deploy to Microsoft Teams (No Code)
Wrap this agent in Copilot Studio and deploy to Teams. Calendar + Email + Chat — all connected, no developer needed. Takes about 1 hour.
  1. 1

    Open Copilot Studio

    Sign in with your Microsoft 365 work account. Included in your M365 plan — no extra cost.

  2. 2

    Create → New Agent

    Describe your agent in plain English. Copilot Studio generates the structure. Tip: paste the system prompt from Option A above as your agent description.

  3. 3

    Set Claude as AI Model (optional)

    Agent Settings → Model → Claude Sonnet. Claude's reasoning quality inside Microsoft's infrastructure.

  4. 4

    Connect Outlook Calendar

    Actions → Add an action → Office 365 Outlook → Create event. Map start/end time, subject, attendee email. No code.

  5. 5

    Connect Outlook Email

    Actions → Add an action → Office 365 Outlook → Send an email. Map To, Subject, and Body fields.

  6. 6

    Deploy to Teams

    Channels → Microsoft Teams → Turn on Teams → Publish. Your agent appears in Teams within minutes.

  7. 7

    Share with your team

    Search your agent's name in Teams Apps, or share the direct link. Pin it to the Teams sidebar so everyone sees it daily.

Adapt This for Other Workflows
Change the system prompt — the code stays exactly the same.
Change the instructions to...The agent becomes...
Describe your claims intake questions and routing rulesA FNOL (First Notice of Loss) claims agent
List your underwriting appetite and eligibility rulesAn underwriting pre-screening agent
Describe your policy renewal workflowA renewal outreach and processing agent
List your broker products and commission structureA broker quote and support assistant
Describe your support ticket categories and routingA customer service triage agent
Describe your HR onboarding checklistA new-hire onboarding guide

No coding needed to customize. The system prompt is plain English text. Any team member can change the agent's behavior — no developer required.

More Examples