---
name: email-follow-up
description: Finds inbound messages that were never answered, drafts a follow-up in the client's voice, and creates a draft for a named approver rather than sending. Use when the user asks about unanswered emails, follow-ups that were missed, or drafting a reply to a stalled thread.
metadata:
  version: "1.1.1"
---

# email-follow-up

> **Client-neutral reusable package.** No client names, tenant or workspace identifiers, account or
> resource IDs, customer records, credentials, or internal paths. All examples are synthetic.

| | |
|---|---|
| Live catalog name | Email Follow-Up |
| Live category | CRM & Sales |
| Catalog entry | 9 |
| Internal capability ID | `CAP-CRM-03` |
| Provider | Email (provider-neutral) |
| Availability | Candidate; validate in the active Workspace |
| Deliverable type | `client_ready_guided_skill` |
| Validation status | Candidate; local package validation only |
| Version | 1.1.0 |


## OLLIE Runtime integration

Use this capability under the active OLLIE Operator. Read live Workspace Context and tenant
bindings for the required inputs below; this public package supplies no client facts or authority.
Consume `ask-ollie-authority-core` for authority, `outloop-access-fallback` for recovery and
resource verification, `email-lifecycle-core` for recipients, approvals and stored-copy delivery
verification, and the bootstrapper Runtime Contract for ownership, scheduling and completion.
These owners govern execution; this Skill does not implement a competing runtime.

Select the relevant expertise below for the requested outcome. Runtime governs combining Skills,
partial use and completing missing steps with other authorized capabilities. This Skill's domain
scope does not limit the Operator's wider authorized task. Preserve domain safety restrictions.
Verify findings against source evidence and read back any resulting artifact or authorized change.

## Business outcome

Identify eligible unanswered enquiries and prepare evidence-based follow-up drafts for Runtime to deliver under the active policy.

## Operating modes

Read · Analyze · Draft

## Prerequisites — what must be true before this runs

- Workspace Context (contacts, communication rules, email formatting)
- An approved mail grant with the required scope tier
- A suppression list

## Required inputs

| Input | Source |
|---|---|
| Approved mailbox | Workspace configuration — the connected account only |
| Follow-up threshold and business hours | Workspace Context — communication rules |
| Voice, language and signature | Workspace Context — email formatting |
| Named approver | Configuration |
| Suppression list | Required — who must never be contacted |

## Mailbox settings are never touched

Filters, forwarding, delegation, aliases, vacation responders and retention are out of scope permanently.
So are hard deletes. These are not gated actions; they are excluded actions.

## Action classification

| Action class | This workflow |
|---|---|
| Read | Threads and messages in the connected mailbox, labels, last inbound and last outbound timestamps |
| Analyze | Unanswered-inbound detection, thread-to-record matching, dormancy against the configured threshold, suppression screening |
| Draft | A follow-up per eligible thread, in the configured language and voice, with the approved signature |
| Write with approval | Creates a **draft only**. Sending is a separate, explicitly approved action |
| Destructive | None. Never deletes mail, never changes mailbox settings, filters, forwarding or delegation |

## Approval and delivery

The Operator applies Authority Core and the active Workspace approval policy to any requested
mutation. Email Lifecycle owns recipient classification, sending and stored-copy verification.
The action table defines this capability's domain scope; it grants no permission by itself.

## Expected output

A numbered list of stalled threads with a ready draft for each, plus the reason each was selected and anything suppressed with the rule that suppressed it.

## Synthetic placeholders used in this package

These are illustrative only. Real values come from the client's own workspace configuration and are
never written back into this package.

| Placeholder | Meaning |
|---|---|
| `MAILBOX_PLACEHOLDER` | Connected mailbox |
| `APPROVER_PLACEHOLDER` | Named approver |
| `THRESHOLD_DAYS_PLACEHOLDER` | Dormancy threshold |
