Daily meeting brief with your own people database

By General Input

Each weekday at 7am, get one email covering today's external meetings, with notes pulled from your personal database of people you've met.

Integrations

  • General Input Database
  • Google Calendar
  • Gmail

Type

Agentic Task

Categories

  • Personal Productivity
  • Sales

Build me an agent workflow that prepares a morning meeting brief for my external meetings every weekday and emails it to me. The agent should treat my General Input Database as a persistent personal CRM of every person I've ever met, reading from it and writing to it on every run.

Trigger: cron, every weekday (Mon–Fri) at 7:00am in my local time zone.

Step 1. Use Google Calendar's List Events to fetch every event on my primary calendar for today, from start-of-day to end-of-day in my local time zone. Include attendee details.

Step 2. Filter to meetings that have at least one external attendee (any attendee whose email domain is not my own). Skip events I've declined and skip all-day events. If there are zero external meetings today, send a one-line email saying "No external meetings today" and exit.

Step 3. Make sure the General Input Database has the tables this workflow needs. During planning, ensure a table called attendee_notes exists with columns: email TEXT PRIMARY KEY, name TEXT, company TEXT, bio TEXT, notes TEXT, last_seen_at DATETIME, created_at DATETIME DEFAULT CURRENT_TIMESTAMP. Also ensure a meeting_log table with columns: meeting_id TEXT PRIMARY KEY, meeting_title TEXT, meeting_start DATETIME, attendee_emails TEXT, follow_up_notes TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP. Create them with Execute SQL if they don't exist.

Step 4. Collect the unique set of external attendee emails across today's meetings. Run a single Execute SQL SELECT against attendee_notes to pull any existing rows for those emails.

Step 5. For every attendee that does NOT yet have a row, do a light web lookup (LinkedIn-style public info, company website, recent press) and draft a short one-paragraph bio: current company, role, anything notable. Then Execute SQL an INSERT into attendee_notes with email, best-guess name and company, the drafted bio, and last_seen_at = today. Be conservative — if you can't confidently identify the person, save what you know and leave the rest null.

Step 6. Compose ONE consolidated morning brief covering every external meeting in chronological order. For each meeting include: meeting title, start time and duration, the list of attendees with their company, a 2–4 sentence summary of what we know about each attendee (pulled from attendee_notes — prefer my own notes field over the agent-written bio), and 2–3 suggested talking points tailored to who's in the room. Format as clean HTML with one section per meeting.

Step 7. Send the brief to me using Gmail's Send a Message. Subject: "Morning brief: {today's date} — {N} external meeting(s)". Body: the HTML from step 6.

Step 8. For each meeting in today's set, Execute SQL an INSERT (OR IGNORE) into meeting_log with the meeting's id, title, start time, comma-separated attendee emails, and an empty follow_up_notes column. Also UPDATE attendee_notes.last_seen_at = today for every attendee in today's meetings. These placeholder rows are how I'll later add my own post-meeting notes by replying or via another workflow.

Integrations: Google Calendar (List Events), General Input Database (Execute SQL, multiple times), Gmail (Send a Message), plus a light web lookup for unknown attendees. The database is what makes this compound: by my second meeting with the same person, the brief already remembers everything from the first one, including any notes I added myself.

Never overwrite a row's notes field if it's already populated — that column is reserved for my own writing. The bio column is the agent's to keep up to date.

Related prompts

Explore more prompts
Win back LiveChat visitors whose chats went unansweredA brand asset library your marketing team actually searchesLiveKit live operations console for room moderationChat quality review board for LiveChat support leadsCompetitor LinkedIn ad watchlist with a permanent archiveLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInFront desk appointment confirmation board for the next 3 days