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.
npx playbooks add skill abdullahbeam/nexus-design-abdullah --skill heyreach-masterReview the files below or copy the command above to add this skill to your agents.
---
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
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.
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.
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.