Go to Import → paste Gemini JSON → hit Load. Takes 10 seconds.
// Performance Read
Today vs Yesterday
7-Day Rolling Average
Calls made
// NOT ENOUGH SESSIONS YET
Interest rate
// NOT ENOUGH SESSIONS YET
Best calling window
Top recurring objection
Follow up today — Interest / Follow Up / Left VM
Business
Trade
Phone
Status
Notes
Interest rate over time
// AWAITING DATA
All-time totals
// Session log
Pickup rate by hour of day
// NOT ENOUGH TIMESTAMPED DATA YET
Pickup rate by day of week
// NOT ENOUGH TIMESTAMPED DATA YET
Objections — all-time
Export for Claude
Pulls your aggregated history — totals, trends, time patterns, objections — into one clean text block. Copy it and paste straight into Claude for coaching.
1Run this in Gemini inside your Google Sheet
Copy the prompt → paste into Gemini sidebar in your daily leads sheet → run at end of every session, regardless of which sheet you used.
gemini_prompt.txt
Analyze the call data in this sheet and return ONLY a valid JSON object. No explanation, no markdown, no code fences. Just raw JSON starting with { and ending with }.
Use exactly this structure:
{
"date": "YYYY-MM-DD",
"calls_made": number,
"not_called": number,
"showed_interest": number,
"follow_up": number,
"not_interested": number,
"no_pickup": number,
"left_vm": number,
"disconnected": number,
"closed": number,
"interest_rate_pct": number,
"pickup_rate_pct": number,
"trades": [
{ "name": "trade name", "called": number, "interested": number, "follow_up": number, "left_vm": number, "not_interested": number, "no_pickup": number }
],
"objections": [
{ "text": "short description of objection", "count": number, "example": "one real quote or paraphrase from notes" }
],
"followups": [
{ "business": "business name", "trade": "trade", "phone": "phone or empty string", "status": "Showed Intrest or Follow Up or Left VM", "heat": "hot or warm or cold", "notes": "key note from call", "timestamp": "value from column K for this row, exact string, or empty string if blank" }
],
"priorities": ["Priority 1 as a plain sentence", "Priority 2 as a plain sentence", "Priority 3 as a plain sentence"],
"session_notes": "2-3 sentence plain English summary of today"
}
Rules:
- calls_made = rows where Call Status is NOT "Not Called"
- not_called = rows where Call Status is "Not Called"
- interest_rate_pct = showed_interest / calls_made * 100, rounded to 1 decimal
- pickup_rate_pct = (showed_interest + follow_up + not_interested + left_vm + closed) / calls_made * 100, rounded to 1 decimal
- followups must include ALL rows with status "Showed Intrest", "Follow Up", or "Left VM" — do not skip any
- timestamp field = copy the exact value from column K for that row with no reformatting. If column K is blank for that row, use an empty string. Do not guess or invent a timestamp.
- heat: "hot" = Showed Intrest, "warm" = Follow Up, "cold" = Left VM
- Objections come ONLY from Notes of Not Interested rows — group similar reasons, and where the note explains WHY they dropped off, preserve that reasoning in the example field
- Priorities must be specific and actionable, not generic
- All numbers integers except the two _pct fields
- Return nothing except the JSON object
2Paste JSON into Import tab
Copy everything Gemini returns, including the outer braces. Go to Import → paste → Load Session.
3Check Home, then Deep Dive weekly
Home gives you the daily read. Deep Dive is where patterns show up — check it once a week, not every day.