Weekly stay-in-touch nudges from your relationship list
Every Monday at 8am, surface the ten people you are most overdue to reach out to, pre-write each email in Gmail, and post a ranked summary to Slack.
Build me a weekly stay-in-touch agent workflow on top of my own relationship ledger. The General Input Database is the source of truth for who I want to keep in touch with; Gmail and Slack are purely output channels.
Trigger: cron, every Monday at 8am in my local timezone.
Data source: a table in the General Input Database called relationships that I maintain by hand. The columns are name (text), email (text), target_cadence_days (integer, e.g. 30, 60, or 90), last_contacted_at (date), and context_note (short free-text reminder about who they are and what we last talked about). If the table does not exist yet, scaffold it during setup so I can populate it. Query the table with Execute SQL on the user-database service.
Each run, do the following:
1. Select all rows where julianday('now') - julianday(last_contacted_at) > target_cadence_days. For each overdue row compute days_overdue = (today - last_contacted_at) - target_cadence_days. Sort descending by days_overdue (most overdue first) and take the top ten.
2. If the overdue list is empty, post a one-line Slack message saying "Nobody is overdue this week, nice work" and stop. Otherwise continue.
3. For each of the top ten overdue people, draft a short, warm, personalized re-engagement email using their name and context_note. Keep each email to roughly three to five sentences, conversational tone, no marketing fluff. Save each one as a draft in Gmail using the Create a Draft operation (do not use Send a Message; I want to review before sending). Set the To header to the row's email and leave the subject short and human (for example, "checking in" or "long time no talk"). Capture the returned draft id from Gmail so we can link to it.
4. After all ten drafts exist, post a single ranked summary message to Slack using the Send a Message operation, sent to my personal DM channel by default (let me pick a different channel at setup). The summary should be one Slack message with one line per person, ranked by days overdue, showing: name, days overdue, the context note, and a clickable link to the Gmail draft using the format https://mail.google.com/mail/u/0/#drafts/<draftId> wrapped in Slack mrkdwn link syntax. Put a short header at the top like "10 people you are overdue to reach out to" and use Slack mrkdwn formatting (single asterisks for bold).
Important constraints: never actually send any email, only create drafts. Never update last_contacted_at automatically; I will update it by hand after I send a draft, so the contact drops off the overdue list naturally. If Gmail draft creation fails for a particular row, skip that person, keep going, and note the failure inline in the Slack summary. Treat the relationship table as read-only from this workflow.
Additional information
What does this prompt do?
- Runs every Monday morning and reads your personal relationship list, where you keep names, emails, how often you want to reach out, and the last time you talked.
- Ranks the people you are most overdue and picks the top ten so you focus on the highest-leverage outreach first.
- Writes a short, personalized re-engagement email for each one and saves it as a draft in your Gmail, ready for you to review before sending.
- Posts a single ranked Slack message so you can scan the list, glance at your own context notes, and fire off each draft from one place.
What do I need to use this?
- A General Input account, where your relationship list lives as a simple table you maintain (name, email, how often you want to reach out, last contacted date, and a short note for context).
- A Gmail account connected to General Input, so the workflow can save draft emails to your inbox.
- A Slack account connected to General Input, so the weekly summary can land in a channel or direct message you choose.
How can I customize it?
- Change the schedule. Monday at 8am is the default, but you can swap it for Sunday evenings, Friday afternoons, or any other cadence that fits your week.
- Adjust how many people you tackle. Ten is a manageable batch, but you can raise or lower the cap depending on how much outreach you want to do in one sitting.
- Pick where the summary lands. Send it to a private channel, a personal DM, or a shared channel if you want an accountability partner to see the list.
- Tune the tone of the drafts. Tell the agent how warm, formal, or brief you want each re-engagement email to feel, and what to include from your context notes.
Frequently asked questions
Will the emails actually send on their own?
How does the workflow know who is overdue?
What if I do not have a relationship list yet?
Can I change which Slack channel the summary lands in?
Will it remember who I already contacted?
Stop letting good relationships go cold.
Connect your relationship list, Gmail, and Slack once, and every Monday morning Geni surfaces the ten people you most need to reach out to, with drafts ready to send.