Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Crmsync

FreeNot checked

Bidirectional, idempotent sync of contacts/deals between a local SQLite source-of-truth and CRM APIs (HubSpot/Pipedrive/Salesforce) via one config.

GitHubEmbed

About

Bidirectional, idempotent sync of contacts/deals between a local SQLite source-of-truth and CRM APIs (HubSpot/Pipedrive/Salesforce) via one config.

README

CRMSYNC

CRMSYNC

Bidirectional, idempotent sync of contacts/deals between a local SQLite source-of-truth and CRM APIs (HubSpot/Pipedrive/Salesforce) via one config.

PyPI CI License: COCL 1.0 Suite

Part of the Cognis Neural Suite.

pip install cognis-crmsync
crmsync scan .            # → prioritized findings in seconds

🔎 Example output

Real, reproducible output from the tool — runs offline:

$ crmsync-emit --version
crmsync 0.1.0
$ crmsync-emit --help
usage: crmsync [-h] [--version] [--format {table,json}] {diff,apply} ...

Idempotent sync & drift detection between a local SQLite canonical store and a versioned CRM export file (CSV/JSON).

positional arguments:
  {diff,apply}
    diff                show drift between export and DB (exit 1 if drift
                        found)
    apply               sync DB to match export (idempotent)

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --format {table,json}
                        output format (default: table)

examples:
  crmsync diff contacts.csv --db crm.db --key email
  crmsync apply contacts.csv --db crm.db --key email
  crmsync diff deals.json --db crm.db --key deal_id --format json

Blocks above are real crmsync output — reproduce them from a clone.

Sample result format (illustrative values — run on your own data for real findings):

{
"findings": [
    {
        "id": "123456789",
        "title": "Suspicious Network Traffic",
        "description": "Unusual network traffic detected from IP 192.168.1.100",
        "severity": "medium",
        "created_at": "2023-02-15T14:30:00Z"
    },
    {
        "id": "987654321",
        "title": "Malware Detected",
        "description": "Malware detected on machine with IP 192.168.1.101",
        "severity": "high",
        "created_at": "2023-02-15T14:35:00Z"
    }
]
}

Usage — step by step

  1. Install the CLI (Python 3.9+):

    pip install crmsync        # or: pip install .   from a checkout
    
  2. Detect drift — the diff subcommand compares a versioned CRM export (CSV/TSV/JSON) against a local SQLite store and exits 1 when they differ:

    crmsync diff contacts.csv --db crm.db --table contacts --key email
    
  3. Sync the DB to match the export (idempotent) with apply:

    crmsync apply contacts.csv --db crm.db --table contacts --key email
    

    Add --no-delete to keep DB rows that are absent from the export.

  4. Read drift programmatically with the global --format json flag (it precedes the subcommand):

    crmsync --format json diff deals.json --db crm.db --key deal_id | jq .
    
  5. Gate CI on CRM consistency — the job fails (exit 1) whenever the export and DB drift apart:

    crmsync diff contacts.csv --db crm.db --key email || echo "CRM export drifted from DB"
    

Contents

Why crmsync?

A single MCP-native binary that makes your CRM a replica of a versioned local file — run it in CI to detect drift and reconcile without a $20k iPaaS contract.

crmsync is single-purpose, scriptable, and self-hostable: point it at a target, get prioritized results in the format your workflow already speaks (table · JSON · SARIF), gate CI on it, and let agents drive it over MCP.

Features

  • ✅ Fingerprint
  • ✅ Load Export
  • ✅ Ensure Schema
  • ✅ Load Db State
  • ✅ Diff Records
  • ✅ Apply Plan
  • ✅ Runs on Linux/macOS/Windows · Docker · devcontainer
  • ✅ Ports in Python, JavaScript, Go, and Rust (ports/)

Quick start

pip install cognis-crmsync
crmsync --version
crmsync scan .                       # scan current project
crmsync scan . --format json         # machine-readable
crmsync scan . --fail-on high        # CI gate (non-zero exit)

Example

$ crmsync scan .
  [HIGH    ] CRM-001  example finding             (./src/app.py)
  [MEDIUM  ] CRM-002  another signal              (./config.yaml)

  2 findings · risk score 5 · 38ms

Architecture

flowchart LR
  IN[input] --> P[crmsync<br/>analyze + score]
  P --> OUT[report]

Use it from any AI stack

crmsync is interoperable with every popular way of using AI:

  • MCP servercrmsync mcp (Claude Desktop, Cursor, Cognis.Studio, uncensored-fleet)
  • OpenAI-compatible / JSON — pipe crmsync scan . --format json into any agent or LLM
  • LangChain · CrewAI · AutoGen · LlamaIndex — wrap the CLI/JSON as a tool in one line
  • CI / scripts — exit codes + SARIF for non-AI pipelines

How it compares

Cognis crmsync Airbyte
Self-hostable, no account varies
Single command, zero config ⚠️
JSON + SARIF for CI varies
MCP-native (AI agents)
Polyglot ports (JS/Go/Rust)
Open license ✅ COCL varies

Built in the spirit of Airbyte/Singer taps, in the spirit of Grouparoo, re-framed the Cognis way. Missing a credit? Open a PR.

Integrations

Pipes into your stack: SARIF for code-scanning, JSON for anything, an MCP server (crmsync mcp) for AI agents, and a webhook forwarder for SIEM/Slack/Jira. See docs/INTEGRATIONS.md.

Install — every way, every platform

pip install "git+https://github.com/cognis-digital/crmsync.git"    # pip (works today)
pipx install "git+https://github.com/cognis-digital/crmsync.git"   # isolated CLI
uv tool install "git+https://github.com/cognis-digital/crmsync.git" # uv
pip install cognis-crmsync                                          # PyPI (when published)
docker run --rm ghcr.io/cognis-digital/crmsync:latest --help        # Docker
brew install cognis-digital/tap/crmsync                             # Homebrew tap
curl -fsSL https://raw.githubusercontent.com/cognis-digital/crmsync/main/install.sh | sh
Linux macOS Windows Docker Cloud
scripts/setup-linux.sh scripts/setup-macos.sh scripts/setup-windows.ps1 docker run ghcr.io/cognis-digital/crmsync DEPLOY.md (AWS/Azure/GCP/k8s)

Related Cognis tools

  • warmline — Score and rank inbound/outbound leads from a YAML rulebook, emitting a ranked queue as JSON/CSV for your SDRs and CI gates.
  • coldforge — Render personalized cold-outreach sequences from Markdown templates + a contacts CSV, with spam-score linting and per-send dry-run preview.
  • pactgen — Generate branded sales proposals and SOWs from a YAML scope file + pricing table into PDF/HTML, with a deterministic line-item math check.
  • dripcheck — Lint email sequences and drip campaigns for deliverability: SPF/DKIM/DMARC, link health, unsubscribe presence, and CAN-SPAM/GDPR compliance.
  • dealflow — Model your sales pipeline as a YAML state machine and compute conversion rates, stage velocity, and weighted forecast straight from CRM exports.
  • introbot — Find warm-intro paths through your team's combined network graph and draft double-opt-in intro requests from a single contacts manifest.

Explore the suite → 🗂️ all 170+ tools · ⭐ awesome-cognis · 🔗 cognis-sources · 🤖 uncensored-fleet · 🧠 engram

Contributing

PRs, new rules, and demo scenarios are welcome under the collaboration-pull model — see CONTRIBUTING.md and SECURITY.md.

⭐ If crmsync saved you time, star it — it genuinely helps others find it.

Interoperability

{} composes with the 300+ tool Cognis suite — JSON in/out and a shared OpenAI-compatible /v1 backbone. See INTEROP.md for the suite map, composition patterns, and reference stacks.

License

Source-available under the Cognis Open Collaboration License (COCL) v1.0 — free for personal, internal-evaluation, research, and educational use; commercial / production use requires a license ([email protected]). See LICENSE.


Cognis Digital · one of 170+ tools in the Cognis Neural Suite · Making Tomorrow Better Today

from github.com/cognis-digital/crmsync

Installing Crmsync

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/cognis-digital/crmsync

FAQ

Is Crmsync MCP free?

Yes, Crmsync MCP is free — one-click install via Unyly at no cost.

Does Crmsync need an API key?

No, Crmsync runs without API keys or environment variables.

Is Crmsync hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Crmsync in Claude Desktop, Claude Code or Cursor?

Open Crmsync on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Crmsync with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All data MCPs