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]'.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the follow-up-cadence skill
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
- 49
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
follow-up-cadence- Source
- github.com/amazon-quick/amazon-quick-official-catalog