| name | gmail-follow-up-sequencer |
| description | Send follow-up emails on threads that haven't replied — 3, 7, 14 day cadence with fresh angles. Reads sent folder, identifies no-reply threads, drafts context-aware follow-ups. Trigger on "send follow-ups", "bump my cold emails", or "who hasn't replied?". |
| allowed-tools | ["Bash","Read","Write","AskUserQuestion"] |
Gmail Follow-up Sequencer
Find threads without replies and send the next touch via Composio.
Workflow
- Ask the cadence. Defaults: +3 days (bump), +7 (new angle), +14 (breakup). Confirm.
- Link Gmail:
composio link gmail
- Find recent sent messages without a reply. Use Gmail query
in:sent newer_than:30d then for each, check thread reply count:
composio execute GMAIL_FETCH_EMAILS -d '{
"query": "in:sent newer_than:30d -from:me",
"max_results": 50
}'
composio execute GMAIL_FETCH_MESSAGE_BY_THREAD_ID -d '{ "thread_id": "..." }'
- For each no-reply thread, pick a follow-up angle:
- +3 bump: "Bringing this back to the top of your inbox." One line.
- +7 new angle: Fresh hook — relevant case study, question, data point.
- +14 breakup: "Assuming now's not the right time — I'll close the loop. Circle back in Q?"
- Reply on the existing thread (not a new thread — preserves context):
composio execute GMAIL_REPLY_TO_THREAD -d '{
"thread_id": "...",
"recipient_email": "...",
"message_body": "<follow-up>"
}'
- Log to
./followups.csv with thread_id, recipient, touch_number, sent_at.
Breakup email template
Subject: (reply on existing thread)
Hi <Name>,
Haven't heard back so I'll assume the timing isn't right. If <their priority> changes,
I'm here. Either way, appreciate you reading.
— <You>
Guardrails
- Maximum 3 follow-ups per thread. After the breakup email, stop.
- Never follow up on a thread where the recipient replied "unsubscribe", "not interested", "remove me".
- Show the user all drafted follow-ups before sending more than 10.