gmail-touchbase

Periodic relationship maintenance via email — identify contacts due for outreach, draft personalized check-ins, queue for user approval. Supports per-account tone and cadence.

5 stars

Best use case

gmail-touchbase is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Periodic relationship maintenance via email — identify contacts due for outreach, draft personalized check-ins, queue for user approval. Supports per-account tone and cadence.

Teams using gmail-touchbase should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/gmail-touchbase/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/email/_archived/gmail-touchbase/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/gmail-touchbase/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How gmail-touchbase Compares

Feature / Agentgmail-touchbaseStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Periodic relationship maintenance via email — identify contacts due for outreach, draft personalized check-ins, queue for user approval. Supports per-account tone and cadence.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Gmail Touchbase

Maintain professional and personal relationships through periodic, thoughtful email outreach.

## Prerequisites

- himalaya configured (see `gmail-multi-account`)
- Contact CSVs with touchbase tags
- `~/.hermes/email-logs/touchbase-tracker.csv` (auto-created)

## Contact Tagging

Contacts must be tagged in their CSV with a `touchbase_cadence` field:

| Cadence | Meaning | Example |
|---|---|---|
| `monthly` | High-value relationship, regular check-in | Active clients, close colleagues |
| `quarterly` | Professional network maintenance | Former colleagues, industry peers |
| `biannual` | Loose ties, keep warm | Conference contacts, alumni |
| `none` | No proactive outreach | Vendors, newsletters, transactional |

## Workflow

### Step 1: Check touchbase tracker

```bash
# See who is overdue for outreach
cat ~/.hermes/email-logs/touchbase-tracker.csv
```

Format: `email,name,account,cadence,last_contact,next_due`

### Step 2: Scan sent folders for last interaction

```bash
# Check when we last emailed someone
himalaya --account ace envelope list --folder "Sent" --output json | \
  python3 -c "
import json, sys
msgs = json.load(sys.stdin)
for m in msgs:
    if 'target@email.com' in m.get('to',''):
        print(f\"{m['date']} — {m['subject']}\")
        break
"
```

### Step 3: Draft touchbase emails

Per-account tone templates:

#### ace (Professional/Engineering)
```
Subject: Checking in — {topic/project reference}

Hi {FirstName},

Hope things are going well. I was {thinking about our conversation / reading about X in the industry / working on a project similar to Y} and thought of you.

{Personalized detail — reference shared project, industry event, mutual connection}

Would love to catch up sometime. Let me know if you have 15 minutes for a quick call.

Best regards,
Vamsee Achanta, P.E.
ACE Engineer Consulting
```

#### personal (Casual/Warm)
```
Subject: Hey {FirstName} — long time!

Hey {FirstName},

Been a while! Just wanted to check in and see how things are going.

{Personal detail — reference family, shared hobby, last conversation topic}

Let's catch up soon — coffee/call/lunch sometime?

Best,
Vamsee
```

#### skestates (Business/Formal)
```
Subject: {Topic} — SKEstates Inc

Dear {FirstName},

I wanted to follow up regarding {specific business matter}.

{Business-relevant detail}

Please let me know if you need anything from our side.

Best regards,
SKEstates Inc
skestatesinc@gmail.com
```

### Step 4: Queue for approval

NEVER send touchbase emails automatically. Always:
1. Present draft to user
2. Wait for approval/edits
3. Send only after explicit "send it" confirmation

### Step 5: Update tracker

After sending:
```bash
# Log the touchbase
echo "target@email.com,FirstName LastName,ace,quarterly,$(date +%Y-%m-%d),$(date -d '+3 months' +%Y-%m-%d)" >> ~/.hermes/email-logs/touchbase-tracker.csv
```

## Touchbase Candidates by Account

### ace — Engineering Network
Priority contacts:
- Former colleagues at lng-a, McDermott, Trendsetter, etc.
- GTM prospect pipeline (link to aceengineer-strategy/)
- SPE/OTC conference connections
- Cadence: monthly for active prospects, quarterly for network

### personal — Personal Network
Priority contacts:
- Close friends and family (check, don't email — text/call better)
- Alumni network (TAMU)
- Career mentors/mentees
- Cadence: quarterly for professional, biannual for loose ties

### skestates — Business Contacts
Priority contacts:
- Property management contacts
- Tax advisor, CPA, attorney
- Insurance agent
- Cadence: quarterly for advisors, biannual for others

## Automation

Weekly reminder cron:
```
# Every Monday at 8 AM CT
0 8 * * 1 hermes "Load gmail-touchbase. Check touchbase tracker for overdue contacts this week. Report who needs outreach — do not draft or send."
```

## Pitfalls

1. NEVER send without user approval — touchbase is relationship-critical
2. Don't touchbase people who recently emailed us — check inbox first
3. Personalization is key — generic "just checking in" emails are worse than none
4. Respect unsubscribe: if someone doesn't reply to 2 consecutive touchbases, reduce cadence
5. Don't touchbase clients with active billing disputes
6. Track all outreach in CSV to avoid double-contacting

Related Skills

gmail-triage

5
from vamseeachanta/workspace-hub

Daily multi-account Gmail inbox triage — scan unread, classify by urgency, cross-reference contacts, generate actionable digest. Supports ace/personal/skestates accounts.

gmail-outreach

5
from vamseeachanta/workspace-hub

Outbound email actions — periodic relationship touchbase messages and batch unsubscribe from newsletters/marketing. Combines gmail-touchbase + gmail-unsubscribe into one skill.

gmail-operations

5
from vamseeachanta/workspace-hub

Class-level Gmail and email operations: multi-account setup, OAuth, triage, extraction, archiving, attachments, unsubscribe, and touchbase workflows.

gmail-multi-account

5
from vamseeachanta/workspace-hub

Multi-account Gmail management via himalaya CLI. Three accounts (aceengineer, achantav, skestates) with distinct triage rules, contact DBs, and tone profiles. Foundation skill for email automation.

gmail-headless-oauth

5
from vamseeachanta/workspace-hub

Manual OAuth2 token exchange for Gmail on headless servers. Bypass gmail-mcp-multiauth browser requirement. Generate auth URLs, exchange codes, manage multi-account credentials with auto-refresh.

gmail-extract-and-act

5
from vamseeachanta/workspace-hub

The email-as-queue workflow — extract structured data from emails, act on it, track thread state, and delete emails when topics complete. Email is transient; extracted data is persistent.

gmail-attachment-to-document

5
from vamseeachanta/workspace-hub

Download attachments from Gmail threads, parse their content (Excel, PDF), extract structured data, and save to target repos with proper legal scanning.

gmail-unsubscribe

5
from vamseeachanta/workspace-hub

Identify and batch-unsubscribe from newsletters and marketing emails across Gmail accounts. Scans List-Unsubscribe headers, generates candidates, executes with user approval.

gmail-extract-archive

5
from vamseeachanta/workspace-hub

DEPRECATED — superseded by gmail-extract-and-act. Extract Gmail data into archive repo, parse attachments, legal scan, then delete. Uses archive-everything model.

gmail-extract-and-clean

5
from vamseeachanta/workspace-hub

DEPRECATED — superseded by gmail-extract-and-act. Extract emails from Gmail to /mnt/ace/<repo>/, archive to repos, commit, then delete. Uses archive-everything model.

gmail-email-to-repo-extraction

5
from vamseeachanta/workspace-hub

Extract structured data from Gmail inbox emails, enrich with domain-specific classification, legal-scan against deny list, commit to appropriate repo, then optionally delete originals.

gmail-data-extraction

5
from vamseeachanta/workspace-hub

Extract structured data from Gmail emails using REST API (no pip dependencies). Covers inbox scanning, subject line regex extraction, email text parsing, thread-aware drafting, and legal-scan-before-commit workflow.