← All skills
Tencent SkillHub · Communication & Collaboration

Foxreach

Manage FoxReach cold email outreach — leads, campaigns, sequences, templates, email accounts, inbox, and analytics. Use when the user asks to create leads, m...

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Manage FoxReach cold email outreach — leads, campaigns, sequences, templates, email accounts, inbox, and analytics. Use when the user asks to create leads, m...

⬇ 0 downloads ★ 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, api-reference.md, examples.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
0.1.1

Documentation

ClawHub primary doc Primary doc: SKILL.md 19 sections Open source page

FoxReach API Management Skill

You are managing the FoxReach cold email outreach platform through its Python SDK and CLI. This skill covers all API operations for leads, campaigns, sequences, templates, email accounts, inbox, and analytics.

Setup & Authentication

The Python SDK is at integrations/sdk-python/ and the CLI is at integrations/cli/. Both use API key authentication with keys prefixed otr_. Check if the SDK is available: python -c "from foxreach import FoxReach; print('SDK ready')" If not installed, install it: cd integrations/sdk-python && pip install -e . Authentication — Always get the API key from the user or environment before making calls. Never hardcode keys. Use environment variable injection: FOXREACH_API_KEY=otr_... python script.py Or use the CLI config: cd integrations/cli && PYTHONPATH=. python -m foxreach_cli.main config set-key --key otr_...

How to Execute Operations

Write inline Python scripts using the SDK. Always follow this pattern: import json from foxreach import FoxReach client = FoxReach(api_key="otr_USER_KEY_HERE") # ... perform operation ... client.close() For quick operations, use one-liners: python -c " from foxreach import FoxReach client = FoxReach(api_key='otr_...') result = client.leads.list(page_size=10) for lead in result: print(f'{lead.id} {lead.email} {lead.status}') print(f'Total: {result.meta.total}') client.close() "

Resource Reference

For complete API details, see api-reference.md. For usage examples of every operation, see examples.md.

Leads

ActionMethodNotesListclient.leads.list(page=1, page_size=50, search=..., status=..., tags=...)Paginated, filterableGetclient.leads.get(lead_id)Returns single LeadCreateclient.leads.create(LeadCreate(email=..., first_name=..., ...))Deduplicates by emailUpdateclient.leads.update(lead_id, LeadUpdate(company=..., ...))Partial updateDeleteclient.leads.delete(lead_id)Soft-delete

Campaigns

ActionMethodNotesListclient.campaigns.list(status=...)Filter by draft/active/paused/completedGetclient.campaigns.get(campaign_id)Includes statsCreateclient.campaigns.create(CampaignCreate(name=..., ...))Creates in draftUpdateclient.campaigns.update(campaign_id, CampaignUpdate(...))Can't edit if activeDeleteclient.campaigns.delete(campaign_id)Must be draftStartclient.campaigns.start(campaign_id)Transitions to activePauseclient.campaigns.pause(campaign_id)Pauses sendingAdd Leadsclient.campaigns.add_leads(campaign_id, [lead_ids])Bulk addAdd Accountsclient.campaigns.add_accounts(campaign_id, [account_ids])Assign senders

Sequences (nested under campaigns)

ActionMethodNotesListclient.campaigns.sequences.list(campaign_id)All stepsCreateclient.campaigns.sequences.create(campaign_id, SequenceCreate(body=..., ...))Add stepUpdateclient.campaigns.sequences.update(campaign_id, seq_id, SequenceUpdate(...))Edit stepDeleteclient.campaigns.sequences.delete(campaign_id, seq_id)Remove step

Templates

ActionMethodNotesListclient.templates.list()PaginatedGetclient.templates.get(template_id)Single templateCreateclient.templates.create(TemplateCreate(name=..., body=...))New templateUpdateclient.templates.update(template_id, TemplateUpdate(...))Partial updateDeleteclient.templates.delete(template_id)Remove

Email Accounts

ActionMethodNotesListclient.email_accounts.list()PaginatedGetclient.email_accounts.get(account_id)With health metricsDeleteclient.email_accounts.delete(account_id)Remove

Inbox

ActionMethodNotesList Threadsclient.inbox.list_threads(category=..., is_read=..., ...)FilterableGetclient.inbox.get(reply_id)Full threadUpdateclient.inbox.update(reply_id, ThreadUpdate(is_read=..., ...))Mark read/starred

Analytics

ActionMethodNotesOverviewclient.analytics.overview()Dashboard KPIsCampaignclient.analytics.campaign(campaign_id)Metrics + daily stats

Pagination

List endpoints return PaginatedResponse objects: result = client.leads.list(page=1, page_size=50, search="acme") # Access data for lead in result: print(lead.email) # Check pagination info print(f"Page {result.meta.page}/{result.meta.total_pages}, {result.meta.total} total") # Get next page if result.has_next_page(): next_result = result.next_page() # Auto-paginate through ALL results for lead in client.leads.list().auto_paging_iter(): print(lead.email)

Error Handling

Always wrap API calls in try/except: from foxreach import FoxReach, NotFoundError, RateLimitError, AuthenticationError, FoxReachError try: lead = client.leads.get("cld_nonexistent") except NotFoundError: print("Lead not found") except AuthenticationError: print("Invalid API key") except RateLimitError as e: print(f"Rate limited. Retry after {e.retry_after}s") except FoxReachError as e: print(f"API error: {e}")

Template Variables & Personalization

Email bodies support variable substitution using {{variable}} syntax: {{firstName}}, {{lastName}}, {{email}} {{company}}, {{title}}, {{phone}} {{website}}, {{linkedinUrl}} Custom fields: {{customFieldName}} Spintax is also supported: {Hi|Hey|Hello} {{firstName}}

1. Full Campaign Setup

When the user wants to set up a complete campaign, follow these steps in order: Create the campaign with campaigns.create() Add sequence steps with campaigns.sequences.create() for each email in the chain Add leads with campaigns.add_leads() Assign email accounts with campaigns.add_accounts() Start the campaign with campaigns.start()

2. Check Campaign Performance

Get campaign analytics with analytics.campaign(id) Show sent, delivered, bounced, replied, opened stats Show reply rate and bounce rate If daily_stats are available, summarize trends

3. Manage Inbox

List unread threads with inbox.list_threads(is_read=False) Categorize replies by updating with inbox.update(id, ThreadUpdate(category="interested")) Common categories: interested, not_interested, out_of_office, wrong_person, unsubscribe

4. Bulk Lead Import

For adding multiple leads, create them one by one (the API deduplicates by email): leads_data = [ {"email": "a@example.com", "first_name": "Alice", "company": "Acme"}, {"email": "b@example.com", "first_name": "Bob", "company": "Beta"}, ] created = [] for data in leads_data: lead = client.leads.create(LeadCreate(**data)) created.append(lead) print(f"Created: {lead.id} - {lead.email}")

Important Notes

Base URL: https://api.foxreach.io/api/v1 Rate limit: 100 requests per minute. The SDK auto-retries on 429. ID prefixes: Leads cld_, Campaigns cmp_, Replies rpl_, Templates tpl_ Timezone: All datetimes in UTC ISO 8601 format. Sending days: Array of integers, 1=Monday through 7=Sunday. Sending hours: 0-23 range, in the campaign's timezone. Campaign status flow: draft → active → paused → active → completed Soft deletes: Leads are soft-deleted and can reappear on re-import. Always confirm with the user before destructive operations (delete, start campaign). When listing data, default to showing a formatted summary, not raw JSON. When creating resources, confirm the details with the user before executing.

Category context

Messaging, meetings, inboxes, CRM, and teammate communication surfaces.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
3 Docs
  • SKILL.md Primary doc
  • api-reference.md Docs
  • examples.md Docs