// Follow-up Due Today
// SYNCING...
[ NO SIGNAL ]
No session loaded.
Go to Import → paste Gemini JSON → hit Load. Takes 10 seconds.
Interest rate over time
// AWAITING DATA
All-time totals
// Session log
Pickup rate by hour of day
Pickup rate by day of week
Objections — all-time
Upcoming follow-ups
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", "heat": "hot or warm", "timestamp": "value from column K for this row, exact string, or empty string if blank", "follow_up_date": "YYYY-MM-DD if a specific calendar date can be confidently determined from the notes, otherwise empty string", "follow_up_time": "HH:MM in 24hr format if a specific time can be confidently determined from the notes, otherwise empty string" } ], "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 ONLY rows with status "Showed Intrest" or "Follow Up" — do NOT include "Left VM" rows in this array - 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. - follow_up_date and follow_up_time: read the Notes column for that row. If the contractor mentioned a specific day/time to call back (e.g. "call back Tuesday at 2pm", "follow up June 20 morning", "wants a callback tomorrow at 10"), convert it to an exact calendar date using today's date as the reference point. If the note is vague, ambiguous, or doesn't mention a follow-up time at all, leave both fields as empty strings. NEVER guess a date you are not confident about — an empty string is always safer than a wrong date. - heat: "hot" = Showed Intrest, "warm" = Follow Up - 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.