home / skills / abdullahbeam / nexus-design-abdullah / heyreach-master

This skill leverages HeyReach master resources to streamline API usage, config checks, and shared scripts for reliable integration.

This is most likely a fork of the heyreach skill from abdullahbeam
npx playbooks add skill abdullahbeam/nexus-design-abdullah --skill heyreach-master

Review the files below or copy the command above to add this skill to your agents.

Files (17)
SKILL.md
4.5 KB
---
name: heyreach-master
description: "Internal resource library for HeyReach integration. Contains shared API client, operation scripts, and reference documentation."
---

# HeyReach Master (Internal)

Internal resource library containing:
- API client (`heyreach_client.py`)
- Config checker (`check_heyreach_config.py`)
- All operation scripts
- Reference documentation

---

## Architecture: DRY Principle

**Problem solved:** HeyReach skills would have duplicated content (setup instructions, API docs, auth flow, error handling).

**Solution:** Extract shared content into `heyreach-master/references/` and `heyreach-master/scripts/`, then reference from each skill.

**Result:** Single source of truth, reduced context per skill.

---

## Shared Resources

All HeyReach skills reference these resources (progressive disclosure).

### references/

**[setup-guide.md](references/setup-guide.md)** - Complete setup wizard
- Getting API key from HeyReach
- Environment configuration
- Verifying connection

**[api-reference.md](references/api-reference.md)** - HeyReach API patterns
- Base URL and authentication
- All endpoints documented
- Request/response examples
- Pagination patterns

**[error-handling.md](references/error-handling.md)** - Troubleshooting
- Common errors and solutions
- HTTP error codes
- Rate limiting
- Debug tips

### scripts/

#### Authentication & Configuration

**[check_heyreach_config.py](scripts/check_heyreach_config.py)** - Pre-flight validation
```bash
python check_heyreach_config.py [--json]
```
| Argument | Required | Default | Description |
|----------|----------|---------|-------------|
| `--json` | No | False | Output structured JSON for AI consumption |

Exit codes: 0=configured, 1=partial, 2=not configured

**When to Use:** Run this FIRST before any HeyReach operation. Use to validate API key is configured, diagnose authentication issues, or check if setup is needed.

---

**[heyreach_client.py](scripts/heyreach_client.py)** - Shared API client
```python
from heyreach_client import get_client, HeyReachError

client = get_client()
result = client.post("/v2/campaigns/All", {"offset": 0, "limit": 100})
```

Features:
- Automatic retry with exponential backoff
- Rate limit handling (300 req/min)
- Consistent error responses
- API key management from .env

---

## Intelligent Error Detection Flow

When a HeyReach skill fails due to missing configuration, the AI should:

### Step 1: Run Config Check with JSON Output

```bash
python 00-system/skills/heyreach/heyreach-master/scripts/check_heyreach_config.py --json
```

### Step 2: Parse the `ai_action` Field

| ai_action | What to Do |
|-----------|------------|
| `proceed_with_operation` | Config OK, continue with the original operation |
| `prompt_for_api_key` | Ask user: "I need your HeyReach API key from Settings → API" |
| `create_env_file` | Create `.env` file and ask user for credentials |
| `verify_api_key` | Key exists but connection failed - verify it's correct |
| `retry_later` | API timeout - try again |
| `check_network` | Connection error - verify network |

### Step 3: Help User Fix Issues

If `ai_action` is `prompt_for_api_key`:

1. Tell user: "HeyReach integration needs setup. I need your API key."
2. Show them: "Get it from HeyReach: Settings → API"
3. Ask: "Paste your HeyReach API key:"
4. Once they provide it, **write directly to `.env`**:
   ```
   HEYREACH_API_KEY=their-key-here
   ```
5. Re-run config check to verify

---

## Environment Variables

Required in `.env`:
```
HEYREACH_API_KEY=your-api-key-here
```

---

## API Base URL

All API requests go to: `https://api.heyreach.io/api/public`

Authentication header: `X-API-KEY: {api_key}`

Rate limit: 300 requests/minute

---

## Script Usage Patterns

### List Campaigns
```python
from heyreach_client import get_client

client = get_client()
result = client.post("/v2/campaigns/All", {"offset": 0, "limit": 100})
campaigns = result.get("items", [])
```

### Get Campaign Details
```python
result = client.get(f"/v2/campaigns/{campaign_id}")
```

### Add Leads
```python
leads = [
    {"linkedInUrl": "https://linkedin.com/in/user1"},
    {"linkedInUrl": "https://linkedin.com/in/user2"}
]
result = client.post(f"/v2/campaigns/{campaign_id}/leads", {"leads": leads})
```

### Error Handling
```python
from heyreach_client import get_client, HeyReachError

try:
    client = get_client()
    result = client.get("/v2/campaigns/123")
except HeyReachError as e:
    print(f"Error {e.status_code}: {e.message}")
except ValueError as e:
    print(f"Config error: {e}")
```

---

**Version**: 1.0
**Created**: 2025-12-19
**Status**: Production Ready

Overview

This skill is an internal resource library that centralizes HeyReach integration tooling, documentation, and operation scripts. It provides a shared API client, a pre-flight config checker, and reference docs to keep HeyReach skills DRY and consistent. The goal is to reduce duplicated setup, authentication, and error-handling logic across projects.

How this skill works

The library exposes a get_client API client with automatic retries, rate-limit handling, and consistent errors, plus a check_heyreach_config script that validates environment configuration and returns structured JSON for AI-driven flows. Reference documents cover setup, API patterns, and troubleshooting so individual skills can reference a single source of truth. When config issues appear, the config checker returns an ai_action directive that guides remediation steps.

When to use it

  • Before running any HeyReach operation, run the pre-flight config check to validate API key and connectivity.
  • Use the shared client for all HeyReach API calls to benefit from retries and rate-limit handling.
  • Use reference docs when implementing new endpoints, pagination, or error handling patterns.
  • During failure, run the config checker with --json to let automated flows determine next actions.
  • When onboarding a new HeyReach skill to avoid duplicating setup and docs.

Best practices

  • Always run python check_heyreach_config.py --json before operations to get an ai_action response for automated remediation.
  • Store HEYREACH_API_KEY in a .env file and let the library load it; write to .env only after user confirmation.
  • Use get_client() from heyreach_client.py for all requests to ensure consistent retry and rate-limit behavior.
  • Handle HeyReachError exceptions explicitly and re-run the config check on connectivity errors.
  • Reference api-reference.md for correct endpoints, headers (X-API-KEY), and pagination patterns.

Example use cases

  • List campaigns with client.post('/v2/campaigns/All', {'offset':0,'limit':100}) and read items from result.get('items', []).
  • Fetch campaign details with client.get(f'/v2/campaigns/{campaign_id}').
  • Add leads to a campaign using client.post(f'/v2/campaigns/{campaign_id}/leads', {'leads': [...]}) and rely on shared error handling.
  • Automated remediation flow: run config checker --json, parse ai_action, prompt user for API key, write to .env, then re-run the checker.

FAQ

What does check_heyreach_config.py return?

It returns an exit code (0/1/2) and, when run with --json, structured output containing an ai_action field that tells the next remediation step.

How does the shared client handle rate limits?

The client enforces a 300 requests/minute pattern and performs automatic retries with exponential backoff on transient errors.