follow-up-cadence
SkillCommunicationCreates and manages follow-up sequences for small business sales. Handles post-meeting recaps, post-proposal check-ins, conference lead follow-ups, re-engagement of cold leads, and batch follow-up reviews. Use when user says 'follow up with', 'write a follow-up email', 'what follow-ups do I owe', 'post-meeting email', 'check in with [client]', 'they haven't responded', 'send a recap', 'follow-up sequence', or 'meeting recap for [person]'.
Use follow-up-cadence in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add follow-up-cadence and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the follow-up-cadence skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by amazon-quick/amazon-quick-official-catalog in skills/sales/follow-up-cadence/SKILL.md and read by ahel’s review.
Overview
Creates strategic follow-up sequences that maintain sales momentum. Handles post-meeting recaps, post-proposal check-ins, conference lead follow-ups, re-engagement of cold leads, and post-purchase nurturing. Tracks all follow-ups in a persistent ledger and adapts timing based on prospect response patterns.
Workflow
<Definition - Follow-Up Types>
| Type | Trigger Signal | Timing | Tone |
|---|---|---|---|
| Post-meeting recap | Just had a call/meeting | Within 2 hours | Warm, collaborative |
| Post-proposal | Sent proposal, no response | Day 3, 7, 14 | Professional, patient |
| Post-event | Met at conference/networking | Within 24 hours | Friendly, casual |
| Re-engagement | Lead went cold (30+ days) | Immediately | Fresh angle, no guilt |
| Post-purchase check-in | Client onboarded | Day 7, 30, 90 | Supportive |
| Referral request | Delivered great results | After milestone | Grateful, specific ask |
| </Definition - Follow-Up Types> |
<Definition - Escalation Rules>
| Touches Sent | No Response Action |
|---|---|
| 3 emails | Try different channel (LinkedIn, phone) |
| 5 total | Move to quarterly nurture |
| Positive reply | Exit cadence, begin conversation |
| "Not now" | Set reminder for 60-90 days |
| "Not interested" | Remove from active follow-up, log reason |
| </Definition - Escalation Rules> |
<Definition - Timing Intelligence> If email history is available, adapt timing:
- Contact usually replies within 24 hours: follow up on Day 2 (not Day 3)
- Contact usually takes a week: follow up on Day 8 (give breathing room)
- Contact replies in mornings: send at 8am their timezone
- Contact replies evenings: send at 6pm their timezone
Default (no history available):
- Tue-Thu, 8-10am recipient timezone
- Post-meeting recaps: same day, within 2 hours
- Post-proposal: Day 3, 7, 14 </Definition - Timing Intelligence>
<Definition - Sending Modes>
| Mode | When | What Happens |
|---|---|---|
| Send now | Post-meeting recaps (time-sensitive) | Sends immediately with user confirmation |
| Stage drafts | Multi-touch sequences | Touch 1 sent now; remaining saved as drafts with scheduled dates |
| Review first | First time use, sensitive contacts | Shows full email for approval before sending |
| Copy to clipboard | No email connector | Displays formatted for manual send |
| </Definition - Sending Modes> |
<Definition - Skill-Ready Outputs> Two formatted blocks always included:
- Follow-Up Activity Log table (for deal-pipeline-manager)
- Contacts That Exhausted Follow-Up table (for outreach-sequence-builder) </Definition - Skill-Ready Outputs>
<Workflow - Single Follow-Up description="Create and send a follow-up message for a specific contact." tools=[run_python, file_write] triggers=["follow up with", "write a follow-up email", "post-meeting email", "check in with", "they haven't responded", "send a recap", "meeting recap for"]
-
[Agent] Auto-pull context. If email tools are available, search for last 5 emails with contact (sent + received). If calendar is available, find most recent meeting with contact. Extract: last topic discussed, promises made, questions asked, response time pattern, any pending unreplied emails. Validate: Found at least one prior interaction to reference. If fails: Skip auto-pull. Proceed to step 2 to ask user for context.
-
[Decide] Is context sufficient (contact name, last interaction type, desired outcome)?
- Yes (auto-pull succeeded): Present findings to user for confirmation. "I found your last interaction with [Name]: [summary]. Want me to follow up based on this, or is there newer context?"
- Partially: Ask only what is missing (max 2 questions).
- No (nothing found): Ask "Who are you following up with, what happened last, and what do you want to happen next?" Validate: Contact name, last interaction type, and desired outcome are known. If fails: Cannot proceed without at minimum contact name and context. Re-ask.
-
[Decide] Determine follow-up type per <Definition - Follow-Up Types>.
- Post-meeting: recent meeting found, no recap sent yet.
- Post-proposal: proposal sent, no reply.
- Post-event: user mentions conference/event.
- Re-engagement: 30+ days since last contact.
- Post-purchase: client onboarded, no check-in yet.
- Referral: user explicitly requests. Validate: Exactly one type identified. If fails: Ask user to clarify which type applies.
-
[Agent] Draft follow-up message(s) per the appropriate template in . Apply <Definition - Timing Intelligence> to determine send timing. Each message must: reference specific prior interaction, add new value, stay under 150 words, include clear CTA. Validate: Message meets all four criteria. Multi-touch sequences have distinct value per touch. If fails: Rewrite. If no new value can be identified for additional touches, produce a single strong message rather than a weak sequence.
-
[Ask user] Present drafted message(s) with proposed timing. Offer sending mode per <Definition - Sending Modes>. Validate: User approves, edits, or rejects. If fails: Revise per user feedback.
-
[Agent] Send or stage per user-selected mode. If email tools are available, send directly or create draft. If not available, display formatted for manual send. Validate: Email sent or draft created, or formatted copy provided. If fails: Display full email in chat for manual copy-paste.
-
[Agent] Update persistent follow-up ledger. Record: contact, company, type, touch number, date sent, subject, next action due date. Set reminder for next touch. If spreadsheet tools are connected (Google Sheets, Excel via SharePoint/OneDrive, or local), write there. Otherwise save to local workspace file. Validate: Ledger entry created. Next action date set. If fails: Tell user verbally when next follow-up is due.
</Workflow - Single Follow-Up>
<Workflow - Batch Review description="Review all pending follow-ups and prioritize next actions." tools=[run_python, file_write, file_read, open_in_session_tab] triggers=["what follow-ups do I owe", "follow-up review", "pending follow-ups", "who do I need to contact"]
-
[Agent] Gather pending follow-ups from all sources: persistent ledger (spreadsheet or local file), sent emails with no reply (last 30 days via email search if available), meetings from last 2 weeks with no recap sent (via calendar if available). Validate: At least one source returned data. If fails: Ask user to list contacts they know need follow-up.
-
[Agent] Deduplicate and prioritize. Score: deal value x days overdue. Apply <Definition - Escalation Rules> for contacts with multiple unanswered touches. Validate: Prioritized list produced with scores. If fails: Present unprioritized list sorted by date.
-
[Agent] For each pending follow-up (top 10 max), draft a ready-to-send message using context from ledger and email history. Include: priority level, contact name, company, days overdue, deal value, recommended action, draft message. Validate: Each follow-up has specific context (not generic). Draft references prior interaction. If fails: Flag entries with insufficient context for user input.
-
[Ask user] Present prioritized list with drafts. Offer: "Send all approved", "Review one by one", or "Skip/snooze individual items." Validate: User provides direction. If fails: Default to review one by one.
-
[Agent] Execute per user direction. Send approved messages, snooze deferred ones (update ledger with new due date), remove declined ones. Validate: All actions completed. Ledger updated. If fails: Report which items failed and why.
-
[Agent] Produce skill-ready outputs per <Definition - Skill-Ready Outputs>: Follow-Up Activity Log for deal-pipeline-manager, Contacts That Exhausted Follow-Up for outreach-sequence-builder. Validate: Both output blocks present. If fails: Add missing outputs.
</Workflow - Batch Review>
<Template - Post-Meeting Recap> Subject: Next steps from our [day] conversation
Hi [Name],
Great speaking with you about [specific topic]. Quick recap:
What we discussed:
- [Key point 1]
- [Key point 2]
What I promised to send/do:
- [Action item 1] - [attached/linked/by date]
Agreed next steps:
- [Who does what by when]
Looking forward to [specific next step]. Talk [day]?
[Signature] </Template - Post-Meeting Recap>
<Template - Post-Proposal Sequence> Day 3: Subject: Re: [Proposal] - quick question
Hi [Name],
Wanted to make sure the proposal came through okay and see if any questions jumped out. I know [their challenge] is time-sensitive, so happy to hop on a quick call to walk through options.
Would [day] at [time] or [day] at [time] work?
Day 7: Subject: [Relevant resource] + proposal check-in
Hi [Name],
Came across [article/case study] about [their challenge] and thought of our conversation. [1-sentence why it's relevant]
Also wanted to check - is the timeline for [project] still [date discussed]?
Day 14 (final): Subject: Should I close this out?
Hi [Name],
Haven't heard back and want to be respectful of your time. Usually that means:
- Timing isn't right (when should I circle back?)
- You went another direction (any feedback is helpful)
- This got buried (happy to resend)
No hard feelings either way. Just let me know so I can update my notes. </Template - Post-Proposal Sequence>
<Template - Re-engagement> Subject: [Something that changed since last contact]
Hi [Name],
It's been a while since we connected about [original topic]. Reaching out because [genuine reason - new feature, case study, company news].
[2 sentences about the development and why relevant to them]
Worth a fresh conversation? No pressure either way. </Template - Re-engagement>
<Template - Batch Review Output>
Pending Follow-Ups
| Priority | Contact | Company | Days Overdue | Deal Value | Recommended Action | Draft Ready? |
|---|
Follow-Up Activity Log (for deal-pipeline-manager)
| Contact | Company | Last Follow-Up | Response Status | Next Touch Due | Sequence Position |
Contacts That Exhausted Follow-Up (for outreach-sequence-builder)
| Contact | Company | Touches Sent | Last Angle | Suggested New Approach | </Template - Batch Review Output>
Signals
- GitHub stars
- 50
- Forks
- 3
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
follow-up-cadence- Source
- github.com/amazon-quick/amazon-quick-official-catalog
github.com/amazon-quick/amazon-quick-official-catalog
Related picks
Skill · googleworkspace
The pick for Gmailopenakita/skills@gmail-automation
Skill · openakita
The pick for Gmailoutlook_calendar
Skill · win4r
The pick for Outlookanalyzing-outlook-pst-for-email-forensics
Skill · mukul975
The pick for Outlookslack-gif-creator
Skill · anthropics
More in Communicationerror-handling
Skill · affaan-m
More in Communication