← Back to Skills Marketplace
aiwithabidi

Freshsales

by aiwithabidi · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
389
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install freshsales
Description
Freshsales CRM integration — manage contacts, leads, deals, accounts, tasks, and sales sequences via the Freshsales API. Track deal pipelines, automate lead...
README (SKILL.md)

🟢 Freshsales

Freshsales CRM integration — manage contacts, leads, deals, accounts, tasks, and sales sequences via the Freshsales API.

Features

  • Manage contacts — create, update, search, and segment
  • Lead tracking — capture, qualify, assign, and convert
  • Deal pipeline — stages, values, forecasting, and won/lost
  • Account management — company profiles and hierarchies
  • Task management — create, assign, and track sales tasks
  • Activity logging — calls, emails, meetings, and notes
  • Sales sequences — view and manage outreach campaigns
  • Search across contacts, leads, deals, and accounts
  • Reports — pipeline value, conversion rates, activity metrics
  • Filters — custom views with field-level filtering

Requirements

Variable Required Description
FRESHSALES_API_KEY API key/token for Freshsales
FRESHSALES_DOMAIN Your Freshsales domain (e.g. yourorg.freshsales.io)

Quick Start

# List contacts
python3 {baseDir}/scripts/freshsales.py contacts --limit 20
# Get contact details
python3 {baseDir}/scripts/freshsales.py contact-get 12345
# Create a contact
python3 {baseDir}/scripts/freshsales.py contact-create '{"first_name":"Jane","last_name":"Doe","email":"[email protected]"}'
# Update a contact
python3 {baseDir}/scripts/freshsales.py contact-update 12345 '{"lead_score":85}'

Commands

contacts

List contacts.

python3 {baseDir}/scripts/freshsales.py contacts --limit 20

contact-get

Get contact details.

python3 {baseDir}/scripts/freshsales.py contact-get 12345

contact-create

Create a contact.

python3 {baseDir}/scripts/freshsales.py contact-create '{"first_name":"Jane","last_name":"Doe","email":"[email protected]"}'

contact-update

Update a contact.

python3 {baseDir}/scripts/freshsales.py contact-update 12345 '{"lead_score":85}'

leads

List leads.

python3 {baseDir}/scripts/freshsales.py leads --limit 20 --sort updated_at

lead-create

Create a lead.

python3 {baseDir}/scripts/freshsales.py lead-create '{"first_name":"John","company":"Acme"}'

deals

List deals.

python3 {baseDir}/scripts/freshsales.py deals --limit 20

deal-create

Create a deal.

python3 {baseDir}/scripts/freshsales.py deal-create '{"name":"Acme Upgrade","amount":50000}'

deal-update

Update deal stage.

python3 {baseDir}/scripts/freshsales.py deal-update 789 '{"deal_stage_id":3}'

accounts

List accounts.

python3 {baseDir}/scripts/freshsales.py accounts --limit 20

tasks

List tasks.

python3 {baseDir}/scripts/freshsales.py tasks --limit 10 --status open

task-create

Create a task.

python3 {baseDir}/scripts/freshsales.py task-create '{"title":"Follow up with Acme","due_date":"2026-03-01"}'

search

Search across all entities.

python3 {baseDir}/scripts/freshsales.py search "Acme"

activities

List recent activities.

python3 {baseDir}/scripts/freshsales.py activities --limit 20

pipeline

Pipeline summary.

python3 {baseDir}/scripts/freshsales.py pipeline

Output Format

All commands output JSON by default. Add --human for readable formatted output.

# JSON (default, for programmatic use)
python3 {baseDir}/scripts/freshsales.py contacts --limit 5

# Human-readable
python3 {baseDir}/scripts/freshsales.py contacts --limit 5 --human

Script Reference

Script Description
{baseDir}/scripts/freshsales.py Main CLI — all Freshsales operations

Data Policy

This skill never stores data locally. All requests go directly to the Freshsales API and results are returned to stdout. Your data stays on Freshsales servers.

Credits


Built by M. Abidi | agxntsix.ai YouTube | GitHub Part of the AgxntSix Skill Suite for OpenClaw agents.

📅 Need help setting up OpenClaw for your business? Book a free consultation

Usage Guidance
This skill appears to be a legitimate Freshsales CLI, but there are a few red flags you should address before installing or providing credentials: (1) The script never substitutes FRESHSALES_DOMAIN into API calls (API_BASE uses the literal '{domain}'), so network requests will fail or behave unexpectedly — ask the author to fix the URL construction to use the declared domain. (2) The script will look for FRESHSALES_API_KEY in a .env under WORKSPACE or ~/.openclaw/workspace/.env if the env var is not set; this file access is not documented and may read local secrets. Prefer setting FRESHSALES_API_KEY explicitly, or review the .env lookup code. (3) Because the code has these inconsistencies, treat it as untrusted until corrected: run it in a sandboxed or test environment, use a limited-scope API key, and review/patch the code to properly use FRESHSALES_DOMAIN and to avoid undocumented file reads.
Capability Analysis
Type: OpenClaw Skill Name: freshsales Version: 1.0.0 The skill is classified as suspicious due to two main vulnerabilities in `scripts/freshsales.py`. Firstly, it attempts to read the `FRESHSALES_API_KEY` from `~/.openclaw/workspace/.env` if not present in environment variables, which is a local file access capability that could be abused. Secondly, it directly interpolates user-provided `args.id` into API URL paths (e.g., `/contacts/{args.id}`) without explicit sanitization, posing a potential URL path injection vulnerability. No evidence of intentional malicious behavior like data exfiltration to unauthorized third parties, persistence, or prompt injection against the agent was found in `SKILL.md`.
Capability Assessment
Purpose & Capability
The skill declares FRESHSALES_DOMAIN as a required env var, but the bundled script never reads or substitutes that variable into API requests (API_BASE contains an unformatted '{domain}' placeholder). Requesting a domain variable that the code doesn't use is incoherent and suggests either a bug or sloppy packaging.
Instruction Scope
SKILL.md claims 'never stores data locally' and documents only FRESHSALES_API_KEY/FRESHSALES_DOMAIN, but the script will attempt to read a .env file from a workspace path (WORKSPACE env or ~/.openclaw/workspace/.env) to find the API key. That file lookup is not documented and is additional file system access beyond the stated instructions.
Install Mechanism
No install spec (instruction-only plus a Python stdlib script). Nothing is written to disk by an installer; risk from install mechanism is low.
Credentials
Only FRESHSALES_API_KEY and FRESHSALES_DOMAIN are declared (primary credential is FRESHSALES_API_KEY), which is reasonable for a CRM integration — but FRESHSALES_DOMAIN is unused and the script additionally inspects WORKSPACE and a local .env file for the API key. The implicit dependence on WORKSPACE/.env is not declared and increases the scope of environment/config access.
Persistence & Privilege
The skill is not always-enabled, does not modify other skills, and has no installer that grants persistent elevated privileges. It does read a local .env if present but does not persist new data or change system settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install freshsales
  3. After installation, invoke the skill by name or use /freshsales
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Freshsales CRM integration skill — initial release. - Manage contacts, leads, deals, accounts, tasks, and sales sequences using the Freshsales API. - Includes tracking of deal pipelines, automated lead assignments, activity logging, and sales reporting. - Designed for Python 3.10+; no external dependencies (stdlib only). - CLI commands for all major Freshsales CRM operations with JSON or human-readable output. - No data stored locally; all requests made directly to Freshsales.
Metadata
Slug freshsales
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Freshsales?

Freshsales CRM integration — manage contacts, leads, deals, accounts, tasks, and sales sequences via the Freshsales API. Track deal pipelines, automate lead... It is an AI Agent Skill for Claude Code / OpenClaw, with 389 downloads so far.

How do I install Freshsales?

Run "/install freshsales" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Freshsales free?

Yes, Freshsales is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Freshsales support?

Freshsales is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Freshsales?

It is built and maintained by aiwithabidi (@aiwithabidi); the current version is v1.0.0.

💬 Comments